一、引入依赖
<!--thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
二、新建邮件模板
我们在resources的templates目录下新建一个邮件模板email.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>邮件模板</title>
</head>
<body>
<p>hello欢迎<span th:text="${username}"></span>加入</p>
<table border="1">
<tr>
<td>职位</td>
<td>工资</td>
</tr>
<tr>
<td th:text="${position}"></td>
<td th:text="${salary}"></td>
</tr>
</table>
</body>
</html>
在这个HTML模板中,有几个变量我们需要将这些变量替换成目标字符串,然后通过邮件发送出去,我们需要对这个模板进行手动渲染。
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
@SpringBootTest
class SpringBootDemoApplicationTests {
@Autowired
private TemplateEngine templateEngine;
@Test
void contextLoads() {
Context context = new Context();
context.setVariable("username", "qx");
context.setVariable("position", "总经理");
context.setVariable("salary", "10000");
// 返回渲染后的内容 通过邮件等发送出去
String email = templateEngine.process("email", context);
System.out.println(email);
}
}
在测试类中,我们注入一个TemplateEngine对象,这个对象是我们在引入Thymeleaf时通过自动化配置中配置的,然后构造一个Context对象用来存放变量,调用process方法进行渲染,返回值就是我们渲染后的HTML字符串,我们可以把这个字符串通过邮箱等形式发送出去。