使用Javalet发送邮件:如何找出导致错误的邮件

时间:2014-08-05 07:33:18

标签: java email javamail sendmail

我正在开发一个Javalet,它将邮件发送到不同的地址。

将邮件发送到现有地址工作正常 xxx@xxx.xx模式已经在带有正则表达式的表单中进行了测试,并告诉用户邮件是否正常。

但是,如果用户输入有效邮件但不存在,则发送失败,当然 (并抛出一个SendFailedException

有没有办法给用户一个错误信息,告诉他哪些邮件导致错误?
(跟随xxx@xxx.xx模式但不存在的那个)

或者是否有其他方法可以测试是否存在有效邮件?

非常感谢你的帮助( - :

编辑: 发送我使用的邮件是void javax.mail.Transport.send(Message arg0, Address[] arg1) throws MessagingException

1 个答案:

答案 0 :(得分:0)

  

有没有其他方法可以测试是否存在有效邮件?

你不能以合理的方式做到这一点。许多开发人员都在努力验证电子邮件地址,甚至你使用的正则表达式也可能已经太多了。电子邮件地址的格式并不完全固定。而且,即使您通过向其发送邮件来测试邮件帐户的存在,您甚至不知道它是否属于某个人。

  

有没有办法给用户一条错误信息,告诉他哪些邮件导致错误?

我并不熟悉javax.mail,但你调用的函数会引发异常。为什么不这样做:

try {
    javax.mail.Transport.send(myMessage, myAdresses);
}
catch(MessagingException ex) {
    System.out.println("An error occured: " + ex.getMessage();
}

但也许有更好的报道。另外根据文档,SendFailedException子类(捕获这个子类)有getValidUnsentAddresses来获取发送消息失败的地址。

相关问题