SPF 是一条 DNS 记录,列出了哪些服务器可以代表某个域名发送邮件。当它缺失、重复或对所有人开放时,来自该域名的邮件就更容易被伪造,也更可能被拒收或进入垃圾邮件。
含义
接收邮件的服务器会查询 SPF 记录,以判断一封声称来自您域名的邮件是否由您允许的服务器发出。一个域名只能有一条 SPF 记录,并且应以标记(~all)或拒绝(-all)所有其他服务器结尾。
触发条件
DNS 与邮件安全检查每天一次通过公共 DNS 读取已注册域名的 TXT 记录,并查看以 v=spf1 开头的记录。它会触发此问题的以下三种情形之一:
- 存在多条 SPF 记录(高):接收服务器会因此认为该域名的 SPF 已失效。所有者和管理员会通过邮件和聊天收到一次提醒。
- SPF 记录允许任何人发送邮件(高):记录以 +all 结尾,这会授权互联网上的所有服务器。所有者和管理员会通过邮件和聊天收到一次提醒。
- 没有 SPF 记录(中):仅当域名有 MX 记录(即会接收邮件)时才会触发。它会显示在应用中,不会发送邮件。
常见原因
- 新闻通讯、CRM 或客服系统在设置时单独添加了自己的 v=spf1 记录,而不是合并到现有记录中。
- 以 +all 结尾的记录是从模板中复制来的,或者是为了避免投递失败而添加的。
- 邮件迁移到了新的服务商,但没有发布该服务商要求的 SPF 记录。
如何修复
- 列出所有以该域名发送邮件的服务:您的邮箱服务商、新闻通讯工具、网站、客服系统和开票软件。每个服务的设置指南都会给出要使用的 include。
- 在您的 DNS 服务商处,只保留一条以 v=spf1 开头、包含所有发件服务的 TXT 记录,例如 v=spf1 include:_spf.google.com include:sendgrid.net ~all,并删除其他记录。
- 以 ~all 或 -all 结尾,切勿使用 +all,并将 DNS 查询次数控制在 10 次以内(每个 include 都计数),否则接收服务器仍会将其视为失败。
- SPF 正确之后,也请添加一条 DMARC 记录。请参阅 没有 DMARC 记录。
何时消除
问题会在下一次不再发现该问题的每日检查后消失,其行动项会在 7 天后从行动计划中移除。
如果您将该行动项标记为完成,但 14 天后仍发现该问题,它会以“修复未生效”状态重新出现。请参阅 使用行动计划。