前面已经讲了使用springboot采用常规的javaweb方式发送邮件使用spring模板发送邮件。但是发送的都是文本文件,现在来说一下使用spring模板发送一些其他的邮件。

1.pom.xml依赖

     <!--spring发送邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!--模板邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>

2.配置文件:

#####163邮箱########
spring.mail.host=smtp.163.com
spring.mail.username=xxxxxxx@163.com
#163邮箱授权码
spring.mail.password=*********
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.发送各种邮件方法:

@Controller
public class ModelController { @Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String Sender; //读取配置文件中的参数
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer; /**
* spring发送文本邮件
*/
@RequestMapping("/mail")
@ResponseBody
public String sendMail(){
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(Sender);
message.setTo("*********@qq.com");
message.setSubject("主题:简单邮件");
message.setText("测试邮件内容");
mailSender.send(message);
return "发送成功!";
} /**
* spring发送Html邮件
*/
@RequestMapping("/mailHtml")
@ResponseBody
public String sendHtmlMail(){
MimeMessage message = null;
try {
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(Sender);
helper.setTo("*********@qq.com");
helper.setSubject("标题:发送Html内容"); StringBuffer sb = new StringBuffer();
sb.append("<h1>大标题-h1</h1>")
.append("<p style='color:#F00'>红色字</p>")
.append("<p style='text-align:right'>右对齐</p>");
helper.setText(sb.toString(), true);
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
return "发送成功!";
} /**
* spring发送带附件的邮件
*/
@RequestMapping("/mailAttach")
@ResponseBody
public String sendAttachmentsMail(){
MimeMessage message = null;
try {
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(Sender);
helper.setTo("*********@qq.com");
helper.setSubject("主题:带附件的邮件");
helper.setText("带附件的邮件内容");
//注意项目路径问题,自动补用项目路径
FileSystemResource file = new FileSystemResource(new File("F:\\临时\\SpringBoot\\src\\main\\resources\\static\\image\\迪丽热巴.jpg"));
//加入邮件
helper.addAttachment("热巴.jpg", file);
} catch (Exception e){
e.printStackTrace();
}
mailSender.send(message);
return "发送成功!";
} /**
* spring发送带静态资源的邮件,资源直接发在邮件内容里,不是附件形式。
*/
@RequestMapping("/mailLine")
@ResponseBody
public String sendInlineMail(){
MimeMessage message = null;
try {
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(Sender);
helper.setTo("*********@qq.com");
helper.setSubject("主题:带静态资源的邮件");
//第二个参数指定发送的是HTML格式,同时cid:是固定的写法
helper.setText("<html><body>带静态资源的邮件内容 图片:<img src='cid:picture' /></body></html>", true); FileSystemResource file = new FileSystemResource(new File("F:\\临时\\SpringBoot\\src\\main\\resources\\static\\image\\迪丽热巴.jpg"));
helper.addInline("picture",file);
} catch (Exception e){
e.printStackTrace();
}
mailSender.send(message);
return "发送成功!";
} /**
* spring发送模板邮件
*/
@RequestMapping("/mailTemplate")
@ResponseBody
public String sendTemplateMail(){
MimeMessage message = null;
try {
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(Sender);
helper.setTo("*********@qq.com");
helper.setSubject("主题:模板邮件"); Map<String, Object> model = new HashedMap();
model.put("username", "zggdczfr"); //修改 application.properties 文件中的读取路径
// FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
// configurer.setTemplateLoaderPath("classpath:templates");
//读取 html 模板
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("mail.html");
String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
helper.setText(html, true);
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
return "发送成功!";
} }

4.图片和模板存放位置:

最新文章

  1. [ES] 安装
  2. ubuntu14.04下简易二进制安装mysql
  3. Tiles &amp; SiteMesh
  4. 标准模板库(STL)学习探究之stack
  5. 深入PHP EOF(heredoc)用法详解
  6. Unity3D之UGUI学习笔记(三):EventSystem
  7. .NET3.5中的高性能 Socket API
  8. mysql的乱码问题
  9. SAE部署Java应用
  10. django+Echarts实现数据可视化
  11. 安装RabbitMQ编译erlang时,checking for c compiler default output file name... configure:error:C compiler cannot create executables See &#39;config.log&#39; for more details.
  12. 【spring源码分析】IOC容器初始化(十一)
  13. Dreamweaver - &lt;!DOCTYPE html&gt;
  14. python网络爬虫day1
  15. hibernate--博客
  16. Python基础(6)——装饰器
  17. laravel 5.4 中使用migrate
  18. 3d的 一些公式
  19. VS2015 WPF Prism Xaml Designer error
  20. R语言学习——列表

热门文章

  1. mybatis学习笔记(一)
  2. studio无限轮播
  3. day01计算机硬件基础
  4. springboot项目中的普通Session和使用redis存储session
  5. eclipse导入的web项目不能部署到tomcat,显示为java项目
  6. Liunx软件安装之Zabbix监控软件
  7. 分布式日志收集系统 —— Flume
  8. Leetcode之深度优先搜索&amp;回溯专题-679. 24 点游戏(24 Game)
  9. [Python] socket实现TFTP上传和下载
  10. MySQL的count(*)的优化,获取千万级数据表的总行数[转]