1.开启邮件发送服务
以QQ邮箱为例



将授权码写到yml的spring.mail.password中

2.引入邮件相关的依赖
<!--邮件服务-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!--用于发送模板邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
3.yml文件配置
spring:
mail:
host: smtp.qq.com #发送邮件的服务器地址(当前为qq邮箱)
username: #开启IMPA/SMTP服务的qq邮箱账号
password: #开通服务后的授权码
default-encoding: utf-8
4.主要程序代码
@Controller
@RequestMapping("/user")
public class controller {
//获取yml配置中spring.mail.username的值复制给from;
@Value("${spring.mail.username}")
private String from;//从yml中获取的发件人
//邮件发送对象
@Resource
private JavaMailSender javaMailSender;
//自定义编辑邮件发送内容
@RequestMapping("/mail")
public AjaxReturn sendMail(String username){
String to = username;
String subject = "邮箱验证码";
if(StringUtils.hasLength(username)){
String mailCode = "1234";
String context = "登录验证码为: " + mailCode + ",五分钟内有效,请妥善保管!";
setMailMsg(to,subject,context);
return AjaxReturn.success();
}
return AjaxReturn.fail();
}
//设置邮件内容,并发送邮件
public void setMailMsg(String to,String subject,String context) {
//创建一个邮件对象
SimpleMailMessage mailMessage = new SimpleMailMessage();
//设置邮件内容
mailMessage.setFrom(from);//邮件发送方
mailMessage.setTo(to);//邮件接收方
mailMessage.setSubject(subject);//邮件主题
mailMessage.setText(context);//邮件内容
//发送邮件
javaMailSender.send(mailMessage);
}
}
就收到的邮件:
