SPF与DMARC检测

Test a domain's email authentication: SPF, DKIM and DMARC records are checked for syntax, lookup limits and policy strength, with plain-English fixes.

为什么 SPF、DKIM 和 DMARC 很重要

电子邮件在设计之初没有发件人验证,因此任何人都可以把您的域名写进“发件人”一栏。三项基于 DNS 的标准解决了这个问题。自 2024 年 2 月起,Google 和 Yahoo 要求批量发件人必须配置它们,缺少这些记录如今已成为正常邮件被判为垃圾邮件的常见原因。

  • SPF 在以 v=spf1 开头的 TXT 记录中,列出允许代表您的域名发送邮件的服务器。
  • DKIM 为每封邮件添加加密签名;收件方使用发布在 selector._domainkey.yourdomain 的公钥进行验证。
  • DMARC(位于 _dmarc.yourdomain)告诉收件方:当 SPF 和 DKIM 与发件人域名不一致时该怎么办(none、quarantine 或 reject),以及把报告发送到哪里。

本检测工具测试什么

  • SPF 是否存在、是否只有一条记录、是否以 ~all 或 -all 结尾(绝不能是 +all),以及包含嵌套 include: 机制在内的 DNS 查询总次数是否在 RFC 7208 规定的 10 次上限之内。
  • DKIM 密钥:针对您提供的选择器,或针对 Google Workspace、Microsoft 365 和常见发信服务所使用的十几个常用选择器。
  • DMARC 是否存在、策略是否有效、是否适用于 100% 的邮件,以及是否发送汇总报告,让您能看到谁在以您的名义发信。

记录示例

example.com.         TXT  "v=spf1 include:_spf.example.net ip4:192.0.2.0/24 -all"
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; adkim=s"
s1._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh…"

推荐的部署步骤

  1. 发布 SPF,涵盖所有代表您发信的服务,并以 ~all 结尾。
  2. 在每个服务商中开启 DKIM 签名。
  3. 发布 p=none 的 DMARC 并设置 rua 地址,在两到四周内持续查看报告。
  4. 待所有合法邮件都能通过之后,改为 p=quarantine,再改为 p=reject。

完整讲解:SPF、DKIM 和 DMARC 详解。

常见问题

应该使用 ~all 还是 -all?

配置了 DMARC 的情况下,两者都可以;由 DMARC 决定结果。~all 是更稳妥的起点;一旦确信所有发件方都已列出,-all 则更严格。

“DNS 查询次数过多”是什么意思?

每个 include、a、mx、exists 和 redirect 都计一次查询,包括被引用记录内部的那些。超过 10 次,SPF 对所有人都会失败。请删除不用的服务,或用 ip4/ip6 地址段替换 include。

闲置域名也需要这些记录吗?

需要。对从不发送邮件的域名,请用 v=spf1 -all 和 v=DMARC1; p=reject 加以保护。

更新于

已复制到剪贴板