WordPress注册发送邮件
一直没有注意过这个问题,直到近日自己想再注册一个用户,才发现根本收不到邮件,网络上一搜一大把的解决方案,为了保持原汁原味,所以没有想着改成立即显示密码,也不太想使用SMTP靠着其它站点发送邮件,所以最后还是尝试着使用Linux的SendMail功能。
首先,不管安装没安装,先尝试卸载sendmail,命令为:
- yum remove sendmail
安装postfix,命令为:
- yum install postfix
检查是否将MTA改为Postfix,命令为:
- alternatives --display mta
最开始安装服务器的时候,我使用的阿里云一体化包,貌似当时就全部配好了,如果MTA不是PostFix,需要更改默认MTA,命令为:
- /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
编辑main.cf,命令为:
- vi /etc/postfix/main.cf
修改以下内容:
1.找到 #myhostname = host.domain.tld , 修改成:myhostname = mail.yujzw.com (你自己的域名)。
2.找到 #mydomain = domain.tld ,将等号后面的部分改写为你的域名,修改成:mydomain = yujzw.com(此处设置将成为E-mail地址“@”后面的部分)。
3.找到 #myorigin = $mydomain ,只需将首行的#号去掉即可,其他无需变动。
4.找到 inet_interfaces = localhost ,将“localhost”改为“all” ,接受来自所有网络的请求。
5.找到 mydestination = $myhostname, localhost.$mydomain, localhost,在行尾添加“$mydomain”,修改成:mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ,指定发给本地邮件的域名。
6.找到 #relay_domains = $mydestination ,只需要将行首的#去掉,定义允许转发的域名。
7.找到 #mynetworks = 168.100.189.0/28, 127.0.0.0/8 去掉前面的#号,指定内网和本地的IP地址范围,按照情况修改,一般无需变动。
9.找到 #home_mailbox = Maildir/ ,去掉行首的#,指定用户邮箱目录。
修改完毕后保存,启动postfix,并将其设置为开机启动,命令为:
- service postfix start
- chkconfig postfix on
如果从未配置过php.ini文件中的SendMail,则需要重新配置。如果不知道php.ini文件的路径,可以使用以下命令查找:
- find / -name php.ini
编辑php.ini文件,命令为:
- vi /etc/php.ini
将sendmail_path修改为:
- sendmail_path = /usr/sbin/sendmail -t -i
重启服务器后,试用注册功能。