【发布时间】:2011-01-22 07:32:08
【问题描述】:
当人们注册到我的网站时,我不想向他们发送验证电子邮件,我只想检查该电子邮件是否存在。有没有办法做这样的事情?
使用 apache-tomcat 和 java 作为我的主要编程语言。
非常感谢!
【问题讨论】:
-
您不能强制任何电子邮件服务器确认存在有效邮箱并且有人查看它。
当人们注册到我的网站时,我不想向他们发送验证电子邮件,我只想检查该电子邮件是否存在。有没有办法做这样的事情?
使用 apache-tomcat 和 java 作为我的主要编程语言。
非常感谢!
【问题讨论】:
没有。无法判断电子邮件地址是否指向有效目的地。您可以检查基本语法,并且该域在 DNS 中有记录,仅此而已。
【讨论】:
您最多可以使用regex 来检查地址在语法上是否有效和/或查找MX records 如果域有效,但这仍然不能保证电子邮件地址是合法的并且属于有问题的注册人。真的没有比发送验证邮件并在短时间内等待确认更可靠的方法了。
【讨论】:
与一些未受过教育的答案相反,您可以尝试连接到 MX 服务器并使用 VRFY 命令查看服务器是否支持它。这是一个website,它将作为示例为您执行此操作。如果您查看它与 MX 服务器的交换,它实际上会尝试发送电子邮件,但在实际发送之前会执行 RESET。用我的电子邮件地址测试它有效,但我没有收到电子邮件。所以是的,你可以做其他人说你不能做的事情。使用您知道适用于您的域的地址,然后使用您不支持的地址。您将在最后一个 RCTP TO 命令上获得 550。这样你就知道它不存在了。
【讨论】:
我只是想权衡一下,尽管您不愿意这样做,请发送一封电子邮件并强制用户确认他们可以控制它,然后才允许将该电子邮件地址与您的帐户关联使用地点。为什么?因为出于任何原因不这样做意味着用户可以使用不属于他们的电子邮件地址注册帐户。他们可能会这样做是偶然的,或者他们可能是故意这样做的(例如,出于各种原因为他人注册帐户);这就是不洁净,允许它的网站可以向其 ISP 报告。
(我说这是作为 Gmail 帐户的所有者,该帐户每月至少注册两到三次,在某些网站上注册了一个帐户,该帐户不会强制用户以这种方式确认他们的电子邮件地址。它是烦人,并且它让 我 有责任从违规网站上删除该帐户。我现在已经开始尝试恢复所有密码,登录该帐户,然后将电子邮件地址更改为“UNKNOWN@gmail.com”或类似的东西......这很有趣,但我怀疑你是否希望这发生在你的网站上。)
【讨论】:
这已经在之前的问题中得到了回答。如果没有验证电子邮件,您能做的最好的事情就是查看电子邮件地址,看看它是否有效。您还可以检查诸如域之类的内容,以查看它是否存在并具有 MX 记录。无论如何,请参阅 https://stackoverflow.com/questions/3232/how-far-should-one-take-e-mail-address-validation 和 Using a regular expression to validate an email address
【讨论】:
如果您只是想验证它看起来像一个有效的电子邮件地址,那么有许多示例正则表达式可以验证这一点。如果您想验证用户对电子邮件地址的控制权,您需要向它发送一些内容并制作一个独特的回复来验证它。
【讨论】:
【讨论】:
您可以像 stackoverflow 一样使用 openid 服务来检查有效的电子邮件地址。
【讨论】:
Email Verification services 在验证电子邮件地址方面非常有用。他们中的大多数执行 6 个级别的验证,如语法验证、域 MX 记录检查、基于角色的帐户检测、一次性电子邮件地址 (DEA) 检测、HoneyPot/垃圾邮件跟踪检测和深度 SMTP 验证。
它们中的大多数都提供 API 集成,因此,您可以直接从您的应用程序验证电子邮件地址。
【讨论】: