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服务
一、添加依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.4</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
二、添加配置文件
在classpath(在标准Maven项目中为src/main/resources)的config目录下新建mail.setting文件。
配置如下:
# 邮件服务器的SMTP地址
host = smtp.163.com
# 邮件服务器的SMTP的端口
port = 465
# 发件人(必须正确,否则发送失败)
from = 2333@163.com
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
user = 2333
# 密码
pass = TSCBBFHCAUTGEBSA
#使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
starttlsEnable = true
三、编写开发代码
import cn.hutool.core.collection.CollUtil;
import cn.hutool.extra.mail.MailUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
@RestController
public class MailController {
/**
* 发送单个邮件
* @return
*/
@GetMapping("/sendSingleMail")
public String sendSingleMail(){
MailUtil.send("123@qq.com", "单个邮件的标题", "邮件的内容", false);
return "发送成功";
}
/**
* 发送批量邮件
* @return
*/
@GetMapping("/sendBatchMail")
public String sendBatchMail(){
ArrayList<String> tos = CollUtil.newArrayList(
"123@qq.com",
"222@qq.com");
MailUtil.send(tos, "批量邮件的标题", "邮件的内容", false);
return "发送成功";
}
}
发送邮件非常简单,只需一个方法即可搞定其中按照参数顺序说明如下:
- 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