准备工作
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
邮箱开启SMTP三方登录授权
常用邮箱有开启SMTP授权引导;QQ邮箱
配置邮件服务器
spring:
mail:
host: smtp.qq.com
# 未开启ssl 使用 25,开启ssl 使用 465 或 587
port: 465
username: xxx
password: xxx
properties:
mail.smtp.auth: true
# 开启ssl 上面 port 使用 465 或 587;不开启使用 25
mail.smtp.ssl.enable: true
# mail.smtp.ssl.trust: ${spring.mail.host}
# mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
# mail.smtp.socketFactory.port: 465
# mail.smtp.starttls.enable: true
# mail.smtp.starttls.required: true
# mail.debug: true
发送邮件
普通文本邮件
SimpleMailMessage message = new SimpleMailMessage();
message.setTo("收件人");
message.setFrom("发件人");
message.setSubject("测试邮件");
message.setText("Java 给你发的测试邮件");
mailSender.send(message);
复杂邮件
html邮件
含附件的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
helper.setTo("收件人");
helper.setFrom("发件人");
helper.setSubject("主题");
// html
helper.setText("内容", true);
Path xxxx = Path.of("xxxx");
PathResource file = new PathResource(xxxx);
// 附件
helper.addAttachment(file.getFilename(), file);