表单提交后有“发送成功”的提示,后台也显示邮件已发出,但收件箱里没有,或者躺在垃圾邮件里——这时问题通常不在表单,而在邮件的发件身份。WordPress 默认用服务器的 PHP mail() 发通知,很多插件又把 From 写成“WordPress”或直接写成访客填的邮箱。收件方的 Gmail/企业邮只会问一个问题:这封信声称来自哪个域,它真的有权代表那个域发信吗?
先把三封容易混淆的信分开:开发信进垃圾箱(SPF、DKIM、DMARC 起点的排查)、表单通知收不到(沿四段找丢失点)、以及本文这个“邮件发出去了、但进了垃圾箱”的场景。它们共享认证知识,但入口不同。

form_email_headers.py 的输出(2026-10-02)。地址均为 RFC 2606 保留的 example 域,未向任何真实邮箱发送。收件方到底看哪几行
把收到的邮件展开“显示原始邮件”,重点看这几项:
- From — 面向人显示的发件人,含域名。这是 DMARC 对齐的基准。
- Return-Path / 信封发件域 — 实际退回地址,SPF 校验的是它,不是你看到的显示名。
- Authentication-Results — 由收件方邮箱添加,通常形如
spf=pass dkim=pass dmarc=pass;fail或none就是问题所在。 - DKIM-Signature 里的
d=— 签名使用的域,要与 From 域一致才算“对齐”。
规则来自三份标准:SPF(RFC 7208)、DKIM(RFC 6376)、DMARC(RFC 7489)。DMARC 的核心不是“验证通过”,而是对齐:SPF 或 DKIM 至少有一项的域,要与你写在 From 里的域匹配。

From 和 Reply-To 分别该写谁
| 字段 | 应该写 | 写错的后果 |
|---|---|---|
| From | 你自有域名下的地址,如 no-reply@yourdomain.com,可加显示名“网站咨询表单” | 写成访客的 Gmail:看起来像冒用对方身份,SPF/DKIM 对不上,直接进垃圾箱或退信 |
| Reply-To | 访客填写的邮箱(表单里的 email 字段) | 写成你自己:销售点“回复”时回给了自己,等于没接到询盘 |
| 信封发件域(Return-Path) | 与 From 同域,且该域 SPF 包含发信服务器 | 与 From 不一致:DMARC 对齐失败 |
所以“发件身份”的正确组合是:From 用你的域,Reply-To 用访客的地址,信封发件域与 From 一致。这样“回复”回到买家,认证也过得去。
在 WordPress 里怎么落地
- 装一个 SMTP 插件,用你域名邮箱的账号密码(或 API key)通过服务商发信,而不是交给服务器的
mail()。 - 在插件里把 From 设为自有域名地址,Reply-To 设为动态取表单的 email 字段。
- 到发信服务商后台,确认该域已配置 SPF、DKIM,并已开启 DMARC(可先从
p=none观察)。 - 测试时把收件地址设成 Gmail 与一个企业邮,展开原始邮件确认
Authentication-Results三项均为 pass,并确认“回复”指向访客地址。 - 把测试文件保存为回归用例:以后换服务器或换托管商,重跑一次。
换托管商是这类问题高发点——域名解析、邮箱和通知可能一起变,做法见WordPress 换托管商时企业邮箱和询盘通知的迁移。
几个常见例外
- 不要用访客地址做 From。 即使某些邮件服务商允许,也会因对齐失败被大量拦截。
- 自动转发会破坏 SPF。 把
sales@转到个人邮箱后,转发方 IP 通常不在你的 SPF 里;改用邮箱服务的“取件/别名”或保留原址。 - 事务邮件建议用子域。 如
mail.yourdomain.com专发通知,保护主域的声誉。 - “已发送”不等于“已送达”。 SMTP 接受只表示服务器收下,最终是否进收件箱由收件方决定。
把表单做好之后,下一步是让询盘不丢:表单本身的通知链路可看WordPress 表单和询盘通知怎么做才不丢;涉及表单接入 CRM 的交接,见外贸 B2B 询盘表单接入 CRM。站点层面的 WordPress 性能与运维,可参考WordPress 托管与速度优化服务。
资料来源
- RFC 7208 — Sender Policy Framework (SPF)
- RFC 6376 — DomainKeys Identified Mail (DKIM)
- RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC)
- 本机运行
form_email_headers.py,2026-10-02;示例地址使用example.com。