java:如何在不发送确认电子邮件的情况下验证电子邮件地址是否有效?

时间:2010-03-01 14:06:56

标签: java email-verification

当人们注册我的网站时我不想向他们发送验证电子邮件,我只想检查该电子邮件是否存在。有没有办法做这样的事情?

使用apache-tomcat和java作为我的主要编程语言。

非常感谢!

9 个答案:

答案 0 :(得分:16)

没有。无法判断电子邮件地址是否指向有效目的地。您可以检查基本语法,并且该域在DNS中有记录,但这就是全部。

答案 1 :(得分:9)

您可以使用最高regex来检查地址是否在语法上有效和/或在域名有效时查找MX records,但这仍然不能保证电子邮件地址是合法的并且属于相关注册人。实际上没有比在短时间内发送简历邮件和等待确认更可靠的方式了。

答案 2 :(得分:6)

我只是想权衡并说尽管你不愿意这样做,但请发送电子邮件并强制用户确认他们已控制它,然后再允许该电子邮件地址与您的帐户相关联现场。为什么?因为没有这样做,无论出于何种原因,意味着用户可以使用不属于他们的电子邮件地址注册帐户。他们可能会意外地这样做,或者他们可能会故意这样做(例如,出于各种原因为其他人签名);这不是犹太人,允许它的网站可以向他们的ISP报告。

(我说这是一个Gmail帐户的所有者,该帐户每月至少有两到三次注册某个网站的帐户,不会强迫用户以这种方式确认他们的电子邮件地址。这是令人恼火,它将责任放在 me 上,以便从违规网站上删除帐户。我现在已经开始恢复任何密码,登录帐户,然后将电子邮件地址更改为“UNKNOWN@gmail.com”或类似的东西......这很有趣,但我怀疑你希望在你的网站上发生这种情况。)

答案 3 :(得分:5)

与一些未受过教育的答案相反,您可以尝试并连接到MX服务器并使用VRFY命令查看服务器是否支持它。这是一个website,它将为您做这个例子。如果您查看与MX服务器的交换,它实际上会尝试发送电子邮件,但在实际发送之前会执行重置。使用我的电子邮件地址进行测试有效,但我没有收到电子邮件。所以是的,你可以做其他人说你做不到的事。使用您知道适用于您的域的地址,然后使用您不支持的地址。您将在最后一个RCTP TO命令中获得550。这就是你知道它不存在的方式。

答案 4 :(得分:3)

这已经在之前的问题中得到了解答。如果没有验证电子邮件,您可以做的最好的事情就是查看电子邮件地址并查看它是否有效。您还可以检查域等内容,以查看它是否存在并具有MX记录。无论如何,请参阅https://stackoverflow.com/questions/3232/how-far-should-one-take-e-mail-address-validationUsing a regular expression to validate an email address

答案 5 :(得分:1)

如果您只是想验证它看起来像一个有效的电子邮件地址,那么有许多示例正则表达式会验证这一点。如果您想验证用户是否可以控制电子邮件地址,您需要向其发送内容并制作独特的响应以进行验证。

答案 6 :(得分:1)

答案 7 :(得分:1)

您可以使用openid服务检查valid电子邮件地址,如stackoverflow那样。

http://openid.net/

答案 8 :(得分:0)

Email Verification services在验证电子邮件地址方面非常有用。其中大多数执行6级验证,如语法验证,域MX记录检查,基于角色的帐户检测,一次性电子邮件地址(DEA)检测,HoneyPot /垃圾邮件跟踪检测和深层SMTP验证。

其中大多数都提供API集成,因此,您可以直接验证应用程序中的电子邮件地址。

相关问题