Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
官方地址:https://hutool.cn/docs/#/
邮件文档地址:https://hutool.cn/docs/#/extra/%E9%82%AE%E4%BB%B6%E5%B7%A5%E5%85%B7-MailUtil
在开始之前我们需要申请开通 POP3/SMTP 服务或者 IMAP/SMTP服务:开通 POP3/SMTP 服务或者 IMAP/SMTP服务
一、添加依赖
1<dependency> 2 <groupId>cn.hutool</groupId> 3 <artifactId>hutool-all</artifactId> 4 <version>5.3.4</version> 5</dependency> 6 7<dependency> 8 <groupId>javax.mail</groupId> 9 <artifactId>mail</artifactId> 10 <version>1.4.7</version> 11</dependency>
二、添加配置文件
在classpath(在标准Maven项目中为src/main/resources)的config目录下新建mail.setting文件。

配置如下:
1# 邮件服务器的SMTP地址 2host = smtp.163.com 3# 邮件服务器的SMTP的端口 4port = 465 5# 发件人(必须正确,否则发送失败) 6from = 2333@163.com 7# 用户名(注意:如果使用foxmail邮箱,此处user为qq号) 8user = 2333 9# 密码 10pass = TSCBBFHCAUTGEBSA 11#使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。 12starttlsEnable = true
三、编写开发代码
1import cn.hutool.core.collection.CollUtil; 2import cn.hutool.extra.mail.MailUtil; 3import org.springframework.web.bind.annotation.GetMapping; 4import org.springframework.web.bind.annotation.RestController; 5 6import java.util.ArrayList; 7 8@RestController 9public class MailController { 10 11 /** 12 * 发送单个邮件 13 * @return 14 */ 15 @GetMapping("/sendSingleMail") 16 public String sendSingleMail(){ 17 MailUtil.send("123@qq.com", "单个邮件的标题", "邮件的内容", false); 18 19 return "发送成功"; 20 } 21 22 /** 23 * 发送批量邮件 24 * @return 25 */ 26 @GetMapping("/sendBatchMail") 27 public String sendBatchMail(){ 28 ArrayList<String> tos = CollUtil.newArrayList( 29 "123@qq.com", 30 "222@qq.com"); 31 MailUtil.send(tos, "批量邮件的标题", "邮件的内容", false); 32 33 return "发送成功"; 34 } 35 36}
发送邮件非常简单,只需一个方法即可搞定其中按照参数顺序说明如下:
- tos: 对方的邮箱地址,可以是单个,也可以是多个(Collection表示)
- subject:标题
- content:邮件正文,可以是文本,也可以是HTML内容
- isHtml: 是否为HTML,如果是,那参数3识别为HTML内容
- files: 可选:附件,可以为多个或没有,将File对象加在最后一个可变参数中即可
四、验证结果
(1)访问单个发送接口:http://127.0.0.1:8082/sendSingleMail

(2)访问批量发送接口:http://127.0.0.1:8082/sendBatchMail
