整合mail发送邮件,其实就是通过代码来操作发送邮件的步骤,编辑收件人、邮件内容、邮件附件等等。通过邮件可以拓展出短信验证码、消息通知等业务。
一、pom文件引入依赖
1 | <dependency> |
二、application.yml文件中配置
1 | spring: |
邮箱密码暴露在配置文件很不安全,一般都是采取授权码的形式。点开邮箱,然后在账户栏里面点击生成授权码:
三、编写MailUtils工具类
1 |
|
MailUtils其实就是进一步封装Mail提供的JavaMailSender类,根据业务场景可以在工具类里面添加对应的方法,这里提供了发送文本邮件、html邮件、模板邮件、附件邮件的方法。
四、Controller层的实现
1 |
|
为了方便测试,这里使用了swagger3,详情可以查看SpringBoot整合Swagger3生成接口文档。
发送模板邮件这里,会读取resources下面的templates文件夹,测试中读取的是hello.html,具体代码如下:
1 |
|
五、测试结果
如果需要达到通过邮件发送验证码的功能,可以使用redis。后台随机生成验证码,然后把用户的主键设为key,验证码的内容设为value,还可以设置个60s过期存储,发送成功后,用户登录通过主键从redis拿到对应的验证码,然后再进行登录验证就好了。
参考链接:[Spring Boot整合邮件配置](Spring Boot整合邮件配置)