SpringBoot整合QQ邮箱
本文共2019字,阅读本文大概需要4~7分钟
邮件发送的基本过程与概念
- 邮件服务器:类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中
- 电子邮箱:用户在邮件服务器上申请的一个账户
- from:xxx@xx.com ---发件人
- to:xxx@qq.com ---收件人
- subject:主题 ---主题
- body:哈哈 ---内容体
邮件传输协议
- SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则
- POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信 规则
- IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则
获取 QQ邮箱 授权码
- 登录QQ邮箱:https://mail.qq.com/
- 点击设置,点击账户
- 开启服务获取授权码:POP3/SMTP服务,注:开启服务需要手机发短信,会自动生成一个授权码,复制授权码到一个文本文件或其他地方,注授权码只会出现一次,重新获取需重新发短信
code
- 添加依赖
<!--发送邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 配置文件
spring:
#配置邮箱
mail:
host: smtp.qq.com #发送邮件服务器
username: xxx@qq.com #发送邮件的邮箱地址
password: xxx #客户端授权码
from: xxx@qq.com # 发送邮件的地址,和上面username一致
properties.mail.smtp.starttls.enable: true
properties.mail.smtp.starttls.required: true
properties.mail.smtp.ssl.enable: true
default-encoding: utf-8
- service层封装
@Service
@Slf4j
public class MailServiceImpl implements MailService {
/**
* Spring Boot 提供了一个发送邮件的简单抽象,直接注入即可使用
*/
@Autowired
private JavaMailSender mailSender;
/**
* 配置文件中的发送邮箱
*/
@Value("${spring.mail.from}")
private String from;
/**
* 发送邮件
* @param to 收件人
* @param subject 主题
* @param content 内容
*/
@Override
public void sendMail(String to, String subject, String content) {
//创建一个邮箱消息对象
SimpleMailMessage message = new SimpleMailMessage();
//邮件发送人
message.setFrom(from);
//邮件接收人
message.setTo(to);
//邮件主题
message.setSubject(subject);
//邮件内容
message.setText(content);
//发送邮件
mailSender.send(message);
log.info("邮件发成功:{}",message.toString());
}
}
- 单元测试
@SpringBootTest(classes = UserApplication.class)
@RunWith(SpringRunner.class)
@Slf4j
public class MailTest {
@Autowired
private MailService mailService;
@Test
public void testSendMail() {
mailService.sendMail("xxx@qq.com","测试主题","测试内容:O(∩_∩)O哈哈~");
}
}
- 验证
- 控制台验证
- 邮箱验证
- 控制台验证
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性