SPF 记录是一种常用于电子邮件认证的 DNS TXT 记录。SPF 记录包括一个获授权从该域发送电子邮件的 IP 地址和域的列表。
阅读本文后,您将能够:
复制文章链接
发送方策略框架 (SPF) 记录是一种 DNS TXT 记录,其中列出所有获得授权从特定域发送电子邮件的服务器。DNS TXT(“文本”)记录允许域管理员将任意文本输入到域名系统(DNS) 中。TXT 记录最初是为包含有关域的重要信息而创建的,但后来已经发展为服务其他目的。
最初创建 SPF 是因为电子邮件使用的标准协议——简单邮件传输协议(SMTP)——本身并不验证电子邮件中的“发件人”地址。这意味着,如果没有 SPF 或其他身份验证记录,攻击者可以轻易假冒一个发件人,欺骗收件人采取某种行动或共享信息。
可将 SPF 记录想象为门童管理的客人名单。如果某人不在名单上,门童就不会让其进入。同样,如果 SPF 记录的列表中没有某个发送者的 IP 地址或域,接收方服务器(门童)将不投递哪些电子邮件或将它们标记为垃圾邮件。
有很多基于 DNS 的机制可以帮助电子邮件服务器确认电子邮件是否来自可信来源,SPF 记录只是其中之一。基于域的消息验证、报告与一致性 (DMARC) 和域名密钥识别邮件 (DKIM) 是另外两种用于电子邮件验证的机制。
值得注意的是,SPF 曾经有一个专用的 DNS 记录类型。该专用 DNS 记录类型已被弃用,仅使用 TXT 记录。
邮件服务器检查 SPF 记录的过程比较简单:
SPF 记录必须遵循一定的标准,以便服务器理解其内容。如下是 SPF 记录核心组成部分的示例:
v=spf1 ip4:192.0.2.0 ip4:192.0.2.1 include:examplesender.email -all
这个例子让服务器知道这是什么类型的记录,声明对这个域被批准的 IP 地址和第三方,并告知服务器如何处理不符合要求的电子邮件。我们分别说明各组成部分是如何实现这一点的:
v=spf1
告诉服务器这里包含一条 SPF 记录。每一条 SPF 记录都必须以这个字符串开始。ip4:192.0.2.0
和 ip4:192.0.2.1
被授权代表该域发送电子邮件。 include:examplesender.net
是 “include”(包含)标记的示例,该标记告诉服务器,有哪些第三方组织被授权代表该域发送电子邮件。这个标记表示,被包含域(examplesender.net)的 SPF 记录内容应被检查,其中包含的 IP 地址也应被视为已授权。一条 SPF 记录中可包含多个域,但这个标记仅适用于有效的域。 -all
告诉服务器,SPF 记录中未列出的地址没有被授权发送电子邮件并应被拒绝。 ~all
:表示未列出的电子邮件将被标记为不安全邮件或垃圾邮件,但仍会被接受;不那么常见的是+all
:表示任何服务器都可以代表该域发送电子邮件。 虽然本文中使用的示例相当简单,但 SPF 记录肯定会更加复杂。要确保 SPF 记录有效,需要注意如下几点:
all
部分结束,或包含一个redirect=
部分(表示该 SPF 记录由另一个域托管)。 更多信息请参阅官方 SPF 记录文档。
域运营者使用 SPF 记录的原因很多:
要在 Cloudflare 中轻松设置 SPF 记录,请使用电子邮件安全 DNS 向导。
进一步了解电子邮件的 DNS 记录: