【发布时间】:2012-11-10 22:17:13
【问题描述】:
我正在使用 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
请帮我解决问题。 提前致谢。
【问题讨论】:
-
你试过什么?我在您的代码中看不到任何东西来检查电子邮件地址的有效性/正确性。我会用正则表达式来做。
-
define valid:你的意思是检查一封电子邮件是否真的对应一个真实的邮箱,或者电子邮件的语法是否有效?
-
@jlordo 感谢您的回复。正则表达式仅检查电子邮件地址的格式是否有效。我想检查邮箱地址是否存在
-
好吧,你可以试试亚马逊网络服务,如果你的邮件发送到错误的邮件,添加它会抛出异常,这不是最好的选择,但你可以试一试
-
@HussainAkhtarWahid 谢谢,但我在哪里可以找到亚马逊网络服务?
标签: java email smtp mime-message