flask-mail异步发送邮件_SpringBoot2.0实战(16)整合Mail实现邮件发送

c70411364d44c4a6aa62782adccb5ad2.png

目标

整合 Spring boot 提供的 spring-boot-starter-mail,实现本地发送邮件

准备工作

获取邮箱的SMTP服务器

以网易邮箱为例,通过以下步骤,可以查看到邮箱的SMTP服务器地址

登陆邮箱 -> 设置 -> 选择 POP3/SMTP/IMAP

操作步骤

添加依赖

引入 Spring Boot Starter 父工程

69974a2e5dcfd59148e7b24ef9484803.png

添加 spring-boot-starter-mail 的依赖

bbdc3ace741a149980806057fc9a15e7.png

添加后的整体依赖如下

51d8350860961f7a3c52146f646a4ca4.png

配置

  • host:即准备中提到的SMTP服务器,配置到这里
  • username:用于发送邮件的邮箱
  • password:用于发送邮件的邮箱的密码
  • smtp.auth:设置发送邮件需要进行权限校验
0b66bd296921f9029459ff8550c3d51c.png

编码

实体类

a2be4d41e04eee384329e3eb4c46f0dd.png

Service 层代码

JavaMailSender 是邮件发送封装类,提供了文本类型的 SimpleMailMessage 以及 HTML格式的 MimeMessage

2d732b0c6306468071d2cbcd47b10759.png

Controller 层代码

e2f7dab482acef5cf8f1547f912881de.png

启动类

c446c108864f317025476692dbde1799.png

验证结果

编写测试用例

d160702de0eef775d83cf93226118169.png

执行后去邮箱查看是否收到发送的测试邮件

源码地址

本章源码 : https://gitee.com/gongm_24/spring-boot-tutorial.git

参考

  • https://blog.52itstyle.vip/archives/1264/

结束语

发送邮件是生产中必须的功能,此处只是简单地进行邮件发送。

邮件发送因为需要跟邮件服务器进行交互,是一件比较耗时的操作,一般会使用队列进行异步发送,还可以与定时器结合实现定时发送功能。

在扩展中,还将介绍使用模板进行邮件内容的组织。

扩展

使用 Freemarker 模板

添加依赖

b00f43fb45685a86f6c7bbdec6c8ceef.png

配置

在 application.yml 中进行配置,配置了 freemarker 模板文件的位置

0e839bbbb1b236b312184aa34474a43c.png

Service 发送方法代码

62a2672ce05711862f7cf117b64a39e5.png

Controller 方法代码

8ddecfb1a69b02a230dce2e3de1d0ee9.png

测试用例

a26151a801766e459628a4133f2a8887.png

使用 thymeleaf 模板

添加依赖

457ba8215625d506399a7751418d8abb.png

配置

在 application.yml 中进行配置,配置了 thymeleaf 模板文件的位置,注意最后的反斜杠,一定不能少

7a18932ab7d7c3026ab3dc91431337f8.png

Service 发送方法代码

24d0a94d285b967cf9b8fe7ff8ba9ce2.png

Controller 方法代码

dd4e2d93646ab4c81e9098bbac0a7b9b.png

测试用例

61f05cfe26e96592cf83d60bfdb534a9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值