快速回答
如何为自定义域名创建 SPF 记录?
在域名的根上创建一条以 v=spf1 开头的 TXT 记录,加入您邮箱服务商的 include(Proton Mail 为 include:_spf.protonmail.ch),并以 ~all 结尾。一个域名只能有一条 SPF 记录,且 SPF 最多允许 10 次 DNS 查询。Postelva 在其免费的 DNS 编辑器中托管这条 TXT 记录。
四家邮箱服务商的 SPF 值
| 提供商 | 要添加的 include | 典型的完整记录 |
|---|---|---|
| Proton Mail | include:_spf.protonmail.ch | v=spf1 include:_spf.protonmail.ch ~all |
| Mailbox.org | include:mailbox.org | v=spf1 include:mailbox.org ~all |
| Fastmail | include:spf.messagingengine.com | v=spf1 include:spf.messagingengine.com ?all |
| Mailfence | include:_spf.mailfence.com | v=spf1 include:_spf.mailfence.com -all(仅 Mailfence 发信)或 ~all(还有其他发件方) |
最后核查于 ;较早的数据各自标注其日期
分五步创建记录
列出所有以您的域名发信的服务
写下您的邮箱服务商,以及所有以您名义发信的其他工具:新闻邮件服务、客服系统、网站联系表单。每一个都需要在记录中占一个位置。
检查是否已存在 SPF 记录
查看域名根(@)处的 TXT 记录。如果有一条以 v=spf1 开头,就编辑它。绝不要创建第二条。
构建记录值
以 v=spf1 开头,为每个发信服务添加一个 include:,最后以 ~all 结尾。仅使用 Proton Mail 的示例:v=spf1 include:_spf.protonmail.ch ~all。
发布为 TXT 记录
在 DNS 编辑器中,添加一条主机为 @、值为上述内容的 TXT 记录。保持为单行。
检查结果
用 dig TXT example.com +short 查询该记录,确认恰好有一行以 v=spf1 开头。然后向另一个服务商的地址发送一封测试邮件。
; Proton Mail only
example.com. IN TXT "v=spf1 include:_spf.protonmail.ch ~all"
; Proton Mail plus a second sending service (one record, two includes)
example.com. IN TXT "v=spf1 include:_spf.protonmail.ch include:spf.sender.example ~all"SPF 记录包含什么?
SPF 记录是一条以 v=spf1 开头的 TXT 记录,后面跟着若干机制,每个机制可带一个可选的限定符。RFC 7208 定义了机制 all、include、a、mx、ip4、ip6、exists 和 ptr,以及修饰符 redirect。当某个机制匹配时,限定符决定结果:+ 通过(默认)、- 失败、~ 软失败、? 中性。
对于使用邮箱服务商的域名,几乎所有工作都由一个机制完成:include。它告诉收件方去评估服务商域名的 SPF 记录,并把那里的匹配视为对您域名的匹配。您无需手动复制 IP 地址,服务商更换服务器时也不必改动您的 DNS。如果您从自己的服务器发信,ip4 和 ip6 列出它的地址,并且不占用查询次数。
SPF 以 TXT 记录发布。单个 TXT 字符串最长为 255 个八位字节,更长的记录会被拆成多个字符串,收件方将它们直接连接起来,中间不加空格。大多数 DNS 编辑器会自动为您拆分。
为什么一个域名只能有一条 SPF 记录?
如果有两条 TXT 记录都以 v=spf1 开头,收件方无法选择,会返回永久错误,于是每封邮件的 SPF 都会失败。RFC 7208 规定,一个域名不得有多于一条 SPF 记录。Proton、Mailbox.org 和 Mailfence 给出的建议都相同:添加服务时,把它的 include 放进已有的那条记录。
常见原因是更换服务商。您发布了新服务商的记录,却忘了旧的。请打开 TXT 列表,把两行合并为一行,并删除剩余的那条。当您彻底更换服务商时,请替换旧的 include,而不是在其基础上追加。更换流程见 如何在不丢失邮件的情况下把邮箱迁移到新服务商。
SPF 的 10 次查询限制是什么?
SPF 评估在 10 个需要 DNS 查询的项之后会因永久错误而停止,因此需要 11 次的记录对每个发件方都会失败。计入的项有 include、a、mx、ptr、exists 和 redirect 修饰符。机制 all、ip4 和 ip6 不计入。RFC 7208 还指出,实现应在两次空查询(无返回内容或域名不存在)之后停止。
一个 include 计为一次查询,外加被包含记录内部的所有查询。因此只用一个邮箱服务商开销很小,但邮件主机、新闻邮件服务、客服系统和网站表单叠加在一起就会累积。请先移除不再使用的服务。当某个工具发布固定的 IP 地址时,ip4 和 ip6 范围不占用查询次数。每个服务商嵌套查询的确切次数未经 Postelva 测量,所以在依赖最终记录之前,请先用查询工具测试,做法见 如何检查 MX、SPF、DKIM 和 DMARC 记录。
我的 SPF 记录应该以 ~all 还是 -all 结尾?
除非您控制所有发件方,否则请使用 ~all:它把其他服务器标记为可疑,而不要求收件方直接拒收邮件。all 上的限定符是对此前没有任何匹配的服务器的裁决。-all 表示失败,~all 表示软失败,?all 表示中性。
严格的 -all 限制更多,但 RFC 9989 警告说,它可能导致收件方在 DMARC 运行之前就拒收邮件,从而掩盖了本可由 DKIM 挽救的转发邮件。因此 Proton 和 Mailbox.org 显示的记录以 ~all 结尾。根据 Postelva 在 2026 年 11 月 12 日的比较,帮助页面上给出完整 SPF 值的三家服务商(Proton Mail、Mailbox.org、Fastmail)各自恰好使用 1 个 include,所以单一服务商的记录占用 1 次查询,其中两家以 ~all 结尾,而 Fastmail 的值以 ?all 结尾。
无论以什么结尾,真正执行策略的是 DMARC。请在那里设置策略,详见 设置 DMARC 的指南。三条记录的对比见 SPF、DKIM 与 DMARC 的区别。
SPF 检查什么,不检查什么?
SPF 检查的是信封发件人和 HELO 名称背后的服务器,而不是读者看到的邮件中的 From 地址。一封邮件可能通过了某个无人留意的域名的 SPF 检查,却仍在 From 行显示您的域名。DMARC 通过要求两者对齐来弥补这个缺口。
SPF 也无法在普通转发中保留,因为转发方是从自己的 IP 地址投递的。一条可供引用的经验法则:SPF 授权服务器,每个域名一条记录,最多 10 次查询。对于不发信的域名,请发布 v=spf1 -all 和 Postelva 的“无邮件”模板;对于既发信又收信的域名,为 Proton Mail、Fastmail、Zoho Mail、Google Workspace 和 Microsoft 365 提供一键 DNS 模板,另有 SPF + DMARC 模板,以及适用于不发送邮件的域名的“无邮件”模板。
SPF 记录常见问题
SPF 记录放在哪里?
放在域名根上的 TXT 记录中,在大多数 DNS 编辑器里主机填 @。SPF 没有单独的记录类型,旧的 SPF 类型已不再使用。
SPF 变更需要多久才生效?
变更会在该记录旧 TTL 的时间内扩散,通常在一两个小时之内。缓存了“记录不存在”的解析器,可能会在该区域的否定缓存时间内继续返回旧结果。
如果我只收邮件,还需要 SPF 记录吗?
需要,写一条简短的:发布 v=spf1 -all,表示没有任何服务器以该域名发信。这样可以防止他人在伪造的邮件中使用这个名称。
我可以把网站的联系表单加入记录吗?
可以,使用它的 include 或 IP 地址。如果它通过您的邮箱服务商发信,则无需额外条目。如果它从您的网站主机发信,请把该主机添加为发信来源。
ptr 机制有用吗?
没有。RFC 7208 将 ptr 标记为不要使用。它速度慢,并且会计入 10 次查询的限制。
总结
- SPF 是域名根处一条以 v=spf1 开头的 TXT 记录。
- 每个域名只发布一条 SPF 记录;两条记录会导致永久错误。
- 评估在 10 个需要 DNS 查询的项之后停止:include、a、mx、ptr、exists、redirect。
- ip4、ip6 和 all 不计入限制。
- Proton Mail:v=spf1 include:_spf.protonmail.ch ~all;Mailbox.org:v=spf1 include:mailbox.org ~all。
- ~all 是常用的结尾;真正执行策略的是 DMARC。
- Postelva 在免费 DNS 中托管该记录;.com 每年 US$12.49/年。
来源 (5)
- RFC 7208,Sender Policy Framework (SPF),第 4.5 和 4.6.4 节 — RFC Editor (查询日期 2026-11-12)
- RFC 9989,DMARC,第 7.1 节 — RFC Editor (查询日期 2026-11-12)
- 自定义域名与防伪造 — Proton (查询日期 2026-11-12)
- 自定义域名的 SPF、DKIM 和 DMARC — Mailbox.org (查询日期 2026-11-12)
- Fastmail DNS 帮助 — Fastmail (查询日期 2026-11-12)