From 61cc373a3341584272451b46f4457244886c47d2 Mon Sep 17 00:00:00 2001 From: wjy <1941137087@qq.com> Date: Sat, 21 Dec 2024 17:24:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=9C=8D=E5=8A=A1=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=99=A8/=E9=82=AE=E4=BB=B6=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/EmailController.java | 52 +++++++++++++++++++ .../com/example/api/service/EmailService.java | 26 ++++++++++ 2 files changed, 78 insertions(+) create mode 100644 IDEA/src/main/java/com/example/api/controller/EmailController.java create mode 100644 IDEA/src/main/java/com/example/api/service/EmailService.java diff --git a/IDEA/src/main/java/com/example/api/controller/EmailController.java b/IDEA/src/main/java/com/example/api/controller/EmailController.java new file mode 100644 index 00000000..8b888028 --- /dev/null +++ b/IDEA/src/main/java/com/example/api/controller/EmailController.java @@ -0,0 +1,52 @@ +package com.example.api.controller; + +import com.example.api.utils.RandomUtil; // 导入自定义工具类,用于生成随机数或随机字符串 +import org.springframework.beans.factory.annotation.Value; // 导入@Value注解,用于注入配置文件中的值 +import org.springframework.mail.MailException; // 导入MailException,用于捕获邮件发送过程中的异常 +import org.springframework.mail.SimpleMailMessage; // 导入SimpleMailMessage,用于构建简单的邮件消息 +import org.springframework.mail.javamail.JavaMailSender; // 导入JavaMailSender,用于发送邮件 +import org.springframework.web.bind.annotation.GetMapping; // 导入@GetMapping注解,用于处理GET请求 +import org.springframework.web.bind.annotation.RequestMapping; // 导入@RequestMapping注解,用于定义请求的映射路径 +import org.springframework.web.bind.annotation.RestController; // 导入@RestController注解,标识该类为RESTful控制器 + +import javax.annotation.Resource; // 导入@Resource注解,用于依赖注入 + +// 定义RestController注解,标识该类为一个RESTful控制器 +@RestController +// 定义RequestMapping注解,设置基础URL路径为"/api/email",所有方法的URL都将在此基础上构建 +@RequestMapping("/api/email") +public class EmailController { + + // 使用@Resource注解自动注入JavaMailSender,用于发送邮件 + @Resource + private JavaMailSender mailSender; + + // 使用@Value注解注入配置文件中的邮件用户名,作为发件人地址 + @Value("${spring.mail.username}") + private String from; + + // 处理GET请求,用于发送邮件 + @GetMapping("/send") + public String send() { + SimpleMailMessage message = new SimpleMailMessage(); + // 设置发件人地址 + message.setFrom(from); + // 设置收件人地址 + message.setTo("1402014577@qq.com"); + // 设置邮件主题 + message.setSubject("验证码"); + // 设置邮件内容,包括一个随机生成的验证码 + message.setText("你的验证码为: " + RandomUtil.next() + " 十五分钟内有效"); + try { + // 发送邮件 + mailSender.send(message); + // 如果发送成功,返回成功消息 + return "发送普通邮件成功"; + } catch (MailException e) { + // 如果发送失败,打印堆栈跟踪并返回失败消息 + e.printStackTrace(); + return "邮件发送失败"; + } + } + +} diff --git a/IDEA/src/main/java/com/example/api/service/EmailService.java b/IDEA/src/main/java/com/example/api/service/EmailService.java new file mode 100644 index 00000000..a066e000 --- /dev/null +++ b/IDEA/src/main/java/com/example/api/service/EmailService.java @@ -0,0 +1,26 @@ +package com.example.api.service; + +import org.springframework.mail.MailException; // 导入Spring邮件异常类,用于处理邮件发送过程中的异常 + +/** + * 邮件服务接口,定义邮件发送和验证相关的业务操作。 + */ +public interface EmailService { + + /** + * 发送验证码到指定邮箱。 + * @param email 接收验证码的邮箱地址 + * @return 发送成功返回true,失败返回false + * @throws MailException 如果邮件发送过程中出现异常,则抛出MailException异常 + */ + boolean sendVerificationCode(String email) throws MailException; + + /** + * 检验邮箱中提供的验证码是否正确。 + * @param email 邮箱地址,用于查找对应的验证码记录 + * @param code 用户输入的验证码 + * @return 验证码正确返回true,否则返回false + */ + boolean checkVerificationCode(String email, String code); + +}