wordpress邮件提醒问题
hi,小blog基本上告一小段落了。不过关于wordpress的邮件通知问题还是挺麻烦的希望能和大家一起分享一下。
wordpress的邮件功能说起来很关键,毕竟无法对用户进行发信提醒也就算了,密码邮件找回功能还是很必要的。
下面说说如何实现wordpress的邮件功能。
通过网上的一些资料wordpress是通过php的mail()函数发邮件的,也就是说你必须保证两个地方是正确的。
1.php的mail功能
2.系统的mail功能
我开始也无法发邮件不过ubuntu安装sendmail就可以发邮件了,还是比较方便的。需要安装
apt-get install sendmail mailutils
安装完成后系统就具有发邮件的能力了。可以通过
echo "testhello" |mail -s "testmail" yourmail@domian.com
这个命令测试,通过tail命令可以查看日志记录
tail -f /var/log/mail.log
之前我遇到的问题是,qq、sina邮箱没有啥太大问题。但是tom邮箱拒收我的邮件为什么呢因为我的邮箱是root@localhost这种格式的。
如何修改这个呢?
首先需要修改你的/etc/hosts文件,不要使用一般主机名而是使用你的域名
然后修改/etc/mail/local-host-names加入你刚才添加的主机名进行重启sendmail
service sendmail restart
这样再看日志你就可以给tom发信了。不过这里还有一个问题,就是你的邮件很可能被扔进对方的垃圾箱。如果要解决这个问题则有些难了,简单说你要修改你的spf记录和域名反解记录,说下去越来越长了。言归正传
即使现在能发信了,对于wordpress也是不能够发信的。centos和redhat到这一步基本上就可以了。因为查看php.ini文件php需要调用sendmail命令。而这个命令在ubuntu系统上被放在了/usr/sbin但是检查你的php运行web程序是什么用户运行的。apache或者nobody吧? 这样无论你怎么纠结你都调用不到sendmail的命令
因此需要修改你的php.ini文件。修改如下部分(只对ubuntu、debian系统)
sendmail_path = "/etc/alternatives/sendmail -t -i"
修改成这个你再去看看呢? 可以发信了吧? 到这里今天的文章已经结束了,但是还有一个问题,sendmail的发信用户目前是root@xxxx.xxx.xxx这个地址不是大家通常意义上的邮件地址。所以以后还要解决这个问题