电子邮件验证MX Lookup

时间:2009-11-03 11:43:52

标签: email email-validation

我被要求在网络应用上实施一些电子邮件地址验证 - 我确信我们已经在那里进行了一千次......但是,这次我被要求在域上进行MX查找看它是否接受电子邮件。

有人知道这样做有什么潜在的问题吗? mx查找是否是查明域是否接受电子邮件的可靠方法?是否有任何边缘情况,有效的电子邮件地址可能无法进行MX查找检查?

感谢您的建议!

2 个答案:

答案 0 :(得分:7)

  

是否有任何边缘情况,有效的电子邮件地址可能无法通过MX查询检查?

是的,在没有MX记录的地方,MTA会回归到使用A记录。因此,只允许MX记录会使在现实世界中工作的一类邮件服务器失败。

允许使用MX A记录的任何名称至少检测到导致NXDOMAIN的明显错误输入。然而,它仍然允许最终在寮屋站点的错误排序。 A记录解析的地址的另一个步骤可能是检查端口25接受该地址上的连接的位置。

答案 1 :(得分:2)

您只能检查是否有为域注册的邮件服务器。

如果服务器也接受邮件,并且地址是有效的(在语法上,但在某种意义上说它存在收件箱等等),你只能在发送邮件时找到它。注册电子邮件

如何在PHP中执行此操作的示例

function mailserver_exists($email) {
 list($user,$domain) = split('@',$email);
 //included check for 'A' after [comment from bobince][1]
 return checkdnsrr($domain,'MX') || checkdnsrr($domain,'A');
}
if(domain_exists('joe@foreigndomain.xx')) {...} else {...}

是的,您也可以使用'TinyTim@192.184.165.13'checkdnsrr(host, type)个州的PHP文档

  

主机可以是其中的IP地址   dotted-quad表示法或主机名