Defaults.Exposed

Defaults.Exposed修复Guides

联系表单邮件进垃圾箱——Web 服务器发件的修复方法(2026)

发布于 2026-07-08

数据截至 2026-06-29 · 方法论 v7。 基于 261 百万个已评分域名的汇总普查数据。参见我们如何评分

联系表单和网站邮件之所以落进垃圾箱,是因为你的 Web 服务器以未认证的方式发送它们——没有 SPF 授权,没有 DKIM 签名。可靠的修法是让这些邮件经由认证 SMTP 发送,而不是把服务器加进白名单。在 Defaults.Exposed 普查(数据截至 2026-06-29)的 261,086,232 个已评分域名中,46.4% 根本没有发布 SPF 记录。

修复顺序很重要,而大多数教程把顺序搞反了。先运行免费扫描,看你的域名实际发布了什么;让网站邮件经由认证 SMTP(你的邮箱服务商或事务性邮件服务)发送,从而获得真正的 DKIM 签名;修正表单的 From 地址;把服务器 IP 加进 SPF 只能是最后的手段。

为什么我网站发出的邮件会进垃圾箱?

因为真正发送它们的是谁。当访客提交你的联系表单时,那封邮件并不是由你的邮件服务商发出的——是 Web 服务器自己生成的,通常经由 PHP 的 mail()。在接收方看来,这封邮件:

来自混杂信誉 IP 的未认证邮件,正是垃圾邮件过滤器存在的意义——Gmail 和 Outlook 看到的是一台随便什么服务器声称是你。整体基线相当惨淡:46.4% 的域名完全没有发布 SPF,而在 261,086,232 个已评分域名中只有 10.59%(27,640,987 个,普查截至 2026-06-29)强制执行 DMARC 策略。

为什么 WordPress 网站尤其中招?

WordPress 发出的所有邮件——表单通知、密码重置、订单确认——都走同一个函数 wp_mail(),而它默认封装的是 Web 服务器上的 PHP mail()。每一个没有刻意重新配置过的 WordPress 网站,出厂状态就是一个未认证发送方。表单插件(Contact Form 7、WPForms、Gravity Forms)全都把邮件交给同一个函数:看上去像插件问题,实质是传输问题。

修法不是换一个表单插件,而是装一个 SMTP 插件(WP Mail SMTP 及其同类),把 wp_mail() 发出的一切改道到一个真实的、经过认证的邮件账户——你的 SPF 本来就授权的基础设施,还附带 DKIM 签名。

网站应该用哪种发送方式?

发送方式SPFDKIM迁移主机后还能用吗?结论
Web 服务器上的 PHP mail() / 默认 wp_mail()失败不适用——在哪儿都是坏的这是问题本身,不是选项
经由邮箱服务商的认证 SMTP(Google Workspace、Microsoft 365 等)通过有签名能——与主机无关大多数网站的修法
已验证域名的事务性邮件服务(SES、Postmark、Brevo 等)通过有签名大量发送场景的修法(电商、大型表单)
把 Web 服务器 IP 加进你的 SPF 记录通过(仅 SPF)不能——IP 一变就悄悄失效仅作退路——见下文

每天只有几封通知的话,经由你已经在付费的邮箱走 SMTP 是最短路径;真到了量大的时候,事务性服务就是为此而生。两者都给你 DKIM——而加 IP 白名单这条捷径永远给不了。

联系表单邮件的送达问题怎么修?

  1. 动手之前先在 defaults.exposed 运行免费扫描。 它显示你的域名实际发布了怎样的 SPF、DKIM 和 DMARC——你要修的是表单的传输、缺失的记录,还是两者都要。完全没有 SPF?先看如何修复 SPF
  2. 为网站创建专用的 SMTP 身份——例如在邮箱服务商处建一个 [email protected],或在事务性服务中验证一个发送域名。使用可随时吊销的应用专用密码或 API 密钥,别用某个人的邮箱密码。
  3. 让网站邮件经由它发送。 WordPress:安装 SMTP 插件并指向该账户。其他技术栈:配置框架自带的邮件发送器,替代本地 mail()
  4. 修正 From 地址(见下面的反模式):From 必须是你自己的域名;访客放进 Reply-To。
  5. 如果发送方是事务性服务,添加它的 DKIM 记录(通常是一对 CNAME),让邮件以你的域名签名——DNS 步骤与 SPF 配置逐步教程如出一辙。
  6. 提交一次测试并重新扫描。 邮件标头应对你的域名显示 spf=passdkim=pass;然后经由修复 SPF修复 DKIM 清掉扫描标出的其余问题。

为什么表单在用访客的邮箱地址当发件人?

这是表单配置中最常见的自伤,很多插件过去还默认这么干:通知邮件以 From: 访客的地址送达,好让你直接点回复。感觉很方便,但这就是伪造。你的服务器无权以 [email protected] 的名义发信——它对 gmail.com 的 SPF 和 DKIM 都会失败,而 Gmail 的 DMARC 策略会告诉接收方把它扔进垃圾箱或直接拒收。修复零成本:

每个主流表单插件都支持;就是通知设置里的两个字段。

为什么不干脆把服务器 IP 加进我的 SPF 记录?

这是多数论坛帖子第一时间想到的修法,而它之所以只是退路,是有原因的。把 ip4:<server>(或指向虚拟主机的 a 机制)加进 SPF 确实能让裸检查通过——但是:

把这条路留给真正受限的场景:一台你自己掌控、静态 IP 的独立服务器,加上一个不会说 SMTP 的应用——并且尽可能在这台机器上配好 DKIM 签名。

SPF 检查的到底是不是表单填进“From”的那个地址?

不是——一半的 DIY 诊断都栽在这里。接收方评估 SPF 依据的是 Return-Path(RFC5321.MailFrom)域名,而不是 From 标头。Web 服务器常常把自己的主机名盖进 Return-Path,于是你的 SPF 记录根本没被查询过——接收方查的是 srv0421.examplehost.com 的 SPF。认证 SMTP 连这个也一并修好:Return-Path 变成你的域名,SPF 的通过终于算在头上。这也是 DKIM 重要的原因——DMARC 对齐需要一个与 From 域名绑定的通过结果,而 DKIM 签名是随邮件一起走的。

常见问题

SMTP 插件能不能把密码重置和 WooCommerce 邮件也一起修好? 能。WordPress 上一切都流经 wp_mail(),所以改道一次就把表单通知、密码重置和订单邮件全修了。

用了 SMTP 插件,还需要 SPF 和 DKIM 记录吗? 需要——插件改变的是哪套基础设施替你发信;记录才是授权它的东西。如果你的域名属于 261,086,232 个已评分域名中没有 SPF 记录的那 46.4%(普查,2026-06-29),单靠认证 SMTP 救不了你。新域名邮件清单覆盖了完整的记录集合。

我的表单邮件 SPF 通过了,DMARC 却还是失败——为什么? 几乎总是上面那个 From 伪造反模式,或者 SPF 通过的是主机商的 Return-Path 域名而不是你的。先修 From/Reply-To;还失败的话,缺的就是一个对齐的 DKIM 签名——见“DKIM signature not valid”。如果网站之外的 SaaS 工具也在失败,SaaS 工具 SPF 失败指南讲了修复顺序。

为一个低流量的联系表单折腾这些值得吗? 表单通常正是钱进来的地方——一条漏掉的咨询就是一个你永远不知道自己失去了的客户。而且修复是免费的;门槛只在于知道那个未认证的发送方一直就是 Web 服务器。

把报告发给站主

如果你是来修这个问题的开发者或外包承包商:测试提交通过后,重新运行免费扫描,把评分报告转发给网站的所有者——一份带日期、直白语言的记录,证明该域名的邮件认证已经正确,也是下一次网络保险续保或客户安全问卷时用得上的凭证。如果你是因为咨询突然不再送达而读到这里的站主:把这个页面和你的扫描报告发给管你网站的人——一个下午就能修完,还附带一份能给你看的前后对比。

检查你的域名 → · SaaS 工具的 SPF 在失败?→ · 修复 SPF → · 我们如何评分 → · 仅使用汇总数据。数据在欧盟境内存储和处理。