PHP函数mail()不能在AWS EC2服务器上运行

时间:2016-02-04 16:17:47

标签: php ubuntu amazon-web-services amazon-ec2 ubuntu-14.04

最近,我安装了基于 Ubuntu 14.04 的AWS EC2虚拟服务器。但我有下一个问题: PHP函数mail()不起作用

  1. 我删除了sendmail。
  2. 我安装了sendmail:

    sudo apt-get install sendmail

  3. 我检查了它的工作情况:

    ps -aux | grep sendmail

  4. 我改变了php.ini:

    sendmail_path = / usr / sbin / sendmail

  5. 我跑:

    sudo sendmailconfig

  6. 为所有类别选择

    1. 重新启动服务:

      服务sendmail重启

    2. 将我的主机名添加到/ etc / hosts:

      127.0.0.1 localhost.localdomain localhost myhostname

    3. 我尝试测试发送:

      echo -e"收件人:myemail@example.com \ n主题:Test \ nTest \ n" | sendmail -bm -t -v

    4. enter image description here

      所有电子邮件都存储在/ var / mail / ubuntu中。

      我还要做其他事吗?

2 个答案:

答案 0 :(得分:1)

邮件功能在基于云的服务器(如aws,azure)中不起作用。我已经遇到过这个问题,并使用php邮件库解决了,所以我建议你使用它。

答案 1 :(得分:1)

Ubuntu 16.04 LTS是截至2016年9月Amazon EC2的“默认”Ubuntu映像,需要安装并配置用于PHP的Postfix MTA才能发送邮件。

sudo apt-get update
sudo apt install mailutils

选择“网站”并输入正确的主机名。

然后使用您喜欢的编辑器,vim或nano等,并修复main.cf文件以仅处理来自本地网络接口(环回)的流量,并将域设置为正确的主机域名。

sudo systemctl restart postfix

详情请见:https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-16-04

这是在运行WordPress应用程序的Ubuntu 16.04上运行出站电子邮件所需的全部魔力。

祝你好运。