我今天遇到了一个问题,我的邮件服务器未能通过域名验证,并拒绝接受该电子邮件,因为该域名没有A记录。它只有SOA,NS,TXT和MX记录。
由于许多域没有MX,我的服务器像许多其他域一样被编程为在验证时查找A记录。如果A失败被禁用,备用MX查找因此导致失败。
我现在已经启用了冗余,但这个特殊事件让我感到困惑。
域名不应该有A记录吗?
如何对SMTP服务器进行正确的电子邮件域验证,以检查并验证域名?
我一直在寻找关于此的RFC规定,但我无法找到它。
答案 0 :(得分:0)
您是sending
来自此邮件服务器的邮件,而不是此邮件服务器上的receiving
邮件,对吗?如果是这样,那么您不需要指向此计算机的MX记录,但是您需要针对此计算机的DNS设置一些内容。此邮件服务器应具有完全限定的主机名(如smtp.yourdomain.tld),并且此主机名应该有一条A记录,指向此邮件服务器的IP地址。此外,应该有一个IP的PTR记录,它会反转回邮件服务器的主机名。邮件服务器还应使用此主机名向其他邮件服务器(在HELO或EHLO命令中)标识自己。
原因不是基于您在RFC中找到的任何内容。相反,这就是垃圾邮件过滤器尝试将真实邮件服务器与仅用于发送垃圾邮件的服务器区分开来的方式。我们的想法是,真正的邮件服务器将通过上述正向和反向DNS测试,而已经被机器人或僵尸接管的机器不会(因为即使攻击者控制了僵尸机器,他也无法控制DNS机)。
在出站邮件服务器的DNS设置不正确的情况下,来自该服务器的大多数邮件可能会在接收端被标记为垃圾邮件。