基础信息: wordpress,原EC2是amazon-Linux,现在ubuntu
我的博客搬过一次家,从位于法兰克福的亚马逊云搬到了日本的亚马逊。由于环境几乎是完全一样的,搬过来博客运转很正常我也就没想起来检查邮件通知这回事情。前几天我在后台更换主邮箱没有收到确认邮件,当时也没在意,今天有个人在帖子回复我消息,我在认真回答后很关心Ta能不能收到我的回复邮件通知。后来尝试发现我的php服务器即使测试发送成功,我的个人邮箱也并不能收到邮件,不是spam的原因,就是发送端还有问题。
查资料是我Linux缺少一些库,所以即使php配置没问题,但是系统后援跟不上。解决方法不复杂:
sudo apt install sendmail sudo apt install sendmail-cf sudo apt install mailutils sudo apt install sharutils
其中mailutils是邮件的基础功能,sharutils是带附件功能。默认的配置只能给自身发送邮件,需要更改为允许给任何地址发送:
sudo vim /etc/mail/sendmail.mc
找到Port=smtp, Addr=127.0.0.1′)dnl 改成 Port=smtp, Addr=0.0.0.0′)dnl , 保存。
下一步备份并生成新的配置文件:
sudo -i cd /etc/mail mv sendmail.cf sendmail.org m4 sendmail.mc > sendmail.cf
然后重启服务:
sudo service sendmail restart sudo service apache2 restart
有个简单的测试程序,在terminal中运行:
echo "test mail ok" | mail -s "test mail ok"
还有测试php发送是否OK:新建一个php脚本,放在网站目录下,用浏览器打开:
<?php $txt = "Hello"; $mail = ''; // 以下的邮箱地址改成你的 mail($mail, "My E-mail", $txt); // 发送邮件 echo 'E-mail was sent!'; ?>
成功的话,也是对应邮箱会收到邮件。可以检查一下垃圾箱,以免被误判。
回到你的博客测试一下把~
Reference:
http://yunkus.com/linux-environment-wordpress-sendmail-bumpy-journey/
https://blog.csdn.net/chenyiyue/article/details/51883915