检查电子邮件地址是不是存在

Posted

技术标签:

【中文标题】检查电子邮件地址是不是存在【英文标题】:Checking existence of email address检查电子邮件地址是否存在 【发布时间】:2016-04-06 11:30:41 【问题描述】:

我正在开发一个带有聊天支持的 Web 应用程序,到目前为止,我一直在使用 JQuery 验证来检查输入文本是否是格式正确的电子邮件地址。

但这似乎并没有达到目的。

例如:

    输入有效且合法的电子邮件地址,例如 myname@gmail.com 输入虚假/随机电子邮件地址,例如 abcd@something.com

两者都被视为有效。

那么有没有办法通过使用 php(或任何其他)而不向用户发送click-to-confirm 电子邮件来检测指定的电子邮件地址在现实生活中是否存在?

我尝试了other question 中讨论的 SMTP 方法,但不幸的是,服务器对所有电子邮件地址都返回了错误,甚至是合法的。我认为他们出于安全目的阻止了枚举。

任何帮助将不胜感激。 :)

【问题讨论】:

How to check if an email address exists without sending an email?的可能重复 superuser.com/a/224020 如果有一种可靠的方法可以让任何人检查电子邮件地址是否存在,那确实会让垃圾邮件发送者的生活变得非常轻松。相反,问问自己为什么拥有一封有效的电子邮件如此重要,以及解决该特定需求的方法。 【参考方案1】:

不,如果不发送实际电子邮件,就无法可靠地检查电子邮件地址是否确实存在。您可以自己做的就是检查电子邮件地址的语法并检查域名是否存在。

检查电子邮件地址语法:

filter_var($email, FILTER_VALIDATE_EMAIL)

检查 A 和 MX 记录:

checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")

下一步是发送带有确认 URL 或确认代码的实际电子邮件。

【讨论】:

是的,到目前为止,我一直在发送 confirmation URL 类型的电子邮件,但用户似乎不太喜欢它,因为每次他们都需要启动一个聊天,他们需要等待邮件,并验证,这有点不方便。 @SnazzySanoj 是的,这很不方便,但没有真正的解决方法。此外,每个用户对每个唯一的电子邮件地址只应执行一次此操作。

以上是关于检查电子邮件地址是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

检查电子邮件地址是不是存在[重复]

使用电子邮件地址检查 PayPal 帐户是不是存在?

检查数据库中是不是已存在电子邮件地址

我可以使用 .net 检查电子邮件地址是不是存在吗?

如何检查电子邮件是不是确实存在

检查电子邮件是不是有效且存在