配置 WordPress SMTP 发送邮件

WordPress 邮件发送失败,或者邮件进入收件人的垃圾箱,是网站所有者最常遇到的问题之一。无论是用户注册确认邮件、密码重置链接,还是 WooCommerce 订单通知,都依赖可靠的邮件发送系统。本教程将详细介绍如何在共享主机上配置 WordPress 通过 SMTP 发送邮件,确保邮件准确送达收件箱。

本文涵盖:WordPress 邮件发送失败的原因、PHP mail() 与 SMTP 的区别、WP Mail SMTP 插件的安装与配置、AsiaGB DirectAdmin 邮件托管的 SMTP 设置、Gmail SMTP 应用专用密码、SPF 和 DKIM 配置,以及常见问题排查。

1. 为什么 WordPress 在主机上无法发送邮件

WordPress 通过内置的 wp_mail() 函数发送所有邮件,该函数默认调用服务器上的 PHP mail() 函数。然而在共享主机环境中,PHP mail() 存在多种限制,导致邮件无法成功发送或被标记为垃圾邮件。

WordPress 邮件失败的主要原因

最有效的解决方案是改用 SMTP(简单邮件传输协议)。SMTP 需要用用户名和密码进行身份验证,支持加密传输,并通过信誉良好的邮件服务器发送,可以大幅提升邮件到达率。

2. PHP mail() 与 SMTP 的区别详解

在动手配置之前,先了解这两种方式的本质区别,有助于理解为什么必须切换到 SMTP。

PHP mail() — 传统方式的局限性

SMTP — 可靠的行业标准

核心结论:SMTP 是发送事务性邮件的行业标准。如果您的网站依赖邮件与用户沟通——注册确认、订单通知、密码重置——请立即从 PHP mail() 切换到 SMTP,没有理由继续使用旧方法。

3. 安装和配置 WP Mail SMTP 插件

WP Mail SMTP by WPForms 是解决 WordPress 邮件问题最受欢迎的插件,全球超过 400 万个网站正在使用。其免费版本已能满足大多数网站的基本需求。

安装步骤

  1. 登录 WordPress 后台 → 插件 → 安装插件
  2. 在搜索框中输入 "WP Mail SMTP"
  3. 找到 "WP Mail SMTP by WPForms",点击"现在安装"
  4. 安装完成后,点击"启用"
  5. 系统会弹出设置向导,可以点击"跳过此步骤"手动配置
  6. 在左侧菜单中进入 WP Mail SMTP → 设置

基础配置:发件人邮箱和发件人名称

在常规设置部分,首先配置以下关键字段:

选择邮件发送方式(Mailer)

WP Mail SMTP 支持多种邮件发送方式,根据您的具体情况选择:

4. 在 AsiaGB 的 DirectAdmin 邮件主机上设置 SMTP

如果您的网站托管在 AsiaGB,您已经拥有自己域名的邮箱账号,可以直接将其用作 WordPress 的 SMTP 服务器,无需额外付费。这是企业网站的最佳选择——邮件从您自己的域名发出,看起来专业,也让收件人更信任。

第一步:在 DirectAdmin 中创建邮箱账号

  1. 登录 DirectAdmin 控制面板(地址:yourdomain.com:2222
  2. 在"邮件管理"(E-Mail Manager)中点击"创建邮件账号"
  3. 输入用户名,例如 noreplywordpress
  4. 设置一个强密码(包含大小写字母、数字和特殊符号)
  5. 邮箱配额设置 50MB 即可,因为发出的邮件不会存储在此邮箱中
  6. 点击"创建"完成

第二步:获取 SMTP 服务器参数

AsiaGB DirectAdmin 的 SMTP 参数通常如下:

第三步:在 WP Mail SMTP 中填写参数

  1. 进入 WP Mail SMTP → 设置
  2. 在邮件发送方式(Mailer)部分选择"其他 SMTP"
  3. 按上述参数填写各字段
  4. 开启"自动 TLS"
  5. 开启"身份验证"
  6. 填写 SMTP 用户名和密码
  7. 点击"保存设置"
SMTP 主机:     mail.yourdomain.com
SMTP 端口:     587
加密方式:       TLS
自动 TLS:      开启
身份验证:       开启
SMTP 用户名:   [email protected]
SMTP 密码:     [DirectAdmin 中设置的密码]

提示:如果 mail.yourdomain.com 无法连接,可以尝试直接使用 yourdomain.com 作为 SMTP 主机。正确的邮件服务器主机名也可以在 AsiaGB 发送的开户欢迎邮件中找到。

5. 使用 Gmail SMTP 连接 WordPress(应用专用密码)

您也可以使用 Gmail 或 Google Workspace 账号作为 WordPress 的 SMTP 服务器。但自 2022 年起,Google 不再允许第三方应用使用普通账号密码登录,必须使用应用专用密码(App Password)——一个专门为特定应用生成的 16 位授权码。

使用前提

创建 Gmail 应用专用密码的步骤

  1. 访问 myaccount.google.com 并登录
  2. 点击左侧菜单中的"安全性"
  3. 找到"两步验证"并点击进入
  4. 滚动到页面底部,找到"应用专用密码"
  5. 在"选择应用"下拉框中选择"邮件"
  6. 在"选择设备"下拉框中选择"其他(自定义名称)"
  7. 输入名称"WordPress SMTP",点击"生成"
  8. Google 会显示一个 16 位密码——立即复制保存(只显示一次)

在 WP Mail SMTP 中配置 Gmail SMTP

SMTP 主机:     smtp.gmail.com
SMTP 端口:     587
加密方式:       TLS
身份验证:       开启
SMTP 用户名:   [email protected]
SMTP 密码:     应用专用密码(去掉空格后的 16 位)

保存设置后立即发送测试邮件验证。免费 Gmail 账号每天约可发送 500 封邮件;Google Workspace 账号每天最多可发送 2000 封。如需更高发送量,请考虑专用邮件投递服务。

使用 Gmail SMTP 的注意事项

建议:对于企业网站,推荐使用 AsiaGB DirectAdmin 邮件托管(第 4 节)而不是 Gmail SMTP,因为邮件会从您自己的域名发出,更专业,也不受 Google 每日发送限额的约束。

6. 测试 WordPress 邮件发送

配置完成后的测试至关重要,不要跳过这个环节。建议测试多种场景,确保网站的所有邮件功能都能正常运作。

使用 WP Mail SMTP 内置工具测试

  1. 进入 WP Mail SMTP → 工具 → 邮件测试
  2. 输入收件人邮件地址,建议同时测试 Gmail 和 Outlook 以观察结果差异
  3. 点击"发送测试邮件"
  4. 检查收件人的收件箱和垃圾邮件文件夹
  5. 查看 WP Mail SMTP → 邮件日志,确认发送状态(需先开启日志功能)

测试 WordPress 实际功能

SMTP 测试通过后,务必验证网站实际功能的邮件发送:

通过邮件标头验证身份认证状态

在 Gmail 中打开收到的测试邮件,点击三点菜单 → "显示原始邮件",查找 Authentication-Results 行。正确配置 SMTP 后应该看到以下结果:

spf=pass     (SPF 验证通过——邮件来自授权 IP)
dkim=pass    (DKIM 签名有效——邮件未被篡改)
dmarc=pass   (DMARC 策略满足)

如果任何一项显示 "fail" 或 "none",请按照下一节的步骤配置 SPF 和 DKIM。

7. 配置 SPF 和 DKIM 防止邮件进入垃圾箱

即使 SMTP 配置正确,如果您的域名缺少 SPF 和 DKIM 记录,邮件仍然可能进入垃圾箱。自 2024 年初起,Google 和 Yahoo 要求批量发件人必须配置 SPF、DKIM 和 DMARC,即使是小规模发件人,这些记录也能显著提升收件箱到达率。

配置 SPF 记录(发件人策略框架)

SPF 是一条 DNS TXT 记录,列出被授权代表您域名发送邮件的 IP 地址或邮件服务器。接收方邮件服务器会在接受邮件前检查 SPF 记录。

在 DirectAdmin 中添加 SPF 记录的步骤:

  1. 登录 DirectAdmin → DNS 管理 → 添加记录
  2. 类型:TXT
  3. 名称:@(代表根域名)
  4. 值:根据您的发送方式填写

仅通过 DirectAdmin 邮件发送的 SPF 记录:

v=spf1 include:_spf.yourdomain.com ~all

同时通过 DirectAdmin 和 Gmail 发送的 SPF 记录:

v=spf1 include:_spf.yourdomain.com include:_spf.google.com ~all

SPF 结尾标识符说明:

配置 DKIM 记录(域密钥识别邮件)

DKIM 为每封发出的邮件添加加密数字签名。接收方服务器通过 DNS 获取您的公钥,验证签名以确认邮件在传输过程中未被篡改。

在 AsiaGB 的 DirectAdmin 中启用 DKIM:

  1. 登录 DirectAdmin → 邮件管理 → 域密钥(DKIM)
  2. 如果已有密钥,复制显示的 TXT 记录
  3. 如果没有,点击"生成新密钥"
  4. 将生成的 TXT 记录添加到 DNS,记录名称为 default._domainkey.yourdomain.com
  5. 等待最多 24 小时让 DNS 生效后再进行测试

添加 DMARC 记录

DMARC 告诉接收方服务器如何处理 SPF 或 DKIM 验证失败的邮件,并向您发送报告。

从监控模式开始(p=none,不拒绝任何邮件):

名称:  _dmarc.yourdomain.com
类型:  TXT
值:    v=DMARC1; p=none; rua=mailto:[email protected]

确认 SPF 和 DKIM 正常工作后,逐步收紧策略:

v=DMARC1; p=quarantine; rua=mailto:[email protected]
# 或最严格的:
v=DMARC1; p=reject; rua=mailto:[email protected]

使用在线工具验证配置

使用 MXToolbox SuperTool(mxtoolbox.com/SuperTool)免费检查 SPF、DKIM 和 DMARC 记录。Mail Tester(mail-tester.com)可以给您的邮件评分(满分 10 分),并告诉您还需要改进哪些方面。

8. 常见 WordPress 邮件问题排查

即使 SMTP 配置正确,仍可能遇到各种问题。以下是最常见的问题和有效的解决方法。

错误:"SMTP Error: Could not connect to SMTP host"

错误:"SMTP Error: Password command failed"

邮件能发送但进入垃圾箱

WooCommerce 订单邮件不发送

联系表单通知邮件未到达管理员

WP Mail SMTP 会接管所有插件使用的 wp_mail() 函数,包括 Contact Form 7 和 WPForms。如果 SMTP 配置正确,这些表单应该自动正常工作。排查步骤:

开启调试模式获取详细错误信息

wp-config.php 中添加以下代码,获取详细的错误日志:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

日志文件位于 wp-content/debug.log。WP Mail SMTP Pro 版本还提供内置邮件日志,包含完整的错误上下文,更便于排查问题。

9. 常见问题解答

问:WP Mail SMTP 免费版足够用吗,需要升级吗?

答:对于大多数网站来说,免费版完全够用。它支持通用 SMTP、Gmail 和 Outlook,并包含测试邮件功能。付费版(Pro)增加了详细的邮件日志、发送失败通知、智能路由和优先支持——适合电商、会员网站等对邮件可靠性有极高要求的场景。

问:使用 AsiaGB DirectAdmin SMTP 每天可以发送多少封邮件?

答:共享主机环境有每小时邮件发送数量限制,以防止垃圾邮件滥用。对于正常的事务性邮件(注册、订单、联系表单),通常不会达到限制。如果需要发送大量新闻邮件或群发通知,建议搭配专用邮件投递服务,如 Brevo、Mailchimp 或 SendGrid。

问:配置 SMTP 前网站需要先安装 SSL 证书吗?

答:不需要。网站的 HTTPS 证书和 SMTP 传输加密是两个独立的概念,互不依赖。您可以在没有 HTTPS 的网站上配置 SMTP。不过,出于整体安全考虑,强烈建议为网站安装 SSL 证书。

问:除了 WP Mail SMTP,还有哪些值得推荐的替代插件?

答:FluentSMTP 是一个完全免费、无付费升级的优秀替代方案。Post SMTP Mailer/Email Log 提供出色的邮件投递日志功能。Easy WP SMTP 则更轻量简洁。WP Mail SMTP 仍是最受欢迎的选择,因为它有活跃的开发团队和庞大的用户社区支持。

问:企业网站应该选择 DirectAdmin SMTP 还是 Gmail SMTP?

答:对于企业网站,强烈推荐使用 AsiaGB 的 DirectAdmin 邮件托管。邮件从您自己的域名发出(例如 [email protected]),更专业,更能建立品牌信任,也不受 Google 每日发送限额的约束。Gmail SMTP 适合个人项目或对发件人地址格式要求不高的网站。

如需中文/英文支持,请使用工单系统(billing.in.th)或发送邮件至 [email protected],我们将以英文回复。电话服务仅提供泰语支持(24小时 · 仅限泰语)。

立即开始使用可靠的 WordPress 主机

AsiaGB 提供含 DirectAdmin 控制面板、SSD 存储、99% 正常运行时间和自有域名邮件托管的共享主机,起价仅需 500 泰铢/年。

立即开始使用

查看泰国虚拟主机全部套餐 →