SpringBoot 2.1.5发送验证码邮件
编者: wRitchie(吴理琪) 来源:
Spring的开发者都知道Spring提供了非常好用的 JavaMailSender接口,实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用 JavaMailSender 发送邮件。
第一步:SpringBoot的工程中的pom.xml添加依赖,引入jar包:
引入依赖:
org.springframework.boot spring-boot-starter-mail
第二步:如其他自动化配置模块,在完成了依赖引入之后,只需要在application.yml中配置相应的属性内容,以QQ邮箱为例加入如下配置(注意替换自己的用户名和密码):
###邮箱设置### mail: host: username: *******@ // 发送方的邮箱,请替换 password: ******* // QQ邮箱,密码指的就是发送方的授权码,非真实的QQ密码 default-encoding: UTF-8 port: 25 protocol: smtp
注:QQ邮箱的发送方授权码,非真实的QQ密码,获取方式:登录QQ邮箱->设置->账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击生成授权码,再用QQ扫一扫,即可查看到授权码,授权码可以有多个,如下图所示:
第三步:邮件发送控制类MailController.java,实现简单邮件发送和带单个或多个邮件附件的发送,代码如下:
package com.bj9420.controller.mail; import com.mon.BaseController;import com.bj9420.framework.util.GenerateIdUtil;import com.bj9420.model.Result;import io.swagger.annotations.Api;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource;import javax.mail.internet.MimeMessage;import java.io.File; /** * @Title: MailController.java * @Description: 邮件控制类 * @author: wRitchie * @date: /3/28 10:55 * @version: V1.0 * @Copyright (c): All rights reserved. */ @Api(value = "邮件控制类