使用 Java 发邮件,最常用的应该就是 com.sun.mail:javax.mail
这个包了。但该仓库已经归档,最新的版本 1.6.7
已经是 2018 年事了。
于是另外寻找,看到最新的 Spring Boot 中使用 com.sun.mail:jakarta.mail
这个包。还在稳定更新。于是就选择该包的最新版
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>1.6.7</version>
</dependency>
注意:发送邮件与包的选择没有关系。SMTP 是 Java EE 的一个标准,引入的包只是其中的一个实现,只要面对接口编程即可。
发送一个邮件可以分成三部分:
- 准备邮件的基本属性。如服务器地址、端口、是否加密等。(该信息可以放到
application.yml
中以便于修改。) - 根据上面准备的属性生成 Session,并使用用户名和密码授权登录。
- 利用 Session 创建 MimeMessage,并将要发送的消息 setting 到对应的属性上。