WordPress 是自带邮件功能的,它会给你发送一些重要的信息,比如有新的评论了、Wordpress 自动升级完成了、网站遇到重大问题等的时候,都会给你发送邮件通知进行提醒。

依赖 mail 函数

WordPress 的邮件提醒功能是默认打开的,但是依赖于 mail() 函数,如果你的服务器或虚拟主机不支持 mail() 函数,Wordpress 既不会报错,也不会提示你。虽然你你可能搭建了很多 WordPress 站点,但你可能自始至终就没有受到过 WordPress 发的邮件。

如果你的服务器或虚拟主机支持 mail() 函数,那么你就会受到类似如下的邮件:

这是一封代发邮件,用户自己填写好表单之后,通过服务器或虚拟主机 mail() 绑定的邮箱,代替用户给你发送过去。整个过程用户不需要登陆自己的邮箱,甚至填写的是非自己的邮箱都可以发送成功,因为这些信息都相当于内容。

然而,这种方便的 mail() 函数,很多情况下都会被邮箱提供商认定为 “垃圾邮件”,从而可能拦截了或者投递到收件人的垃圾邮箱中,可能会导致你过错重要邮件。

改用 SMTP

改用SMTP端口,使用自己的邮箱,可以解决被认定为 “垃圾邮件” 的问题,还可以让不支持 mail() 函数的服务器或虚拟主机启用 WordPress 邮件功能。

首先你要准备一个邮箱

这个邮箱将会作为发件人,比如 no_reply@yourname.com 这种样子,邮箱名称选择 no_reply, noreply, do_not_reply 等这样的比较正式一些。

PHP 需要 fsockopen 函数的支持

你需要在 php.ini 配置打开 fsockopen() 函数,这是必须的,否则你没法使用 SMTP。

WordPress中添加相关代码

添加以下代码到 function.php 中,或者使用 Snippets 这类插件,导入相关代码。

function MBT_mail_smtp( $phpmailer ) {
 $phpmailer->IsSMTP();
 $phpmailer->SMTPAuth = true;
 $phpmailer->FromName = '邮件标题';
 $phpmailer->Port = 465;
 $phpmailer->SMTPSecure ="ssl";
 $phpmailer->Host = "smtp服务地址";
 $phpmailer->Username = "nore_ply@yourname.com";
 $phpmailer->Password ="邮箱密码";
}

add_action('phpmailer_init', 'MBT_mail_smtp');
function MBT_wp_mail_from( $original_email_address ) {
 return 'nore_ply@yourname.com';
}

add_filter( 'wp_mail_from', 'MBT_wp_mail_from' );

第 4 行是邮件的标题,第 5 行是 SMTP 的 SSL 端口号,其余的按照自己的修改即可。需要注意的是,第 8 行和第 14 行这里的邮箱地址必须一致。

配置完成后即可生效。

发表回复

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

Next Post

以树莓派为核心的HomeKit

周三 7 月 7 , 2021
2021年了,智能家庭品牌也慢慢形成了,例如 Ap […]

更多文章