上次,我们在这篇文章里《WordPress里使用第三方邮件服务发送邮件的方法》提到在wp-includes/functions.php中添加以下代码,能够实现在WordPress里调用第三方的smtp服务发送邮件的功能。
但是这种做法有缺陷,在WordPress每次自动升级以后,会把functions.php中的代码恢复为初始状态。也就是说我们添加的这段代码会被清掉,从而导致发送邮件的功能不可用。如果每次WordPress升级以后就手动再添加一下这段代码倒也可以,但是显然比较麻烦。而且经常会忘记。
所以这里介绍另一种方法,还是使用这段代码。这种方法使用WPCode Lite这个插件,它的基本功能就够用了,并不需要付费的功能,在WordPress里安装这个插件并启用。然后添加Code Snippet,代码类型选择php,将下面的代码复制到代码输入框,其他的选项默认的就可以了。
然后保存,并将状态置为开启。这样就可以了,再也不用担心WordPress升级版本导致这个功能消失的问题了。
以此类推,其他需要添加代码的情况,也都可以使用这款插件实现,避免自己手动添加代码到原始文件里。
//WordPress网站使用smtp发邮件
function mail_smtp( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->SMTPAuth = true;//启用SMTPAuth服务
$phpmailer->Port = 465;//MTP邮件发送端口,这个和下面的对应,如果这里填写25,则下面为空白
$phpmailer->SMTPSecure ="ssl";//是否验证 ssl,这个和上面的对应,如果不填写,则上面的端口须为25
$phpmailer->Host = "smtp.exmail.qq.com";//邮箱的SMTP服务器地址,如果是QQ或者腾讯企业邮箱,地址为:smtp.exmail.qq.com
$phpmailer->Username = "username@domain";//你的邮箱地址
$phpmailer->Password ="********";//你的邮箱登陆密码
}
add_action('phpmailer_init', 'mail_smtp');
//下面这个很重要,得将发件地址改成和上面smtp邮箱一致才行。
function ashuwp_wp_mail_from( $original_email_address ) {
return 'username@domain';
}
add_filter( 'wp_mail_from', 'ashuwp_wp_mail_from' );