【快学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 开发提供一个更快更广泛的入门体验. 零配置. ...
最新文章
- java swing 获取text_如何在Java Swing中将文本文件读入jtextarea
- 安卓没删干净导致报错
- 如何利用XShell隧道通过跳板机连接内网机器
- 谈谈晋升-互联网民工篇
- fiddler对手机进行抓包
- c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串
- http --- Web页面请求的历程(如何根据URL寻找到需要的资源)
- 将文件内含有的特殊字符还原
- PIFO到底是什么?【Programmable Packet Scheduling at Line Rate】
- 如何为SharePoint添加一个简单地SMTP邮件发送服务器?
- 鸿蒙移植mate10,鸿蒙系统+麒麟1020再升一个台阶,华为Mate30黯然神伤无奈下跌
- 适配器模式之状态模式
- 第十二届全国计算机化学学术会议,中国化学会第十二届全国天然有机化学学术会议通知(第二轮)...
- 【主动轮廓模型(一)】《Snakes: Active Contour Models》算法原理与OpenCV实现
- 2021微信透明头像!真实有用
- 学习HALCON视觉必会的入门知识| 东哥机器视觉培训
- mac不显示安装的程序
- JAVA系统之间通信方式总结
- VS6中出现:由于找不到MSVCRTD.DLL,无法继续执行代码
- 黑马程序员————IO流3(day20)
热门文章
- Atitit 学习记忆理论 教育理论 教学培训 目录 1. 视觉优先理论	1 2. 心理学的“认知负荷理论	2 2.1. 双重编码理论	2 2.2. 艺术化 原理动画	3 2.3. 艾宾浩斯遗忘曲
- Atitit 持久化 Persistence概念的艺术 目录 1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。	1 2. DBC就是一种持久化机制。文件IO也是一种持久化机制。	2 3.
- Atitit word ppt excel convert txt bp 等文档转换纯文本问题最佳实践.docx Atitit word ppt excel等文档转换txt问题最佳实践 目录 1.
- Atitit 运维之道 1.1.devops算是最低门槛了。什么运维平台,搞来搞去也就那些东西。无外乎cmdb、部署、监控之类的,再加点各种小平台自动化需求。 CMDB --Configurati
- Atiitt 降低财政赤字风险性实施方案
- Atitit webservice发现机制 WS-Discovery标准的规范attilax总结
- Atitit .jvm 虚拟机指令详细解释
- Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825
- paip.提升用户体验与安全性----登录与权限流程总结
- paip.提升安全性-------生成一个安全的验证码