专项检查 · SPF SPF 记录检查:发信名单写对了吗,有没有超过 10 次查询?
SPF 列出可以用你的域名发邮件的服务器。它出问题时没有提示:多了一条 SPF 记录、某个 include 已经失效,或者多接了一个营销工具让查询次数超过 10 次。这里顺着每个 include 往下查,按收件方的规则计数。
- 10 种记录类型
- 三家 DNS 对比
- 点了才发请求
检查 SPF 记录
查一个域名的 SPF,或者粘贴记录在本地检查语法。点「查询」才会顺着 include 往下查。
dns.alidns.com)、Cloudflare(cloudflare-dns.com)或 Google(dns.google)——发送要查的名称和记录类型,不发别的。需要顺着查的检查(SPF 的 include、MX 主机)会把这些名称发给同一个服务。TapCub 的服务器不经手、不保存。子域名、_dmarc.example.com 这类带下划线的名称、中文域名都可以。
在中国大陆网络下,Cloudflare 和 Google 可能连不上,选阿里云一般没问题。
以 v=spf1 开头。在浏览器里检查;点「查询」时再展开 include。
DNS 查询次数
10
上限 10
空查询
0
应不超过 2
概况
- 注意用了 10 次 DNS 查询额度中的 10 次。
- 说明「~all」(软失败):没列出的服务器发的邮件会被标记可疑,但一般仍会投递。确认所有发信方都列全之前常用它。
- 说明有 1 个条目用了宏(% 开头的写法),已计入次数,但没有真实邮件时无法展开。
- 说明示例结果:这是 2026-11-11 制作本页时实际查到的记录。点「查询」获取实时结果。
逐项解读
| 条目 | 命中时结果 | 作用 | 查询次数 |
|---|---|---|---|
ip4:192.30.252.0/22 | 通过 | 192.30.252.0/22 范围内的服务器可以发信 | 0 |
include:spf.protection.outlook.com | 通过 | 检查 spf.protection.outlook.com 的 SPF 记录 | 1 |
include:_netblocks.google.com | 通过 | 检查 _netblocks.google.com 的 SPF 记录 | 1 |
include:_netblocks2.google.com | 通过 | 检查 _netblocks2.google.com 的 SPF 记录 | 1 |
include:mail.zendesk.com | 通过 | 检查 mail.zendesk.com 的 SPF 记录 | 1 |
include:_spf.salesforce.com | 通过 | 检查 _spf.salesforce.com 的 SPF 记录 | 1 |
include:servers.mcsv.net | 通过 | 检查 servers.mcsv.net 的 SPF 记录 | 1 |
include:mktomail.com | 通过 | 检查 mktomail.com 的 SPF 记录 | 1 |
include:sendgrid.net | 通过 | 检查 sendgrid.net 的 SPF 记录 | 1 |
ip4:62.253.227.114 | 通过 | 62.253.227.114 范围内的服务器可以发信 | 0 |
ip4:166.78.69.169 | 通过 | 166.78.69.169 范围内的服务器可以发信 | 0 |
ip4:166.78.69.170 | 通过 | 166.78.69.170 范围内的服务器可以发信 | 0 |
ip4:166.78.71.131 | 通过 | 166.78.71.131 范围内的服务器可以发信 | 0 |
~all | 软失败 | 匹配所有发件方(放在最后兜底) | 0 |
include 展开
| 层级 | include | 记录 | 查询次数 | 状态 |
|---|---|---|---|---|
| 1 | include:spf.protection.outlook.com | v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16 ip4:52.100.0.0/15 ip4:52.102.0.0/16 ip4:52.103.0.0/17 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48 ip6:2a01:111:f403::/49 ip6:2a01:111:f403:8000::/51 ip6:2a01:111:f403:c000::/51 ip6:2a01:111:f403:f000::/52 -all | 0 | 正常 |
| 1 | include:_netblocks.google.com | v=spf1 ip4:74.125.0.0/16 ip4:209.85.128.0/17 ~all | 0 | 正常 |
| 1 | include:_netblocks2.google.com | v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all | 0 | 正常 |
| 1 | include:mail.zendesk.com | v=spf1 ip4:103.151.192.0/23 ip4:185.12.80.0/22 ip4:188.172.128.0/20 ip4:192.161.144.0/20 ip4:216.198.0.0/18 ~all | 0 | 正常 |
| 1 | include:_spf.salesforce.com | v=spf1 exists:%{i}._spf.mta.salesforce.com -all | 1 | 正常 |
| 1 | include:servers.mcsv.net | v=spf1 ip4:205.201.128.0/20 ip4:198.2.128.0/18 ip4:148.105.0.0/16 -all | 0 | 正常 |
| 1 | include:mktomail.com | v=spf1 ip4:199.15.212.0/22 ip4:72.3.185.0/24 ip4:72.32.154.0/24 ip4:72.32.217.0/24 ip4:72.32.243.0/24 ip4:94.236.119.0/26 ip4:37.188.97.188/32 ip4:185.28.196.0/22 ip4:192.28.128.0/18 ip4:103.237.104.0/22 ip4:130.248.172.0/24 ip4:130.248.173.0/24 ~all | 0 | 正常 |
| 1 | include:sendgrid.net | v=spf1 ip4:167.89.0.0/17 ip4:208.117.48.0/20 ip4:50.31.32.0/19 ip4:198.37.144.0/20 ip4:198.21.0.0/21 ip4:192.254.112.0/20 ip4:168.245.0.0/17 ip4:149.72.0.0/16 ip4:159.183.0.0/16 ip4:134.128.64.0/18 ip4:159.26.176.0/20 include:ab.sendgrid.net ~all | 1 | 正常 |
| 2 | include:ab.sendgrid.net | v=spf1 ip4:223.165.113.0/24 ip4:223.165.115.0/24 ip4:223.165.118.0/23 ip4:223.165.120.0/23 ~all | 0 | 正常 |
v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com include:_netblocks.google.com include:_netblocks2.google.com include:mail.zendesk.com include:_spf.salesforce.com include:servers.mcsv.net include:mktomail.com include:sendgrid.net ip4:62.253.227.114 ip4:166.78.69.169 ip4:166.78.69.170 ip4:166.78.71.131 ~all分享这组输入:数值写在链接的 # 后面,不会发到服务器。
https://tapcub.com/zh/tools/dns-lookup/spf
版本 v1.0更新于 更新记录
SPF 结果怎么看
三个数字和一个词决定 SPF 能不能用。
DNS 查询次数(上限 10)
include、a、mx、ptr、exists、redirect 各算一次,include 里面的也要算。超过 10 次,收件方返回永久错误,所有邮件的 SPF 都失败。
空查询(不超过 2)
查了却什么都没查到的次数。RFC 7208 建议收件方超过 2 次就停止,不用的服务要及时把 include 删掉。
结尾的 all
-all 让没列出的服务器失败,~all 软失败,?all 中立,+all 谁都能通过。只有 -all 和 ~all 有保护作用。
只能有一条
一个域名只能发布一条 v=spf1 的 TXT 记录。两条就是永久错误,这是接入新邮件服务后最常见的 SPF 问题。
SPF 检查的是信封发件人(Return-Path),不是收件人看到的「发件人」。把两者关联起来的是 DMARC,接着检查它。
三步
免注册,点一下才发请求。
-
1
输入名称
域名、子域名、网址、邮箱地址都行;粘贴 IP 地址就是反查。
-
2
选类型和解析服务
一般先用「常用全部」。改完解析之后选「三家一起对比」,看各家是否已经更新。
-
3
查询、复制
先看概况,再复制或下载区域文件格式的记录。邮件相关的记录用 MX、SPF、DMARC、DKIM 专项检查。
SPF 规则(RFC 7208)
本工具做的检查,以及出自哪一节。
- 只能有一条以
v=spf1开头的记录(§4.5) - 会触发 DNS 查询的条目最多 10 个,include 和 redirect 里的也要算(§4.6.4)
- 空查询应限制在 2 次以内;每个 mx 最多解析 10 台主机(§4.6.4)
- include 指向的域名必须有自己的 SPF 记录,否则是永久错误(§5.2)
- 不应再发布 ptr(§5.5);all 之后的条目不会被检查(§5.1);有 all 时 redirect 被忽略(§6.1)
| 条目 | DNS 查询次数 | 例子 |
|---|---|---|
| ip4 / ip6 | 0 | ip4:192.0.2.0/24 |
| all | 0 | ~all |
| include | 1 + 被引用记录里的次数 | include:spf.mail.qq.com |
| a / mx | 1(mx 另外最多解析 10 个地址) | mx |
| exists / ptr | 1 | exists:%{i}._spf.example.com |
| redirect= | 1 + 目标记录里的次数 | redirect=_spf.example.com |
github.com:正好卡在上限
2026-11-11 查询:顶层 8 个 include,对应 GitHub 用来发信的各家服务,里面还有 2 次查询。
| 部分 | 查询次数 | 原因 |
|---|---|---|
| 顶层 8 个 include(Microsoft 365、Google、Zendesk、Salesforce、Mailchimp、Marketo、SendGrid) | 8 | 每个 include 一次 |
_spf.salesforce.com → exists:%{i}… | +1 | exists 要查一次 |
sendgrid.net → include:ab.sendgrid.net | +1 | 嵌套的 include |
ip4 段和 ~all | 0 | 不消耗 |
| 合计 | 10 / 10 | 有效,但再也加不了别的服务 |
再加一个 include,所有邮件的 SPF 都会失败。到这一步通常把某个服务挪到子域名单独设 SPF,或者把服务商承诺固定的 IP 段直接写成 ip4。
SPF 常见错误
多数时候记录本身没错,是别的地方卡住了。
为新工具再加一条记录
每家服务的设置页都给出「v=spf1 include:… ~all」,比如腾讯企业邮的 include:spf.mail.qq.com。要把 include 加进已有的那条,而不是再发布一条。
停用的服务还留着 include
旧 include 照样消耗查询次数;如果对方域名已经没了,还会变成永久错误。停用服务时顺手删掉。
结尾写成 +all
+all 让互联网上所有服务器都能通过。有人为了「不退信」加上它,结果谁都能冒充你的域名。
统计报表里哪里会碰到域名
DNS 能回答报表背后的几个实际问题:这些流量是谁带来的、爬虫来自哪个网络、统计脚本是怎么加载的。
SPF 提示「too many DNS lookups」怎么办?
删掉不再使用的服务的 include;把服务商说明里固定不变的 IP 段直接写成 ip4 / ip6;或者让营销邮件从子域名发,子域名单独设 SPF。把 include 展开成 IP 的「扁平化」工具也行,但服务商换 IP 时要同步更新。
SPF 用 ~all 还是 -all?
配了 DMARC 之后两者都能保护域名,因为失败邮件怎么处理由 DMARC 决定。确认所有正常发信方都列全之前,~all 更稳妥;-all 要求收件方直接拒收。
一个域名能有两条 SPF 记录吗?
不能。RFC 7208 规定两条 v=spf1 记录是永久错误,所有邮件的 SPF 都会失败。要把各条的机制合并成一条。
Gmail、雅虎要求必须有 SPF 吗?
Gmail 发件人指南要求所有发件方设置 SPF 或 DKIM;每天向 Gmail 发超过 5,000 封的,SPF、DKIM 都要设,还要有 DMARC。雅虎对批量发件方的要求类似。做外贸邮件营销时要注意。
SPF 检查的是「发件人」地址吗?
不是,检查的是信封发件人(Return-Path / MAIL FROM)。所以只有 SPF 拦不住伪造的「发件人」;DMARC 要求 SPF 或 DKIM 之一在与「发件人」对齐的域名上通过。