如何在不使用java发送任何邮件的情况下检查域中是不是存在电子邮件ID

Posted

技术标签:

【中文标题】如何在不使用java发送任何邮件的情况下检查域中是不是存在电子邮件ID【英文标题】:how to check that the email id exist in domain without sending any mails using java如何在不使用java发送任何邮件的情况下检查域中是否存在电子邮件ID 【发布时间】:2012-11-07 08:05:24 【问题描述】:

有什么方法可以验证邮箱在域中的位置吗?

我有以下功能:它只检查有效域,但我需要检查域中的有效电子邮件地址而不发送任何邮件。

 public boolean isValidEmailAddress(String email) 
   boolean result = true;

   try 
      InternetAddress emailAddr = new InternetAddress(email);
      emailAddr.validate();

    catch (AddressException ex) 
      result = false;
   
   return result;

【问题讨论】:

您是指来自您内部组织的电子邮件吗?如果是这样,了解使用的邮件服务器会很有用。 【参考方案1】:

这是一个可以进行多种类型验证的源代码,我已经使用了很多年了:

http://www.rgagnon.com/javadetails/java-0452.html

注意:请参阅页面中的函数 isAddressValid() 进行完整验证。

【讨论】:

感谢 Alexandre Lavoie 的回复。我提到了您的链接,它仅检查有效域但不检查有效电子邮件地址。 函数 isAddressValid() 做所有的测试,也尝试连接到@Brian Agnew 告诉的 SMTP 服务器。但谨慎使用,它并不总是有效!通常我只验证该域中的电子邮件语法、域存在和 MX 存在。【参考方案2】:

听起来你需要SMTP VRFY command:

此命令将请求接收 SMTP 服务器验证 给定的电子邮件用户名是有效的。 SMTP 服务器将回复 用户的登录名。这个功能可以在sendmail中关闭 因为允许它可能是一个安全漏洞。可以使用 VRFY 命令 探测系统上的登录名。请参阅下面的安全部分 有关关闭此功能的信息。

请注意上面的安全问题。

【讨论】:

感谢 Brian Agnew 的回复。但是如何在 java 函数中使用这个命令。 您可以在您的 SMTP 服务器上创建一个到端口 25 的连接(尝试使用 telnet),然后执行“VRFY 地址”

以上是关于如何在不使用java发送任何邮件的情况下检查域中是不是存在电子邮件ID的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 Java 的情况下压缩 .csv 文件并在电子邮件中附加 Oracle plsql

在不安装 SMTP 服务器的情况下发送邮件

如何在不发送消息的情况下在 Android 中打开默认电子邮件客户端?

如何在不影响 Node.JS 应用程序的情况下从后台异步发送大量电子邮件?

我可以从应用程序自动发送电子邮件吗

是否可以在不使用 MIME 的情况下使用包含 CSS 装饰的 PHP 发送 html 电子邮件?