岗位

SPF 以 TXT 记录的形式存在于你的域名的 DNS 中,其中有一堆机制和修饰语,代表着特定的指令。SPF 所有机制出现在 SPF 记录的右端,前面是"-"或"~"。让我们来看看 SPF -all 和 ~all 机制之间有什么区别,以确定你什么时候应该配置它们。

SPF -all vs ~all

SPF -all 和 ~all 机制都标志着 SPF 认证的 "不通过"。近来,对于大多数电子邮件服务提供商来说,-all 和 ~all 机制之间没有区别,返回的结果是一样的。然而,几年前的情况并非如此。

在DMARC之前,SPF的所有(Softfail vs Fail)机制是如何运作的?

DMARC是在SPF作为标准的电子邮件认证协议出现在市场上很久之后创建的。在这个时候,SPF-所有的软故障机制以下列方式运作。 

假设你的SPF记录是。 

v=spf1 include:spf.domain.com ~all(其中 ~all 表示 SPF Softfail)

你的收件人的电子邮件服务器会进行一次DNS查询,询问发件人的DNS是否有SPF记录。如果这封邮件的返回路径域名没有列在发件人的记录中,接收服务器就会返回一个SPF "不通过 "的结果,但是 将会把邮件到接收者的收件箱中。

现在让我们假设你的SPF记录是。 

v=spf1 include:spf.domain.com -all(其中 -all 表示 SPF 失败)

你的收件人的电子邮件服务器会进行一次DNS查询,询问发件人的DNS是否有SPF记录。如果这封邮件的返回路径域名没有列在发件人的记录中,接收服务器会返回一个SPF "NOT PASS "的结果,但在这种情况下,这封邮件会被 被拒绝,并且没有被送到到接收者的收件箱中。

阅读更多关于发送者政策框架的历史。 

现在电子邮件服务提供商是如何处理SPF-all与~all机制的?

虽然目前你可以自由地对大多数邮箱提供商使用 SPF -all 或 ~all,而不必担心合法邮件的发送失败。 在使用-all属性的情况下,可能会出现服务器拒绝你的邮件的情况。.

为了更安全起见,你可以在创建 SPF 记录时避免使用 SPF 硬失败机制。这就是你的做法。

  • 打开PowerDMARC SPF记录生成器来开始免费创建一个记录
  • 在包括IP地址和域名或你的电子邮件发件人后,向下滚动到最后一节,指定指示电子邮件服务器在验证你的电子邮件时应如何严格。
  • 在点击 "生成SPF记录 "按钮之前,选择 "软失败 "选项

我们推荐什么?SPF -全部或SPF ~全部

与SPF-all机制有关的电子邮件交付能力问题可能在非常罕见的情况下发生。这不是一个你会经常遇到的反复出现的问题。为了确保你永远不会遇到这个问题,你可以采取以下步骤。

  • 配置 启用DMARC并启用DMARC报告。
  • 将你的DMARC策略设置为监控,并密切检查你的SPF认证结果,以发现电子邮件交付能力中的任何不一致之处。
  • 如果一切顺利,你可以在你的SPF记录中使用-all机制。我们推荐使用硬失败属性,因为它肯定了你对你的电子邮件的真实性有信心,这可以提高你的域名的声誉。

如果你目前对使用SPF-all没有把握,你可以按照以下步骤进行。

  • 使用~all机制设置一个SPF记录
  • 为你的电子邮件配置DMARC,并启用DMARC报告
  • 设置你的DMARC政策为拒绝

解决其他SPF错误的问题

在使用在线工具时,你可能经常遇到"没有找到 SPF 记录"的提示,这是一个常见的错误状态,是由于服务器在查询你的域名的 SPF 记录时返回了一个空的结果。我们已经在一篇文章中详细介绍了这个问题,并帮助用户解决这个问题。点击链接文本,了解更多

如果你在SPF的基础上为你的域名设置了DMARC,电子邮件服务器将检查你的域名的DMARC政策,以确定你希望如何处理认证失败的电子邮件。这个DMARC政策将决定你的邮件是否被送达、隔离或拒绝。 

DMARC拒绝有助于保护您的域名免受各种冒充攻击,如欺骗、网络钓鱼和勒索软件。

你见过SPF失败的邮件吗?如果你见过,那么我将告诉你SPF认证失败的确切原因。发件人政策框架,或称SPF,是我们多年来用来阻止垃圾邮件的电子邮件验证标准之一。即使你没有意识到这一点,我敢打赌,如果我检查你在Facebook的登录账户设置,很可能会显示你 "选择加入 "了 "仅来自朋友的电子邮件"。这实际上与SPF是一回事。

什么是SPF认证?

SPF是一个电子邮件认证协议,用于验证电子邮件发件人与他们在邮件发件人字段中的域名是否相符。发送MTA将使用DNS查询预先配置的SPF服务器列表,以检查发送IP是否被授权为该域名发送电子邮件。SPF记录的设置方式可能存在不一致,这对于理解为什么电子邮件可能无法通过SPF验证,以及你可以发挥什么作用来确保问题不会发生在你自己的电子邮件营销工作中至关重要。

为什么SPF认证会失败。无,中性,硬失败,软失败,TempError,和PermError

SPF 认证失败可能是由于以下原因发生的。

  • 接收的MTA未能在你的DNS中找到发布的SPF记录
  • 你在你的DNS中为同一个域名发布了多个SPF记录
  • 你的ESP已经改变或增加了他们的IP地址,而这些地址没有在你的SPF记录上更新
  • 如果你超过了SPF的10个DNS查询限制
  • 如果你超过了允许的最大数量的无效查询限制2
  • 你的扁平化的 SPF 记录长度超过了 255 个 SPF 字符的限制。

以上是SPF认证失败的各种情况。你可以用我们的DMARC分析器监控你的域名,以获得SPF认证失败的报告。当你启用了DMARC报告时,接收的MTA会根据你的邮件SPF失败的原因,返回以下任何一种SPF认证失败的结果。让我们更好地了解它们。

SPF失败限定词的类型

以下是 SPF 失败限定符的类型,每个限定符都作为前缀添加到 SPF 失败机制之前。

"+" "通过"
"-" "失败"
"~" "软失败"
"?""中立"

这些有什么关系呢?在你的邮件没有通过 SPF 的情况下,你可以选择你希望接收者如何严格地处理它。你可以指定一个限定词来 "通过 "未通过检查的邮件(送达),"失败 "送达,或者采取 "中立 "的立场(什么都不做)。

案例1:返回SPF无的结果

在第一种情况下,如果接收邮件的服务器进行了 DNS 查询,但无法在 DNS 中找到该域名,就会返回一个无的结果。如果在发件人的 DNS 中没有发现 SPF 记录,也会返回 None,这意味着发件人没有为这个域名配置 SPF 认证。在这种情况下,你的邮件的 SPF 认证就会失败。

现在就用我们免费的SPF记录生成工具生成你的无错误的SPF记录,以避免这种情况。

案例2:返回SPF中立的结果

在为你的域名配置 SPF 时,如果你在你的 SPF 记录中加入了 "所有 "机制,这意味着无论你的出站邮件的 SPF 认证检查得出什么结论,接收的 MTA 都会返回一个中立的结果。这是因为当你的 SPF 处于中立模式时,你没有指定授权代表你发送邮件的 IP 地址,而是允许未经授权的 IP 地址也发送邮件。

案例3:SPF软失败的结果

与 SPF neutral 类似,SPF softfail 是通过 ~all 机制来识别的,这意味着接收的 MTA 会接受邮件并将其送入收件人的收件箱,但如果 IP 地址没有被列入 DNS 中的 SPF 记录,它就会被标记为垃圾邮件,这可能是你的邮件 SPF 认证失败的一个原因。下面是一个 SPF 软失败的例子。

 v=spf1 include:spf.google.com ~all

案例4:SPF硬失败的结果

SPF hardfail,也被称为 SPF fail,是指接收的 MTA 会丢弃来自任何不在你 SPF 记录中的发送源的邮件。我们建议你在你的 SPF 记录中配置 SPF hardfail,如果你想获得对域名冒充和邮件欺骗的保护。下面是一个 SPF Hardfail 的例子。

v=spf1 include:spf.google.com -all

案例5:SPF TempError(SPF临时错误)。

SPF 认证失败的一个非常常见的原因是 SPF TempError (临时错误),它是由 DNS 错误引起的,比如在接收的 MTA 正在进行 SPF 认证检查时,DNS 超时。因此,正如它的名字所暗示的,它通常是一个临时错误,返回 4xx 状态代码,可能会导致 SPF 的暂时性失败,但是,在以后再次尝试时,会产生 SPF 的通过结果。

案例 6:SPF PermError(SPF永久错误)。

域名错误面临的另一个常见结果是 SPF PermError。这就是为什么在大多数情况下,SPF 认证会失败。这发生在你的 SPF 记录被接收的 MTA 无效的时候。在执行 DNS 查询时,SPF 可能会出现故障并被 MTA 宣布无效,这有很多原因。

  • 超过了10个SPF查询的限制
  • SPF记录的语法不正确
  • 同一域名有一个以上的SPF记录
  • 超过SPF记录长度限制的255个字符
  • 如果你的SPF记录没有随着你的ESPs的变化而更新

注意:当一个 MTA 对一封邮件进行 SPF 检查时,它会查询 DNS 或进行 DNS 查询,以检查邮件来源的真实性。理想情况下,在 SPF 中,你最多可以进行 10 次 DNS 查询,超过这个次数将导致 SPF 失败,并返回一个 PermError 结果。

动态SPF扁平化如何解决SPF PermError?

与其他的 SPF 错误不同,SPF PermError 的解决方式更为棘手和复杂。PowerSPF 借助于自动SPF 平坦化,可以帮助你轻松地缓解它。它可以帮助你。

  • 保持在SPF的硬限值之下
  • 即时优化你的SPF记录
  • 将你的记录扁平化为一个单一的包括声明
  • 确保你的SPF记录总是在你的ESP所做的改变中得到更新

想测试一下你的域名是否已经正确配置了SPF?今天就试试我们免费的SPF记录查询工具吧!