📜  邮件的 thymeleaf spring boot 依赖 - Java (1)

📅  最后修改于: 2023-12-03 14:58:09.660000             🧑  作者: Mango

邮件的 thymeleaf spring boot 依赖 - Java

简介

当你需要在Java代码中发送邮件时,thymeleaf和spring boot可以提供便利的方式。Thymeleaf是一个基于Java的模板引擎,可以方便地与Spring Boot集成。Spring Boot是一个开源框架,它简化了Spring应用程序的构建和部署。

添加依赖

首先,需要在pom.xml文件中添加如下依赖:

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

这两个依赖可以让你很方便地使用thymeleaf来生成HTML格式的邮件。

创建邮件模板

在src/main/resources/templates目录下创建一个thymeleaf模板文件,例如mail.html,内容如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
  <meta charset="UTF-8">
  <title>邮件模板</title>
</head>
<body>
  <h1 th:text="${subject}">邮件标题</h1>
  <p th:text="${text}">邮件内容</p>
</body>
</html>

这个模板文件会被thymeleaf解析,并替换其中的变量。

发送邮件

下面是一个简单的Java类,它使用thymeleaf生成HTML格式的邮件,并发送到指定地址。

@Service
public class MailService {

    @Autowired
    private JavaMailSender javaMailSender;

    @Autowired
    private TemplateEngine templateEngine;

    public void sendMail(String subject, String text, String recipient) {
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, "utf-8");

        try {
            Context context = new Context();
            context.setVariable("subject", subject);
            context.setVariable("text", text);

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

            helper.setTo(recipient);
            helper.setText(htmlContent, true);
            helper.setSubject(subject);
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

这个类使用“@Autowired”注解,自动注入了JavaMailSender和TemplateEngine。JavaMailSender对象通过Spring Boot的自动配置获得,你只需要在application.properties配置文件中指定邮件服务器的地址、端口号、用户名和密码即可。TemplateEngine对象的注入同理。

发送邮件的实现主要是在“sendMail”方法中。它首先创建了一个MimeMessage对象和一个MimeMessageHelper对象,用于表示邮件内容。然后创建了一个Context对象,设置了变量值,最后使用TemplateEngine来解析模板文件,并生成HTML格式的邮件内容。MimeMessageHelper对象的“setText”方法设置邮件内容,第二个参数为“true”表示邮件内容为HTML格式。最后调用JavaMailSender的“send”方法发送邮件。

总结

使用thymeleaf和spring boot发送邮件非常方便。只需要添加几个依赖,创建一个模板文件,然后在Java代码中调用相关方法即可。在发送邮件时,thymeleaf可以方便地帮你生成HTML格式的邮件。如果你的项目中已经使用了spring boot和thymeleaf,那么这种方式是最便捷的。