Dns 组合具有不同“属性”的多个SPF记录;“全部”;修饰语

Dns 组合具有不同“属性”的多个SPF记录;“全部”;修饰语,dns,spf,Dns,Spf,我继承了一个站点,该站点在多个TXT记录中包含多个SPF记录(在这一点之前,我所有的搜索都告诉我,这些记录是无效的) 以下是我正在处理的记录: 记录1:v=spf1包括:servers.mcsv.net?全部 记录2:v=spf1包括:zoho.com~all 记录1似乎是Mailchimp记录。我不确定客户是否在使用Mailchimp。记录2显然来自Zoho,但我确信客户正在使用Zoho。理想情况下,我想把这两张唱片合并成一张 两条记录提供的all值略有不同。记录1给我?all,记录2给我~

我继承了一个站点,该站点在多个TXT记录中包含多个SPF记录(在这一点之前,我所有的搜索都告诉我,这些记录是无效的)

以下是我正在处理的记录:
记录1:
v=spf1包括:servers.mcsv.net?全部
记录2:
v=spf1包括: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
值或为什么。如果我将一条记录设置为以
v=spf2
开头,我不确定服务是否会验证该记录。我一直在搜索,没有找到任何涉及组合具有不同
all
值的多个SPF记录的资源。我在这里该怎么办

谢谢

如果我将一条记录设置为以v=spf2开头,我不确定服务是否会验证该记录

任何域上只能有一个SPF记录。如果设置了多个SPF记录,SPF将返回PermError。见:

此外,所有SPF记录必须以“v=spf1”开头,其他所有记录均无效

?所有
表示SPF中的中性。SPF中性在DMARC中可以解释为通过或失败,这取决于您在电子邮件服务器上设置DMARC的方式。这通常由DMARC设置中的标志控制,并且在DMARC软件包中有所不同。如果使用,默认情况下,在DMARC中SPF neutral将被解释为失败

~all
表示SPF中的软故障。SPF softfail是主机可能未经授权的弱声明。该领域尚未发布导致“失败”的更强有力、更明确的政策。这通常通过在SPF记录中附加~all机制来实现。评估此机制时,任何IP地址都将导致SPF返回softfail结果

与neutral一样,SPF softfail可以在DMARC中解释为通过或失败,具体取决于您在电子邮件服务器上设置DMARC的方式。在OpenDMARC中,SPF softfail在DMARC中默认解释为失败

在本帖中了解更多信息:



这两者的适当组合是:

v=spf1 include:servers.mcsv.net include:zoho.com ~all
?所有的
基本上都是无用的——这相当于根本没有SPF记录

但这并不是全部——这张记录看起来不完整。除非您的域仅从mailchimp和zoho发送邮件,否则所有其他邮件都将收到softfail响应,因此,如果您使用自己的邮件服务器从该域发送“普通”邮件,您可能需要添加至少
mx
,如果您直接从域的网站发送任何邮件,您也需要
a
机制,提供:

v=spf1 mx a include:servers.mcsv.net include:zoho.com ~all

正如@lgc_ustc所说,DMARC是一个重要因素。如果您不使用DMARC,我建议将
-all
设置为默认机制,以从SPF中获得最大的好处,但如果您使用的是DMARC,则将其保留为
~all
。这是因为一些SPF检查程序遇到
-all
时会立即拒绝邮件,而不是让邮件传递到DMARC层,在那里可以告诉发件人如何处理被拒绝的邮件。

这是信息性的,谢谢您回答我的问题。哦,很有趣。我可以发誓,我偶然发现一些东西,上面说SPF记录可以是v=spf1,v=spf2,等等。谢谢你解释了这一点。你可能说的是发件人ID,它不是SPF。