Php mail() 无法正常工作,但 sendmail 可以。

标签 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 邮件错误。我也没有收到任何电子邮件。可能是什么问题?

最佳答案

众所周知,在 EC2 上发送邮件非常困难。大多数 EC2 IP 地址都在垃圾邮件黑名单中。这与 PHP mail() 可怕的错误报告相结合导致了非常糟糕的体验。

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

个人推荐Swiftmailer为了这个任务。

关于Php mail() 无法正常工作,但 sendmail 可以。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8892742/

相关文章:

linux - 如何提取键名后包含空格或引号的键值

python - 使用 Python 查找远程主机操作系统的有效方法

linux - 日志异步写入日志文件

email - 如何在 Amazon EC2 上使用自己的域设置电子邮件转发?

php - 选择多个具有相同名称的复选框

php - 如何在 PHP 中同时执行多个 mysql 查询?

php - 如何将 sklearn 代码嵌入到我的 PHP 后端代码中?

php - 向多维数组添加新索引

amazon-web-services - SSH EC2 要求输入密码

bash - 列出 EC2 实例的公共(public) IP 地址