[乐意黎原创] 完美解决 javax.mail.SendFailedException: Invalid Address 与 SMTPAddressFailedException 抛错
来源:互联网 发布:linux python vim 编辑:程序博客网 时间:2024/05/16 02:01
由于某个模块用到程序运行完后,自动收集结果发送邮件给相关人等。假如邮件收件人里某个地址貌似出问题,会导致所有的收件人地址都发送不出去。
抛出的错误如下:
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for aerchi@gmail.com
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1196)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:584)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at AtGroup.ServerBasicCheck.ServerCheck.sendMail(ServerCheck.java:1651)
at AtGroup.ServerBasicCheck.ServerCheck.callRun(ServerCheck.java:500)
at AtGroup.ServerBasicCheck.ServerCheck.main(ServerCheck.java:310)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Unable to relay for aerchi@gmail.com
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1047)
... 6 more
图示: 抛错
这个是致使的错误呀,研究了半天。
改进代码如下:(跳过错误或不可达的收件人地址)
图A: 首次发送邮件。
图B: 捕获并输出不可达邮件,组装新的可达邮件。
图C: 二次发送邮件。
部分代码如下:
try{ Transport.send(msg);//Transport.sendMessage(msg);Out.println("the mail send successful First. "+Out.getNowDate());}catch(UnsupportedEncodingException e) { e.printStackTrace();}catch(SendFailedException se) { se.printStackTrace();// Exception ex = me;// if (ex instanceof SendFailedException) {} Address[] unsend = se.getValidUnsentAddresses(); if(null!=unsend) {// Out.println(" ==valid Addresses"); String validAddress = ""; for(int i=0;i<unsend.length;i++){ validAddress += unsend[i] + ";";// Out.println((i+1)+": " + unsend[i]); } validAddress = validAddress.substring(0,validAddress.length()-1);// Out.println("All: "+validAddress);// send the mail when mail address wrong. sendFailMail(new MimeMessage(mailSession), mailBody, mailFrom, validAddress); } }catch(MessagingException me) {me.printStackTrace();}} /** * email: aerchi@gmail.com * site: www.aerchi.com * blog: http://blog.csdn.net/aerchi */ //send the mail when mail address wrong. public static void sendFailMail(Message msg, BodyPart mailBody, Address mailFrom, String mailTOAddress ) { try{ Out.println("...Send the mail second time."); msg.setSentDate(new Date());msg.setFrom(mailFrom);String[] mailTOArray=null;mailTOArray=mailTOAddress.split(";");InternetAddress[] mailTOAdd = null;mailTOAdd = new InternetAddress[mailTOArray.length];for(int a=0;a<mailTOArray.length;a++){//Out.println(mailTOArray[a]);mailTOAdd[a]= new InternetAddress(mailTOArray[a]);}msg.setRecipients(Message.RecipientType.TO, mailTOAdd);msg.setSubject(mailSubject);Multipart mailMulti = new MimeMultipart(); //mailBody.setContent(mainText, "text/html;charset=utf-8");mailMulti.addBodyPart(mailBody);msg.setContent(mailMulti);Transport.send(msg); Out.println("...the mail send successful Second. "+Out.getNowDate()); }catch(MessagingException me) {me.printStackTrace();} }
最后,大功靠成。如有地址错误或不可到达(会自动跳过),保证能够对其它有效地址发送邮件,再也不用担心导致其它收件人不能收到邮件啦。
图示: 发送成功日志
文章版权归作者[Aerchi]所 有,请勿采集,转载务必请注明作者及原文地址。
本文地址: http://blog.csdn.net/aerchi/article/details/41692913
- [乐意黎原创] 完美解决 javax.mail.SendFailedException: Invalid Address 与 SMTPAddressFailedException 抛错
- 邮件发送问题javax.mail.SendFailedException: Sending failed
- javax.mail.Address翻译
- [乐意黎原创] 送李愿归盘谷序
- com.sun.mail.smtp.SMTPAddressFailedException: 550 Invalid User: "xxxxxxx@163.com"
- “java.lang.NoClassDefFoundError: javax/mail/Address”解决办法
- java.lang.NoClassDefFoundError: javax/mail/Address解决方法
- 使用Camel-Mail的SMTPAddressFailedException
- [乐意黎原创] 吃货是什么意思?
- [乐意黎原创]始乱终弃是什么意思?
- 解决错误503:com.sun.mail.smtp.SMTPAddressFailedException: 503 the server need auth(15D98013BE0)
- javax.mail.MessagingException: 501 5.0.0 HELO requires domain address
- java.lang.NoClassDefFoundError: javax/mail/Address”的解决办法
- [乐意黎原创] 解决被强制篡改主页为流氓360首页的方法
- [乐意黎原创]]CuteFTP 操作文件时,中文文件名显示乱码的解决
- [乐意黎原创]PHP7抛Fatal error: Uncaught Error: Call to undefined function ereg_replace()的解决
- 关于javax.mail.NoSuchProviderException:Invalid protocal:null的坑
- [乐意黎原创] 移动硬盘IO /IO 错误
- 如何修改MyEclipse 8.5的默认工作空间
- 迭代器思想总结
- 关于GreenDao的初步使用
- 读论文BinarizedNormedGradientsforObjectnessEstimationat300fps
- 定时器锁屏问题分析
- [乐意黎原创] 完美解决 javax.mail.SendFailedException: Invalid Address 与 SMTPAddressFailedException 抛错
- 嵌入式代码open("/dev/ttyso",o_RDWR/O_NOCTTY/O_NDELAY);这个代码说的含义
- 网站建设过程中必须要重视的元素
- final的运用
- 柯南君: 看TCP/IP 之一 (协议分层)
- genymotion 此应用与您的手机不兼容
- C语言之基本运算和流程控制
- iOS_AFNetworking初体验 与 NSdata转NSDictionary
- [Windows]_[初级]_[/MD、/MT、/LD(使用运行库)]