重要提示:谷歌和雅虎将从 2024 年 4 月起要求使用 DMARC。
权力管理机构

SPF记录的语法

SPF记录的语法

SPF记录的语法

阅读时间 8 分钟

发件人政策框架(SPF)记录是基于域的消息验证、报告和一致性(DMARC)的一个重要部分。DMARC)协议的重要组成部分,它规定了一种防止发件人地址伪造的方法。

SPF 记录的设置很复杂,如果配置不当,就会出现实施问题。而且,SPF 记录语法使用了一些特定的术语,在第一次遇到时可能会让人困惑。因此,在这篇博文中,我们看看 SPF 记录的语法,以及你在配置它们时需要考虑的问题。

什么是SPF记录?

SPF记录是一种DNS记录,用于识别哪些服务器被允许代表你的域名发送电子邮件。它通过列出已被授权为你的域名发送电子邮件的服务器来做到这一点;如果任何其他服务器试图代表你的域名发送电子邮件,它将被拒绝为未经授权的发件人。

SPF记录的目的是为了防止恶意用户发送伪造的电子邮件,并在发件人栏中注明你的域名。如果攻击者通过欺骗或伪造你的域名,从你的服务器发出大量的垃圾邮件,这种情况就会发生。

SPF是如何工作的?

1.创建一个 SPF 记录的语法

你在你的DNS服务器中创建一个SPF记录语法,指定哪些IP地址被允许从你的域名发送电子邮件。这意味着,如果有人试图从你的域名发送欺骗性的电子邮件,他们的信息将会失败,因为他们的邮件服务器的IP地址不会被列为批准的服务器之一。

例如,如果你希望只有Gmail账户能够从你的域名发送邮件,而不是Outlook账户,那么你可以在你的SPF记录中添加以下一行。

 v=spf1 a mx include:_spf.google.com ~all

 这告诉服务器,从IP地址以_spf.google.com结尾的任何主机发出的任何信息都应该被认为是有效的(m),而所有其他信息都应该被丢弃(a)。 

你可以使用我们的 SPF记录生成器工具,现在就开始创建一个免费的记录!

2.DNS查询

当电子邮件发件人试图发送邮件时,收件人服务器会对发送域进行DNS查询,看看是否有SPF记录,这被称为 "认证"。 SPF错误.

如果没有 SPF 记录,那么认证就会失败,邮件就不会被传递。如果有一条 SPF 记录,那么 SPF 服务器会在 TXT 记录中检查 SPF 记录中指定的主机名的 IP 地址。

 如果没有指定IP地址,那么它将无法认证。否则,它将按照TXT记录中出现的顺序,对指定的每个IP地址进行A查询。

返回 NXDOMAIN 或 NOERROR 结果代码的 IP 地址将被视为 SPF 服务器授权的,其主机名将被添加到该域的授权发送主机列表中。

3.认证结果

邮件服务器要么将邮件发送给收件人,要么根据SPF记录中指定的规则将其标记为拒绝接收。

认证结果可以有三种形式。通过,中立,或失败。

通过意味着邮件服务器接受该邮件是合法的并允许它被投递。中立意味着在DNS中根本没有该域名的记录或无效的记录,所以无法知道这是否是来自该域名的合法邮件。失败的意思是,这条信息的某些方面不够真实,无法被传递。

例如,一个IP地址为'234.2.1.2'的邮件服务器从'join@apple.com'发送一封邮件。入站服务器将咨询域名服务(DNS),以确定该IP地址是否被授权代表'apple.com'域名发送电子邮件。如果是,该邮件将被送达;否则,它将被丢弃或标记为垃圾邮件,即根据SPF记录中指定的机制进行分类。

SPF记录的语法

SPF 记录的语法包括几个元素--指令、限定词和机制。

指令是 SPF 记录语法的第一部分。它们指示如何解释记录的其余部分。SPF 记录中可以出现三个指令:v=spf1、a 和 mx。v 指令表示这条记录是一条 SPFv1 记录;a 指令表示这条记录是一条 SPFv2 式的认证失败报告;mx 指令指定了一个域的邮件交换服务器列表。

限定符指定了你想把 SPF 记录放在 DNS 区域的什么地方:exim4、enduser 或 _spf。这些限定词告诉邮件接收者,当他们在检查你的 SPF 记录时,应该在哪里寻找这些记录。

机制用于指示如何处理SPF 检查失败的电子邮件地址。您可以从以下几种机制中选择:全部、无、软失败、中和或拒绝。

SPF记录语法限定词

SPF记录语法中的 "限定词 "有助于表明SPF记录的范围。这主要是用来表明一个特定的IP地址是否被授权代表你的域名发送电子邮件。

资格赛 结果代码 解释
+ 通过 是唯一没有负面含义的限定词。它表明该域名的安全记录不包含任何错误或警告,并被认为是安全的。
- 失败 表示该域名的安全记录包含错误或警告,使其不能被视为安全。

 

~ 软故障 表示域名的安全记录包含错误或警告,这并不妨碍它被认为是安全的,但可能表明DNS解析的问题或与DNS信任锚有关的其他问题。
? 中性 表示该域名没有SPF记录,或者它的记录在语法上是正确的,但是在与你的信任IP地址列表中的一个(或多个)发送服务器进行检查时,没有匹配任何发送服务器。

SPF记录语法机制 

机制在 SPF 记录的语法中被用来告诉接收服务器应该使用什么样的认证机制。有两种类型的机制。 

机制 宗旨 指令适用于以下情况 实施
a 定义了域名的DNS A记录为授权。如果这个指令没有被指定,那么就使用当前的域名。

 

 

可以在查询包含发件人IP地址的域名中的A或AAAA记录时应用。 a

a/<prefix-length>

a:<domain>

a:<domain>/<prefix-length>

所有 all指令总是匹配的,它定义了所有其他来源的策略。 这个机制应该永远适用,而且这个机制永远是匹配的。 所有
存在 检查A记录对一个给定的域名是否有效。它的工作原理是查看该域名上的所有A记录,看看其中是否有与你的SPF记录中的标准相符的记录。 当所述域名上有任何A记录或根据RFC7208的其他标准被授权时,适用。 exists:<domain>
包括 这个机制的目的是指定域名并搜索匹配,以及在域名没有有效的 SPF 记录时返回一个永久错误。 SPF 记录中的 "包含 "机制可以用来在一个域名的记录中包含其他 SPF 记录。如果一个域名没有 SPF 记录,但另一个域名有,而且这个域名的 IP 地址与发件人的 IP 地址相匹配,那么,"包括 "机制将导致具有匹配 IP 地址的域名被用于授权目的。

 

include:<domain>
ip4 你可以用 "ip4 "指令指定一个IPv4范围,以及一个表示该范围长度的前缀。如果没有指定前缀,则假定为/32。 如果这些条件中的任何一个为真,"ip4 "机制将适用。

 

- 指定的IPv4地址与你的SPF记录中的一个IP地址相匹配。

 

- 指定的IPv4子网包含发件人的IP地址。

ip4:<ip4-address>

ip4:<ip4-network>/<prefix-length>

ip6 你可以用 "ip4 "指令指定一个IPv6范围,以及一个表示该范围长度的前缀。如果没有指定前缀,则假定为/128。 如果这些条件中的任何一个为真,"ip6 "机制将适用。

 

- 指定的IPv6地址与你的SPF记录中的一个IP地址相匹配。

 

- 指定的IPv6子网包含发件人的IP地址。

ip6:<ip6-address>

ip6:<ip6-network>/<prefix-length>

mx SPF记录中定义的 "mx "机制,将域名系统(DNS)的邮件交换器(MX)记录定义为授权。 DNS MX记录决定了哪个服务器负责代表该域名接受电子邮件。DNS MX记录包含一个IP地址和每个服务器的优先级值,可用于接受邮件。

 

当一个域名的MX记录包含一个与发件人的IP地址相匹配的IP地址,那么这表明这个发件人被授权代表这个域名发送电子邮件。

mx

mx/<prefix-length>

mx:<domain>

mx:<domain>/<prefix-length>

ǞǞǞ ptr机制使用发送IP地址的反向主机名或子域来定义目标域名。 只有当被查询或指定的域至少有一条MX记录,并且该MX记录包含发件人IP地址的FQDN的PTR记录时才适用。 ǞǞǞ

ptr:<domain>

SPF记录语法修改器

在 SPF 记录的语法中,修饰语可以用来改变 SPF 记录的默认行为。修饰语可以用来指定规则的例外情况,也可以用来向接收者提供额外的信息。

修改器 宗旨 实施
曝光 exp "修饰符是一个值,它指定了一个解释,说明为什么信息被拒绝。它的目的是帮助发件人避免某些类型的问题,并可以用来通知他们关于他们的信息不被接收服务器接受的具体原因。 exp=<domain>
重定向 重定向修饰符是一个字符串,它取代了 SPF 记录中的整个域名。这个修饰符的目的是将所有发送到该域名的邮件重定向到另一个服务器。这对于有多个MX记录的域名或已经重新分配给另一家公司但仍在使用相同的电子邮件地址的域名可能很有用。 redirect=<domain>

结束语

SPF 记录是域名 DNS 记录的重要组成部分。它告诉其他邮件服务器如何验证声称来自您的邮件,这意味着您必须正确配置 SPF 记录。不过,请确保将 SPF 与DMARC配对,以加强对电子邮件泄露和欺骗的保护。 

追踪 SPF记录查询工具可以帮助你做到这一点。这个查询工具会让你快速了解你当前的 SPF 记录是什么样子的,包括它是否缺少任何必要的字段。生成器会让你从头开始创建一个 SPF 记录的语法,包括所有必要的字段,这样它就可以马上被添加到你的 DNS 记录中。

退出手机版