SpringBoot整合邮件发送(thymeleaf和freemarker)

一、创建并导入依赖

?
?

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-mail</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-freemarker</artifactId>

</dependency>

?
?

?
?

?
?

二、相关配置和代码

?
?

2.1)application.properites

?
?

spring.mail.host=smtp.163.com

#spring.mail.port=587这是qq的端口,网易不需要

spring.mail.username=[email protected]

spring.mail.password=xxxxxxxxxxx

spring.mail.default-encoding=utf-8

spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

#将发送邮件得过程打印在控制台

spring.mail.properties.mail.debug=true

?
?

2.2)Test测试

?
?

2.2.1)发送一个普通邮件

?
?

?
?

JavaMailSender是SpringBoot自动化的一个发送邮件类

TemplateEngine是Thymeleaf的模板操作类

@Test

void contextLoads(){

//顾名思义,一个简单的消息注定不能发送附近和html

SimpleMailMessage
mailMessage=new
SimpleMailMessage();

//邮件标题

mailMessage.setSubject("这是一封测试邮件");

//内容

mailMessage.setText("这是一封测试内容");

//来自谁

mailMessage.setFrom("hufei[email protected]163.com");

mailMessage.setSentDate(newDate());

//也可以是数组,群发

//发给谁

mailMessage.setTo("hufei1639670695@gmail.com");

//抄送,一同收到邮件得用户可以看到,收到该邮件的其他人

//mailMessage.setCc();

//匿抄,别人不会看见同时收到信息得人

//mailMessage.setBcc();

javaMailSender.send(mailMessage);

}

?
?

2.2.2)发送一个带有附近的邮件

?
?

@Test

void test1()
throws
MessagingException{

//多用途邮件扩展

MimeMessage
mimeMessage=javaMailSender.createMimeMessage();

//true表示是否创建支持替代文本、行内元素和附件的多部分消息

MimeMessageHelpermimeMessageHelper=newMimeMessageHelper(mimeMessage,true);

mimeMessageHelper.setSubject("这是一封测试邮件(带附件)");

mimeMessageHelper.setText("这是一封测试内容");

mimeMessageHelper.setFrom("hufei[email protected]163.com");

mimeMessageHelper.setSentDate(newDate());

mimeMessageHelper.setTo("hufei1639670695@gmail.com");

//顾名思义,添加附件

mimeMessageHelper.addAttachment("fern.jpg",newFile("D:\\User\\fern.jpg"));

javaMailSender.send(mimeMessage);

?
?

}

?
?

?
?

2.2.3)发送一个html内容的邮件

?
?

@Test

void test2()throws
MessagingException{

MimeMessagemimeMessage=javaMailSender.createMimeMessage();

MimeMessageHelpermimeMessageHelper=newMimeMessageHelper(mimeMessage,true);

mimeMessageHelper.setSubject("这是一封测试邮件(html)");

//true表示开启html

mimeMessageHelper.setText("这是一封测试邮件内容<imagesrc=‘cid:01‘></image>",true);

//mimeMessageHelper.setText("这是一封测试邮件内容","<imagesrc=‘cid:01‘></image>");

mimeMessageHelper.addInline("01",newFile("D:\\User\\fern.jpg"));

mimeMessageHelper.setFrom("[email protected]");

mimeMessageHelper.setSentDate(newDate());

mimeMessageHelper.setTo("[email protected]");

javaMailSender.send(mimeMessage);

}

?
?

?
?

2.2.4)使用thymeleaf邮件模板发送一个邮件

?
?

<!DOCTYPEhtml>

<htmllang="en"xmlns:th="http://www.thymeleaf.org/">

<head>

<metacharset="UTF-8">

<title>Title</title>

</head>

<body>

<div>

hello<spanth:text="${username}"></span>,加入荣华富贵大家庭!!!

</div>

您的入职信息如下

<table>

<tr>

<td>职位</td>

<td
th:text="${position}"></td>

</tr>

<tr>

<td>职位</td>

<td
th:text="${joblevel}"></td>

</tr>

<tr>

<td>薪水</td>

<td
th:text="${salary}"></td>

</tr>

<tr>

<td>部门</td>

<td
th:text="${dep}"></td>

</tr>

</table>

<divstyle="color:#ffd453">

希望在未来的日子里,携手共进!

</div>

</body>

</html>

?
?

@Test

void test3()
throws
MessagingException{

MimeMessagemimeMessage=javaMailSender.createMimeMessage();

MimeMessageHelpermimeMessageHelper=newMimeMessageHelper(mimeMessage,true);

mimeMessageHelper.setSubject("欢迎加入荣华富贵大家庭(thymeleaf)");

//操作html的类

Contextcontext=newContext();

context.setVariable("username","陈翔");

context.setVariable("position","java工程师");

context.setVariable("joblevel","高级工程师");

context.setVariable("salary","10000");

context.setVariable("dep","研发部");

//将html转成字符串发到邮箱

Stringprocess=templateEngine.process("mail.html",context);

//true开启html

mimeMessageHelper.setText(process,true);

mimeMessageHelper.setFrom("[email protected]");

mimeMessageHelper.setSentDate(newDate());

mimeMessageHelper.setTo("[email protected]");

javaMailSender.send(mimeMessage);

}

?
?

?
?

2.2.5)使用freemarker邮件模板发送一个邮件

?
?

?
?

<!DOCTYPEhtml>

<htmllang="en">

<head>

<metacharset="UTF-8">

<title>Title</title>

</head>

<body>

<div>

hello<span>${username}</span>,加入荣华富贵大家庭!!!

</div>

您的入职信息如下

<table>

<tr>

<td>职位</td>

<td>${position}</td>

</tr>

<tr>

<td>职位</td>

<td>${joblevel}</td>

</tr>

<tr>

<td>薪水</td>

<td>${salary}</td>

</tr>

<tr>

<td>部门</td>

<td>${dep}</td>

</tr>

</table>

<divstyle="color:#ffd453">

希望在未来的日子里,携手共进!

</div>

</body>

</html>

?
?

?
?

freemarker没有thymeleaf方便需要自己手写,不像thymeleaf提供了模板

?
?

@Test

void test4()
throws
MessagingException,IOException,TemplateException{

MimeMessagemimeMessage=javaMailSender.createMimeMessage();

MimeMessageHelpermimeMessageHelper=newMimeMessageHelper(mimeMessage,true);

mimeMessageHelper.setSubject("欢迎加入荣华富贵大家庭(freemarker)");

//配置版本

Configurationconfiguration=newConfiguration(Configuration.VERSION_2_3_29);

//freemarker所在的位置

configuration.setClassLoaderForTemplateLoading(this.getClass().getClassLoader(),"templates");

//freemarker文件名

Templatetemplate=configuration.getTemplate("mail.ftlh");

Map<String,String>map=newHashMap<>();

map.put("username","陈翔");

map.put("position","java工程师");

map.put("joblevel","高级工程师");

map.put("salary","10000");

map.put("dep","研发部");

StringWriterwriter=newStringWriter();

template.process(map,writer);

mimeMessageHelper.setText(writer.toString(),true);

mimeMessageHelper.setFrom("[email protected]");

mimeMessageHelper.setSentDate(newDate());

mimeMessageHelper.setTo("[email protected]");

javaMailSender.send(mimeMessage);

}

?
?

上的配置版本可以这么查看

?
?

?
?

原文地址:https://www.cnblogs.com/fernfei/p/12225760.html

时间: 2024-08-01 10:05:36

SpringBoot整合邮件发送(thymeleaf和freemarker)的相关文章

springboot整合邮件发送

在做项目的过程中,难免会遇到要发送邮件的情况.这里,将springboot与邮件发送整合一下: 一:添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency> 二:要在配置文件中添加一下配置: #发送邮件的配置#使用qq邮箱发送 spring.ma

springboot整合邮件发送(163邮箱发送为例)

//先登录163邮箱获取授权 勾选后安装提示会叫你设置授权密码之类的:记住授权的密码 1.引入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> application.yml里配置: spring: mail: host: smt

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

介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动.营销广告等:对内可以发送系统监控报告与告警. 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置. 如图所示: Springboot整合邮件服务 开发过程 Springboot搭建 Springboot的搭建非常简单,我们使用 Spring Initializr来构建,十分方便,选择需要用到的模块,就能快速完成项目的搭建: Spring Initializr 引入依赖 为了使用邮件服务,我们需要引入相关

SpringBoot整合Jsp和Thymeleaf (附工程)

前言 本篇文章主要讲述SpringBoot整合Jsp以及SpringBoot整合Thymeleaf,实现一个简单的用户增删改查示例工程.事先说明,这两个是单独整合的,也就是两个工程.如需其中一个,只需看相应部分的介绍即可.若需工程源代码,可以直接跳到底部,通过链接下载工程代码. SpringBoot整合Jsp 开发准备 环境要求 JDK: 1.7或以上 SQL: MySql 这里我们需要在mysql中建立一张用户表,用于存储用户的信息. 数据库脚本如下: CREATE TABLE `t_user

springboot整合邮件

一.邮件相关知识补充 SMTP(Simple Mail Transfer Protocol) 即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地.通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟.SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件. 在传输邮件过程中使用标准服务端口:25号端口

解决Springboot整合ActiveMQ发送和接收topic消息的问题

环境搭建 1.创建maven项目(jar) 2.pom.xml添加依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <dependencies> &l

SpringBoot整合LayUI和Thymeleaf制作简单登录页面

前面已经学习过SpringBoot整合Thymeleaf,这次主要把上次提到的简单登录界面用博文形式写出来 记录一个小Demo的学习,如果没看过SpringBoot整合Thymeleaf可以看一下SpringBoot整合Thymeleaf(三) 先上页面效果图: Demo所涉及的知识点 1.SpringBoot请求映射 2.static和templates静态资源映射 只要简单了解这两个知识点,就可以做出简单的登录的页面 Demo所涉及的目录结构图 Demo所涉及的Pom文件的主要依赖 <dep

SpringBoot实现邮件发送

首先创建一个邮箱账号,建议@126.com,@163.com,@qq.com 都可以 开启smtp,以下是使用图解: 创建SpringBoot项目导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 支持发送邮件 -->

三、SpringBoot整合Thymeleaf

三.SpringBoot整合Thymeleaf As well as REST web services, you can also use Spring MVC to serve dynamic HTML content. Spring MVC supports a variety of templating technologies, including Thymeleaf, FreeMarker, and JSPs. Also, many other templating engines