PHP邮件()不起作用,但sendmail是。

时间:2012-01-17 10:06:22

标签: php linux amazon-ec2 sendmail

我有一个运行RH / Linux的Amazon EC2实例。我的问题是php mail()函数,虽然我可以从命令行用sendmail发送邮件,但它无法正常工作。

我运行此命令。 # telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
XXXXX

我的php.ini设置是

 mail function]
 SMTP = localhost
 smtp_port = 25
 sendmail_path = /usr/sbin/sendmail -t -i
 mail.add_x_header = On

我无法弄清楚什么是错的。我没有收到任何php邮件错误。我也没有收到任何电子邮件。问题是什么?

1 个答案:

答案 0 :(得分:4)

在EC2上发送邮件非常困难。大多数EC2 IP地址都是垃圾邮件黑名单。这与PHP mail()糟糕的错误报告相结合,会带来非常可怕的体验。

您需要将Amazon Simple Email Service与EC2结合使用。他们最近添加了SMTP service,这意味着您可以使用任何符合标准的PHP邮件库来发送邮件。

我个人建议Swiftmailer执行此任务。