8

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

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

多谢!

4

9 回答 9

17

不可以。无法判断电子邮件地址是否指向有效目的地。您可以检查基本语法,并且该域在 DNS 中有记录,仅此而已。

于 2010-03-01T14:10:04.390 回答
8

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

于 2010-03-01T14:10:47.600 回答
6

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

于 2010-03-01T17:12:53.387 回答
6

我只是想权衡一下,尽管您不愿意这样做,请发送一封电子邮件并强制用户确认他们可以控制它,然后才允许将该电子邮件地址与您网站上的帐户相关联。为什么?因为不这样做,出于任何原因,意味着用户可以使用不属于他们的电子邮件地址注册帐户。他们可能这样做是偶然的,或者他们可能是故意这样做的(例如,出于各种原因为他人注册帐户);这只是不洁净,允许它的网站可以向其 ISP 报告。

(我这样说是作为 Gmail 帐户的所有者,该帐户每月至少注册 2 到 3 次,在某些网站上注册一个帐户,该帐户不会强迫用户以这种方式确认他们的电子邮件地址。这很烦人,而且它让有责任从有问题的网站上删除该帐户。我现在已经开始尽我所能恢复任何密码,登录该帐户,然后将电子邮件地址更改为“UNKNOWN@gmail.com”或类似的东西那个......这很有趣,但我怀疑你是否希望这发生在你的网站上。)

于 2010-03-01T17:19:31.877 回答
3

这已经在前面的问题中得到了回答。如果没有验证电子邮件,您能做的最好的事情就是查看电子邮件地址,看看它是否有效。您还可以检查诸如域之类的内容,以查看它是否存在并具有 MX 记录。无论如何,请参阅https://stackoverflow.com/questions/3232/how-far-should-one-take-e-mail-address-validation使用正则表达式验证电子邮件地址

于 2010-03-01T14:11:46.523 回答
1

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

于 2010-03-01T14:11:04.267 回答
1

我想这就是你要找的

http://www.strikeiron.com/Catalog/ProductDetail.aspx?pv=5.0.0&pn=Email+Verification

于 2010-03-01T17:02:21.787 回答
1

您可以像 stackoverflow 一样使用 openid 服务来检查有效的电子邮件地址。

http://openid.net/

于 2010-03-01T17:21:54.880 回答
0

电子邮件验证服务在验证电子邮件地址方面非常有帮助。他们中的大多数执行 6 个级别的验证,如语法验证、域 MX 记录检查、基于角色的帐户检测、一次性电子邮件地址 (DEA) 检测、HoneyPot/垃圾邮件跟踪检测和深度 SMTP 验证。

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

于 2015-06-01T12:56:20.897 回答