SprringBoot发送邮件+HuTool

      简单的Email发送,使用HuTool的工具类   

    推荐___https://www.hutool.cn/   

    使用HuTool的MailUtil

一.   创建SpringBoot项目  

  勾选Thymeleaf    SpringWeb 

  SprringBoot发送邮件+HuTool

 

 

二.

 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);


-----------------------------------------------------
  1. tos: 对方的邮箱地址,可以是单个,也可以是多个(Collection表示)
  2. subject:标题
  3. content:邮件正文,可以是文本,也可以是HTML内容
  4. isHtml: 是否为HTML,如果是,那参数3识别为HTML内容
  5. 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 "发送成功";

SprringBoot发送邮件+HuTool

 

上一篇:hutool-cron模块的使用


下一篇:很喜欢的一款开源类库,可以帮你简化每一行代码,推荐给大家