简单的Email发送,使用HuTool的工具类
使用HuTool的MailUtil
一. 创建SpringBoot项目
勾选Thymeleaf SpringWeb
二.
1. 使用HuTool的MailUtil 引入依赖
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.1</version> </dependency>
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
2. 邮件服务器配置 (粗略------详细 访问_https://www.hutool.cn/ 查找邮件)
在maven项目中在 (src/main/resources) 创建 config目录 创建 mail.setting
# 邮件服务器的SMTP地址 host = smtp.qq.com # 邮件服务器的SMTP端口 port = 465 # 发件人(必须正确,否则发送失败) from = *************** # 用户名(注意:如果使用foxmail邮箱,此处user为qq号) user = ************ # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助) pass = ******* #使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。 startttlsEnable = true # 使用SSL安全连接 sslEnable = true # 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字 socketFactoryClass = javax.net.ssl.SSLSocketFactory # 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true socketFactoryFallback = true # 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456 socketFactoryPort = 465 # SMTP超时时长,单位毫秒,缺省值不超时 timeout = 0 # Socket连接超时值,单位毫秒,缺省值不超时 connectionTimeout = 0
3. 使用其中
MailUtil.send("hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);
这里最后参数是添加 附件的 false ---- true 详细:_https://www.hutool.cn/
方便一下临时使用:
列出:
----------------------------------------------------------------------------------------------------
1.发送普通文本邮件,最后一个参数可选是否添加多个附件
MailUtil.send("hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);
2.群发:
ArrayList<String> tos = CollUtil.newArrayList( "person1@bbb.com", "person2@bbb.com", "person3@bbb.com", "person4@bbb.com"); MailUtil.send(tos, "测试", "邮件来自Hutool群发测试", false);
-----------------------------------------------------
- tos: 对方的邮箱地址,可以是单个,也可以是多个(Collection表示)
- subject:标题
- content:邮件正文,可以是文本,也可以是HTML内容
- isHtml: 是否为HTML,如果是,那参数3识别为HTML内容
- files: 可选:附件,可以为多个或没有,将File对象加在最后一个可变参数中即可
*****
这里是自己的代码
附带了一个html,附件
package com.bw.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import cn.hutool.core.io.FileUtil; import cn.hutool.extra.mail.MailUtil; @Controller public class MailController { @RequestMapping("sendMailToQQ") @ResponseBody public String sendMailToQQ() { //----------------------------------------------------------------- InputStream is = ClassLoader.getSystemResourceAsStream("templates/bwie.html");
BufferedReader fileReader = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
String line = ""; try { while((line = fileReader.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (Exception e) { e.printStackTrace(); } } if (fileReader != null) { try { fileReader.close(); } catch (Exception e) { e.printStackTrace(); } } } List<String> list = new ArrayList<String>(); list.add("*******@qq.com"); list.add("**********@qq.com"); //
//sb.toString().replace("###", "测试") 这里是替换我 html中 ###
MailUtil.send(list, "测试2", sb.toString().replace("###", "测试"), true, FileUtil.file("C:\\Users\\Hello\\Pictures/6201fc0b9e56455091d874042d1f6bb3!400x400.jpeg"));
return "发送成功"; } }
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
不插入附件 直接进行 发送
MailUtil.send("2304200957@qq.com", "测试", "侯先生的测试", false);
return "发送成功";