目标
整合 Spring boot 提供的 spring-boot-starter-mail,实现本地发送邮件
准备工作
获取邮箱的SMTP服务器
以网易邮箱为例,通过以下步骤,可以查看到邮箱的SMTP服务器地址
登陆邮箱 -> 设置 -> 选择 POP3/SMTP/IMAP
操作步骤
添加依赖
引入 Spring Boot Starter 父工程
添加 spring-boot-starter-mail 的依赖
添加后的整体依赖如下
配置
- host:即准备中提到的SMTP服务器,配置到这里
- username:用于发送邮件的邮箱
- password:用于发送邮件的邮箱的密码
- smtp.auth:设置发送邮件需要进行权限校验
编码
实体类
Service 层代码
JavaMailSender 是邮件发送封装类,提供了文本类型的 SimpleMailMessage 以及 HTML格式的 MimeMessage
Controller 层代码
启动类
验证结果
编写测试用例
执行后去邮箱查看是否收到发送的测试邮件
源码地址
本章源码 : https://gitee.com/gongm_24/spring-boot-tutorial.git
参考
- https://blog.52itstyle.vip/archives/1264/
结束语
发送邮件是生产中必须的功能,此处只是简单地进行邮件发送。
邮件发送因为需要跟邮件服务器进行交互,是一件比较耗时的操作,一般会使用队列进行异步发送,还可以与定时器结合实现定时发送功能。
在扩展中,还将介绍使用模板进行邮件内容的组织。
扩展
使用 Freemarker 模板
添加依赖
配置
在 application.yml 中进行配置,配置了 freemarker 模板文件的位置
Service 发送方法代码
Controller 方法代码
测试用例
使用 thymeleaf 模板
添加依赖
配置
在 application.yml 中进行配置,配置了 thymeleaf 模板文件的位置,注意最后的反斜杠,一定不能少
Service 发送方法代码
Controller 方法代码
测试用例