使用过JavaMail的api发送邮件的人可能会有这样一个疑惑:我如何知道我调用该api发送的邮件是否成功呢?一般的开放的api给我们调用都会有个返回值或者状态码,来告诉我们执行成功与否。但是JavaMail却没有提供这样一个返回值。
所以在调用JavaMail发送邮件的时候,我们只能通过catch异常的方式来判断邮件是否发送成功。我们认为只要没有异常发生,那么邮件就能发送成功。那么我们就来分析一下JavaMail为什么没有提供返回值,和通过异常判断邮件发送成功状态是否靠谱。
JavaMail发送邮件原理
在使用JavaMail进行发送邮件时,我们必须提供一个邮件会话。创建邮件会话的过程如下:
- Properties props = new Properties();
- // 发送邮件的服务器的IP和端口
- props.put("mail.smtp.host", MAIL_SMTP_HOST);