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

ufk*_*ufk 7 java email-verification

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

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

非常感谢!

bma*_*ies 17

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

  • 主机可以在端口25上完美地运行SMTP服务器,而无需任何MX记录.存在MX记录,告诉您发送到某个DNS名称的邮件应该传递到其他域.如果foo.bar.baz.com有一个SMTP服务器,它不需要MX记录来接受邮件. (4认同)
  • 更具体地说:“ ...在DNS中具有** MX **记录...” (2认同)
  • 我不同意.您可以将电子邮件发送到没有MX记录的域. (2认同)

Bal*_*usC 9

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


del*_*ego 6

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

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

  • 这里重要的不是"强迫人们确认电子邮件地址",而是"不要向未经证实的地址发送电子邮件".您可以在确认电子邮件之前创建帐户,不要发送任何电子邮件(确认尝试除外)或阻止其他用户尝试确认该地址. (4认同)

小智 5

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