SPF记录检查器
分析 SPF 记录以进行电子邮件身份验证
如何使用SPF记录检查器
- 1输入你的域名以查询已发布的 SPF DNS 记录。
- 2输入你期望看到的邮件服务器或 include 机制。
- 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(硬失败) |
| ip4 | IPv4 地址或段 | ip4:192.0.2.0/24 |
| ip6 | IPv6 地址或段 | ip6:2001:db8::/32 |
| a | 域名的 A 记录 | a:example.com |
| mx | 域名的 MX 记录 | mx |
| include | 引用其他域的 SPF | include:_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 报告服务。
