写在最前
需要先开启发送方邮箱的 SMTP
协议。以 QQ 邮箱为例:登录 QQ 邮箱,点击设置->账户,开启IMAP/SMTP服务,并生成授权码。
Spring Boot 整合邮件
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.修改配置文件
spring:
mail:
# QQ邮箱服务器
host: smtp.qq.com
# QQ邮箱账户
username: xxx@qq.com
# QQ邮箱第三方授权码
password: xxxxxxxxxxxxxxxx
# 编码类型
default-encoding: UTF-8
3.定义邮箱处理 Service
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
/**
* 邮箱处理 Service
*
* @author Strive
* @date 2022/4/27 09:33
*/
@Service
@RequiredArgsConstructor
public class MailService {
private final JavaMailSender javaMailSender;
/** 发送方 */
@Value("${spring.mail.username}")
private String from;
/**
* 发送普通文本邮件
*
* @param to 收件人
* @param subject 主题
* @param content 内容
*/
public void sendSimpleMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
// 收信人
message.setTo(to);
// 主题
message.setSubject(subject);
// 内容
message.setText(content);
// 发信人
message.setFrom(from);
javaMailSender.send(message);
}
}
4.测试邮件发送
import com.csp.mingyue.email.service.MailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* 测试邮件推送
*
* @author Strive
* @date 2022/4/20 10:35
* @description
*/
@SpringBootTest
public class MailServiceTest {
@Autowired private MailService mailService;
@Test
public void sendSimpleMailTest() {
mailService.sendSimpleMail(
"xxx@163.com", "【工具篇】Spring Boot 邮件推送", "Spring Boot 邮件推送 内容 成功喽!");
}
}
收到邮件啦~