梦想起航
互联网爱好者聚集地!

如何在 WordPress 中不使用插件启用 SMTP 邮件发送功能,建站百科出品详细添加教程!

WordPress 默认使用 PHP 的 mail() 函数发送邮件,但这种方式可靠性较低,邮件可能被标记为垃圾邮件或无法送达。通过 SMTP(简单邮件传输协议),你可以利用专业邮件服务(如阿里云企业邮箱、Gmail、QQ 邮箱等)发送邮件,提高送达率。本教程将指导你通过代码修改,在不使用插件的情况下为 WordPress 配置 SMTP 邮件发送功能,适用于任何支持 SMTP 的邮箱。

为什么选择 SMTP?

  • 高送达率:SMTP 使用专业邮件服务器,减少邮件被标记为垃圾邮件的概率。
  • 灵活性:支持各种邮箱服务(如阿里云、Gmail、QQ 邮箱等)。
  • 安全性:通过 SSL/TLS 加密确保邮件传输安全。
  • 无插件:通过代码实现,减少对第三方插件的依赖,降低损耗。

前提条件

  • WordPress 网站已正常运行。
  • 拥有支持 SMTP 的邮箱账户及其 SMTP 配置信息(主机、端口、用户名、密码等)。
  • 服务器支持 SMTP 连接(端口 25、465 或 587 未被防火墙阻止)。
  • 网站PHP 的 openssl 扩展已启用(用于 SSL/TLS 加密)。
  • 具备编辑 WordPress 文件的权限(通过 FTP 或服务器文件管理器)。

步骤 1:配置 SMTP 参数,通用代码!

  1. 编辑你网站主题下的 functions.php 文件
    • 登录服务器,找到当前主题目录(通常位于 wp-content/themes/你的主题名称/)。
    • 打开 functions.php 文件在后面添加下方代码。
    • 下方需要修改成你自己发件人信息的地方,老王已经用红色标注出来了!
  2. 添加 SMTP 配置代码: 在 functions.php 文件末尾添加适合你邮箱服务的代码。通用模板如下:
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp($phpmailer) {
    $phpmailer->isSMTP(); // 启用 SMTP 模式
    $phpmailer->Host = 'smtp.example.com'; // 替换为 SMTP 主机地址
    $phpmailer->Port = 465; // 替换为端口号(465、587 或 25)
    $phpmailer->SMTPSecure = 'ssl'; // 替换为加密方式(ssl 或 tls)
    $phpmailer->SMTPAuth = true; // 启用 SMTP 认证
    $phpmailer->Username = 'your-email@your-domain.com'; // 替换为邮箱地址
    $phpmailer->Password = 'your-email-password'; // 替换为邮箱密码
    $phpmailer->From = 'your-email@your-domain.com'; // 替换为发件人邮箱
    $phpmailer->FromName = 'Your Brand Name'; // 替换为发件人名称
}

步骤 2:其他邮箱服务代码

以下是为常见邮箱服务提供的完整 SMTP 配置代码,直接复制到 functions.php 文件末尾,并替换用户名、密码smtp地址,端口加密方式和昵称名称。

阿里云企业邮箱

add_action('phpmailer_init', 'mail_smtp');
function mail_smtp($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.qiye.aliyun.com'; // SMTP服务地址
    $phpmailer->Port = 465;
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Username = 'your-email@your-domain.com'; // 替换为你的邮箱
    $phpmailer->Password = 'your-email-password'; // 替换为邮箱密码
    $phpmailer->From = 'your-email@your-domain.com'; // 与 Username 一致
    $phpmailer->FromName = 'Your Brand Name'; // 替换自定义发件人昵称
}

注意

  • 登录阿里云邮箱管理后台,确认 SMTP 主机(smtp.qiye.aliyun.com )。
  • 确保 From 邮箱与 Username 一致。

Gmail

add_action('phpmailer_init', 'mail_smtp');
function mail_smtp($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.gmail.com';
    $phpmailer->Port = 587;
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Username = 'your-email@gmail.com'; // 替换为你的 Gmail 邮箱
    $phpmailer->Password = 'your-app-password'; // 替换为应用专用密码
    $phpmailer->From = 'your-email@gmail.com'; // 与 Username 一致
    $phpmailer->FromName = 'Your Brand Name'; // 替换为品牌名
}

注意

  • 需启用 Google 账户的两步验证。
  • 在 Google 账户 > 安全 > 应用专用密码 生成密码,替换 your-app-password

QQ 邮箱

add_action('phpmailer_init', 'mail_smtp');
function mail_smtp($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.qq.com';
    $phpmailer->Port = 465;
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Username = 'your-qq-number@qq.com'; // 替换为你的 QQ 邮箱
    $phpmailer->Password = 'your-authorization-code'; // 替换为授权码
    $phpmailer->From = 'your-qq-number@qq.com'; // 与 Username 一致
    $phpmailer->FromName = 'Your Brand Name'; // 替换为品牌名
}

注意

  • 登录 QQ 邮箱网页版,进入 设置 > 账户 > POP3/IMAP/SMTP 服务,启用 SMTP 并生成授权码。
  • 使用授权码替换 your-authorization-code

网易邮箱(163.com)

add_action('phpmailer_init', 'mail_smtp');
function mail_smtp($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.163.com';
    $phpmailer->Port = 465;
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Username = 'your-email@163.com'; // 替换为你的 163 邮箱
    $phpmailer->Password = 'your-password-or-auth-code'; // 替换为密码或授权码
    $phpmailer->From = 'your-email@163.com'; // 与 Username 一致
    $phpmailer->FromName = 'Your Brand Name'; // 替换为品牌名
}

注意

  • 登录 163 邮箱网页版,进入 设置 > POP3/SMTP/IMAP,启用 SMTP 服务。
  • 如果要求授权码,生成并使用授权码替换 your-password-or-auth-code

步骤 4:测试 SMTP 配置

为验证 SMTP 配置是否正常,添加上面代码后,在后面添加上下方的测试代码,测试是否可以正常发送,测试代码:

  1. 添加测试代码
add_action('init', function() {
    if (isset($_GET['test_smtp']) && current_user_can('manage_options')) {
        $to = 'test-recipient@example.com'; // 替换为测试接收邮箱
        $subject = 'Test Email from WordPress';
        $message = 'This is a test email sent via SMTP from WordPress.';
        $sent = wp_mail($to, $subject, $message);
        if ($sent) {
            wp_die('Test email sent successfully!');
        } else {
            wp_die('Failed to send test email.');
        }
    }
});
  1. 运行测试
    • 保存 functions.php
    • 登录 WordPress 后台(需管理员权限)。
    • 访问 https://your-site.com/?test_smtp=1 地址换成你自己的
    • 访问后系统会提示发送测试成功或者失败,如果成功即可收到测试邮件!
    • 检查目标邮箱是否收到邮件,并查看页面提示。
  2. 删除测试代码
    测试完成后,移除测试代码以避免安全风险。

注意事项

  1. 服务器环境
    • 确保你网站服务器支持 SMTP 端口(25、465、587)。
    • 检查 PHP 的 openssl 扩展:<?php phpinfo(); ?> 确认 OpenSSL supportenabled
  2. DNS 配置
    • 配置域名的 SPF、DKIM 和 DMARC 记录以提高送达率。例如,阿里云的 SPF 记录:v=spf1 include:spf.mxhichina.com -all
    • 参考邮箱服务商文档设置。
  3. 邮箱限制
    • 某些服务要求 From 邮箱与 Username 一致。
    • 部分邮箱需启用 SMTP 或生成授权码(如 Gmail、QQ 邮箱)。

总结

通过以上步骤,你可以在 WordPress 中不使用插件启用 SMTP 邮件发送功能,适配任何支持 SMTP 的域名邮箱。选择适合你的邮箱服务代码,替换参数,测试配置,并优化安全性。以下是关键点:

  • 使用 functions.php 配置 PHPMailer。
  • 根据邮箱服务商调整 HostPortSMTPSecure 等参数。
  • wp-config.php 存储敏感信息。
  • 测试和调试以确保正常运行。

如果遇到问题:

  • 查看调试日志。
  • 联系邮箱服务商确认 SMTP 参数。
  • 在评论区留言,老王会回复你!
赞(0)
文章收集自互联网,由百科老王整理发布!
购买海外商家产品,尽量使用paypal支付,可以保证180天被骗追回!