Rob*_*ert 36 dns smtp spf mailchimp sendgrid
我的网站需要使用Google Apps,SendGrid和MailChimp服务发送电子邮件.Google Apps用于接收和阅读我的域中的传入电子邮件.
我需要为我的域设置SPF记录.以下语法正确(不确定A和MX标记):
"v = spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all"
但如果我用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记录?
Swi*_*ift 68
所以,我以前从来没有这么做过,但根据你发来的文章,这就是我想出来的.
我们开始:
v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all
Run Code Online (Sandbox Code Playgroud)
在我们抛出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
Run Code Online (Sandbox Code Playgroud)
因此,即使没有遵循包含的SPF记录,我们也有7次查找.
现在,让我们深入了解一个级别.
Google SPF记录的评估结果为:
v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all
Run Code Online (Sandbox Code Playgroud)
每个都解析为以下值:
# _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
Run Code Online (Sandbox Code Playgroud)
所以谷歌给了我们2次查找,总共最多9次查询.
Mailchimp有点愚蠢,因为它增加了3个额外的查找:
v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all
Run Code Online (Sandbox Code Playgroud)
我想,根据您通过Mailchimp发送的内容,您可以删除其中一条或两条记录(但您必须自己评估).
无论如何,这些决心解决了以下问题:
# 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
Run Code Online (Sandbox Code Playgroud)
这给我们带来了总共12个Lookup(已超过限制的两个).
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
Run Code Online (Sandbox Code Playgroud)
所以这里唯一的额外查找是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
Run Code Online (Sandbox Code Playgroud)
这使我们的总计最多14次查找.
所以我们的总计是14个Lookups.我们需要将其降低到10.我已经在下面列出了几个选项,您可能需要使用其中的一个来降低它.
直接包含一些重定向的spf记录.现在我们知道spf记录重定向到哪些服务器,你可以删除中间人并直接包含它们. 注意:如果任何服务最终更改其SPF记录,您将必须手动更新您的SPF记录.
删除您正在使用的一些服务.不确定您拥有所有这些服务的用例,但肯定会有一些重叠您可以使用.例如,SendGrid支持(1)交易外发邮件,(2)时事通讯/营销电子邮件,以及(3)传入邮件.因此可能存在一些可简化的冗余.
如果MX记录是多余的,请将其删除.根据您的设置,MX查找可能是多余的.
希望这可以帮助!
斯威夫特的答案很棒.
上面没有提到的技术是查看具有自己的SPF记录的单独子域是否可以用于通过这些不同路由发送邮件的系统.
例如,如果域名是example.com,谷歌应用程序发送地址,如user@gapps.example.com.然后可以有一个gapps.example.com包含的SPF记录_spf.google.com,并且_spf.google.com可以从主example.comSPF记录中删除,这会使查找减少3.
| 归档时间: |
|
| 查看次数: |
41230 次 |
| 最近记录: |