我被要求在网络应用上实施一些电子邮件地址验证 - 我确信我们已经在那里进行了一千次......但是,这次我被要求在域上进行MX查找看它是否接受电子邮件。
有人知道这样做有什么潜在的问题吗? mx查找是否是查明域是否接受电子邮件的可靠方法?是否有任何边缘情况,有效的电子邮件地址可能无法进行MX查找检查?
感谢您的建议!
答案 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表示法或主机名