升级WordPress 6.9后无法发送邮件

知更鸟
知更鸟
站长
2458
文章
0
粉丝
WordPress评论13阅读模式

近期升级到WordPress 6.9后,很多WP用户发现不能发送邮件了,直接影响到评论回复邮件通知、注册邮件等。

升级WordPress 6.9后无法发送邮件-图片1

大概原因是,WordPress 6.9 修改了核心邮件功能,移除了setFrom()方法中的false标记,现在它会根据你的From头显示地址设置发件人地址,或者默认为wordpress@yourdomain.com,发件人地址若未通过收件服务器的认证,会被判定为 “伪造邮件” 而被拦截。

特别是使用第三方的SMTP 服务器发送邮件,例如被广泛使用的:

升级WordPress 6.9后无法发送邮件-图片2
默认大部分主机空间都无法正常发送邮件,造成用户注册不能送邮件、无法找回密码等,因此需要用第三方邮件服务器SMTP方式代替 W...
565317

解决办法:

将下面代码添加到当前主题函数模板functions.php中:

function use_no_sender( $phpmailer ) {
   $phpmailer->Sender = '';
}

add_action( 'phpmailer_init', 'use_no_sender' );

通过重置Sender参数适配旧版邮件器逻辑。

完整代码:

// 兼容WP6.9配置邮件
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer ) {
	$phpmailer->FromName = '知更鸟'; // 发件人昵称
	$phpmailer->Host = 'smtp.qq.com'; // 邮箱SMTP服务器
	$phpmailer->Port = 465; // SMTP端口,不需要改
	$phpmailer->Username = '123456@qq.com'; // 邮箱账户
	$phpmailer->Password = 'aabbccddffgg'; // 此处填写邮箱生成的授权码,不是邮箱登录密码
	$phpmailer->From = '123456@qq.com'; // 邮箱账户同上
	$phpmailer->SMTPAuth = true;
	$phpmailer->SMTPSecure = 'ssl'; // 端口25时 留空,465时 ssl,不需要改
	$phpmailer->IsSMTP();
	$phpmailer->Sender = ''; // 纠正WP6.9邮件问题
}

也可以通过安装相关SMTP插件,实现发邮件功能,比如:

FluentSMTP

WP Mail SMTP

Easy WP SMTP

 

本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

weinxin
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
 
知更鸟
匿名

发表评论

匿名网友

拖动滑块以完成验证