赞
踩
在Spring Boot中发送电子邮件
相对简单。你可以使用Spring的邮件支持来实现这一点。
步骤:
1.添加依赖
:首先,需要在你的pom.xml文件中添加Spring Boot的邮件发送器依赖。
2. 配置邮件服务器
:在application.properties或application.yml中配置邮件服务器的相关信息。
3. 编写发送邮件的代码
:创建一个服务类来封装邮件发送的逻辑。
在Spring框架中,JavaMailSender 是一个接口
,用于发送电子邮件 。
Spring Boot的spring-boot-starter-mail
模块提供了自动化配置
,简化了在Spring Boot应用程序中发送电子邮件的设置过程。
当你添加了spring-boot-starter-mail依赖后,Spring Boot会自动配置JavaMailSender实例,并根据application.yml文件中的属性来配置这个实例。你可以直接在需要发送邮件的地方通过@Autowired注解将JavaMailSender实例注入到你的类中,然后使用它来发送邮件。
注意:我是基于springboot 2.7.17
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.7.1</version>
</dependency>
获取依赖其他版本的官网:Spring Boot Starter Mail
spring:
mail:
host: smtp.qq.com # qq的邮件服务器主机地址 【163网易邮箱的是smtp.163.com】
username: 58963727@qq.com # 登录邮件服务器的邮箱【自己的邮箱】
password: axqyweertcentfcy # 授权码
port: 587 # 邮件服务器端口号 【163网易邮箱的是465】
smtp:
auth: true # 是否需要身份验证
starttls.enabled: true # 是否启用 STARTTLS 支持
default-encoding: utf-8 # 默认邮件编码为 UTF-8
业务层:
@Service public class EmailService { @Autowired private JavaMailSender emailSender; // 从属性文件中读取发件人地址 @Value("${spring.mail.username}") private String from; /** * 发送简单文本邮件 * @param to 收件人地址 * @param subject 邮件主题 * @param text 邮件内容 */ public void sendSimpleMessage(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); // 设置发件人邮箱地址 message.setTo(to); // 设置收件人地址 message.setSubject(subject); // 设置邮件主题 message.setText(text); // 设置邮件内容 emailSender.send(message); // 发送邮件 } }
Controller层:
@RestController
@RequestMapping
public class EmailController {
@Autowired
private EmailService emailService;
@PostMapping("/sendEmail")
public String sendEmail(@RequestBody EmailDTO emailDTO) {
emailService.sendSimpleMessage(emailDTO.getTo(), emailDTO.getSubject(), emailDTO.getText());
return "Email sent successfully!";
}
}
接受前端传过来的json格式的数据
@Data
public class EmailDTO {
private String to; //表示收件人的电子邮件地址
private String subject; //表示邮件的主题
private String text; //表示邮件的正文内容
}
这里用POST测试,发送POST
请求
用的网易163邮箱成功接收
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。