我对SPF记录有一个简短的问题:所有子域都需要它们吗?

让我说我有一个domain.com的带有SPF信息的TXT记录

也说我为subdomain.domain.com拥有一个单独的电子邮件域

domain.com的SPF政策/信息是否也适用于子域?还是我也需要为此添加单独的TXT记录?

评论

请注意,您可以为子域设置通配符SPF:在下面搜索通配符。

#1 楼

对于每个要发送邮件的子域,您都需要有单独的SPF记录。

以下内容最初发布在openspf.org上,它曾经是此类事情的重要资源。


恶魔问题:子域如何?

如果我收到来自
pielovers.demon.co.uk的邮件,并且没有用于Pielovers的SPF数据,我应该
回到上一级并测试demon.co的SPF。 .uk?否。
Demon的每个子域都是一个不同的客户,每个客户可能都有自己的
策略。默认情况下,Demon的政策不适用于其所有
客户,这是没有道理的;如果Demon想要这样做,则可以为每个子域设置SPF
记录。

因此,给SPF发布者的建议是:您应该为每个子域添加一个SPF记录
。具有A或MX记录的子域或主机名。

具有通配符A或MX记录的站点也应具有通配符SPF
记录,其格式为:* IN TXT“ v = spf1-全部”


这很有意义-子域很可能位于不同的地理位置,并且具有非常不同的SPF定义。

SPF的'include:'指令可用于为所有子域提供相同的条目。例如,在子域mailfrom.example.com的SPF记录中,输入“ include:example.com”。以这种方式,只要您更新example.com的定义,您的子域就会自动选择更新后的值。

评论


链接到openspf不适用于我的atm,但是幸运的是,互联网档案馆涵盖了我们:web.archive.org/web/20190129091342/http://www.openspf.org/FAQ/…

– Legolas
19年3月19日在8:34

#2 楼

除了其他答案外,如果将子域创建为CNAME记录,则SPF记录就是其指向的域的子记录,例如。 sub.domain.comotherdomain.com的CNAME,邮件服务器在查找时将获得的SPF mail@sub.domain.comotherdomain.com的DNS记录中。

如果CNAME记录说sub.domain.com,则实际上是相同的=> othersub.domain.com,因此您的TXT记录需要为othersub,而不是sub。这与DKIM相反,后者需要一个单独的TXT记录来存储公钥,即使您的子域是CNAME也是如此。

#3 楼

但是请注意,正如在接受的答案中引用的FAQ中所说的那样,您可以为通配符A或MX记录的域使用通配符SPF。我有通配符MX域,它对我有用:

*.mydomain.org. 3600 IN  TXT  "v=spf1 ip4:IPADDR -all"


,其中IPADDR替换为您的IP地址/范围。

#4 楼

否,但是您可以使用include:maindomain.invalid指令将其短路。

评论


您能详细说明一下吗?我很好奇...该指令如何工作?

– Mike B
2011年10月19日在17:55

#5 楼

如果垃圾邮件发送者使用dDNS中已经存在的子域,则上述
*.mydomain.org. 3600 IN  TXT  "v=spf1 ip4:IPADDR -all" 


不起作用。例如,在这种情况下,www.domain.com A A记录了通配符。

#6 楼

请注意,include语句仅包含来自指定域的A记录,也不包含子域。因此,它不会从子域中拾取A记录,因此仅当所有子域都在同一服务器上或从同一服务器发送时,它才起作用。

评论


我认为这个答案根本与问题无关(涉及SPF记录,即TXT)?

–费利克斯·弗兰克(Felix Frank)
14年6月16日在11:48

我认为此答案中的警告是关于以下情况的:1)顶级域指定了包含“ a”的SPF记录2)子域包括了顶级域SPF,希望获得完全相同的一组IP地址,但实际上提取了子域A记录。

–亚当斯
17年3月18日在16:38

@AdamS,实际上相反。假设:•example.com A返回192.168.0.10; •example.com TXT返回v = spf1 a -all; •sub.example.com A返回192.168.0.20; •sub.example.com TXT返回v = spf1 include:example.com -all。然后,允许sub.example.com的邮件仅从192.168.0.10发送。

–Jivan Pal
20 Dec 30'0:19