我正在开发一个Javalet,它将邮件发送到不同的地址。
将邮件发送到现有地址工作正常 xxx@xxx.xx模式已经在带有正则表达式的表单中进行了测试,并告诉用户邮件是否正常。
但是,如果用户输入有效邮件但不存在,则发送失败,当然
(并抛出一个SendFailedException
)
有没有办法给用户一个错误信息,告诉他哪些邮件导致错误?
(跟随xxx@xxx.xx模式但不存在的那个)
或者是否有其他方法可以测试是否存在有效邮件?
非常感谢你的帮助( - :
编辑:
发送我使用的邮件是void javax.mail.Transport.send(Message arg0, Address[] arg1) throws MessagingException
答案 0 :(得分:0)
有没有其他方法可以测试是否存在有效邮件?
你不能以合理的方式做到这一点。许多开发人员都在努力验证电子邮件地址,甚至你使用的正则表达式也可能已经太多了。电子邮件地址的格式并不完全固定。而且,即使您通过向其发送邮件来测试邮件帐户的存在,您甚至不知道它是否属于某个人。
有没有办法给用户一条错误信息,告诉他哪些邮件导致错误?
我并不熟悉javax.mail
,但你调用的函数会引发异常。为什么不这样做:
try {
javax.mail.Transport.send(myMessage, myAdresses);
}
catch(MessagingException ex) {
System.out.println("An error occured: " + ex.getMessage();
}
但也许有更好的报道。另外根据文档,SendFailedException
子类(捕获这个子类)有getValidUnsentAddresses
来获取发送消息失败的地址。