博客 / WordPress/ WordPress纯代码免插件配置SMTP邮件功能教程

WordPress纯代码免插件配置SMTP邮件功能教程

WordPress纯代码免插件配置SMTP邮件功能教程

为什么需要配置 SMTP 邮件功能?

SMTP 邮件功能在 WordPress 中是一个很常用的功能,例如:网站用户注册、登录验证、评论回复通知等场景。虽然 WordPress 自带了 PHP 的 mail() 函数,但使用该函数发送邮件很容易失败或被邮件服务器拒收。

此外,目前很多虚拟主机服务商出于安全和稳定性考虑,默认禁用了 PHP 的 mail() 函数。因此,使用专业的 SMTP 服务来发送邮件是更可靠的选择。网上有很多 WordPress SMTP 插件,但本文分享一种无需插件、纯代码实现 SMTP 邮件发送的方法。

配置步骤

请将下面的代码修改后,复制到你当前使用的 WordPress 主题的 functions.php 文件末尾,然后测试邮件发送功能。

// WordPress 免插件配置 SMTP 邮件
function mail_smtp( $phpmailer ) {
    // 发件人名称
    $phpmailer->FromName = '你的网站名称';
    // 修改为你使用的邮箱 SMTP 服务器地址
    $phpmailer->Host = 'smtp.qq.com';
    // SMTP 端口
    $phpmailer->Port = 465;
    // 邮箱账户
    $phpmailer->Username = 'your-email@qq.com';
    // 邮箱授权码(此处填写 QQ 邮箱生成的授权码,非登录密码)
    $phpmailer->Password = 'your-authorization-code';
    // 发件人邮箱地址,通常与 Username 一致
    $phpmailer->From = 'your-email@qq.com';
    // 启用 SMTP 认证
    $phpmailer->SMTPAuth = true;
    // 加密方式:tls 或 ssl (端口为 25 时留空,端口为 465 时使用 ssl)
    $phpmailer->SMTPSecure = 'ssl';
    // 声明使用 SMTP 发送邮件
    $phpmailer->IsSMTP();
}
add_action('phpmailer_init', 'mail_smtp');

代码说明与注意事项

  • 参数修改:你需要将代码中的示例值(如邮箱地址、授权码、发件人名称)替换为你自己的真实信息。
  • SMTP 服务器与端口:示例使用的是 QQ 邮箱的 SMTP 服务(smtp.qq.com,端口 465)。如果你使用其他邮箱服务(如 Gmail、163、企业邮箱),请查询对应服务商提供的 SMTP 服务器地址和端口号。
  • 授权码Password 字段应填写邮箱服务商提供的 SMTP 授权码(或专用密码),而不是你的邮箱登录密码。以 QQ 邮箱为例,需要在“设置”->“账户”中生成授权码。
  • 加密方式SMTPSecure 需与 Port 匹配。常见组合为:端口 465 对应 ssl,端口 587 对应 tls,端口 25 通常不加密(留空或设为 '')。

测试与验证

将代码正确添加到 functions.php 文件后,理论上配置已经生效。你可以通过以下方式测试邮件是否发送成功:

  1. 使用 WordPress 的“忘记密码”功能,向你的邮箱发送重置链接。
  2. 安装“WP Mail SMTP”或“Check & Log Email”等插件,它们通常提供邮件发送测试功能。
  3. 如果你熟悉代码,可以在主题文件中临时添加一个调用 wp_mail() 函数的测试代码。

如果测试失败,请检查:1) 代码是否有语法错误;2) SMTP 服务器、端口、加密方式是否匹配;3) 邮箱账户和授权码是否正确;4) 服务器防火墙是否允许外发 SMTP 连接。

发表评论

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