岗位

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

案例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记录查询工具吧!

在你的域名上有多个 SPF 记录可以吗?答案是否定的,因为拥有多个 SPF 记录是域名所有者最常遇到的 SPF 错误之一,它可以使你的 SPF 完全失效,并导致 SPF PermError。要了解为什么会发生这种情况,我们需要了解 SPF 的功能,以及为什么拥有多条 SPF 记录会导致认证方面的问题。今天就进行你的SPF 记录检查,找出你的 SPF 记录配置中的错误。

SPF是如何工作的?

发件人策略框架或SPF是一个流行的电子邮件认证协议,它通过列出所有允许代表你的域名发送电子邮件的授权发送源而发挥作用。SPF通过执行DNS查询请求或DNS查找来工作,其中接收的MTA通过与驻扎在你的域名DNS中的SPF记录中提到的IP地址列表相匹配,来查找并验证你的电子邮件的返回路径地址

如果发现有匹配的,该邮件就能通过SPF,否则就不能通过SPF。

因此,配置SPF只是发布一个以 "v=spf1 "语法开头的DNS TXT记录。

什么是 SPF PermError?

当一个接收的 MTA 开始对一封邮件进行 SPF 认证时,它会获取所有以 "v=spf1 "开头的 DNS TXT 记录。如果发送域没有配置 SPF,并且在 DNS 中没有发现 SPF 记录,那么就会返回一个 None 的结果。相反,如果发现同一域名存在多个以 "v=spf1 "开头的 SPF 记录,将返回PermError结果。

错误的方式。 

记录类型域名记录值TTL
TXT考试网v=spf1 include:_spf.zoho.com -all违约
TXT考试网v=spf1 include:_spf.google.com -all违约

在这个例子中,对于域名 exampledomain.com 来说,有 2 个独立的 DNS TXT 记录被公布在该域名的 DNS 中。在这种情况下,由于 SPF PermError,SPF 认证失败。

 

正确的方式。 

记录类型域名记录值TTL
TXT考试网v=spf1 include:_spf.zoho.com include:_spf.google.com -all违约

在这个例子中,域名 exampledomain.com 通过在一条记录中加入所有的包含机制,在 DNS 中只发布了一条 SPF DNS TXT 记录。这条记录是有效的,在这种情况下,SPF 不会返回一个 PermError 的结果。了解如何以正确的方式优化你的 SPF记录,以避免将来出现 SPF 记录错误。

影响SPF的其他因素:SPF错误的类型

如上所述,拥有多条 SPF 记录是一个常见的 SPF 错误,会导致你的 SPF 记录无效,无法通过 SPF 认证。所以,"我的域名上可以有多个 SPF 记录吗?"答案很简单:不可以。在确保你的 DNS 中只发布了一条 SPF 记录之后,仍然可能有其他因素导致 SPF 错误。

  • 超过 SPF 10 的查询限制,也会返回 SPF PermError 并破坏 SPF。
  • 手动平铺你的SPF记录,拉出你的包含机制背后的所有IP地址,会导致记录过长,可能超过255个字符的限制。
  • 你的电子邮件服务提供商,如Zoho、Gmail或Outlook,可以改变或添加到他们的IP地址,使你的SPF记录无效
  • 你的SPF记录可能包含语法错误

为了避免上述错误,使用PowerSPF来自动平整你的SPF记录,并保持在10个DNS查询限制之下。

你可以使用我们免费的SPF记录生成器生成你的无错误的SPF记录。今天就注册DMARC分析器,为你的域名正确配置SPF,避免所有SPF错误。

避免SPF扁平化的原因

发件人政策框架,或者说SPF是一个广受赞誉的电子邮件认证协议,它通过对你的SPF记录中为你的域名注册的所有授权IP地址进行认证,来验证你的邮件。为了验证邮件,SPF规定接收邮件的服务器要进行DNS查询,以检查授权的IP,从而进行DNS查询。

你的 SPF 记录以 DNS TXT 记录的形式存在,它是由各种机制组合而成的。这些机制中的大多数(比如 include, a, mx, redirect, exists, ptr) 都会产生 DNS 查询。然而,SPF 认证的 DNS 查询的最大数量被限制在 10 个。如果你使用各种第三方供应商使用你的域名发送电子邮件,你可以很容易地超过 SPF 的硬限制。

你可能想知道,如果你超过这个限制会怎样?超过10个DNS查询的限制会导致SPF失败,甚至会使从你的域名发出的合法邮件无效。在这种情况下,如果你启用了 DMARC 监控,接收邮件的服务器会向你的域名返回SPF PermError报告。SPF扁平化。

什么是SPF平坦化?

SPF 记录平坦化是行业专家用来优化你的 SPF 记录并避免超过 SPF 硬性限制的流行方法之一。SPF 扁平化的程序非常简单。扁平化你的SPF记录的过程是将所有包含机制替换为各自的IP地址,以消除执行DNS查询的需要。

例如,如果你的SPF记录最初是这样的。

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

一个扁平化的SPF记录看起来会是这样的。

v=spf1 ip4:168.191.1.1 ip6:3a02:8c7:aaca:645::1 -all

这种扁平化的记录只产生一个DNS查询,而不是进行多次查询。减少接收服务器在电子邮件验证过程中执行的DNS查询次数确实有助于保持在10次DNS查询限制之下,然而,它也有自己的问题。

SPF扁平化的问题

除了你手动平铺的 SPF 记录可能会变得太长,无法在你的域名的 DNS 上发布(超过 255 个字符的限制)之外,你还必须考虑到你的电子邮件服务提供商可能会改变或增加他们的 IP 地址,而不通知你这个用户。每当你的供应商对他们的基础设施进行修改时,这些修改不会反映在你的 SPF 记录中。因此,每当你的邮件服务器使用这些改变了的或新的IP地址时,邮件就会在接收方的SPF中失效。

PowerSPF:你的动态SPF记录生成器

PowerDMARC的最终目标是提出一个解决方案,可以防止域名所有者遇到10个DNS查询的限制,以及优化你的SPF记录,使其始终保持在你的电子邮件服务提供商使用的最新IP地址上。PowerSPF是你的自动SPF扁平化解决方案,它通过你的SPF记录拉动,生成一个单一的包含声明。PowerSPF 可以帮助你。

  • 轻松添加或删除IP和机制
  • 自动更新网络封锁,确保你的授权IP总是最新的。
  • 轻松保持在10个DNS查询限制之下
  • 只需点击一下就能获得一个优化的SPF记录
  • 永久击败 "permerror"。
  • 实施无错误的SPF

今天就注册PowerDMARC,以确保增强电子邮件的可交付性和认证,同时保持在10个DNSSPF查询限制 之下

在这篇文章中,我们将探讨如何为你的域名轻松优化SPF记录。对于拥有电子邮件域名的企业和小型企业来说,他们在客户、合作伙伴和雇员之间发送和接收信息,很可能默认存在一条 SPF 记录,这是由你的收件箱服务提供商设置的。不管你是有一个预先存在的SPF记录,还是需要创建一个新的记录,你都需要为你的域名正确地优化你的SPF记录,以确保它不会造成电子邮件的交付问题。

一些电子邮件收件人严格要求SPF,这表明如果你的域名没有发布SPF记录,你的电子邮件可能会在收件人的收件箱中被标记为垃圾邮件。此外,SPF有助于检测未经授权的来源以你的域名名义发送电子邮件。

让我们首先了解什么是SPF,为什么需要它?

发件人政策框架(SPF

SPF本质上是一个标准的电子邮件认证协议,它规定了被授权从你的域名发送电子邮件的IP地址。它的运作方式是将发件人地址与特定域名的授权发送主机和IP地址列表进行比较,该列表公布在该域名的DNS中。

SPF与DMARC(基于域的信息验证、报告和一致性)一起,旨在检测电子邮件发送过程中伪造的发件人地址,并防止欺骗性攻击、网络钓鱼和电子邮件诈骗。

需要知道的是,尽管你的主机提供商将默认的 SPF 集成到你的域名中,确保从你的域名中发送的邮件能够通过 SPF 认证,如果你有多个第三方供应商从你的域名中发送邮件,那么这个预先存在的 SPF 记录需要被定制和修改,以适应你的要求。你怎样才能做到这一点呢?让我们来探讨两种最常见的方法。

  • 创建一个全新的SPF记录
  • 优化现有的SPF记录

关于如何优化SPF记录的说明

创建一个全新的SPF记录

创建 SPF 记录,只是在你的域名的 DNS 中发布一条 TXT 记录,为你的域名配置 SPF。这是一个强制性的步骤,在你开始了解如何优化SPF记录之前。如果你刚开始接触认证,对语法没有把握,你可以使用我们免费的在线SPF 记录生成器,为你的域名创建 SPF 记录。

一个具有正确语法的SPF记录条目将看起来像这样。

v=spf1 ip4:38.146.237 include:example.com -all

v=spf1指定正在使用的SPF的版本
ip4/ip6这一机制指定了被授权从你的域名发送电子邮件的有效IP地址。
包括这个机制告诉接收服务器包括指定域的 SPF 记录的值。
全部这个机制规定,不符合 SPF 标准的邮件将被拒绝。这是你在发布 SPF 记录时可以使用的推荐标签。不过,你可以用 ~ 代替 SPF Soft Fail (不符合规定的邮件将被标记为软失败,但仍会被接受),也可以用 + 代替,这说明任何和每一个服务器都可以代表你的域名发送邮件,但这是非常不可取的。

如果你已经为你的域名配置了SPF,你也可以使用我们免费的SPF记录检查器来查询和验证你的SPF记录并检测问题。

配置SPF时的常见挑战和错误

1) 10个DNS查询限制 

域名所有者在为他们的域名配置和采用 SPF 认证协议时,面临的最常见的挑战是 SPF 对 DNS 查询的次数有限制,不能超过 10 次。对于依赖多个第三方供应商的域名来说,10个DNS查询的限制很容易超过,这反过来又会破坏SPF,并返回一个SPF PermError。在这种情况下,接收服务器会自动使你的 SPF 记录无效,并将其屏蔽。

启动DNS查询的机制。MX, A, INCLUDE, REDIRECT修改器

2) SPF无效查询 

无效查询是指返回 NOERROR 响应或 NXDOMAIN 响应(无效回答)的 DNS 查询。在实施 SPF 的过程中,我们建议首先确保 DNS 查询不会返回无效答案。

3) SPF 递归循环

这个错误表明,你指定的域的 SPF 记录包含一个或多个 INCLUDE 机制的递归问题。这发生在INCLUDE标签中指定的一个域中,该域的SPF记录包含原域的INCLUDE标签。这导致了一个永无止境的循环,使电子邮件服务器不断地对SPF记录进行DNS查询。这最终会导致超过10次的DNS查询限制,从而导致电子邮件无法通过SPF。

4) 语法错误 

一个 SPF 记录可能存在于你的域名的 DNS 中,但是如果它包含语法错误,那就没有用了。如果你的 SPF TXT 记录在输入域名或机制名称时包含了不必要的空白,那么在执行查询时,接收服务器会完全忽略多余的空格前的字符串,从而使 SPF 记录无效。

5) 同一域名的多个SPF记录

一个域名在 DNS 中只能有一条 SPF TXT 记录。如果你的域名包含一个以上的SPF记录,接收服务器会使所有的记录失效,从而导致邮件无法通过SPF。

6) SPF记录的长度 

一个 SPF 记录在 DNS 中的最大长度被限制为 255 个字符。然而,这个限制可以被超越,SPF的TXT记录可以包含多个字符串串联在一起,但不能超过512个字符的限制,以适应DNS的查询响应(根据RFC 4408)。尽管后来对此进行了修订,但依赖旧的DNS版本的收件人将无法验证从含有冗长的SPF记录的域名中发送的电子邮件。

优化你的SPF记录

为了及时修改你的SPF记录,你可以使用以下SPF最佳实践。

  • 试着在你的SPF记录中按重要性从左到右依次打下你的电子邮件来源
  • 从你的DNS中删除过时的电子邮件来源
  • 使用IP4/IP6机制而不是A和MX
  • 尽可能减少INCLUDE机制的数量,并避免嵌套式包含。
  • 不要在你的DNS中为同一个域名发布一个以上的SPF记录。
  • 确保你的SPF记录不包含任何多余的空白或语法错误。

注意:SPF扁平化不被推荐,因为它不是一次性的。如果你的电子邮件服务提供商改变了他们的基础设施,你将不得不相应地改变你的SPF记录,每次都是如此。

用PowerSPF轻松优化你的SPF记录

你可以继续尝试实施上述所有的修改来手动优化你的 SPF 记录,或者你可以忘记这些麻烦,依靠我们的动态 PowerSPF 来自动完成这一切PowerSPF可以帮助你一键优化你的 SPF 记录,在这里你可以。

  • 轻松地添加或删除发送源
  • 轻松地更新记录,而不必手动修改你的DNS
  • 只需点击一个按钮,就能获得一个优化的自动SPF记录
  • 始终保持在10个DNS查询限制之下
  • 成功地缓解了PermError
  • 忘记SPF记录的语法错误和配置问题
  • 我们代表你解决SPF限制的问题,减轻你的负担

今天就注册 PowerDMARC,永远告别SPF值的限制!