我这里使用qq邮箱和企业qq邮箱做演示
1.导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.设置基本配置
1).企业邮箱
spring:
mail:
# 配置 SMTP 服务器地址
host: smtp.exmail.qq.com
# 发送者邮箱账号
username: 企业邮箱账号
# 配置企业邮箱的密码(这里是密码)
password: 企业邮箱密码
# 端口号发送465
port: 465
# 默认的邮件编码为UTF-8
# 配置SSL 加密工厂
default-encoding: UTF-8
properties:
mail:
smtp:
ssl:
enable: true
auth: true
starttles:
enable: true
required: true
2).qq邮箱
(1).获取授权码,一步步来获取授权码
(2).配置属性文件
spring:
mail:
# 配置 SMTP 服务器地址
host: smtp.qq.com
# 发送者邮箱
username: qq邮箱账号
# 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
password: qq邮箱授权码
# 端口号587
port: 587
# 默认的邮件编码为UTF-8
# 配置SSL 加密工厂
default-encoding: UTF-8
properties:
mail:
smtp:
ssl:
enable: true
auth: true
starttles:
enable: true
required: true
3.设置邮件bean(这步可以不要)
public class ToEmail implements Serializable {
/**
* 邮件接收方,可多人
*/
private String[] tos;
/**
* 邮件主题
*/
private String subject;
/**
* 邮件内容
*/
private String content;
public String[] getTos() {
return tos;
}
public void setTos(String[] tos) {
this.tos = tos;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
4.编写邮件发送代码
/**
* 发送邮件
*/
@RestController
@RequestMapping("/web/mail")
public class SendMessageCtrl {
@Value("${spring.mail.username}")
private String emailUser;
@Autowired
private JavaMailSender mailSender;
/**
* 普通邮件发送
*/
@RequestMapping(value = "/send", method = RequestMethod.POST)
public WebResponse sendCommonEmail(@RequestBody ToEmail toEmail) {
//创建简单邮件消息
SimpleMailMessage message = new SimpleMailMessage();
//谁发的
message.setFrom(emailUser);
//谁要接收
message.setTo(toEmail.getTos());
//邮件标题
message.setSubject(toEmail.getSubject());
//邮件内容
message.setText(toEmail.getContent());
try {
mailSender.send(message);
} catch (MailException e) {
e.printStackTrace();
}
return new WebResponse("邮件已发送:"+toEmail.toString());
}
}
5.测试发送邮件