邮件API
This commit is contained in:
@@ -11,6 +11,7 @@ import com.mini.capi.utils.FileUtils;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@@ -42,7 +43,7 @@ public class apiController {
|
|||||||
private MailSentService mailSendService;
|
private MailSentService mailSendService;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/mailReceive")
|
@PostMapping("/mailReceive")
|
||||||
public ApiResult<?> mailReceive(String token) {
|
public ApiResult<?> mailReceive(String token) {
|
||||||
if (tokenBean.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
@@ -52,7 +53,7 @@ public class apiController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/mailSend")
|
@PostMapping("/mailSend")
|
||||||
public ApiResult<?> mailSend(String token, String to, String cc, String subject, String content, String filePath) {
|
public ApiResult<?> mailSend(String token, String to, String cc, String subject, String content, String filePath) {
|
||||||
if (tokenBean.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
|
|||||||
@@ -1,63 +0,0 @@
|
|||||||
package com.mini.capi.sys.controller;
|
|
||||||
|
|
||||||
import com.mini.capi.biz.service.MailReceivedService;
|
|
||||||
import com.mini.capi.biz.service.MailSentService;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/api/mail")
|
|
||||||
public class MailController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private MailReceivedService mailReceiveService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private MailSentService mailSendService;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 触发接收INBOX未读邮件
|
|
||||||
*/
|
|
||||||
@PostMapping("/receive")
|
|
||||||
public ResponseEntity<Map<String, String>> receiveMail() {
|
|
||||||
mailReceiveService.receiveUnreadMail();
|
|
||||||
return ResponseEntity.ok(Map.of("code", "200", "msg", "接收邮件任务已触发"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 发送邮件(支持多收件人、多抄送、多附件)
|
|
||||||
* @param to 收件人(多个用逗号分隔,如:a@xxx.com,b@xxx.com)
|
|
||||||
* @param cc 抄送(多个用逗号分隔,可选)
|
|
||||||
* @param subject 主题
|
|
||||||
* @param content 内容(支持HTML)
|
|
||||||
* @param files 附件(可选)
|
|
||||||
*/
|
|
||||||
@PostMapping("/send")
|
|
||||||
public ResponseEntity<Map<String, String>> sendMail(
|
|
||||||
@RequestParam("to") String to,
|
|
||||||
@RequestParam(value = "cc", required = false) String cc,
|
|
||||||
@RequestParam("subject") String subject,
|
|
||||||
@RequestParam("content") String content,
|
|
||||||
@RequestParam(value = "files", required = false) MultipartFile[] files) {
|
|
||||||
|
|
||||||
// 解析收件人(逗号分隔转数组)
|
|
||||||
String[] toAddresses = to.split(",");
|
|
||||||
// 解析抄送(可选,空则为null)
|
|
||||||
String[] ccAddresses = cc != null && !cc.trim().isEmpty() ? cc.split(",") : null;
|
|
||||||
|
|
||||||
// 调用发送服务
|
|
||||||
mailSendService.sendMail(toAddresses, ccAddresses, subject, content, files);
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
|
||||||
.body(Map.of("code", "201", "msg", "邮件发送成功"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user