应该使用使用DNS/MX记录的电子邮件验证吗?

问题描述:

我注意到大多数用于电子邮件验证的脚本不使用DNS信息来确保给定的域实际存在。应该使用使用DNS/MX记录的电子邮件验证吗?

是什么,为什么一个可能不使用DNS检查的原因?

它真的能减少假冒的电子邮件的数量或使形式更便于使用?

例片段:

$host = explode('@', $email); 
if(checkdnsrr($host[1].'.', 'MX')) return true; 
if(checkdnsrr($host[1].'.', 'A')) return true; 
if(checkdnsrr($host[1].'.', 'CNAME')) return true; 

大多数的网站,特别是那些保留登录信息,发送确认电子邮件您注册之后。这不仅确认电子邮件地址是有效的,而且确认电子邮件地址属于提交者。有一个DNS查找将是多余的,除非你想给用户打电话,他们拼错了他们的电子邮件地址。

如果我想输入一个虚假的电子邮件地址,[email protected](AAA,汽车俱乐部)和[email protected](来自RFC 2606)都会通过。我认为DNS查找不会像您想象的那样捕获尽可能多的虚假地址。

这可能是缓慢的这样做。如果你在表单中进行DNS验证,那么在表单提交之前以某种方式使用AJAX开始验证是明智的。

除此之外,您的支票将在具有文字IP地址的地址上失败,但个人而言,我不想接受我的Web表单上的那些。我不在乎,如果他们符合RFC822)

它使你的邮件服务器很容易拉断的DOS攻击。

+0

好点。如果一些垃圾邮件发送者不断提交表单,我的服务器将会处理太多。 – 2009-07-11 01:44:57

+0

缓存结果可能会减轻这种压力 – rojoca 2009-07-11 05:02:44