springboot对JMS提供了很好的支持,对其做了起步依赖。

构架工程

创建一个springboot工程,在其pom文件加入:

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

添加配置

spring.mail.host=smtp.163.com
spring.mail.username=miles02@163.com
spring.mail.password=
spring.mail.port=25
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8

在password 中填写自己的邮箱密码。

测试发邮件

测试代码清单如下:

package com.forezp;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringRunner;import javax.mail.internet.MimeMessage;
import java.io.File;@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootJmsApplicationTests {@Testpublic void contextLoads() {}@Autowiredprivate JavaMailSenderImpl mailSender;/*** 发送包含简单文本的邮件*/@Testpublic void sendTxtMail() {SimpleMailMessage simpleMailMessage = new SimpleMailMessage();// 设置收件人,寄件人simpleMailMessage.setTo(new String[] {"miles02@163.com"});simpleMailMessage.setFrom("miles02@163.com");simpleMailMessage.setSubject("Spring Boot Mail 邮件测试【文本】");simpleMailMessage.setText("这里是一段简单文本。");// 发送邮件mailSender.send(simpleMailMessage);System.out.println("邮件已发送");}/*** 发送包含HTML文本的邮件* @throws Exception*/@Testpublic void sendHtmlMail() throws Exception {MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);mimeMessageHelper.setTo("miles02@163.com");mimeMessageHelper.setFrom("miles02@163.com");mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【HTML】");StringBuilder sb = new StringBuilder();sb.append("<html><head></head>");sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");sb.append("</html>");// 启用htmlmimeMessageHelper.setText(sb.toString(), true);// 发送邮件mailSender.send(mimeMessage);System.out.println("邮件已发送");}/*** 发送包含内嵌图片的邮件* @throws Exception*/@Testpublic void sendAttachedImageMail() throws Exception {MimeMessage mimeMessage = mailSender.createMimeMessage();// multipart模式MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);mimeMessageHelper.setTo("miles02@163.com");mimeMessageHelper.setFrom("miles02@163.com");mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【图片】");StringBuilder sb = new StringBuilder();sb.append("<html><head></head>");sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p>");// cid为固定写法,imageId指定一个标识sb.append("<img src=\"cid:imageId\"/></body>");sb.append("</html>");// 启用htmlmimeMessageHelper.setText(sb.toString(), true);// 设置imageIdFileSystemResource img = new FileSystemResource(new File("E:/1.jpg"));mimeMessageHelper.addInline("imageId", img);// 发送邮件mailSender.send(mimeMessage);System.out.println("邮件已发送");}/*** 发送包含附件的邮件* @throws Exception*/@Testpublic void sendAttendedFileMail() throws Exception {MimeMessage mimeMessage = mailSender.createMimeMessage();// multipart模式MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");mimeMessageHelper.setTo("miles02@163.com");mimeMessageHelper.setFrom("miles02@163.com");mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【附件】");StringBuilder sb = new StringBuilder();sb.append("<html><head></head>");sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");sb.append("</html>");// 启用htmlmimeMessageHelper.setText(sb.toString(), true);// 设置附件FileSystemResource img = new FileSystemResource(new File("E:/1.jpg"));mimeMessageHelper.addAttachment("image.jpg", img);// 发送邮件mailSender.send(mimeMessage);System.out.println("邮件已发送");}
}

测试已全部通过,没有坑。

参考资料

http://blog.720ui.com/2017/springboot_07_othercore_javamail/

源码下载

https://github.com/forezp/SpringBootLearning

SpringBoot第二十一篇: springboot集成JMS相关推荐

  1. 奋斗的小孩系列 FPGA学习altera系列: FPGA学习altera 系列 第二十一篇 数码管设计

    奋斗的小孩系列 FPGA学习altera系列: FPGA学习altera 系列 第二十一篇 数码管设计 作者:奋斗的小孩 郝旭帅(转载请注明出处) 大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是 ...

  2. SpringBoot第二十三篇:安全性之Spring Security

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11350255.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   系统的安全 ...

  3. 【第二十一篇】Flowable之SpringBoot集成FlowableUI

    FlowableUI集成到SpringBoot lecture:波波老师 一.常见的整合方式   在Flowable工作流开发中大家最为头疼的应该就是流程设计器的整合了.常见的整合方式有两种 在实际项 ...

  4. SpringBoot第十一篇:springboot集成swagger2,构建优雅的Restful API

    swagger,中文"拽"的意思.它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试.另外swagger很容易构建restful风 ...

  5. SpringBoot第二十三篇: 异步方法

    这篇文章主要介绍在springboot 使用异步方法,去请求github api. 创建工程 在pom文件引入相关依赖: <dependency><groupId>org.sp ...

  6. 第十一篇 SpringBoot 2 x整合Swagger2

    程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档. 程序员最讨厌的四件事:写注释.写文档.别人不写注释.别人不写文档-- 关于写文档这个事情,争论已久,今天就 ...

  7. 精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是OAuth OAuth官网介绍是这样的: An open protocol to allow secure auth ...

  8. python之路2.0_Python之路【第二十一篇】:JS基础

    1.2 ECMAScript 尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分.实际上,一个完整的 JavaScript 实现 ...

  9. 第二十一篇:伦理/道德Ethics

    目录 什么是伦理/道德? 我们为什么要关心? 为什么道德很难? 学习成果 大纲 反对 NLP 道德检查的论据 我们应该审查科学吗? H5N1 透明度不是更好吗? AI vs. Cybersecurit ...

最新文章

  1. optee内核中栈的介绍(二)
  2. Silverlight通过Wcf Data Service访问数据库之ADO.NET Entity Framework篇
  3. PHP/JS中获取当前页面的完整URL
  4. JAVA基础之变量(数据类型及其转换)
  5. Google通过提交表单抓取新页面
  6. 两个子数组和的差最小
  7. C.I.刘易斯的学术之路--- 刘易斯逻辑之十二尾篇
  8. matlab神经网络工具箱的使用
  9. aps审核计算机笔试试题,APS审核—计算机组成原理.doc
  10. UCenter 通信
  11. 上海亚商投顾:沪指缩量跌0.43%
  12. 计算机教师资格证面试题目,教师资格证面试常见结构化面试试题
  13. Schema指示器(Indicators)
  14. 高德地图 gps坐标偏移到火星坐标系
  15. Java 提取PDF图片(pdfbox)Extract PDF document images
  16. 作业~嗖嗖移动业务大厅
  17. xendesktop 打开DDC的Desktop Studio控制台和用户访问Web Interface有时候会非常慢
  18. Win7开启远程桌面——图文详解
  19. 字符串的最大递增子串
  20. linux 更改make版本,Linux下查看系统版本和make版本

热门文章

  1. Jquery 将表单序列化为Json对象
  2. 仲兆鹏 160809329 第5次
  3. iOS关于自定义rightBarButtonItem
  4. CEGUI-----动画
  5. C#如何根据DataTable生成泛型List或者动态类型list
  6. 说说.net事件和委托。
  7. 【NCEPU】王子朝:神经网络、支持向量机原理
  8. 【组队学习】【31期】 吃瓜教程——西瓜书+南瓜书
  9. 【直播】林锦弘:CV赛事高分经验分享
  10. 数据结构与算法:19 排序