wordpress 如何使用gmail发送邮件

最近做一个网站,需要用户注册功能,默认wordpress包含这个功能,后台开启即可。默认需要填写一个邮件地址,注册后,wordpress 会发送一封激活邮件。如果你的系统没有配置邮件服务器,默认发送时一定会失败的。

了解wordpress的邮件发送原理

wordpress 本身时不带邮件服务器的,wordpress 发送邮件依赖 wp_mail 这个wordpress的核心函数。这个函数默认时调用php 中的 mail 函数,而mail 函数依赖你的服务器环境。如果服务器没有邮件服务器,那么就无法发送。

wordpress 内置了 PHPMailer 类,这个php发送邮件的类,github 的星也很多,知名度很高。wp_mail 本质是对 PHPMailer 的轻量封装。

解决方法

通过一个构造实现,在 phpmailer_init 初始化的时候,使用 gmail 或者 qq 等邮箱进行发送邮件即可。

具体操作

首先要搞明白怎么用gmail 或者QQ 通过 stmp 发送邮件,这里用 gmail 为例。

https://www.youxiangmi.com/gmail-stmp.html

在wordpress的 functions.php 中添加一段代码

// gmail 邮件发送

/**
 * 配置 WordPress 使用 Gmail SMTP 发送邮件
 * 将代码添加到当前主题的 functions.php 文件 或 自定义插件中
 */
function mailtrap_smtp_mailer( $phpmailer ) {
    // 如果 PHPMailer 对象不存在,则不进行处理
    if ( ! is_object( $phpmailer ) ) {
        $phpmailer = (object) $phpmailer;
    }

    // 设置为使用 SMTP
    $phpmailer->isSMTP();

    /***  ----- Gmail SMTP 配置信息 (请根据你的情况修改) ----- ***/

    // SMTP 主机地址:Gmail 的服务器地址是 smtp.gmail.com [citation:6][citation:10]
    $phpmailer->Host       = 'smtp.gmail.com';

    // SMTP 端口:使用 TLS 加密时用 587,使用 SSL 时用 465 [citation:6][citation:10]
    $phpmailer->Port       = 587;

    // 加密方式:推荐使用 'tls' 或 'ssl' [citation:1][citation:6]
    $phpmailer->SMTPSecure = 'tls';

    // 启用 SMTP 认证
    $phpmailer->SMTPAuth   = true;

    // SMTP 用户名:你的完整 Gmail 地址 (例如 yourname@gmail.com) [citation:6]
    $phpmailer->Username   = 'www.wpzhan.com@gmail.com';

    // SMTP 密码:这不是你的 Gmail 登录密码!
    // 对于开启了两步验证的账号,必须是 16位 的“应用专用密码” [citation:6]
    $phpmailer->Password   = 'xxxx xxxx xxxx xxxx';

    // 设置发件人邮箱和名称 (通常会在这里设置,确保邮件来源一致)
    $phpmailer->setFrom( 'www.wpzhan.com@gmail.com', 'www.wpzhan.com' );

    /***  ----- 配置结束 ----- ***/
}

// 将上面的函数挂载到 'phpmailer_init' 动作钩子上
// 这个钩子会在每次发送邮件前初始化 PHPMailer 时执行
add_action( 'phpmailer_init', 'mailtrap_smtp_mailer' );

更简单的方式

通过插件的方式,后台可以搜索,按照配置即可。

发表回复

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