1 分钟教会你用 Spring Boot 发邮件
Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口。
org.springframework.mail.javamail.JavaMailSender
Spring Boot 提供了一个 starter,并能自动配置,下面来做个小例子,顺便解析它做了什么工作。
0、你所需具备的基础
- 什么是 Spring Boot?
- Spring Boot 核心配置文件详解
- Spring Boot 开启的 2 种方式
- Spring Boot 自动配置原理、实战
- Spring Boot 2.x 启动全过程源码分析
更多请在Java技术栈微信公众号后台回复关键字:boot。
1、添加依赖
在 Maven pom.xml 配置文件中加入 spring-boot-starter-mail 依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、添加配置参数
然后在 application.properties 文件中加入以下配置。
spring.mail.host=smtp.exmail.qq.com
spring.mail.username=admin@javastack.cn
spring.mail.password=123456
# 启动SSL时的配置
spring.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.smtp.socketFactory.fallback=false
spring.mail.smtp.socketFactory.port=465
3、一个简单的发送邮件例子
写一个控制器,写一个简单的发送邮件的小例子,发送成功返回 true,发送失败返回 false。
@Autowired
private JavaMailSender javaMailSender;
@RequestMapping("/sendEmail")
@ResponseBody
public boolean sendEmail() {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom("admin@javastack.cn");
msg.setBcc();
msg.setTo("admin@javastack.cn");
msg.setSubject("Java技术栈投稿");
msg.setText("技术分享");
try {
javaMailSender.send(msg);
} catch (MailException ex) {
System.err.println(ex.getMessage());
return false;
}
return true;
}
4、自动配置都做了什么?
Spring Boot 发现类路径下有这个 spring-boot-starter-mail 包和 spring.mail.host 参数就会自动配置 JavaMailSenderImpl。
上面那些 spring.mail.xx 参数用来装配 MailProperties 这个类。
org.springframework.boot.autoconfigure.mail.MailProperties
自动配置类:
org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

org.springframework.boot.autoconfigure.mail.MailSenderPropertiesConfiguration

其实就是用了上面装配的参数注册了一个 JavaMailSenderImpl 实例而已,然后你就可以注入使用了。
本文原创首发于微信公众号:Java技术栈(id:javastack),关注公众号在后台回复 "boot" 可获取更多,转载请原样保留本信息。
1 分钟教会你用 Spring Boot 发邮件的更多相关文章
- 从spring boot发邮件聊到开发的友好性
前些天帮一个朋友做网站,全站都是静态页面,唯一需要用到后端开发的是他需要一个留言板.传统的留言板一般都是提交后保存到数据库,然后提供一个后台的留言列表给管理人员看,我嫌麻烦,就决定留言提交到后台直接发 ...
- spring boot 发邮件
报错: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not con ...
- 一分钟搞定:spring boot 热部署 (基于Idea)
什么是热部署? 对于spring boot项目,修改后台的java类,不要重启整个项目,就可以测试/使用刚修改的功能! 怎么为项目添加/设置热部署 maven项目在pom.xml添加下方代码,联网引入 ...
- 5分钟学会如何创建spring boot项目
上一篇博客说了如何创建spring boot项目,但是有些同学会觉得有点麻烦,有没有什么快速学会能快速创建spring boot项目的方法,答案是肯定的.接下来我们就一起来快速创建一个spring b ...
- spring boot发简单文本邮件
首先要去邮箱打开POP3/SMTP权限: 然后会提供个授权码,用来发送邮件.忘记了,可以点生成授权码再次生成. 1.引入spring boot自带的mail依赖,这里版本用的:<spring-b ...
- Spring Boot整合邮件发送
概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <dependenc ...
- spring boot + activeMq 邮件服务
引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s ...
- Spring Boot :邮件服务
简单使用 1.pom 包配置 pom 包里面添加 spring-boot-starter-mail 包引用 <dependencies> <dependency> <gr ...
- spring boot(十)邮件服务
springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了.准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5. ...
随机推荐
- Vue实现跑马灯的效果
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Notes : <Hands-on ML with Sklearn & TF> Chapter 3
Chapter 3-Classification .caret, .dropup > .btn > .caret { border-top-color: #000 !important; ...
- LAPM 相关实验01
目录 lab1 静态.动态资源的区别lab2 部署phpMyadminlab3 部署wordpresslab4 编译安装php-Xcache加速器lab5 fcgi实现lamp lab1 静态.动态资 ...
- .NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接
做一个客户端的测试小程序测试web service的并发处理.开始用async task做,不管创建多少个task,用netstat看同时只有两个tcp连接.以为是async task的问题,改用Ba ...
- ubuntu自带截图工具--方便好用(转)
一般用到的截图类型有三种:全屏.当前活动窗口.自定义区域,其中自定义区域截图是最灵活也是我们用的最多的方式.在ubuntu下可以通过其自带的截图工具轻松实现这三种功能. ubuntu自带的截图工具为s ...
- Scala知识点汇总
Scala数组小结 1.定长数组 定长数组:指长度不可变的数组Array.第一种方式:先声明一个数组,后初始化该数组: scala> val array = new Array[Double]( ...
- vmWare pro 14.1.1+ubuntu-desktop-amd64的总体安装流程
vmWare pro正常安装 下载后双击安装,按步骤走即可 创建虚拟机 设置虚拟机 window设置虚拟化技术 电脑重启后,弹出如下所示,选择 疑难解答->高级选项->UEFI固件设置-& ...
- linux和windows共享目录
常用的samba共享 1.安装samba:可以先检查下是否已经安装:rpm -qa | grep samba,没安装直接yum,安装命令:yum install samba 2.创建共享文件夹 mkd ...
- openGL-计算机图形大作业中出现的几个错误及解决
错误一 错误现象:按动相应按键i和o无法在x轴和y轴移动camera,但按相应按键p可以在z轴移动camera. 错误原因:为了移动camera,设置了三个全局变量x.y.z,用于gluLookAt( ...
- [转]Understand QoS at OpenSwitch
danny http://dannykim.me/danny/57771 2014.02.11 14:34:58 (*.193.128.184) 592 >>> Purpose Th ...