实现发送模板邮件|学习笔记

简介: 快速学习实现发送模板邮件

开发者学堂课程【SpringBoot 实战教程 实现发送模板邮件】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10807


实现发送模板邮件


1、什么是模版

比如 html 模版每次使用相同的模版但是里面的数据都是变化的这就是基于模版的文件使用 FreeMarker 模版引擎首先需要对 FreeMarker 的架包进行依赖

<!-- 邮件依赖-->

<dependency>

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

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

</ dependency>

<dependency>

<groupId>org . springf ramework . boot</groupId>

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

</dependency>

发邮件时用以下模版

< !DOCTYPE html>

<html>

<head>

<meta charset= "UTF-8">

<title>Insert title here</title>

< /head>

<body>

$ {username }指定模版中的数据

</body>

< /html>

2、在 service 中增加一个功能发送模版邮件基于模版的邮件也需要指定发给谁邮件的标题邮件的内容就是模版只是模版被具体的数据替代掉content 相当于用的模版

//发送模板邮件

@Autowired

private FreeMarkerConfiqurer freeMarkerConfig;注入对象用的是这个模版引擎通过 FreeMarkerConfiqurer 得到相应的模版

@Override

Public void sendTemplateMail(StringsendTo,Stringtitle,Stringfile){

MimeMessagemessage=mailSender.createMimeMessage();封装和基于附件的邮件一样

try{

MimeMessageHelperhelper=newMimeMessageHelper(message,true);

helper.setFrom(emailConfig.getEmailFrom());邮件相关的信息通过 helper 复制谁发邮件

helper.setTo(sendTo);发给谁

helper.setSubject(title);标题

//封装模版使用的数据

Map<String,Object>model=new HashMap();封装到map

model.put("username","小"); 用户名模版中需要的数据数据是可以变化的

//得到模版模版就是文件模版的参数名叫 info模版是 template 类型的得到它相当于得到模版对象

Template template=freeMarkerConfig . getConfiguration() .getTemplate (info) ;

有模版有模版的数据如何实现数据用到模版中借助 FreeMarker 里面的工具类把模版和模版的数据传给工具类即可最终把数据运用到模版中转换成字符串字符串作为邮件发送的内容FreeMarkerTemplateUtils.processTemplateIntoString(template,model);

helper.setText(html,true);

}catch(Exceptione){

e.printStackTrace();

}

mailSender.send(message);

}

基于模版的邮件就是这样处理借助于相应模版引擎提供的生成把数据用到模版中最终生成邮件要发送的内容

3、在 controller 中添加功能第三个参数要告诉模版因为模版引擎默认在template 下找相应的模版直接指定模版文件的名字即可最后返回字符串

@RequestMapping ("/template")

@ResponseBody

public String sendTemplateEmail ()

{

emailService . sendTemplateMail. sendTemplateMail ("465008297@qq. com", " 呵呵"‘’info.html‘’) ;

Return ‘’success’’;

}

4、启动controller 访问路径是 template,成功看到字符串

image.png

5、查看邮箱标题是呵呵内容是小红模版中用到了数据模版里面就显示一个 username在模版中使用设置的数据把它作为邮件的内容这就是如何发送基于模版的邮件

image.png

相关文章
|
7月前
|
Java
使用java底层实现邮件的发送(含测试,源码)
使用java底层实现邮件的发送(含测试,源码)
|
7月前
|
存储 弹性计算 运维
自动回复邮件脚本
【4月更文挑战第30天】
80 1
|
7月前
|
人工智能 搜索推荐 算法
爱思唯尔的KBS——模板、投稿、返修、接收的总结
爱思唯尔的KBS——模板、投稿、返修、接收的总结
|
7月前
|
移动开发 Python HTML5
Python办公自动化【发送普通邮件、发送HTML邮件、发送附件邮件-smtplib、批量发送邮件-smtplib、发送邮件-zmail】(八)-全面详解(学习总结---从入门到深化)
Python办公自动化【发送普通邮件、发送HTML邮件、发送附件邮件-smtplib、批量发送邮件-smtplib、发送邮件-zmail】(八)-全面详解(学习总结---从入门到深化)
199 0
Javamail发送新浪邮件后保存邮件到已发送
Javamail发送新浪邮件后保存邮件到已发送
115 0
小储云邮件通知插件配置教程
设置通知配置,配置完成之后,有订单-工单-提现可以通知站长,提升了平台处理效率!
457 0
小储云邮件通知插件配置教程
|
Java 开发者
实现发送带附件的邮件|学习笔记
快速学习实现发送带附件的邮件
234 0
实现发送带附件的邮件|学习笔记
|
Java 数据安全/隐私保护 Spring
如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件
如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件
285 0
如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件
|
数据安全/隐私保护 Android开发
如何使用QQ发送加密邮件
电子邮件是工作和生活的必须。但是,电子邮件是“明信片”(明文收发),无法保证邮件机密信息在邮件流转过程和在邮件服务器中存储的安全。怎么办?
如何使用QQ发送加密邮件