检查邮件Id是否存在于PHP中


Check Email Id exist or not in PHP

我试图检查电子邮件Id是否存在或不使用php。我查了很多例子,文章,比如https://code.google.com/archive/p/php-smtp-email-validation/https://github.com/webdigi/SMTP-Based-Email-Validation/blob/master/checkemailexample.php。所有的看起来都一样。所有的工作完美的情况下,gmail,但不能正常工作在其他邮件服务,如雅虎等。有没有办法在发送邮件前检查一下所有的邮箱id ?

我还没有找到一个好的验证工具。最好的方法是验证格式是否正确。然后,为了测试它,向用户发送一条消息,并要求他们执行某种链接到您的站点的操作。您可以轻松地使用php和数据库来记录用户何时与您的站点交互。然后,您将确定该地址是有效的,并且是针对您想要的用户的。这也是避免被标记为垃圾邮件的最佳实践。

这是我发现的最好的jQuery脚本来验证格式:

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^((([a-z]|'d|[!#'$%&''*'+'-'/='?'^_`{'|}~]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])+('.([a-z]|'d|[!#'$%&''*'+'-'/='?'^_`{'|}~]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])+)*)|(('x22)(((('x20|'x09)*('x0d'x0a))?('x20|'x09)+)?((['x01-'x08'x0b'x0c'x0e-'x1f'x7f]|'x21|['x23-'x5b]|['x5d-'x7e]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])|(''(['x01-'x09'x0b'x0c'x0d-'x7f]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF]))))*((('x20|'x09)*('x0d'x0a))?('x20|'x09)+)?('x22)))@((([a-z]|'d|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])|(([a-z]|'d|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])([a-z]|'d|-|'.|_|~|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])*([a-z]|'d|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])))'.)+(([a-z]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])|(([a-z]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])([a-z]|'d|-|'.|_|~|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])*([a-z]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])))'.?$/i);
    return pattern.test(emailAddress);
};

连接,发出RCPT TO并断开连接很可能使您被雅虎等公司列入黑名单。唯一可靠的方法就是继续发送你想要发送的信息。如果它成功了,很好,如果没有,你最好有一个反弹处理程序准备好接收反弹,处理它,然后你就知道下次了。

显然,你可以通过简单的RFC验证预先消除一些地址,例如使用PHP的filter_var函数,因为任何失败的东西都不太可能交付,你也可以查看一个域是否存在,是否可以接收邮件-检查DNS中是否存在MX和a记录-但除此之外,你不能告诉没有真正发送消息。