springboot 邮件服务

  今天在看网上学习微服务的时候顺遍看到了一些关于springboot的文章,写的springboot拓展功能就顺遍学习了一下,接下来给大家分享一下springboot封装集成了邮件服务。

  发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装。

简易应用

  1.gradle配置

compile('org.springframework.boot:spring-boot-starter-mail')

  2.编写配置

  我这里用的是qq邮箱发送,使用qq邮箱必须qq邮箱中 设置 >> 账户 >> 把POP3/SMTP服务开启

  

  
  如果用qq邮箱发送这里的password不是邮箱密码,是刚才开启POP3/SMTP服务时生成的链接字符

  properties返回类型是一个Map类型,properties肯定对应的是一些拓展的参数,那个smtp一定是需要开启的

  3.编码实现Text发送

   

   from为发送者

   to为接受者,可以理解为订阅者,这里可以传数组

   subject为标题

   content为内容

   编码测试

   4.编码实现HTML发送

@Override
public void sendHtmlMail(String to, String subject, String content) { MimeMessage message = mailSender.createMimeMessage(); try {
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true); mailSender.send(message);
System.out.println("发送成功~");
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("发送失败~");
}
}

    HTML的发送需要借助MimeMessage,MimeMessageHelper的setTest方法提供是否开启html的重装方法。

  5.编码实现发送附件

    

 @Override
public void sendAttachmentsMail(String to, String subject, String content,String path) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource fileSystemResource = new FileSystemResource(new File(path)); String fileName= path.substring(path.lastIndexOf(File.separator));
helper.addAttachment(fileName,fileSystemResource); mailSender.send(message);
System.out.println("发送成功!");
}catch (Exception e){
e.printStackTrace();
System.out.println("发送失败!");
}
}

     可以通过多个addAttachment方法发送多个附件,File.separator是用来分隔同一个路径字符串中的目录

   6.编写实现模板发送

    我们有时候收到的邮件就想一封信一样格式非常优雅,如果我们采用上面那种方式编写HTML字符硬性拼接的话起步很麻烦,所有对于这种需求,我们建议使用模板来处理。

    这里采用的是Thymeleaf来演示

    1.导入build.gradle

compile('org.springframework.boot:spring-boot-starter-thymeleaf')

    2.在resources/templates新建index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Title</title>
</head>
<body>
请点击下面的链接来验证身份<br/>
<a href="#" th:href="@{ http://www.baidu.com/{id} }">激活账号</a>
</body>
</html>

    3.解析模块发送

@Autowired
private TemplateEngine templateEngine; @Test
public void contextLoadsFour(){
Context context = new Context();
context.setVariable("id","110");
String content = templateEngine.process("index",context);
mailService.sendHtmlMail("2752555817@qq.com","Hello",content);
}

    process方法第一个参数对于页面逻辑视图名称

SpringBoot之邮件服务的更多相关文章

  1. Springboot】Springboot整合邮件服务(HTML/附件/模板-QQ、网易)

    介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动.营销广告等:对内可以发送系统监控报告与告警. 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置. 如图所 ...

  2. spring-boot(六) 邮件服务

    学习文章来自:springboot(十):邮件服务 简单使用 1.pom包配置 pom包里面添加spring-boot-starter-mail包引用 <dependencies> < ...

  3. springboot系列九,springboot整合邮件服务、整合定时任务调度

    一.整合邮件服务 如果要进行邮件的整合处理,那么你一定需要有一个邮件服务器,实际上 java 本身提供有一套 JavaMail 组件以实现邮件服务器的搭建,但是这个搭建的服务器意义不大,因为你现在搭建 ...

  4. springboot(七)邮件服务

    简单使用 发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息.最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMai ...

  5. springboot的邮件服务

    作者:纯洁的微笑出处:http://www.ityouknow.com/ 版权归作者所有,转载请注明出处 springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEA ...

  6. springboot集成邮件服务

    一.前言 Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能. Spring 自带了一 ...

  7. SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 服务整合 2.背景 在进行项目开发的时候经常会遇见以下的几个问题:需要进行邮件发送.定时的任务调 ...

  8. 五、springboot 简单优雅是实现邮件服务

    前言 spring boot 的项目放下小半个月没有更新了,终于闲下来可以开心的接着写啦. 之前我们配置好mybatis 多数据源的,接下来我们需要做一个邮件服务.比如你注册的时候,需要输入验证码来校 ...

  9. Springboot 系列(十三)使用邮件服务

    在我们这个时代,邮件服务不管是对于工作上的交流,还是平时的各种邮件通知,都是一个十分重要的存在.Java 从很早时候就可以通过 Java mail 支持邮件服务.Spring 更是对 Java mai ...

随机推荐

  1. 2019-11-29-win10-uwp-手把手教你使用-asp-dotnet-core-做-cs-程序

    原文:2019-11-29-win10-uwp-手把手教你使用-asp-dotnet-core-做-cs-程序 title author date CreateTime categories win1 ...

  2. C# 简单日志帮助类LogHelper

    调用: LogHelper.Debug(""); LogHelper.Info(""); LogHelper.Error(""); 项目添加 ...

  3. asp.net 版本一键升级,后台直接调用升级脚本

    应客户需求,要求实现一个版本一键升级的功能,咨询过同事之后弄了个demo出来,后台代码如下: //DBConnModelInfo:连接字符串的对象 (包含数据库实例名,数据库名,登陆名,登陆密码) p ...

  4. topshelf注册服务

    1.需要从nutget上获取toshelf配置 2.代码 using Common.Logging; using Quartz; using Quartz.Impl; using System; us ...

  5. Linux实用指令(5)

    指定运行级别(系统的制定级别配置文件/etc/inittab): 0:关机 1:单用户(单用户级别root登录不需要密码,进入之后重新设置密码) 2:多用户无网络服务 3:多用户有网络服务 4:系统未 ...

  6. Centos 7 JDK 安装(默认之前没有安装过)

    第一步: 安装JDK,先检查JDK是否存在,输入以下命令回车: java -version 没有安装过会显示: [root@heyouhao /]# java -version [root@heyou ...

  7. 【python爬虫】每天统计一遍up主粉丝数!

    目录 每天统计一遍up主粉丝数! 第一步,爬取up主的粉丝信息 1.首先导入需要的包 2.为了方便,把它写成一个函数 3.那么就调用一下这个函数吧! 4.运行一下,成功啦! 第二,说好的每天统计一遍呢 ...

  8. Cobaltstrike安装

    1.下载JDK http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jd ...

  9. uni-app通过判断接口403跳转登录页面的问题

    需求: 当向后端请求接口返回 403 的时候,直接跳到登录页面让用户登录 实现方案: 在请求结束后拦截器中判断,如果是 403 就跳转 遇到难题: 一级页面(我的) onShow() 中有接口请求,用 ...

  10. APS系统帮助寻找企业最优库存

    零库存模式的实施要有深厚的民族文化和企业文化为支点.随着对零库存管理研究的深入,就会发现它不仅仅是一种运营管理技术,更是一种文化.一种哲学. 当这种认同文化体现在企业与企业之间时,就会表现出彼此的认同 ...