【发布时间】:2017-11-10 06:37:53
【问题描述】:
我在我的 AWS linux 机器上用 php 编写了以下代码,但是它无法发送电子邮件
$to = "test@abc.com.au"; // E-mail address of reciever
$subject = "Test Subject"; // Subject of email
$body = "Hi All, <br><br> This is the test email <br><br>Thank You!";
$header = 'From: test@abc.com.au';
if(mail($to, $subject, $body, $header)) {
echo "Email sent successfully!";
} else {
echo 'Email send Failed';
}
像上面这样的电子邮件发送总是失败。以下是我对 php.ini 的设置
[mail function]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i
SMTP = "my smtp server address"
smtp_port = 25
有趣的是,如果我使用以下命令发送电子邮件,它会成功接收
echo "hello" |sendmail -s -v "test" test@abc.com.au
有人可以帮忙和建议,什么可能导致邮件功能失败?
提前致谢。
【问题讨论】:
-
怎么不起作用?你得到什么错误?
-
什么也没有得到......只是控制台中的“电子邮件发送失败”......
-
系统日志中是否有任何内容(可能是/var/log)?
-
谢谢@stdunbar。是的,终于找到错误了。。错误信息是:sendmail[5232]: vA33eK7e002718: to=
, ctladdr= (501/501), delay=4+23:48:01 , xdelay=00:00:00, mailer=esmtp, pri=11220275, relay=240, dsn=4.0.0, stat=Deferred: 名称服务器: 240: 主机名查找失败 -
好的。更新了 /etc/sysconfig/network 文件并在主机名中添加了我的代理邮件服务器地址。然后重新启动服务.. 现在,我可以发送电子邮件,但 php 服务器没有使用代理邮件服务器发送电子邮件。相反,它直接从机器发送电子邮件
标签: php amazon-web-services email