springboot 整合mail 发送邮件

pom.xml

<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>

application.properites

# 应用名称
spring.application.name=mail
# 应用服务 WEB 访问端口
server.port=8080
# THYMELEAF (ThymeleafAutoConfiguration)
# 开启模板缓存(默认值: true )
spring.thymeleaf.cache=true
# 邮箱用户名
spring.mail.username=359073594@qq.com
# 授权码
spring.mail.password=qltrocunzsqvcbdc
# 邮箱主机
spring.mail.host=smtp.qq.com
# 开启SSL
spring.mail.properties.mail.smtp.ssl.enable=true
# 认证
spring.mail.properties.mail.smtp.auth=true
# 开启SSL安全模式
spring.mail.properties.mail.smtp.starttls.enable=true
# 必须启动SSL安全模式
spring.mail.properties.mail.smtp.starttls.required=true
# SSL Config
# 端口
spring.mail.port=465
# 协议
spring.mail.protocol=smtp
# 默认编码
spring.mail.default-encoding=UTF-8
# 套接字工厂端口
spring.mail.properties.mail.smtp.socketFactory.port=465
# 套接字工厂类
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

// 发送邮件的方法
@RestController
@RequestMapping("/mail")
public class Demo2 {

//template模板引擎
@Autowired
private TemplateEngine templateEngine;

@Autowired
private JavaMailSender javaMailSender;
@RequestMapping("/send")
public String send() {

//建立邮件消息
SimpleMailMessage message = new SimpleMailMessage();
// 发送人的邮箱
message.setFrom("359073594@qq.com");
//标题
message.setSubject("测试邮件");
//发给谁 对方邮箱
message.setTo("359073594@qq.com");
//内容
message.setText("这是一封测试的邮件");
try {
//发送
javaMailSender.send(message);
} catch (MailException e) {
throw new RuntimeException("邮件发送失败");
}
return "发送完成!";
}

@RequestMapping("/tempSend")
public String tempSend() {
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);
// 发送人的邮箱
messageHelper.setFrom("359073594@qq.com");
//发给谁 对方邮箱
messageHelper.setTo("359073594@qq.com");
//标题
messageHelper.setSubject("测试邮件");
//使用模板thymeleaf
//Context是导这个包import org.thymeleaf.context.Context;
Context context = new Context();
//定义模板数据
HashMap<String, Object> map = new HashMap<>();
map.put("username","法外狂徒张三");
List<User> list = new ArrayList<>();
for (int i = 0; i < 4; i++) {
User user = new User("list"+i,"而非留守",23+i);
list.add(user);
}
map.put("listUser",list);
map.put("img","../static/2.jpg");
context.setVariables(map);
//获取thymeleaf的html模板
String emailContent = templateEngine.process("indexPatternMail.html",context); //指定模板路径

messageHelper.setText(emailContent,true);
//添加图片
FileSystemResource file = new FileSystemResource(new File(Demo2.class.getResource("/static/2.jpg").getFile()));
messageHelper.addInline("test001", file);
//发送邮件
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
throw new RuntimeException("邮件发送失败");
}
return "发送成功了啊!";
}

@RequestMapping("/sendImageMail")
public void sendImageMail() throws MessagingException {
//创建message
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
//发件人
helper.setFrom("359073594@qq.com");
//收件人
helper.setTo("359073594@qq.com");
//标题
helper.setSubject("测试邮件");
//true指的是html邮件,false指的是普通文本
helper.setText("<h1 style='color:red'>helloWorld</h1><img src='cid:test001'/>", true);
//添加图片
FileSystemResource file = new FileSystemResource(new File(Demo2.class.getResource("/static/2.jpg").getFile()));
helper.addInline("test001", file);
//发送邮件D:\java_code\email\src\main\resources\static\2.jpg
javaMailSender.send(message);
}

}
// 携带附件信息
 public void sendMimeMessage() throws Exception {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom("mail sender");
helper.setTo("mail receiver");
helper.setSubject("title");
File file = new File("your file");
helper.addAttachment(file.getName(), file);
// 带附件邮件正文必须显式设置一次,可以为空字符
helper.setText("hello world");
mailSender.send(message);
}


// 模板的集合遍历

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>title</title>
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
<h3>你看我<span style="font-size: 35px" th:text="${username}"></span>, 哈哈哈!</h3>
<div>
<table >
<tr>
<th>名称</th>
<th>年龄</th>
<th>英雄</th>
</tr>
<tr th:each="c, State : ${listUser}">
<td th:text="${c.name}"></td>
<td th:text="${c.age}"></td>
<td th:text="${c.lol}"></td>
</tr>
</table>
</div>
<h1 style='color:red'>helloWorld</h1><img src='cid:test001'/>
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
console.log('123');
var option = {
title: {
text: '第一个 ECharts 实例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
 

springboot 整合mail 发送邮件的更多相关文章

  1. SpringBoot整合Mail发送邮件&发送模板邮件

    整合mail发送邮件,其实就是通过代码来操作发送邮件的步骤,编辑收件人.邮件内容.邮件附件等等.通过邮件可以拓展出短信验证码.消息通知等业务. 一.pom文件引入依赖 <dependency&g ...

  2. SpringBoot整合ActiveMQ发送邮件

    虽然ActiveMQ以被其他MQ所替代,但仍有学习的意义,本文采用邮件发送的例子展示ActiveMQ 1. 生产者1.1 引入maven依赖1.2 application.yml配置1.3 创建配置类 ...

  3. SpringBoot 整合Mail发送功能问题与解决

    SpringBootLean 是对springboot学习与研究项目,是根据实际项目的形式对进行配置与处理,欢迎star与fork. [oschina 地址] http://git.oschina.n ...

  4. SpringBoot整合Mail

    前言 SpringBoot实现邮件功能是非常的方便快捷的,因为SpringBoot默认有starter实现了Mail. 发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息 ...

  5. SpringBoot整合JavaMail发送邮件

    JavaMail是SUN提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,支持常用的邮件协议,如:SMTP.POP3.IMAP,开发人员使用JavaMail编写邮件程序时,不再需要考虑底层 ...

  6. 【JavaMail】JavaMail整合RabbitMq发送邮件案例

    前言 Linux安装RabbitMQ:https://www.cnblogs.com/jxd283465/p/11975094.html SpringBoot整合RabbitMQ:https://ww ...

  7. SpringBoot整合开发

    1.SpringBoot分模块 分模块就是将一个项目分成多个模块,即maven项目. 1)首先创建一个springboot的项目: 第一步:选择springboot的项目 第二步:填写项目的相关信息, ...

  8. Springboot】Springboot整合邮件服务(HTML/附件/模板-QQ、网易)

    介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动.营销广告等:对内可以发送系统监控报告与告警. 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置. 如图所 ...

  9. springboot集成mail实现邮件服务

    1,新建mailconfig类,对邮件服务固定配置进行实体封装: import java.util.Properties; import org.springframework.beans.facto ...

  10. 一篇学习完rabbitmq基础知识,springboot整合rabbitmq

    一   rabbitmq 介绍 MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced MessageQueue 高级消息队列协议 ...

随机推荐

  1. 可视化库 pygal 无法保存成本地文件

    问题:在使用可视化库 pygal 保存图像到本地时,出现报错 第一次报错是,提示没有  cairosvg  这个模块,所以直接通过 pip 安装 pip install cairosvg 安装完了以后 ...

  2. Centos环境部署SpringBoot项目

    centos JDK Jenkins maven tomcat git myslq nginx 7.9 11.0.19 2.418 3.8.1 9.0.78 2.34.4 5.7.26 1.24.0 ...

  3. Scratch3自定义积木块之新增积木块

    在Scratch3.0的二次开发中,新功能的研发和扩展离不开积木块的添加,这篇主要讲解Scratch3.0中新增积木块部分 Scratch3.0中对于新增积木块有两种方式: 1. 初始化积木块方式   ...

  4. 堡垒机安装pytorch,mmcv,mmclassification,并训练自己的数据集

    堡垒机创建conda环境,并激活进入环境 conda create -n mmclassification python=3.7 conda activate mmclassification 堡垒机 ...

  5. Flutter笔记-基础组件

    图片和Icon 加载网络图片以及本地图片 Image( image: NetworkImage( "https://img-s-msn-com.akamaized.net/tenant/am ...

  6. kubelet 原理分析

    Reference https://atbug.com/kubelet-source-code-analysis/ kubelet 简介 kubernetes 分为控制面和数据面,kubelet 就是 ...

  7. Java实现学生投票系统

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 代码 im ...

  8. resin报错:java.lang.IllegalStateException: block Block

    java.lang.IllegalStateException: block Block 启动resin时报错 主要的提示信息就是下面这个 java.lang.IllegalStateExceptio ...

  9. 【笔记】GO内建容器--数组

    go内建容器--数组 1.数量要写在类型的前面 2.可通过_省略变量 3.不仅是range,任何地方都可以使用_来省略变量 4.如果只要i,则可写成for i := range numbers 5.[ ...

  10. 加入自定义块对fashion_mnist数据集进行softmax分类

    在之前,我们实现了使用torch自带的层对fashion_mnist数据集进行分类.这次,我们加入一个自己实现的block,实现一个四层的多层感知机进行softmax分类,作为对"自定义块& ...