玩转 SpringBoot2.x 之整合邮件发送
序
在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。
原文地址:https://www.mmzsblog.cn/articles/2020/07/28/1595865811262.html
正常我们会用 JavaMail 相关 api 来写发送邮件的相关代码,但现在 SpringBoot 提供了一套更简易使用的封装。这篇文章,阿淼就带大家通过 SpringBoot 快速的实现发送邮件的功能。
1、开启smtp
这里以 163 邮箱为例。登录 163 邮箱之后,点击设置,如下图:
1.1、登录邮箱-设置
获取 spring.mail.password 授权码:

1.2、开启IMAP/SMTP服务,根据提示走获取授权码


这个授权码,就是发送邮件时需要的密码。
1.3、下方有服务地址SMTP服务器:smtp.163.com就是我们要的

以上步骤完成之后,就可以开始开发了。
2、新建 maven 项目

3、 pom 文件中所涉及的依赖包
导入 SpringBoot 父依赖版本为 2.02
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
导入 web 和 mail 邮件相关依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
4、配置文件
配置文件中参数的获取,最后介绍。
server:
port: 8082
spring:
http:
encoding:
# 编码集
charset: utf-8
enabled: true
mail:
default-encoding: UTF-8
#发送邮件的账户
username: xxxxxxx@qq.com
# 授权码(获取方式前文已描述)
password: xxxxxxyyyyyy
# (邮箱服务器地址,获取方式前文已描述)
# 163 邮箱是smtp.163.com
# qq邮箱则为smtp.qq.com
host: smtp.163.com
properties:
mail:
smtp:
ssl:
enable: true
5、发送类实现
Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能。

Spring 自带了一个 MailSender 的实现 JavaMailSenderImpl,它会使用 JavaMail API 来发送 Email。后来 spring 推出
JavaMailSender 进一步简化邮件发送的过程,然后 SpringBoot 对此进行了封装,就有了
现在的 spring-boot-starter-mail。
接下来,阿淼和大家一起通过实例看看如何在 SpringBoot 中使用 JavaMailSenderImpl 发送邮件。
简单消息邮件:
@Resource
private JavaMailSenderImpl javaMailSenderImpl;
public void sendSimpleMail() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// 设置邮件主题
simpleMailMessage.setSubject("账号激活");
// 设置要发送的邮件内容
simpleMailMessage.setText("hello!");
// 要发送的目标邮箱
simpleMailMessage.setTo("yyyyyyyyyy@163.com");
// 发送者邮箱和配置文件中的邮箱一致
simpleMailMessage.setFrom("xxxxxxxx@qq.com");
javaMailSenderImpl.send(simpleMailMessage);
}
复杂消息邮件:
@Resource
private JavaMailSenderImpl javaMailSenderImpl;
public void sendMimeMail() {
MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage();
try {
// 开启文件上传
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
// 设置文件主题
mimeMessageHelper.setSubject("账号激活");
// 设置文件内容 第二个参数设置是否支持html
mimeMessageHelper.setText("<b style='color:red'>账号激活,请点击我</b>", true);
// 设置发送到的邮箱
mimeMessageHelper.setTo("yyyyyyyyyy@163.com");
// 设置发送人和配置文件中邮箱一致
mimeMessageHelper.setFrom("xxxxxxxx@qq.com");
// 上传附件
// mimeMessageHelper.addAttachment("", new File(""));
} catch (MessagingException e) {
e.printStackTrace();
}
javaMailSenderImpl.send(mimeMessage);
}
6、 Controller 类
@RestController
public class SendMailController {
@Resource
private SendMail sendMail;
@GetMapping("/sendSimpleMail")
public void sendSimpleMail() {
sendMail.sendSimpleMail();
}
@GetMapping("/sendMimeMail")
public void sendMimeMail() {
sendMail.sendMimeMail();
}
}
7、测试
7.1、简单邮件
利用 postman 发送请求:

查看邮箱结果:

7.2、复杂邮件
利用 postman 发送请求:

查看邮箱结果:

从结果可以看出,我们设置的 <b style='color:red'>账号激活,请点击我</b> 字体样式已经展示出效果了!
参考 :https://www.cnblogs.com/jmcui/p/9758442.html
github代码地址:
https://github.com/mmzsblog/mmzsblog-util
玩转 SpringBoot2.x 之整合邮件发送的更多相关文章
- Spring Boot整合邮件发送
概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <dependenc ...
- SpringBoot整合邮件发送
本节介绍SpringBoot项目如何快速配置和发送邮件,包括简单的邮件配置.发送简单邮件.发送HTML邮件.发送携带附件的邮件等. 示例源码在:https://github.com/laolunsi/ ...
- springboot整合邮件发送(163邮箱发送为例)
先登录163邮箱获取授权 勾选后安装提示会叫你设置授权密码之类的:记住授权的密码 1.引入maven依赖 <dependency> <groupId>org.springfr ...
- 玩转 SpringBoot2.x 之整合 thumbnailator 图片处理
1.序 在实际项目中,有时为了响应速度,难免会对一些高清图片进行一些处理,比如图片压缩之类的,而其中压缩可能就是最为常见的.最近,阿淼就被要求实现这个功能,原因是客户那边嫌速度过慢.借此机会,阿淼今儿 ...
- thinkphp 整合 swiftmailer 实现邮件发送
thinkphp swiftmailer(phpmailer) 文件夹结构 图 1 swiftmailer-phpmailer 将swiftmailer整合到thinkphp中.如上图 1 我下载的版 ...
- 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php 第二步: 将phpmailer文件 ...
- SpringBoot 2.X从0到1实现邮件发送功能
Spring中提供了JavaMailSender接口实现邮件发送功能,在SpringBoot2.X中也封装了发送邮件相关的Starter并且提供了自动化配置. 本文目录 一.添加对应的Starter二 ...
- c#实现邮件发送链接激活
2016-08-24 10:09:52 public void MailSend(string email) { MailMessage MyMail = new MailMessage(); MyM ...
- 邮件发送服务AWS SES,Mailgun以及SendCloud(转)
原文:http://www.l4zy.com/posts/aws_ses-mailgun-sendcloud.html 电子邮件这一已经诞生很多年的互联网基础服务并没有随着时间的推移而慢慢消亡,实际上 ...
随机推荐
- Docker-教你如何通过 Docker 快速搭建各种测试环境
今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通 ...
- 普通平衡树学习笔记之Splay算法
前言 今天不容易有一天的自由学习时间,当然要用来"学习".在此记录一下今天学到的最基础的平衡树. 定义 平衡树是二叉搜索树和堆合并构成的数据结构,它是一 棵空树或它的左右两个子树的 ...
- java 基本语法(十二) 数组(五)Arrays工具类的使用
1.理解:① 定义在java.util包下.② Arrays:提供了很多操作数组的方法. 2.使用: //1.boolean equals(int[] a,int[] b):判断两个数组是否相等. i ...
- java 基本语法(二) 变量的使用(重点)
1.变量的分类1.1 按数据类型分类 详细说明://1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节) //① byte范围:-128 ~ ...
- python 并发专题(十二):基础部分补充(四)协程
相关概念: 协程:一个线程并发的处理任务 串行:一个线程执行一个任务,执行完毕之后,执行下一个任务 并行:多个CPU执行多个任务,4个CPU执行4个任务 并发:一个CPU执行多个任务,看起来像是同时执 ...
- Angular 懒加载找不到模块问题解决方法
问题: 懒加载无法找到模块 解决办法: 在app-routing.module.ts中引入该模块
- Oracle基础概述
本部分主要参考”风哥“的Oracle入门视频. 一.体系结构概述 1.物理结构(文件结构) Oracle有四种文件:控制文件.数据文件.日志文件.参数文件 其中日志文件分为两类:联机日志文件.归档日志 ...
- svg 使用中的疑惑点
svg,g ,defs,symbol 都是容器元素,使用起来给人许多疑惑 svg-spirite-loader在页面生成的svg标签有什么特点? svg标签里面的symbol有什么用? 这些标签能够随 ...
- Eclipse点击空格总是自动补全代码怎么办,如何自动补全代码,代码提示
Eclipse点击空格总是自动补全不想要的代码说明大家配置的时候出现了一点错误,下面的步骤将会解决它, 网上部分经验需要大家更改代码非常繁琐,下面是一个简单的步骤方法 步骤一:打开eclipse依次点 ...
- Makefile中的一个坑
问题描述:Makefile中,我想将一个变量的后缀全部进行替换,如将所有的.c后缀变成.d后缀 方法:$(CUR_SOURCE: .c = .d ) 说明:查阅相关资料,了解到上述这种语法就可以将所有 ...