Spring Boot 发送邮件
- 准备工作
- 引入依赖
- 邮箱开启SMTP三方登录授权
- 配置邮件服务器
- 发送邮件
- 普通文本邮件
- 复杂邮件
准备工作
引入依赖
<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 或 587port: 465username: xxxpassword: xxxproperties:mail.smtp.auth: true# 开启ssl 上面 port 使用 465 或 587;不开启使用 25mail.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);