SpringBoot 使用Hutool发送邮件

原创
2020/12/10 23:59
阅读数 1.2W

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 "发送成功";
    }

}

发送邮件非常简单,只需一个方法即可搞定其中按照参数顺序说明如下:

  1. tos: 对方的邮箱地址,可以是单个,也可以是多个(Collection表示)
  2. subject:标题
  3. content:邮件正文,可以是文本,也可以是HTML内容
  4. isHtml: 是否为HTML,如果是,那参数3识别为HTML内容
  5. files: 可选:附件,可以为多个或没有,将File对象加在最后一个可变参数中即可

 

四、验证结果 

(1)访问单个发送接口:http://127.0.0.1:8082/sendSingleMail

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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部