Java-SpringBoot整合邮箱发送邮件
·
SpringBoot整合邮箱发送邮件
Spring Boot 提供了对 JavaMailSender 的自动配置支持,我们只需要简单配置并编写代码即可实现发送普通文本邮件、HTML 邮件、带附件的邮件等。
一、如何开启服务、获取授权码(前期准备)
1.点击设置(QQ邮箱示例)

2.找到账号一栏目

3.找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 点击管理服务

4.在这点击开启服务吗,我这已开启

5.记下授权码

二、Spring Boot 整合邮件发送功能(以 QQ 邮箱为例,必须有前期准备才可进行)
1. 添加依赖
在 pom.xml中添加 Spring Boot 邮件 Starter 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置邮箱信息(application.yml 或 application.properties)
这里以 QQ 邮箱 为例(其他邮箱类似,比如 163、Gmail 等,只是 SMTP 服务器地址和端口不同)。
使用 application.yml的配置示例:
spring:
mail:
host: smtp.qq.com # QQ邮箱SMTP服务器地址
port: 587 # QQ邮箱SMTP服务端口(TLS:587,SSL:465)
username: your_qq_email@qq.com # 你的QQ邮箱
password: your_authorization_code # 不是QQ密码!是QQ邮箱的【授权码】
protocol: smtp
default-encoding: UTF-8 # 编码
properties:
mail.smtp.ssl.enable: true # 开启SSL加密
mail.smtp.auth: true # 开启认证
mail.smtp.timeout: 10000 # 连接超时时间
mail.debug: true
重要提示:
password不是你的 QQ 登录密码,而是 QQ 邮箱的授权码。- 如何获取 QQ 邮箱授权码?登录 QQ 邮箱 → 设置 → 账户 → 找到【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】→ 开启 SMTP 服务 → 按提示发短信后获取 授权码(通常是一串字母+数字)。
3.编写邮件发送服务类
创建一个 Service,例如 EmailService.java,注入 JavaMailSender来发送邮件。
示例:发送普通文本邮件
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
@SpringBootTest
public class EmailService {
@Autowired
private JavaMailSender mailSender;
//发件人从配置中读取可替换下面的发件人
@Value("${spring.mail.username}")
private String sender;
/**
* 发送简单文本邮件
* @param to 收件人邮箱
* @param subject 邮件主题
* @param text 邮件内容
*/
@Test
public void sendSimpleEmail(String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("your_qq_email@qq.com"); // 发件人(一般与username一致,也可从配置中读取)
message.setTo(to); // 收件人
message.setSubject(subject); // 邮件主题(标题)
message.setText(text); // 邮件正文(纯文本)
mailSender.send(message);//发送邮件
System.out.println("简单邮件已发送!");
}
}
更多推荐



所有评论(0)