WordPress 无法发送邮件,不使用插件的解决办法(修改代码)

WordPress 无法发送邮件,不使用插件的解决办法(修改代码)

很多人喜欢使用 WordPress,但经常会出现 WordPress 无法发送邮件的情况,下面介绍产生的原因及解决办法。

无法收到邮件的原因

造成邮件无法发送和接收的原因主要是两种:服务器配置和反垃圾邮件。

WordPress 后台和 Wordpress 插件都是默认使用 PHP 的 mail() 功能发送邮件的。但是很多服务器提供商没有开通这个功能。

另一个原因,邮件提供商会审查接收的邮件,他们会检查邮件的发信地址和实际发信地址是否一致。

比如,如果我们的邮件供应商是 GMail,但是你的发信地址是你的域名后缀的邮件。所以收件方的邮件供应商会屏蔽或者把来自 Wordpress 的通知邮件屏蔽或者发送到垃圾邮件。

解决办法

解决方式有多种,可以按照 WordPress 的插件解决,例如 WP Mail SMTP 插件。也有的人不喜欢安装插件,安装的插件越多,自己的网站的危险就多一分,所以如果不愿意安装插件的小伙伴可以添加少部分代码来解决这个问题。

在 WP 所在主题的 functions.php 文件中添加如下代码:

function mail_smtp($phpmailer) {
    $phpmailer->From = "bc@qq.com"; //发件人
    $phpmailer->FromName = "张三"; //发件人昵称
    $phpmailer->Host = "smtp.qq.com"; //SMTP服务器地址(比如QQ是smtp.qq.com,腾讯企业邮箱是smtp.exmail.qq.com,阿里云是smtp.域名,其他自行咨询邮件服务商)
    $phpmailer->Port = 465; //SMTP端口,常用的有25、465、587,SSL加密连接端口:465或587,qq是25,qq企业邮箱是465
    $phpmailer->SMTPSecure = "ssl"; //SMTP加密方式,常用的有ssl/tls,一般25端口不填,端口465天ssl
    $phpmailer->Username = "abc@qq.com"; //邮箱帐号,一般和发件人相同
    $phpmailer->Password = 'caccdfdfsd4eddrsa'; // 注意:此处不是邮箱密码,是邮箱授权码
    $phpmailer->IsSMTP(); //使用SMTP发送
    $phpmailer->SMTPAuth = true; //启用SMTPAuth服务
}
add_action('phpmailer_init','mail_smtp');
PHP

这样加入之后即可实现发送邮件。

此处需要注意,password 不是邮箱密码 而是邮箱授权码,在邮箱个设置发件中可以找到。另一个就是你使用的端口需要打开,例如此处我用的是 465 端口,则需要打开 服务器的 465 端口,25、587 端口是同样道理。

点赞

发表回复

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