1 wp_mail发送邮件失败导致的问题

今天晚上在登录网站后台准备更新网站内容的时候,输入完账号密码但是一直卡在进入网站后台的页面,无法进入仪表盘界面。之后反复检测输入的密码确确实实没有输入错误但是就是无法进入WordPress仪表盘网站后台管理界面。然后就开始Google和度娘出现这种现象的原因,并折腾了很多解决方法但是还是没有办法成功登录。就这样折腾了几个小时,突然想起来,我在用户登录成功的时候会发送邮件通知我有用户进行登录,是不是邮件没有发送成功,一直阻塞导致无法进入仪表盘管理后台页面。然后注释了发送邮件的代码就可以成功登录了。

网站使用的是搬瓦工的服务器,然后也没有对SMTP进行配置就可以正常使用wp_mail函数进行邮件发送,现在出现wp_mail发送邮件失败的问题可能是搬瓦工的服务没有再提供邮件发送的功能或者搬瓦工自己的邮件转发服务器出现了问题。

WordPress – wp_mail发送邮件失败,使用插件或者纯代码方式添加SMTP邮件发送功能-StubbornHuang Blog

2 使用QQ邮箱的SMTP服务进行发送邮件

2.1 开启QQ邮箱SMTP服务

登录QQ邮箱,点击设置-账户,

WordPress – wp_mail发送邮件失败,使用插件或者纯代码方式添加SMTP邮件发送功能-StubbornHuang Blog

然后开始SMTP服务,获取授权码,注意这里的授权码就是之后需要的密码
WordPress – wp_mail发送邮件失败,使用插件或者纯代码方式添加SMTP邮件发送功能-StubbornHuang Blog

其中,QQ邮箱的SMTP服务的设置参数如下:

  • 服务器:smtp.qq.com
  • 端口:25
  • 账号:你的QQ邮箱地址
  • 密码:收到的授权码

2.2 使用插件设置QQ邮箱SMTP服务

下图的三个插件都可以设置第三方的SMTP服务,开启插件后将上一节的QQ邮箱SMTP服务的相关参数填入相应的位置即可。

WordPress – wp_mail发送邮件失败,使用插件或者纯代码方式添加SMTP邮件发送功能-StubbornHuang Blog

2.3 纯代码设置QQ邮箱SMTP服务

在当前主题的function.php文件中加入以下代码即可,具体的参数填入自己的想要的:

//SMTP邮箱设置
function mail_smtp( $phpmailer ){
    $phpmailer->From = "stubbornhuang@qq.com";//发件人地址
    $phpmailer->FromName = "StubbornHuangBlog";//发件人昵称
    $phpmailer->Host = "smtp.qq.com";//SMTP服务器地址
    $phpmailer->Port = "25";
    //SMTP邮件发送端口, 常用端口有:25、465、587, 具体联系邮件服务商
    $phpmailer->SMTPSecure = "TLS";
    //SMTP加密方式(SSL/TLS)没有为空即可,
    //具体联系邮件服务商, 以免设置错误, 无法正常发送邮件
    $phpmailer->Username = "xxxxxxx@qq.com";//你的邮箱帐号
    $phpmailer->Password = "你的授权码";//SMTP的授权码
    $phpmailer->IsSMTP();
    $phpmailer->SMTPAuth = true;//启用SMTPAuth服务
}
add_action('phpmailer_init','mail_smtp');