前言:
最近我一直在测试主题,正在进行测试主题的工作。但是一个
SMTP
邮箱设置问题让我感到非常困扰,以至于无法集中精力。最后,我终于找到了问题的原因,而这个原因居然是如此简单。
具体问题情况
最近在查找主题 BUG
的时候,我发现了一个有趣的现象。就是关于 SMTP
邮箱设置的问题。评论回复有时候可以正常发送,有时候却没有任何审核提示。之前,我忘记了密码,结果通过邮箱找回时出现了以下错误:
可能原因:您的主机禁用了
mail
()函数。检测 mail
函数是否禁用
使用 PHP
探针来检测主机商是否禁用了 mail
函数的方法如下。将以下代码保存为 php
文件并上传到服务器,然后打开该文件即可进行测试:
// https
://www
.huizhanii
.com
解决方案
原本以为腾讯云主机禁用了 mail
()函数,但通过 PHP
探针发现并没有禁用。
下面是汇站提供的解决方案,适用于 mail
函数被禁用和支持 mail
函数的情况。亲身经历,希望能帮助到大家,避免再有人遇到类似问题。
主机禁用 mail
函数的解决方案:
如果通过上述 PHP
探针发现主机禁用了 mail
函数,可以直接使用 SMTP
发送邮件来替代原来的 mail
函数。
以下是汇站使用的 SMTP
邮箱设置代码,将其添加到functions
.php
文件中即可。
// https
://www
.huizhanii
.com
function
mail_smtp
( $phpmailer
){
$phpmailer
->From
= "972908224@qq
.com
"; //发件人
$phpmailer
->FromName
= "汇站网"; //发件人昵称
$phpmailer
->Host
= "smtp
.qq
.com
"; //SMTP
服务器地址
$phpmailer
->Port
= 465; //SMTP
端口,常用的有 25、465、587,具体谷歌百度
$phpmailer
->SMTPSecure
= ""; //SMTP
加密方式,常用的有 SSL
/TLS
,具体谷歌百度
$phpmailer
->Username
= "xxxxxx
"; //邮箱帐号
$phpmailer
->Password
= ***********; //邮箱密码
$phpmailer
->IsSMTP
(); //使用 SMTP
发送
$phpmailer
->SMTPAuth
= true
; //启用 SMTPAuth
服务
}
add_action
('phpmailer_init
','mail_smtp
');
主机支持 mail
函数解决方案
如果测试支持 mail
函数往下看:
之前只有测试管理员的邮箱,后来我试着注册新用户,使用邮箱找回密码的功能,结果邮件正常发送,毫无意外。
接着,我更换 SMTP
邮箱账户为 163 邮箱,重新用管理员邮箱找回密码,结果也是正常接收,毫无意外。
终于,我发现了一个意外的问题,原来收件邮箱和发件邮箱不能相同。这个问题出现在一个小环节上,让我以为是主题问题,我改了好几次代码,但最终修复了一个重大 BUG
。折腾啊,年轻就是要折腾。
不过话说回来,自从更换了 163 邮箱后,163 邮箱里就收到一大堆的审核、评论回复和注册的邮件提醒,真的很烦人。于是我决定单独设置一个管理员邮箱作为发件邮箱,这样就可以有效减少接收的邮件,现在终于清静了。