使用javamail做发送邮件功能的一些问题,这里写出来给大家分享:
问题1;如何判断邮件是否发送成功
使用try catch捕获发送邮件代码的,如果出现messageException异常,邮件发送失败
一下代码是我封装过的复合邮件的发送功能
try {
mailClient.sendMail(mailText, mailSubject, mailRecipientsAddress,
mailCcPeopleAddressList);
} catch (MessagingException e) {
}
问题2:我们发送邮件的时候,有可能是一次性发多个人和抄送多个人,如果当中出现有一个邮件地址输入错误(不是邮箱),则邮件全部都不会发送,不必要担心部分地址的邮件发送了,错误地址引起的发送异常之后的地址都不会再发送邮件:例如:
以上的代码mailRecipientsAddress 是邮件收件人地址集合,mailCcPeopleAddressList是抄送人地址集合
收件人地址有:[email protected],[email protected],[email protected],hao123.com,[email protected]
如果收件地址:hao123.com是错误的,其他都是正确的邮箱地址,这样邮件都不会发送
问题3:抄送人地址出现错误,会影响收件人的邮件发送,同样是全部都不会发送
例如:
收件人地址有:[email protected],[email protected],[email protected],[email protected]
抄送人地址:hao123.com
如果抄送人的地址是错误的,也会导致不会向收件人发送邮件
问题4:收件的邮箱地址格式符合邮箱格式,但是地址是错误的
收件人地址有:[email protected],[email protected],[email protected],[email protected],[email protected]
例如:以上的收件邮箱地址,所有都符合邮箱的格式,但实际这些地址是否正确的,不知道,javamail认为,只有符合邮箱的格式,就会去发送邮件,至于对方是否可以收到,它不管。这也是现在做邮箱发送功能,需要自己想办法解决的
总结:判断邮件是否发送异常,使用try catch捕获,收件人或者抄送人中,有一个地址错误(即是不是邮箱地址),会导致所有的邮件都不会发送