feat(mail): 集成邮件发送功能并配置SMTP服务

- 添加 spring-boot-starter-mail依赖
- 在 application.yml 中配置 SMTP 服务器信息
- 注入 JavaMailSender 并实现消息监听器中的邮件发送逻辑- 设置邮件发送者、接收者、主题及内容
- 使用 RabbitMQ 消息队列触发邮件通知机制
This commit is contained in:
2025-10-27 21:25:45 +08:00
parent 501980046b
commit 29be26207f
3 changed files with 31 additions and 0 deletions

View File

@@ -91,6 +91,11 @@
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies> </dependencies>
<dependencyManagement> <dependencyManagement>

View File

@@ -1,8 +1,11 @@
package com.hanserwei.chat.consumer; package com.hanserwei.chat.consumer;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@@ -11,10 +14,24 @@ import java.nio.charset.StandardCharsets;
@Component @Component
public class RabbitMQConsumer { public class RabbitMQConsumer {
@Resource
private JavaMailSender mailSender;
@RabbitListener(queues = "chat.queue") @RabbitListener(queues = "chat.queue")
public void receiveMessage(Object message) { public void receiveMessage(Object message) {
String messageText = extractMessage(message); String messageText = extractMessage(message);
log.info("Received message text:\n{}", messageText); log.info("Received message text:\n{}", messageText);
SimpleMailMessage mailMessage = new SimpleMailMessage();
// 配置发送者邮箱
mailMessage.setFrom("2628273921@qq.com");
// 配置接受者邮箱
mailMessage.setTo("ssw010723@gmail.com");
// 配置邮件主题
mailMessage.setSubject("主题:及时联系客户");
// 配置邮件内容
mailMessage.setText(messageText);
// 发送邮件
mailSender.send(mailMessage);
} }
private String extractMessage(Object message) { private String extractMessage(Object message) {

View File

@@ -12,6 +12,15 @@ spring:
jackson: jackson:
serialization: serialization:
write-dates-as-timestamps: false write-dates-as-timestamps: false
mail:
host: ${MAIL_HOST:smtp.qq.com}
port: ${MAIL_PORT:587}
username: ${MAIL_USERNAME:2628273921@qq.com}
password: ENC(ARrAyZNZhbaG6tebogv6WSQbtCO+Vq93NfSA6tMAiD0tTogujERVwEGBECakH0LUhYq9oTaXgfw7tonxNAFEwg==)
properties:
mail.smtp.auth: true
mail.smtp.starttls.enable: true
mail.smtp.starttls.required: true
data: data:
redis: redis:
host: localhost host: localhost