1 分钟教会你用 Spring Boot 发邮件

转载自 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 实例而已,然后你就可以注入使用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小二,先来两桂花豆沙包!

“包子嘞&#xff0c;卖包子嘞&#xff0c;新出锅的大包子&#xff0c;走过路过千万不要错过呦~包子嘞……”某年某月某下午&#xff0c;百万包子铺进来一人&#xff0c;进来便招呼&#xff1a;“小二&#xff0c;包子怎么卖&#xff1f;”小二&#xff1a;“客官&#xff0c;你…

SQL Server 2017 RC1 现已实现 Linux 功能扩展

经过七个预览版本的迭代之后&#xff0c;Microsoft 宣告发布第一个 SQL Server 2017 候选版本。开发人员可以藉由该版本来探索一些扩展 SQL Server Linux 版能力的新改进。 在这些新改进中&#xff0c;首先是对 Linux 上SQL Server 的 Active Directory 身份验证的支持。使用 …

一百馒头一百僧,大僧三个更无争,小僧三人分一个大小和尚得几丁?

如题&#xff1a;一百馒头一百僧&#xff0c;大僧三个更无争&#xff0c;小僧三人分一个大小和尚得几丁&#xff1f; 要求使用java实现求得大僧小僧各有多少人&#xff1f; public class shdjshj {public static void main(String[] args) {for(int i 1;i<100;i){int j 1…

Microsoft使用.NET Core SDK遥测数据

Microsoft发布了采集自.NET Core SDK用户的遥测原始数据集。数据集的时间跨度是从2016年第三季度到2017年第二季度&#xff0c;为了解当前开发人员使用SDK的情况提供了一个视角。据Microsoft的Rich Lander介绍&#xff0c;今后Microsoft将每季度提供一次遥测数据集&#xff0c;…

你们好好的学,回头教教我~

辣椒酱中奖的已经安排发货了&#xff0c;不日即可达到&#xff0c;注意收货。雄雄辣椒酱&#xff0c;免费送~这一周&#xff0c;3班的孩子们都在培训双创的内容&#xff0c;因为这个培训是学校统一组织的&#xff0c;所以对培训的内容以及培训方式我是一无所知的。周二我值班&a…

CAP 介绍及使用【视频】

前言 很多同学可能对于CAP这个项目想有更一步的了解&#xff0c;包括她的工作原理以及适用的场景&#xff0c;所以博主就准备了一场直播给大家讲解了一下&#xff0c;这个视频是直播的一个录像。 由于我这次直播本来是没有打算对外的&#xff0c;所以也是没有怎么准备的&…

投资理财要趁早,基金风险是最小!

大家好&#xff0c;我是雄雄&#xff0c;前几天&#xff0c;有人私信我让我在公众号中推一篇关于理财的文章&#xff0c;说实在的&#xff0c;以我这二把刀的能力&#xff0c;没啥资历教大家理财&#xff0c;不过既然人家都这么说了&#xff0c;那我就来分享一下我自己对于目前…

Java中线程池,你真的会用吗

转载自 Java中线程池&#xff0c;你真的会用吗 在《深入源码分析Java线程池的实现原理》这篇文章中&#xff0c;我们介绍过了Java中线程池的常见用法以及基本原理。 在文中有这样一段描述&#xff1a; 可以通过Executors静态工厂构建线程池&#xff0c;但一般不建议这样使…

解决 CefSharp WPF控件不能使用输入法输入中文的问题(代码已提交到 github)

首先&#xff0c;本文所有 代码已经提交到github&#xff0c;需要的可以直接从github获取&#xff1a;https://github.com/starts2000/CefSharp&#xff0c;希望可以帮助到有需要的朋友们。 CEF 简介 CEF is a BSD-licensed open source project founded by Marshall Greenbl…

java中的泛型类型擦除

大家好&#xff0c;我是雄雄&#xff0c;今天给大家分享的是&#xff1a;java的泛型是类型擦除的。写在前面那么何为类型擦除&#xff1f;类型擦除就是在编译期明确去掉所编程序的类型系统。啥&#xff1f;还不明白&#xff1f;以java泛型为例&#xff0c;java的泛型在编译期有…

性能优化之抛弃Calendar

转载自 性能优化之抛弃Calendar 目前在做限流相关的需求&#xff0c;有这么一个限流策略&#xff0c;和用户相关&#xff0c;当系统发生故障时&#xff0c;允许一个非核心接口按照用户的百分比进行限流&#xff0c;如果完全按照UUID进行hash&#xff0c;那么每次都是限制同一…

基于.net的微服务架构下的开发测试环境运维实践

眼下&#xff0c;做互联网应用&#xff0c;最火的架构是微服务&#xff0c;最热的研发管理就是DevOps&#xff0c; 没有之一。微服务、DevOps已经被大量应用&#xff0c;它们已经像传说中的那样&#xff0c;可以无所不能。特来电云平台&#xff0c;通过近两年多的实践&#xff…

挺详细的spring+springmvc+mybatis配置整合|含源代码

大家好&#xff0c;我是雄雄&#xff0c;今天来带着大家来配置一下SSM&#xff08;springspringmvcmybatis&#xff09;框架。01新建java web项目直接在myeclipse中&#xff0c;新建一个web项目即可。02导入jar包将SSM所需的jar包复制到项目的/WebRoot/WEB-INF/lib中&#xff0…

DDD理论学习系列(10)-- 聚合

1.引言 聚合&#xff0c;最初是UML类图中的概念&#xff0c;表示一种强的关联关系&#xff0c;是一种整体与部分的关系&#xff0c;且部分能够离开整体而独立存在&#xff0c;如车和轮胎。 在DDD中&#xff0c;聚合也可以用来表示整体与部分的关系&#xff0c;但不再强调部分…