SPF记录检查器

分析 SPF 记录以进行电子邮件身份验证

如何使用SPF记录检查器

  1. 1输入你的域名以查询已发布的 SPF DNS 记录。
  2. 2输入你期望看到的邮件服务器或 include 机制。
  3. 3查看解析出的 SPF 策略,以及是否通过或存在过多 DNS 查询。

校验 SPF 记录

SPF = 'v=spf1 include:_spf.a include:_spf.b -all'(最多 10 次 DNS 查询机制)

SPF 告诉接收邮件的服务器哪些 IP 可代表你的域名发信;缺失或错误的记录会让攻击者冒用你的地址。

SPF 在所有 include 机制中最多允许 10 次 DNS 查询,过度嵌套 include 会导致 permerror,邮件可能被拒收。

SPF 是一段 TXT 记录,声明「哪些服务器有权以本域名发信」。收件方收到邮件后查询发件域的 SPF,若发信 IP 不在列表中,结合 DMARC 策略决定拒收或进垃圾箱。**限定符决定严格程度**:`-all` 硬失败(不在列表就拒绝)、`~all` 软失败(标记为可疑但可能接收)、`?all` 中立(无意见)、`+all` 全部通过(等于没设置,极其危险)。生产环境推荐 `~all` 起步,稳定后改 `-all`;`+all` 绝不能用。

**SPF 有两个硬性限制**:① 一条 SPF 记录最多 10 次 DNS 查询(include、a、mx、exists、redirect 都算),超限会报 PermError 导致整个 SPF 失效——这是大企业用多个邮件服务时最常见的问题,解决方法是扁平化(把 include 展开成具体 ip4 段);② TXT 记录总长不超过 255 字节,超长需拆成多条字符串,DNS 会自动拼接。**建议定期用在线工具验证,尤其是增删邮件服务后。**

机制含义示例
all匹配所有(通常放最后)-all(硬失败)
ip4IPv4 地址或段ip4:192.0.2.0/24
ip6IPv6 地址或段ip6:2001:db8::/32
a域名的 A 记录a:example.com
mx域名的 MX 记录mx
include引用其他域的 SPFinclude:_spf.google.com
ptr反向解析(已不推荐)ptr(禁用)
exists域名存在则匹配exists:example.com

SPF 机制与限定符

常见问题

-all 是什么意思?

硬失败:拒绝策略外来源的发信。~all 是软失败,更宽松。

为何有 10 次查询限制?

为限制 DNS 查询负载;超出会导致 permerror,接收方可能拒收。

SPF 单独能阻止冒用吗?

不能,需配合 DKIM 与 DMARC 才能获得真正防护与报告。

有 SPF 就够了为什么还要 DKIM 和 DMARC?

三者解决不同问题:**SPF** 验证发信 IP 是否授权;**DKIM** 用私钥对邮件签名,收件方用公钥验证内容未被篡改(且能防转发后失效);**DMARC** 建立在前两者之上,告诉收件方「验证失败时怎么办」(拒收 / 隔离 / 放行)并把结果回传给发件人。单独 SPF 的弱点很明显:邮件被转发后 SPF 会失败(因为转发服务器不在授权列表),而 DKIM 签名不受转发影响。三者配合才能真正防住伪造和钓鱼,这也是 Google、Yahoo 2024 年起对批量发件人的强制要求。

为什么我发了邮件对方收不到?

按顺序排查:① SPF 记录是否包含实际发信服务器(很多人配了企业邮箱却漏了营销平台、CRM、网站表单的发信服务);② 是否超过 10 次 DNS 查询限制;③ DMARC 策略是否过于严格(p=reject 时未对齐的邮件会被直接丢弃);④ 发信 IP 是否在黑名单(可用 mxtoolbox 查询);⑤ 内容是否触发垃圾邮件规则。**最有效的排查手段是看 DMARC 报告**(汇总了各大邮箱的验证结果),或先申请一个免费的 DMARC 报告服务。

更多工具