Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口。

org.springframework.mail.javamail.JavaMailSender

Spring Boot 提供了一个 starter,并能自动配置,下面来做个小例子,顺便解析它做了什么工作。

0、你所需具备的基础

更多请在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 发邮件的更多相关文章

  1. 从spring boot发邮件聊到开发的友好性

    前些天帮一个朋友做网站,全站都是静态页面,唯一需要用到后端开发的是他需要一个留言板.传统的留言板一般都是提交后保存到数据库,然后提供一个后台的留言列表给管理人员看,我嫌麻烦,就决定留言提交到后台直接发 ...

  2. spring boot 发邮件

    报错:  Mail server connection failed; nested exception is javax.mail.MessagingException: Could not con ...

  3. 一分钟搞定:spring boot 热部署 (基于Idea)

    什么是热部署? 对于spring boot项目,修改后台的java类,不要重启整个项目,就可以测试/使用刚修改的功能! 怎么为项目添加/设置热部署 maven项目在pom.xml添加下方代码,联网引入 ...

  4. 5分钟学会如何创建spring boot项目

    上一篇博客说了如何创建spring boot项目,但是有些同学会觉得有点麻烦,有没有什么快速学会能快速创建spring boot项目的方法,答案是肯定的.接下来我们就一起来快速创建一个spring b ...

  5. spring boot发简单文本邮件

    首先要去邮箱打开POP3/SMTP权限: 然后会提供个授权码,用来发送邮件.忘记了,可以点生成授权码再次生成. 1.引入spring boot自带的mail依赖,这里版本用的:<spring-b ...

  6. Spring Boot整合邮件发送

    概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <dependenc ...

  7. spring boot + activeMq 邮件服务

    引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s ...

  8. Spring Boot :邮件服务

    简单使用 1.pom 包配置 pom 包里面添加 spring-boot-starter-mail 包引用 <dependencies> <dependency> <gr ...

  9. spring boot(十)邮件服务

    springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了.准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5. ...

随机推荐

  1. Jython 安装使用

    Jython 官网:https://jython.org/ 下载 下载页面:https://jython.org/downloads.html jython-installer-${version}. ...

  2. Spring-boot集成RabbitMQ踩过的坑

    1.java.net.SocketException: socket closed 官方文档已经说明,新建user和guest的账户是没有远程登录的权限的 需要对登录所用账户授权 解决方法: rabb ...

  3. oracle中的日期函数的使用

    TO_DATE格式(以时间:2007-11-02   13:45:25为例) Year:               yy two digits 两位年                显示值:07   ...

  4. 计算pi的精度+进度条显示

    步骤1:安装tqdm 首先,要打开cmd,输入指令,不断找到python文件的路径,知道找到Scripts,然后分别打入pip install pygame和pip install tqdm  如下图 ...

  5. spo0lsv病毒分析

    1.样本概况 1.1 样本信息 病毒名称:spo0lsv.exe 所属家族:Worm MD5值:512301C535C88255C9A252FDF70B7A03 SHA1值:CA3A1070CFF31 ...

  6. select、poll、epoll

    1.概念 select.poll.epoll都是事件触发机制,当等待的事件发生就触发进行处理,用于I/O复用 2.简单例子理解 3.select函数 3.1函数详解 int select(int ma ...

  7. eclipse中搭建ssm框架

    工具:jdk1.7+eclipse+tomcat+mysql. 这里用的版本是spring3,框架中用到的实体类和xml映射文件都可以用工具生成的.接下来会将源码贴出,方便初学者快速搭建. 一.新建一 ...

  8. docker 配置 http 访问

    编辑docker宿主机文件/lib/systemd/system/docker.service sudo vi /lib/systemd/system/docker.service 修改以ExecSt ...

  9. 微信接收QQ邮箱e-mail

  10. Android中屏幕保持唤醒

    1.锁的类型 PowerManager中各种锁的类型对CPU .屏幕.键盘的影响: PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的. SCREEN_DIM_WAK ...