这个问题不是关于如何防范垃圾邮件或验证特定电子邮件用户。而是通过反向 DNS 验证电子邮件域(它是否存在)的可靠性如何。这种方法的缺陷是什么?
在这部分我不关心它是否是垃圾邮件地址,我只想知道域是否存在并且是否能够接收和发送电子邮件。
就像标题一样,这个检查有多可靠。我想验证电子邮件域名(如果存在)。我在程序员论坛上问过类似的问题,但我无法得到完整的答案,所以我认为这个论坛更适合回答这样的问题。
世界上每台服务器的 MX 记录都是公开的吗?或者有可能存在隐藏其 MX 记录的服务器,即使电子邮件有效,检查也会失败。
我知道,而且我已经测试过,只检查电子邮件域,不检查用户部分。我只是不知道它有多可靠。是否总是可以检查服务器 MX 记录。
经过进一步研究,我发现有些服务器使用 MTA 之类的东西进行邮件交换,而这些服务器不使用 MX 记录。如果我检查 A/AAAA 记录,这样就足够了吗?
答案1
完全不可靠,并且会为大量合法电子邮件失败。期望发送域邮件的服务器也配置为接收域电子邮件是一种很可能是错误的假设。
例如,许多应用程序将通过第三方电子邮件发送服务(如亚马逊 SES 或谷歌应用)发送电子邮件。这些通常是仅发送服务。在这种情况下,移动应用程序通过 SES 发送,但 mx 记录将指向完全不同的地方,即本地交换。
“连接到我的主机是否被授权代表其所传递的电子邮件的发件人发送电子邮件?” 最好通过 DKIM 和 SPF 来解决。请改用这些技术。
答案2
检查给定域上的 MX 记录以确定该域是否可以接受电子邮件是一个不错的开始,但您必须记住,MX 记录中列出的服务器可能不存在或可能出于某种原因不接受邮件。您必须建立测试 SMTP 连接并开始 SMTP 会话的基本操作(例如,尽可能远RCPT TO
)才能知道服务器是否有可能接受您的邮件。如果有多个 MX 记录,您必须测试所有服务器,直到找到一个看起来不错的服务器。
MX 记录并不能表明域名是否可能发送电子邮件。理论上,任何包含使用 SMTP 的主机的域都可以发送消息。我认为 DNS 中存在 SPF 记录可能表示域已正确设置为发送邮件,但不能依赖。