引入jar
1 | implementation 'com.sun.mail:jakarta.mail:2.0.1' |
sample
1 | public class Main { |
讨论
即使设定完全正确,由于网络,以及smtp服务器的限制等原因,总是有失败的时候。
为了保证程序的健壮性,需要对异常情况进行处理。
- 处理发信client和smtp服务器件的错误
一定要catch住发送的异常,并记录在案,然后做重发的机制。 - 监控smtp投递情况
及时发给smtp是成功的,也很难保证smtp服务能及时正确的投递了邮件,所以最好每封信都bcc一个监控邮件地址,这样能更好的监控哪些邮件,什么时候,投递给谁了。 - 监控对方拒收
一般对方拒收的话,发信邮件地址里会接收到错误邮件,通过监控这些邮件,可以知道发给谁的邮件投递失败了。 - 垃圾邮件
很遗憾的是,如果发送的邮件最终被对方判定为垃圾邮件,这时候是没有任何手段可以监控的到的。