WordPress无插件实现SMTP发送邮件

在使用WordPress的过程中,不可避免地要用到邮件功能。WP自带了mail函数,但用自带mail函数发送邮件很容易失败或者被拒收。所以很多人选择用更方便高效的SMTP来发送邮件。要用SMTP发送邮件,首先需要拥有一个支持SMTP的邮箱(包括Gmail、QQ、126、163等主流邮箱都支持SMTP功能,可能需要到设置中打开),然后在WordPress中简单设置一下。你可以选择用插件,Configure SMTP或者WP Mail SMTP都是不错的插件。前者还支持调试,可以方便地知道是什么原因导致发送失败。下面介绍的是无插件实现SMTP发送功能,毕竟插件多了对速度有不利的影响。

WordPress无插件实现SMTP发送邮件这个功能实现起来也很简单,有两种方法可以实现。

第一种:打开主题文件夹下的functions.php(主机目录/wp-content/themes/主题名/functions.php),在最后一个 ?> 之前加上下面的代码即可:

//使用smtp发邮件
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->SMTPAuth = true;//启用SMTPAuth服务
$phpmailer->Port = 465; //SMTP邮件发送端口,常用端口有:25、465和587(后两个为ssl安全连接端口)。
$phpmailer->SMTPSecure ="ssl"; //是否通过 ssl 连接,如果端口为25,则此处将"ssl"改为空白即"",否则不必改动
$phpmailer->Host = "smtp.gmail.com"; // SMTP服务器地址,在邮箱设置或者帮助中心中可以找到
$phpmailer->Username = "username@gmail.com"; //你的邮箱地址
$phpmailer->Password ="******"; //你的邮箱登陆密码
}

第二种:直接修改WordPress源文件class-phpmailer.php和pluggable.php,这个方法需要对WordPress的2个源文件做小小的修改。好处就是你不需要每次更改主题都修改functions.php,而且更安全。

在WordPress的wp-includes目录下找到pluggable.php和class-phpmailer.php两个文件。

将pluggable.php中的"$phpmailer->IsMail(); "替换为:"$phpmailer->IsSMTP();"

在class-phpmailer.php中修改下面对应的设置:

public $Mailer = 'smtp';
public $Host = 'smtp.gmail.com'; //邮箱的SMTP服务器地址
public $Port = 465; //SMTP邮件发送端口
public $SMTPSecure = "ssl"; //是否验证 ssl或tls
public $SMTPAuth = true; //开启SMTPAuth
public $Username = 'username@gmail.com'; //你的邮箱地址
public $Password = '******'; //你的邮箱登陆密码

快去试一下,跟插件说拜拜吧~

展开评论