加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

javax.mail.SendFailedException: Invalid Addresses解决办法

(2013-11-01 10:25:36)
标签:

javamail

invalidaddresses

it

今天遇到一个javamail的问题:

javax.mail.SendFailedException: Invalid Addresses

是在收件地址不对或不存在的情况下出现的,并且那些对的地址也不能发送出去,找到了这个方法,分享一下。。。

 

API中有一个javax.mail.SendFailedException的异常类.
此类具有以下三个实用方法:
1、getInvalidAddresses()
返回无法向其发送此消息的地址。
返回消息发送失败的地址,或者返回 null; 
2、getValidSentAddresses()
返回此消息成功发送到的地址。
返回成功将消息发送到的地址,或者返回 null 
3、getValidUnsentAddresses()
返回未向其发送此消息的有效地址。
返回有效但未能成功将消息发送到的地址,或者返回 null

因此程序中可如下实现:

public static void sendMail(String toMailAddress) {
    try {
       //此处是发邮件的实现代码
    }catch(SendFailedException e){//捕获SendFailedException异常
Address[] e.getValidUnsentAddresses(); //得到有效但未能成功将消息发送到的地址
if(null!=a){
String validAddress "";
for(int i=0;i
    validAddress += a[i] ",";
}
validAddress validAddress.substring(0,validAddress.length()-1);
sendMailWhenException(validAddress);//再次发送给真实存在的地址,此处不再调用sendMail方法,防止死循环(重新定义一个sendMailWhenException方法,此方法异常捕获中不要再尝试发送,以防止死循环)
}else{
      e.printStackTrace();
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有