【快学springboot】使用springboot发送邮件
前言
在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过springboot快速的实现一个发送邮件的功能。
开启smtp
这里以QQ邮箱为例。登录QQ邮箱之后,点击设置,点击账户。如下图:
点击开启IMAP/SMTP服务。
记下QQ邮箱提示的授权码:
这个授权码,就是发送邮件时需要的密码。
以上步骤完成之后,就可以开始开发了。
引入依赖
在springboot项目中,引入如下依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>
复制代码
配置文件
在springboot项目中引入依赖之后,即可在其配置文件中配置邮箱的参数:
application.properties
spring.mail.host=smtp.qq.com
spring.mail.username=happyjava@foxmail.com
spring.mail.password=xxxxxxxx
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
复制代码
因为是QQ邮箱,所以host需要使用smtp.qq.com。如果是其它邮箱,搜索下即可找到。
username为邮箱账号,password为上面步骤中提到的授权码。
注入JavaMailSender实例
邮箱参数配置完之后,即可直接注入JavaMailSender实例。
@Autowired
private JavaMailSender javaMailSender;
复制代码
发送普通邮件
普通邮件,没有样式。实现起来最容易:
@Test
public void testSend() throws MessagingException {SimpleMailMessage message = new SimpleMailMessage();message.setFrom("happyjava@foxmail.com");message.setTo("1015030682@qq.com");message.setSubject("这是标题");message.setText("这是内容");javaMailSender.send(message);
}
复制代码
From需要和配置文件中的username一致,否则会报错。
To为邮件接收者;
Subject为邮件的标题;
Text为邮件的内容。
运行方法,即可收到邮件:
发送HTML邮件
很多时候,我们需要邮件带有美观的样式。这时候,可以使用HTML的样式。我们需要使用javaMailSender的createMimeMessage方法,构建一个MimeMessage,然后使用MimeMessage实例创建出MimeMessageHelper。如下:
@Test
public void testSend() throws MessagingException {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);messageHelper.setSubject("标题");messageHelper.setFrom("happyjava@foxmail.com");messageHelper.setTo("1015030682@qq.com");messageHelper.setText("<h1>标题</h1><br/><p>这是内容</p>", true);javaMailSender.send(messageHelper.getMimeMessage());
}
复制代码
这里需要注意的是,setText的时候需要传一个布尔值进去,表名需要使用HTML样式。
运行方法查看结果:
可以看到,h1的样式已经出来了。
总结
本文讲解了如何在springboot中快速的发邮件。介绍了两种发送邮件的方式:1、普通模式;2、HTML模式。其实还支持多种丰富的模式,比如模板引擎等,这里就不讲解了,其实使用起来大同小异。
转载于:https://juejin.im/post/5d079f1d6fb9a07ef90c9a4d
【快学springboot】使用springboot发送邮件相关推荐
- 「快学springboot」SpringBoot多环境配置文件
[原创] Happyjava 2019-06-18 07:01:00 往期文章 「快学Docker」Docker简介.安装和Hello World实现 「快学springboot」使用springbo ...
- jpa mysql乐观锁_【快学springboot】8.JPA乐观锁OptimisticLocking
介绍 当涉及到企业应用程序时,正确地管理对数据库的并发访问是至关重要的.为此,我们可以使用Java Persistence API提供的乐观锁定机制.它导致在同一时间对同一数据进行多次更新不会相互干扰 ...
- 必学框架新版SpringBoot教程(下集)
个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 SpringBoot+JDB ...
- 玩转 SpringBoot 2 之发送邮件篇
前言 通过本文你将了解到SpringBoot 2 中发送邮件使用教程,具体详细内容如下: 发送普通的邮件 发送html格式邮件 发送html 中带图片的邮件 发送带附件的邮件 阅读前需要你必须了解如何 ...
- Springboot企业邮箱发送邮件
1.这里以腾讯企业邮箱为例 2.首先确定springboot版本,目前使用1.5.7, 3.添加邮件依赖 <dependency><groupId>org.springfram ...
- SpringBoot使用JavaMailSender发送邮件:com.sun.mail.smtp.SMTPSendFailedException: 451 MI:SFQ 163 smtp7
SpringBoot使用JavaMailSender发送邮件时,报错如下: 2020-08-08 07:32:21,237 ERROR --- [http-nio-8080-exec-1] cn.co ...
- 从现在开始学 Kafka:SpringBoot 集成 Kafka,生产者与消费者示例
从现在开始学 Kafka:SpringBoot 集成 Kafka,生产者与消费者示例 前言 加依赖 生产者 加配置 生产者代码示例 消费者 加配置 消费者监听器示例 调用 关于 Serializer ...
- 那年我学过的SpringBoot笔记
maven SpringBoot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. SpringBoot的特点(优点) 内 ...
- 计算机毕业设计springboot基于Springboot的在线教育平台的设计与实现8qecq源码+系统+程序+lw文档+部署
计算机毕业设计springboot基于Springboot的在线教育平台的设计与实现8qecq源码+系统+程序+lw文档+部署 计算机毕业设计springboot基于Springboot的在线教育平台 ...
- 【SpringBoot】SpringBoot简介
什么是SpringBoot? SpringBoot是为了尽快跑起来Spring项目并尽可能减少配置文件,默认配置了很多框架的使用方式. 为所有Spring 开发提供一个更快更广泛的入门体验. 零配置. ...
最新文章
- 【Android 进程保活】应用进程拉活 ( 双进程守护 + JobScheduler 保活 | 成功率最高 | 推荐使用 )
- day58-activiti 02-历史数据查询
- 中控指纹采集器开发指纹识别项目(说明)
- iBatis入门和开发环境搭建
- LeetCode 1245. 树的直径(图的最大直径结论)
- 信息学奥赛一本通(1156:求π的值)
- JAVA中list的循环遍历,详解Java中list,set,map的遍历与增强for循环
- Java logging整理
- Html和Css学习笔记-html进阶-html5属性
- Java线程 生产者--消费者模式总结(一)
- C\C++中函数后面加const
- 无法加载 Chrome PDF Viewer
- 知识图谱嵌入:TransE算法原理及代码详解
- 计算机组成 超标量,计算机组成原理6-流水线、多发射和超标量、SIMD(示例代码)...
- cad2019菜单栏怎么调出来_AutoCAD2019工具栏没了找不到解决方法 AutoCAD2019工具栏怎么调出来...
- 好奇那些进了大厂的程序员面试前都做了哪些准备?Android大厂面试官全套教程教你:这样准备面试顺利拿到offer
- PicPick 5.1.3 中文版,一个全功能的屏幕截图工具,图像编辑器,颜色选择器
- Qt实现 QOpenGL绘制彩色三角形
- onmouseover和onmouseout的烦恼
- 利用MDK的FLM文件生成通用flash驱动
热门文章
- Atitit 知识管理的艺术 艾提拉著作 这个实际上涉及到知识的管理(获取 ,存储,索引,查找等方法 目录 1. 记不住的本质	2 1.1. 真的没有记住	2 1.2. 暂时没有搜索到,可能是
- Atitit 分布式之道 attilax著 第4章 通信 第7章 一致性和复制 第8章 容错性 第9章 安全性 第10章 基于对象的分布式系统 第11章 分布式文件系统 第12章 基于Web的分
- Atitit.异常的设计原理与 策略处理 java 最佳实践 p93
- 机器学习笔记(十八):模型正则化
- 五个问答告诉你:阿里云对象存储如何助力钉钉战胜业务洪峰
- Octavia 加速 OpenStack LBaaS 落地大规模应用场景
- 【运动学】基于matlab计步【含Matlab源码 524期】
- SPSS答疑解惑25问【SPSS 071期】
- java zinterstore_Java架构之Redis系列:通过文章点赞排名案例学习Sortedset命令
- kali linux 桌面消失_Kali安装好后,需要修改的一些常用配置