某域名向我方发信,该域名正确配置了SPF,但仍然校验失败导致对方被退信。
Co***ail.com向MiYou客户vpi***ong.com发的邮件,产生退信。技术人员首次排查,发现无该域名配置了spf解析,但通过spf配置却无法解析到其服务端正确的ip地址,初步判定为对方SPF配置异常导致校验不通过。
先抛出解决方案如下:配置我方邮件服务器主DNS解析为223.5.5.5.5(阿里云解析),次DNS解析为8.8.8.8,再次请对方向我方发送邮件,不再退信,可以正常接收。
发信方用的实际邮件服务商是corp-email.com,分析有这两个问题:
使用第三方验证工具去验证该域名的spf配置是否正常:正常,可以验证通过
本地验证该域名spf配置是否正常,不正常,无法查询到ip信息。
对方txt解析中,spf include的的_s.corp-email.com的,无法查不到最终配置的和IP相关的信息
Authoritative answers can be found from:
> sa1.corp-email.com
Server: 192.168.31.1
Address: 192.168.31.1#53
Non-authoritative answer:
*** Can't find sa1.corp-email.com: No answer
查询其mx记录指向的IP的反向解析,无法查询反向解析记录,通过第三方的校验工具也无法查到。
本地和第三方的两种截然不同的查询结果使得问题分析一时陷入了僵局,无奈之后尝试在阿里云和华为云上再次查询该域名的spf解析,居然也是都可以查询到,这和第三方的查询记录相吻合。
怀疑是我方邮件服务器和本地环境的DNS配置同云服务器有什么不同,于是将本地环境DNS设置首选设置为阿里云的dns解析223.5.5.5,次dns设置为8.8.8.8
本地测试通过,可以正常验证该域名的spf配置。
再次测试,配置主域名dns为114.114.114.114,次dns设置为8.8.8.8,本地测试失败,无法正常验证域名的spf配置,报错日志同邮件服务器。
跟踪SPF验证代码,发现在114.114.114.114解析下,对该域名查询spf记录时,能够正常返回,但spf配置为空,程序抛出SPF配置不正确的异常,验证失败。但在223.5.5.5作为主dns记录时,首次查询该域名的spf配置返回超时异常,然后又会继续尝试用次dns解析,即使用8.8.8.8再次解析,此时能够正常解析成功。
修改我方邮件服务器DNS配置为223.5.5.5/8.8.8.8,再次请对方向我方发送邮件,能够正常接收成功,不再退信。
问题解决。