我的网站需要发送电子邮件与谷歌应用程序,SendGrid和MailChimp服务。谷歌应用程序是用来接收和阅读收到的电子邮件到我的域名。
我需要为我的域名设置SPF记录。以下内容在语法上是正确的(不确定A和MX标记):
“include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~v=spf1 a mx”
但是如果我用http://www.kitterman.com/getspf2.py测试它
PermError SPF永久错误: DNS查找过多
与http://www.onlineaspect.com/2009/03/20/too-many-dns-lookups-in-an-spf-record/相似的问题
如何优化/重写我的SPF记录?
发布于 2013-01-10 16:37:02
所以,我以前从来没有这样做过,但根据你发来的那篇文章,这是我想出来的。
我们一开始是:
v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all在抛出Too many DNS lookups错误之前,我们总共查找了10次:
2 (Initial TXT & SPF Lookups)
2 (a & mx Lookups)
1 (_spf.google.com)
1 (servers.mcsv.net)
+1 (sendgrid.net)
-----------------
7 Lookups因此,即使没有跟踪包括SPF记录,我们有7个查找。
现在,让我们跳得更深一点。
1. _spf.google.com
google SPF记录的计算结果为:
v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all它们中的每一个都解析为以下值:
# _netblocks.google.com
v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 ?all
# _netblocks6.google.com
v=spf1 ip6:2607:f8b0:4000::/36 ip6:2a00:1450:4000::/36 ?all因此,谷歌给我们提供了两个更多的查找,使总数达到9查找。
2. servers.mcsv.net
Mailchimp有点像个doosey,因为它增加了3个额外的查找:
v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all我可以想象,根据您通过Mail黑猩猩发送的内容,您可能可以删除其中的一两条记录(但您必须自己评估)。
总之,这些决心如下:
# spf1.mcsv.net
v=spf1 ip4:207.97.237.194/31 ip4:207.97.238.88/29 ip4:207.97.240.168/29 ip4:69.20.10.80/29 ip4:69.20.41.72/27 ip4:74.205.22.1/27 ip4:69.20.90.0/26 ?all
# spf2.mcsv.net
v=spf1 ip4:204.232.163.0/24 ip4:72.26.195.64/27 ip4:74.63.47.96/27 ip4:173.231.138.192/27 ip4:173.231.139.0/24 ip4:173.231.176.0/20 ip4:205.201.128.0/24 ?all
# spf.mandrillapp.com
v=spf1 ip4:205.201.136.0/24 ip4:205.201.137.0/24 ?all这就使我们总共得到了12查找(这已经超出了限制)。
2. sendgrid.net
最后,SendGrid是我们额外查找的最少数量。
v=spf1 ip4:208.115.214.0/24 ip4:74.63.202.0/24 ip4:75.126.200.128/27 ip4:75.126.253.0/24 ip4:67.228.50.32/27 ip4:174.36.80.208/28 ip4:174.36.92.96/27 ip4:69.162.98.0/24 ip4:74.63.194.0/24 ip4:74.63.234.0/24 ip4:74.63.235.0/24 include:sendgrid.biz ~all因此,这里唯一的附加查找是sendgrid.biz,它的计算结果为:
v=spf1 ip4:208.115.235.0/24 ip4:74.63.231.0/24 ip4:74.63.247.0/24 ip4:74.63.236.0/24 ip4:208.115.239.0/24 ip4:173.193.132.0/24 ip4:173.193.133.0/24 ip4:208.117.48.0/20 ip4:50.31.32.0/19 ip4:198.37.144.0/20 ~all这使我们的总数达到14次查询。
所以我们的总计是14查找。我们需要把它降到10。我已经概述了下面的几个选项,你可能需要使用其中的一个以上的方法来降低它。
希望这能有所帮助!
发布于 2015-12-22 14:51:23
斯威夫特的回答很好。
上面没有提到的一种技术是查看具有自己SPF记录的单独子域是否可以用于通过这些不同路由发送邮件的系统。
例如,如果域名是example.com,那么让谷歌应用程序从user@gapps.example.com这样的地址发送。然后,gapps.example.com可以有包含_spf.google.com的SPF记录,并且可以从主example.com SPF记录中删除_spf.google.com,从而减少查找3。
发布于 2015-04-19 16:51:43
看看SPF-工具*,它帮助将SPF记录从使用包含的原始记录重新组装为静态记录,仅包含ip4和ip6字段。它可以很容易地与本地运行的DNS服务器或托管DNS服务结合在一起,使用它们的API来保持所有内容与上游包含的同步。
*我是作者(现在和其他贡献者一起),它在Apache2.0许可下是开源的。
https://stackoverflow.com/questions/14261214
复制相似问题