2012-01-17 69 views
1

我有一个运行RH/Linux的Amazon EC2实例。我的问题是PHP邮件()函数不起作用,虽然我可以从命令行使用sendmail发送邮件。Php邮件()不工作,但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 

我不能fingure出什么错。我没有得到任何PHP邮件错误。我也没有收到任何电子邮件。问题是什么?

+0

“SMTP”和“smtp_port”仅适用于Windows,因此将它们从您的配置中删除。手动发送时,使用sendmail来使用哪些参数? – eth0 2012-01-17 10:11:08

+0

sendmail [email protected] – user1147995 2012-01-17 10:22:07

+0

感谢这是我从sendmail发送的方式 sendmail [email protected] 我正在测试 再见! 。 – user1147995 2012-01-17 10:25:50

回答

4

在EC2上发送邮件是非常困难的。大多数EC2 IP地址都在垃圾邮件黑名单中。这与PHP mail()的可怕错误报告相结合导致了非常可怕的经历。

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

我个人建议Swiftmailer完成这项任务。