组合具有不同 "all" 修饰符的多个 SPF 记录
Combining multiple SPF records that have different "all" modifiers
我继承了一个站点,该站点在多个 TXT 记录中包含多个 SPF 记录(到目前为止,我的所有搜索都告诉我,这些记录几乎是无效的)。
这是我正在处理的记录:
记录 1:v=spf1 include:servers.mcsv.net ?all
记录 2:v=spf1 include:zoho.com ~all
记录 1 似乎是 Mailchimp 记录。我不确定客户端是否使用 Mailchimp。记录 2 显然来自 Zoho,但我确信客户使用的是 Zoho。理想情况下,我想将这两个记录合并为一个。
两条记录提供的 all
值略有不同。记录 1 给我 ?all
,记录 2 给我 ~all
。如果我正确理解语法,~all
应该比 ?all
稍微严格一些,而且我只能有一个 all
值,它必须在记录中排在最后。
如果它们具有完全相同的 all
值,我可以这样做:
v=spf1 include:servers.mcsv.net include:zoho.com ?all
如果我合并记录,我不确定应该使用哪个 all
值或为什么。如果我设置一条记录以 v=spf2
开头,我不确定该服务是否会验证该记录。我一直在搜索,但没有找到任何涉及组合具有不同 all
值的多个 SPF 记录的资源。我应该在这里做什么?
谢谢
If I set one record to start with v=spf2, I'm not sure the service will verify the record.
任何域上只能有一个 SPF 记录。如果设置了多个 SPF 记录,SPF 将 return PermError。参见:RFC 7208
此外,所有SPF记录必须以“v=spf1”开头,其他均无效。
?all
表示 SPF 中性。 SPF 中性可以在 DMARC 中解释为通过或失败,具体取决于您在电子邮件服务器上设置 DMARC 的方式。这通常由您的 DMARC 设置中的标志控制,并且它因 DMARC 包而异。如果您使用 OpenDMARC by Trusted Domain,默认情况下 SPF 中性在 DMARC 中被解释为失败。
~all
表示SPF中的softfail。 SPF softfail 是一个弱声明,表明主机可能未被授权。该域尚未发布导致“失败”的更强大、更明确的政策。这通常是通过将 ~all 机制附加到 SPF 记录来实现的。评估此机制时,任何 IP 地址都会导致 SPF return 软故障结果。
与中性一样,SPF softfail 可以在 DMARC 中解释为通过或失败,具体取决于您在电子邮件服务器上设置 DMARC 的方式。在 OpenDMARC 中,SPF 软失败在 DMARC 中默认解释为失败。
在此 post 中了解更多信息:Why SPF Authentication Fails: none, neutral, fail(hard fail), soft fail, temperror, and permerror Explained
这两者的适当组合是:
v=spf1 include:servers.mcsv.net include:zoho.com ~all
?all
本质上是无用的 - 它几乎等同于根本没有 SPF 记录。
但这还不是全部 - 这条记录看起来不完整。除非您的域 仅 从 mailchimp 和 zoho 发送邮件,否则所有其他邮件都会收到软故障响应,因此如果您使用该域使用自己的邮件服务器从该域发送 "normal" 邮件,您可能想要至少添加 mx
,如果您直接从该域的网站发送任何邮件,您也需要一个 a
机制,给出:
v=spf1 mx a include:servers.mcsv.net include:zoho.com ~all
正如@lgc_ustc所说,DMARC 是一个重要因素。如果您不使用 DMARC,我建议您将 -all
设置为默认机制以从 SPF 中获得最大收益,但如果您[=29] =] 使用 DMARC,将其保留为 ~all
。这是因为一些 SPF 检查器遇到 -all
会立即拒绝邮件,而不是让它们传递到 DMARC 层,在 DMARC 层可以告诉发件人如何处理被拒绝的邮件。
我继承了一个站点,该站点在多个 TXT 记录中包含多个 SPF 记录(到目前为止,我的所有搜索都告诉我,这些记录几乎是无效的)。
这是我正在处理的记录:
记录 1:v=spf1 include:servers.mcsv.net ?all
记录 2:v=spf1 include:zoho.com ~all
记录 1 似乎是 Mailchimp 记录。我不确定客户端是否使用 Mailchimp。记录 2 显然来自 Zoho,但我确信客户使用的是 Zoho。理想情况下,我想将这两个记录合并为一个。
两条记录提供的 all
值略有不同。记录 1 给我 ?all
,记录 2 给我 ~all
。如果我正确理解语法,~all
应该比 ?all
稍微严格一些,而且我只能有一个 all
值,它必须在记录中排在最后。
如果它们具有完全相同的 all
值,我可以这样做:
v=spf1 include:servers.mcsv.net include:zoho.com ?all
如果我合并记录,我不确定应该使用哪个 all
值或为什么。如果我设置一条记录以 v=spf2
开头,我不确定该服务是否会验证该记录。我一直在搜索,但没有找到任何涉及组合具有不同 all
值的多个 SPF 记录的资源。我应该在这里做什么?
谢谢
If I set one record to start with v=spf2, I'm not sure the service will verify the record.
任何域上只能有一个 SPF 记录。如果设置了多个 SPF 记录,SPF 将 return PermError。参见:RFC 7208
此外,所有SPF记录必须以“v=spf1”开头,其他均无效。
?all
表示 SPF 中性。 SPF 中性可以在 DMARC 中解释为通过或失败,具体取决于您在电子邮件服务器上设置 DMARC 的方式。这通常由您的 DMARC 设置中的标志控制,并且它因 DMARC 包而异。如果您使用 OpenDMARC by Trusted Domain,默认情况下 SPF 中性在 DMARC 中被解释为失败。
~all
表示SPF中的softfail。 SPF softfail 是一个弱声明,表明主机可能未被授权。该域尚未发布导致“失败”的更强大、更明确的政策。这通常是通过将 ~all 机制附加到 SPF 记录来实现的。评估此机制时,任何 IP 地址都会导致 SPF return 软故障结果。
与中性一样,SPF softfail 可以在 DMARC 中解释为通过或失败,具体取决于您在电子邮件服务器上设置 DMARC 的方式。在 OpenDMARC 中,SPF 软失败在 DMARC 中默认解释为失败。
在此 post 中了解更多信息:Why SPF Authentication Fails: none, neutral, fail(hard fail), soft fail, temperror, and permerror Explained
这两者的适当组合是:
v=spf1 include:servers.mcsv.net include:zoho.com ~all
?all
本质上是无用的 - 它几乎等同于根本没有 SPF 记录。
但这还不是全部 - 这条记录看起来不完整。除非您的域 仅 从 mailchimp 和 zoho 发送邮件,否则所有其他邮件都会收到软故障响应,因此如果您使用该域使用自己的邮件服务器从该域发送 "normal" 邮件,您可能想要至少添加 mx
,如果您直接从该域的网站发送任何邮件,您也需要一个 a
机制,给出:
v=spf1 mx a include:servers.mcsv.net include:zoho.com ~all
正如@lgc_ustc所说,DMARC 是一个重要因素。如果您不使用 DMARC,我建议您将 -all
设置为默认机制以从 SPF 中获得最大收益,但如果您[=29] =] 使用 DMARC,将其保留为 ~all
。这是因为一些 SPF 检查器遇到 -all
会立即拒绝邮件,而不是让它们传递到 DMARC 层,在 DMARC 层可以告诉发件人如何处理被拒绝的邮件。