AI 建站完成后邮件发不出去或进垃圾箱,九成不是代码问题,而是发信域名缺了 SPF 、 DKIM 、 DMARC 三条 DNS 记录,再加上 WordPress 默认的 From 地址(wordpress@你的域名)和实际发信服务不一致。先把这三件事对齐,再去折腾插件。
先分清楚:邮件到底卡在哪一层
很多人把”测试邮件发送成功”当成”邮件已送达”,这是两个概念。wp_mail() 返回 true 只说明 SMTP 服务器收下了这封信,后面的路还长着。
- 发送层:站点能不能连上 SMTP 、凭据对不对。
- 认证层:收件方查你的 SPF / DKIM / DMARC 是否通过。
- 投递层:收件方自己的策略、发信 IP 信誉、内容评分。
三条 DNS 记录各自解决什么问题
| 记录 | 作用 | 解决什么 | 典型值 |
|---|---|---|---|
| SPF(TXT) | 声明哪些服务器有权以本域名发信 | 防止别人冒用你的域名发信 | v=spf1 include:_spf.google.com ~all |
| DKIM(TXT) | 给邮件加数字签名,收件方用公钥验签 | 证明内容中途没被篡改 | 由发信服务商生成,形如 selector1._domainkey |
| DMARC(TXT) | 告诉收件方认证失败怎么处理,并回收报告 | 统一策略 + 拿到可视化反馈 | v=DMARC1; p=none; fo=1; rua=mailto:你@域名 |
三条可以同时存在,互不冲突。 WordPress 官方的故障排查文档(wordpress.org)也明确把 SPF 和 DKIM 列为”让收件方相信你这封信是合法的”的主要手段,并建议通过查看邮件头里的验证结果来确认是否通过。
include: 合并进同一条。配置流程:从零到能收到信
- 确定发信方式:优先用专业事务邮件服务(SMTP 预设里的一键配置),不要用主机自带的 PHP mail(),后者几乎没有认证可言。
- 在 DNS 加 SPF:把发信服务商的
include:合并进现有的唯一一条 TXT 记录,结尾用~all(软失败)过渡,稳定后再改-all。 - 在发信服务商后台生成 DKIM 密钥对,把返回的 TXT 记录(通常是
selector1._domainkey或google._domainkey)加到 DNS 。 - 加 DMARC:先用
p=none观察一到两周,靠rua收聚合报告,确认没有漏掉合法发信源后再收紧到p=quarantine。 - 在 SMTP 插件里强制 From 地址为本域名邮箱,并开启 “Force From Email”。
- 分别给主流邮箱各发一封测试信,看原始邮件头里的
spf=pass/dkim=pass/dmarc=pass。
AI 建站场景里最容易踩的四个坑
坑一:From 地址用了公共邮箱
WordPress 默认用 wordpress@你的域名。如果你在后台把管理员邮箱设成了某个公共邮箱域名的地址,收件方会直接判定域名与发信服务器不匹配。表单类邮件尤其明显——这一点和表单线索捕获的邮件配置是同一套逻辑。
坑二:DNS 生效时间被误判成配置失败
DNS 传播最长可能要 24 小时。刚改完就去测,测到的还是旧记录。判断方法是用 dig TXT 你的域名 直接查权威应答,而不是靠”有没有收到信”。
坑三:多个 SMTP 插件互相打架
它们都会去抢 phpmailer_init 这个钩子。同时装两个,配置界面看着都对,实际发信走的是另一个插件的旧凭据。部分插件已经会主动检测冲突并告警,但大部分不会。
坑四:只测了一个收件方
有些邮箱服务商会静默丢弃,既不进垃圾箱也不给退信。必须横向对比测试:同时发往几个主流服务商,只有某一个收不到,问题在收件方而不在你。若全都收不到,回头查认证层。
最小可用的诊断清单
1. dig TXT 域名 # 确认 SPF 唯一且包含发信源
2. dig TXT selector1._domainkey.域名 # 确认 DKIM 存在
3. dig TXT _dmarc.域名 # 确认 DMARC 存在
4. 插件后台发测试信,看 PHPMailer ErrorInfo 原文
5. 收到后看原始邮件头的 Authentication-Results
6. 检查是否只有单个 SMTP 插件处于激活状态
什么时候该换专用事务邮件服务
共享主机的发信 IP 信誉是共享的——邻居在发垃圾邮件,你的信一起被降权。认证全绿但送达率依然不稳,基本就是这个原因。这时候换成专用事务邮件服务(按量付费的那种),比继续调 DNS 有效得多。对电商类站点,订单通知和找回密码邮件是直接影响营收的链路,值得单独投入,参考电商建站里的关键链路设计。
顺手把安全基线一起做了
邮件认证本质上也是域名资产的一部分。既然已经登录 DNS 控制台,建议一并检查域名的其他安全记录,做法与站点 HTTPS 与域名安全配置一致:凡是能被冒用的入口,都要有明确的声明记录。
SPF 、 DKIM 、 DMARC 必须三个都配吗?
p=none 是不是等于没防护?
AI 生成的站点默认配好了吗?
测试邮件提示成功但对方没收到,还要查什么?
参考来源:wordpress.org(FAQ Troubleshooting 文档、 SMTP 插件目录页与支持论坛案例)。本文基于上述公开材料重新组织,并补充中文站点场景下的排查经验。










评论 (0)