- 新增项目基础配置:pom.xml 依赖管理、多环境配置(dev/prod)、Dockerfile、.env.example - 新增安全认证模块:JWT 工具类、JWT 过滤器、Spring Security 配置、自定义 UserDetails - 新增用户管理功能:注册/登录/查询/修改、角色管理(USER/ADMIN/ROOT)、分页查询、状态启禁用 - 新增密码重置功能:邮箱验证码发送、验证码校验重置、频率限制与过期机制 - 新增基础架构层:统一响应体 RestBean、全局异常处理、日志拦截器、Redis 工具类、JPA 配置 - 新增 Swagger/OpenAPI 文档配置与完整的 API 接口文档(API_DOCUMENT.md) - 新增数据库初始化 SQL 脚本(init.sql)
42 lines
1.3 KiB
Java
42 lines
1.3 KiB
Java
package com.aisi.template.service.impl;
|
|
|
|
import com.aisi.template.service.EmailService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.mail.SimpleMailMessage;
|
|
import org.springframework.mail.javamail.JavaMailSender;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Slf4j
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class EmailServiceImpl implements EmailService {
|
|
|
|
private final JavaMailSender mailSender;
|
|
|
|
@Value("${spring.mail.username}")
|
|
private String from;
|
|
|
|
@Value("${app.password-reset.code-expire-minutes:10}")
|
|
private Integer expireMinutes;
|
|
|
|
@Override
|
|
public void sendPasswordResetCode(String email, String code) {
|
|
SimpleMailMessage message = new SimpleMailMessage();
|
|
message.setFrom(from);
|
|
message.setTo(email);
|
|
message.setSubject("密码找回验证码");
|
|
message.setText("""
|
|
您正在进行密码找回操作。
|
|
|
|
验证码:%s
|
|
有效期:%d 分钟
|
|
|
|
如果这不是您的操作,请忽略此邮件。
|
|
""".formatted(code, expireMinutes));
|
|
mailSender.send(message);
|
|
log.info("已发送密码找回验证码到邮箱: {}", email);
|
|
}
|
|
}
|