使用WP-Mail-SMTP插件带$header参数发信失败

一些主机不支持发送邮件功能,所以我们才用到了WP-Mail-SMTP插件,使用WP-Mail-SMTP插件后即可通过QQ、163、新浪等邮件服务器发送邮件。

通常WP-Mail-SMTP插件发信失败都是设置错误造成的,相关的教程网上很多,这里要说的是一个特殊案例。

我的一些插件使用了wp_mail函数发信,安装WP-Mail-SMTP插件前没有任何问题,但是使用主机发信100%进垃圾箱,我使用的是虚拟主机又没有权限修改相关配置,所以才安装了WP-Mail-SMTP插件。

今天发现邮件发送失败,读了一下WP-Mail-SMTP插件的代码,基本原理是这样的:

  • 过滤wp_mail_from,将$phpmailer->From的值设置为插件中的From Email选项值;
  • 过滤wp_mail_from_name,将$phpmailer->FromName的值设置为插件中的From Name;
  • 通过钩子phpmailer_init设置了SMTP信息。

看上去没有任何问题,再看我的发信代码:

$headers[] = 'Content-Type: text/html; charset=UTF-8';
$headers[] = 'From: ' . $blogname . ' ';
wp_mail( $author_name . ' ', $mail_title, $mail_txt, $headers );

表面上看也没有问题,通过错误日志发现问题原因是From中的邮件地址与授权邮件地址不同,$adminemail取的是WordPress常规设置中邮件地址,而我插件中设置的邮件地址不同,把这两处的邮件地址设置成一样就解决了。

原创文章,作者:,如若转载,请注明出处:https://ce.771633.xyz/1431.html

Like (0)
Previous 2025年3月8日
Next 2025年3月8日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注