当前位置: 首页 > 面试题库 >

如何查看邮件地址是否存在?

唐啸
2023-03-14
问题内容

我正在使用 com.sun.mail.smtp.SMTPTransport 通过Java发送电子邮件。

我可以成功发送电子邮件,但是如果我将邮件发送到无效的电子邮件地址,则 SMTPTransport 不会出现任何错误。

有没有办法检查给定的邮件地址是否存在?

我的意思不是要检查 客户端 的邮件地址,我需要检查 服务器端的地址

我在许多论坛上都发现了许多类似的问题,但是我没有任何适当的解决方案。

我的代码是-

String email = "reciever@theirDomain.com";

Properties props = new Properties();
props.put("mail.smtps.host", "mail.myDomain.com");
props.put("mail.smtps.auth", "true");
Session session = Session.getInstance(props, null);

MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("Mail Demo <my_email@myDomain.com>"));
msg.setRecipients(Message.RecipientType.TO, email);
msg.setSubject("Mail Example");
msg.setSentDate(new Date(System.currentTimeMillis()));

String txt = "Message Body";

msg.setText(txt);
SMTPTransport st = (SMTPTransport)session.getTransport("smtps");
st.connect("mail.myDomain.com","my_email@myDomain.com","password");
st.sendMessage(msg, msg.getAllRecipients());

System.out.println("ServerResponse : " + st.getLastServerResponse());

它给出有效和无效的email_address的输出: -250 OK id = 1TbWgN-0007oY-8r

请帮助我解决问题。提前致谢。


问题答案:

谢谢大家的答复。

我可以通过 MX记录检查 解决我的问题。

我使用此 链接
来解决问题。可能这对某人也有用。

Hashtable env = new Hashtable();
env.put("java.naming.factory.initial",
             "com.sun.jndi.dns.DnsContextFactory");
DirContext ictx = new InitialDirContext( env );
Attributes attrs = ictx.getAttributes
                       ( hostName, new String[] { "MX" });
Attribute attr = attrs.get( "MX" );
if (( attr == null ) || ( attr.size() == 0 )) {
   attrs = ictx.getAttributes( hostName, new String[] { "A" });
   attr = attrs.get( "A" );
   if( attr == null )
         throw new NamingException
                  ( "No match for name '" + hostName + "'" );
}

谢谢。



 类似资料:
  • 我遇到了这个PHP代码使用SMTP检查电子邮件地址而不发送电子邮件。 有没有人尝试过类似的方法,或者对你有用吗?你能判断客户/用户输入的电子邮件是否正确和是否存在吗?

  • 问题内容: 我碰到过此PHP代码,无需发送电子邮件即可使用SMTP检查电子邮件地址。 有没有人尝试过类似的方法或对您有用?您能告诉客户/用户输入的电子邮件是否正确并且存在吗? 问题答案: 有时 可以使用两种方法来确定收件人是否确实存在: 您可以连接到服务器,然后发出命令。很少有服务器支持此命令,但正是为此目的而设计的。如果服务器以2.0.0 DSN响应,则该用户存在。 您可以发出,然后查看邮件是否

  • 我们可以检查电子邮件是否发送到CodeIgniter中的假地址吗?我使用了PHPMailer,它总是返回true。或者PHPMailer中还有另一个配置我不知道。

  • 我发现一些网站声称可以验证电子邮件地址是否有效。是否可以仅使用PHP检查电子邮件地址是否有效? 这就是我现在拥有的。它检查域是否存在,但不能检查用户的电子邮件是否存在于该域上。是否可以使用PHP做到这一点?

  • 问题内容: 我需要帮助检查数据库中是否存在行。就我而言,该行包含一个电子邮件地址。我得到结果: 这是我当前正在使用的代码: 有没有更好的方法来检查MySQL中是否存在行(在我的情况下,检查MySQL中是否存在电子邮件)? 问题答案: 以下是经过尝试,测试和证明的检查行是否存在的方法。 (其中一些我自己使用,或者过去使用过)。 编辑: 我在使用两次的语法中犯了一个先前的错误。请查阅修订版本。 即:

  • 我需要帮助检查数据库中是否存在行。在我的例子中,该行包含一个电子邮件地址。我得到的结果是: 这是我目前使用的代码: 有没有更好的方法来检查MySQL中是否存在行(在我的例子中,检查MySQL中是否存在电子邮件)?