Spring Boot中使用邮件模版发送邮件
原创大约 2 分钟
Spring Boot中使用邮件模版发送邮件
通常我们使用邮件发送服务的时候,都会有一些固定的场景,比如:重置密码、注册确认等,给每个用户发送的内容可能只有小部分是变化的。
所以,很多时候我们会使用模板引擎来为各类邮件设置成模板,这样我们只需要在发送时去替换变化部分的参数即可。
在Spring Boot中使用模板引擎来实现模板化的邮件发送也是非常容易的,下面我们以velocity为例实现一下。
引入velocity模块的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
在resources/templates/
下,创建一个模板页面template.vm
:
<html>
<body>
<h3>你好, ${username}, 这是一封模板邮件!</h3>
</body>
</html>
我们之前在Spring Boot中开发Web应用时,提到过在Spring Boot的自动化配置下,模板默认位于resources/templates/
目录下
最后,我们在单元测试中加入发送模板邮件的测试用例,具体如下:
@Test
public void sendTemplateMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom("dyc87112@qq.com");
helper.setTo("dyc87112@qq.com");
helper.setSubject("主题:模板邮件");
Map<String, Object> model = new HashedMap();
model.put("username", "didi");
String text = VelocityEngineUtils.mergeTemplateIntoString(
velocityEngine, "template.vm", "UTF-8", model);
helper.setText(text, true);
mailSender.send(mimeMessage);
}
尝试运行一下,就可以收到内容为你好, didi, 这是一封模板邮件!
的邮件。这里,我们通过传入username的参数,在邮件内容中替换了模板中的${username}
变量。
代码示例
本文的相关例子可以查看下面仓库中的chapter4-5-1
目录:
- Github:https://github.com/dyc87112/SpringBoot-Learning
- Gitee:https://gitee.com/didispace/SpringBoot-Learning
如果您觉得本文不错,欢迎Star
支持,您的关注是我坚持的动力!