前言

在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过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发送邮件相关推荐

  1. 「快学springboot」SpringBoot多环境配置文件

    [原创] Happyjava 2019-06-18 07:01:00 往期文章 「快学Docker」Docker简介.安装和Hello World实现 「快学springboot」使用springbo ...

  2. jpa mysql乐观锁_【快学springboot】8.JPA乐观锁OptimisticLocking

    介绍 当涉及到企业应用程序时,正确地管理对数据库的并发访问是至关重要的.为此,我们可以使用Java Persistence API提供的乐观锁定机制.它导致在同一时间对同一数据进行多次更新不会相互干扰 ...

  3. 必学框架新版SpringBoot教程(下集)

    个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 SpringBoot+JDB ...

  4. 玩转 SpringBoot 2 之发送邮件篇

    前言 通过本文你将了解到SpringBoot 2 中发送邮件使用教程,具体详细内容如下: 发送普通的邮件 发送html格式邮件 发送html 中带图片的邮件 发送带附件的邮件 阅读前需要你必须了解如何 ...

  5. Springboot企业邮箱发送邮件

    1.这里以腾讯企业邮箱为例 2.首先确定springboot版本,目前使用1.5.7, 3.添加邮件依赖 <dependency><groupId>org.springfram ...

  6. 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 ...

  7. 从现在开始学 Kafka:SpringBoot 集成 Kafka,生产者与消费者示例

    从现在开始学 Kafka:SpringBoot 集成 Kafka,生产者与消费者示例 前言 加依赖 生产者 加配置 生产者代码示例 消费者 加配置 消费者监听器示例 调用 关于 Serializer ...

  8. 那年我学过的SpringBoot笔记

    maven SpringBoot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. SpringBoot的特点(优点) 内 ...

  9. 计算机毕业设计springboot基于Springboot的在线教育平台的设计与实现8qecq源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于Springboot的在线教育平台的设计与实现8qecq源码+系统+程序+lw文档+部署 计算机毕业设计springboot基于Springboot的在线教育平台 ...

  10. 【SpringBoot】SpringBoot简介

    什么是SpringBoot? SpringBoot是为了尽快跑起来Spring项目并尽可能减少配置文件,默认配置了很多框架的使用方式. 为所有Spring 开发提供一个更快更广泛的入门体验. 零配置. ...

最新文章

  1. 【Android 进程保活】应用进程拉活 ( 双进程守护 + JobScheduler 保活 | 成功率最高 | 推荐使用 )
  2. day58-activiti 02-历史数据查询
  3. 中控指纹采集器开发指纹识别项目(说明)
  4. iBatis入门和开发环境搭建
  5. LeetCode 1245. 树的直径(图的最大直径结论)
  6. 信息学奥赛一本通(1156:求π的值)
  7. JAVA中list的循环遍历,详解Java中list,set,map的遍历与增强for循环
  8. Java logging整理
  9. Html和Css学习笔记-html进阶-html5属性
  10. Java线程 生产者--消费者模式总结(一)
  11. C\C++中函数后面加const
  12. 无法加载 Chrome PDF Viewer
  13. 知识图谱嵌入:TransE算法原理及代码详解
  14. 计算机组成 超标量,计算机组成原理6-流水线、多发射和超标量、SIMD(示例代码)...
  15. cad2019菜单栏怎么调出来_AutoCAD2019工具栏没了找不到解决方法 AutoCAD2019工具栏怎么调出来...
  16. 好奇那些进了大厂的程序员面试前都做了哪些准备?Android大厂面试官全套教程教你:这样准备面试顺利拿到offer
  17. PicPick 5.1.3 中文版,一个全功能的屏幕截图工具,图像编辑器,颜色选择器
  18. Qt实现 QOpenGL绘制彩色三角形
  19. onmouseover和onmouseout的烦恼
  20. 利用MDK的FLM文件生成通用flash驱动

热门文章

  1. Atitit 知识管理的艺术 艾提拉著作 这个实际上涉及到知识的管理(获取 ,存储,索引,查找等方法 目录 1. 记不住的本质 2 1.1. 真的没有记住 2 1.2. 暂时没有搜索到,可能是
  2. Atitit 分布式之道 attilax著 第4章 通信 第7章 一致性和复制 第8章 容错性 第9章 安全性 第10章 基于对象的分布式系统 第11章 分布式文件系统 第12章 基于Web的分
  3. Atitit.异常的设计原理与 策略处理 java 最佳实践 p93
  4. 机器学习笔记(十八):模型正则化
  5. 五个问答告诉你:阿里云对象存储如何助力钉钉战胜业务洪峰
  6. Octavia 加速 OpenStack LBaaS 落地大规模应用场景
  7. 【运动学】基于matlab计步【含Matlab源码 524期】
  8. SPSS答疑解惑25问【SPSS 071期】
  9. java zinterstore_Java架构之Redis系列:通过文章点赞排名案例学习Sortedset命令
  10. kali linux 桌面消失_Kali安装好后,需要修改的一些常用配置