前言

在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过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. java swing 获取text_如何在Java Swing中将文本文件读入jtextarea
  2. 安卓没删干净导致报错
  3. 如何利用XShell隧道通过跳板机连接内网机器
  4. 谈谈晋升-互联网民工篇
  5. fiddler对手机进行抓包
  6. c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串
  7. http --- Web页面请求的历程(如何根据URL寻找到需要的资源)
  8. 将文件内含有的特殊字符还原
  9. PIFO到底是什么?【Programmable Packet Scheduling at Line Rate】
  10. 如何为SharePoint添加一个简单地SMTP邮件发送服务器?
  11. 鸿蒙移植mate10,鸿蒙系统+麒麟1020再升一个台阶,华为Mate30黯然神伤无奈下跌
  12. 适配器模式之状态模式
  13. 第十二届全国计算机化学学术会议,中国化学会第十二届全国天然有机化学学术会议通知(第二轮)...
  14. 【主动轮廓模型(一)】《Snakes: Active Contour Models》算法原理与OpenCV实现
  15. 2021微信透明头像!真实有用
  16. 学习HALCON视觉必会的入门知识| 东哥机器视觉培训
  17. mac不显示安装的程序
  18. JAVA系统之间通信方式总结
  19. VS6中出现:由于找不到MSVCRTD.DLL,无法继续执行代码
  20. 黑马程序员————IO流3(day20)

热门文章

  1. Atitit 学习记忆理论 教育理论 教学培训 目录 1. 视觉优先理论 1 2. 心理学的“认知负荷理论 2 2.1. 双重编码理论 2 2.2. 艺术化 原理动画 3 2.3. 艾宾浩斯遗忘曲
  2. Atitit 持久化 Persistence概念的艺术 目录 1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 1 2. DBC就是一种持久化机制。文件IO也是一种持久化机制。 2 3.
  3. Atitit word ppt excel convert txt bp 等文档转换纯文本问题最佳实践.docx Atitit word ppt excel等文档转换txt问题最佳实践 目录 1.
  4. Atitit 运维之道 1.1.devops算是最低门槛了。什么运维平台,搞来搞去也就那些东西。无外乎cmdb、部署、监控之类的,再加点各种小平台自动化需求。 CMDB --Configurati
  5. Atiitt 降低财政赤字风险性实施方案
  6. Atitit webservice发现机制 WS-Discovery标准的规范attilax总结
  7. Atitit .jvm 虚拟机指令详细解释
  8. Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825
  9. paip.提升用户体验与安全性----登录与权限流程总结
  10. paip.提升安全性-------生成一个安全的验证码