SPF Permanent Error: Void lookup limit of 2 exceeded的解决方法

2017/3/4 20:08:23      点击:

今天,一个主机服务商说,他们的邮件发送给163.com都退信了,出现550 MI:SPF 163 mx...的提示内容。于是我检查了一下SPF的设置,是v=spf1 a mx -all正常情况来说,这个设置是100%符合标准的设置,但是为什么会出现上面的错误提示呢?为了更好的分析问题,我发了一封测试的邮件到mail-tester,通过邮件源信息,发现了错误的提示是:Received-SPF: Permerror (SPF Permanent Error: Void lookup limit of 2 exceeded)这就是说明,在查询SPF对于的TXT记录的时候,出现了错误。通过查询该主机商的域名记录,发现使用了腾讯CDN加速,进一步查询发现,CDN使用了多级CNAME,也就是说:主机商域名-->CDN CNAME-1-->CDN CNAME-2-->CDN加速IP,中间有两层的别名。在查询类型中,A记录是1,MX记录是15,TXT是16,CNAME是5,主NS是2,次NS是6,因为域名下只有CNAME记录而没有A记录,所以查询出错导致中断查询。

解决上面的问题,可以做以下修改,假如域名是domain.com,它的MX指向mail.domain.com。公网IP是2.2.2.2

v=spf1 ip4:2.2.2.2 -all (通过IP4方式,直接申明发信的IP,查询量最小)

v=spf1 a:mail.domain.com -all (直接说明查询mail.domain.com的对应的A记录)

v=spf1 mx -all (需要查询域名的MX指向,然后再查询这个指向对应的IP)

以上三个不同的设置,都是可以的,但是查询量逐步放大