Springboot发送邮件
一,引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二,配置邮箱
拿QQ邮箱举例,首先登陆QQ邮箱–选择设置–账户–POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务–开启POP3/SMTP服务–按照提示发送短信验证,验证完毕之后会显示配置密码
三 ,在application.xml配置信息
spring:
mail:
# 配置 SMTP 服务器地址
host: smtp.qq.com
# 发送者邮箱
username: 自己的qq邮箱
# 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
password: 这个地方填写上边配置邮箱完毕后给的配置密码
# 端口号465或587
port: 587
# 默认的邮件编码为UTF-8
default-encoding: UTF-8
# 配置SSL 加密工厂
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
四,使用
@SpringBootTest
class SpringbootApplicationTests {
// 配置文件中我的qq邮箱
@Value("${spring.mail.username}")
private String from;
@Autowired
JavaMailSender javaMailSender;
@Test
void contextLoads() throws Exception {
SimpleMailMessage message=new SimpleMailMessage();
message.setFrom(from);
message.setSubject("主题");
message.setText("内容");
message.setTo("收件人");
message.setCc("抄送人");
message.setBcc("密送人");
javaMailSender.send(message);
}
}
发送带Html格式的附件:
@SpringBootTest
class SpringbootApplicationTests {
// 配置文件中我的qq邮箱
@Value("${spring.mail.username}")
private String from;
@Autowired
JavaMailSender javaMailSender;
@Test
void contextLoads() throws Exception {
MimeMessage mailMessage=javaMailSender.createMimeMessage();
//需要借助Helper类
MimeMessageHelper helper=new MimeMessageHelper(mailMessage);
String context="<b>尊敬的用户:</b><br> 您好,管理员已为你申请了新的账号,"+
"请您尽快通过<a href=\"http://www.liwz.top/\">链接</a>登录系统。"
+"<br>修改密码并完善你的个人信息。<br><br><br><b>员工管理系统<br>Li,Wan Zhi</b>";
try {
helper.setFrom(from);
helper.setTo("收件人");
helper.setBcc("密送人");
helper.setSubject("主题");
helper.setSentDate(new Date());//发送时间
helper.setText(context,true);
//第一个参数要发送的内容,第二个参数是不是Html格式。
javaMilSender.send(mailMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
发送带附件的邮件:
@SpringBootTest
class SpringbootApplicationTests {
// 配置文件中我的qq邮箱
@Value("${spring.mail.username}")
private String from;
@Autowired
JavaMailSender javaMailSender;
@Test
void contextLoads() throws Exception {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
// true表示构建一个可以带附件的邮件对象
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setSubject("这是一封测试邮件");
helper.setFrom(from);
helper.setTo("收件人");
helper.setSentDate(new Date());
helper.setText("这是测试邮件的正文");
// 第一个参数是自定义的名称,后缀需要加上,第二个参数是文件的位置
helper.addAttachment("资料.xlsx",new File("/Users/gamedev/Desktop/测试数据 2.xlsx"));
javaMailSender.send(mimeMessage);
}
}