From 9a4b149fc625a8284af1101329d60889b7ba9984 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期三, 01 十一月 2023 17:30:32 +0800 Subject: [PATCH] 邮件发送失败处理 --- src/main/java/com/whyc/service/MailService.java | 67 +++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/whyc/service/MailService.java b/src/main/java/com/whyc/service/MailService.java index 5973762..e9e3780 100644 --- a/src/main/java/com/whyc/service/MailService.java +++ b/src/main/java/com/whyc/service/MailService.java @@ -2,6 +2,8 @@ import com.whyc.constant.UserOperation; import com.whyc.dto.MailDTO; +import com.whyc.dto.Response; +import com.whyc.pojo.MailQueue; import com.whyc.util.ActionUtil; import com.whyc.util.MailUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +11,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.mail.MessagingException; +import java.util.Arrays; +import java.util.Date; +import java.util.LinkedList; import java.util.List; @Service @@ -20,23 +25,59 @@ @Autowired private DocLogService logService; + @Autowired + private MailQueueService mailQueueService; + @Transactional - public void sendMail(MailDTO mailDTO) throws MessagingException { + public Response sendMail(MailDTO mailDTO) { Long uId = ActionUtil.getUser().getId(); String name=ActionUtil.getUser().getName(); - mailUtil.sendMailBatch(name,mailDTO.getMailList(),mailDTO.getTitle(),mailDTO.getContent()); - //鏃ュ織 StringBuilder mailUserStr = new StringBuilder(); - List<String> mailList = mailDTO.getMailList(); - for (int i = 0; i < mailList.size(); i++) { - if(i==0){ - mailUserStr.append(mailList.get(i)); - }else{ - mailUserStr.append(","+mailList.get(i)); - } - } + try { + mailUtil.sendMailBatch(name,mailDTO.getMailList(),mailDTO.getTitle(),mailDTO.getContent()); - String msgDetail = "鍙戦�佺粰閭"+mailUserStr+",鏍囬涓�:"+mailDTO.getTitle()+",鍐呭涓�:"+mailDTO.getContent(); - logService.record(uId,name, UserOperation.TYPE_SEND_MAIL.getType(),"閭欢鍙戦��",msgDetail); + //鏃ュ織 + List<String> mailList = mailDTO.getMailList(); + for (int i = 0; i < mailList.size(); i++) { + if(i==0){ + mailUserStr.append(mailList.get(i)); + }else{ + mailUserStr.append(","+mailList.get(i)); + } + } + + String msgDetail = "鍙戦�佺粰閭" + mailUserStr + ",鏍囬涓�:" + mailDTO.getTitle() + ",鍐呭涓�:" + mailDTO.getContent(); + logService.record(uId, name, UserOperation.TYPE_SEND_MAIL.getType(), "閭欢鍙戦��", msgDetail); + return new Response().set(1,true,"鍙戦�佸畬鎴�"); + } catch (MessagingException ex) { //閭欢鍙戦�佸紓甯�,瀛樺叆鏁版嵁搴撳緟閲嶆柊鍙戦�佸垪琛� + MailQueue queue = new MailQueue(); + queue.setMails(mailUserStr.toString()); + queue.setTitle(mailDTO.getTitle()); + queue.setContent(mailDTO.getContent()); + queue.setCreateTime(new Date()); + queue.setSenderUserId(uId); + queue.setSenderUserName(name); + mailQueueService.add(queue); + return new Response().set(1,false,"鍙戦�佸け璐�,缃戠粶寮傚父,缃戠粶鎭㈠鍚庤嚜鍔ㄥ欢鏃跺彂閫�"); + } + } + + public void sendQueueMail(MailQueue queue) { + Long uId = queue.getSenderUserId(); + String name = queue.getSenderUserName(); + + String mails = queue.getMails(); + String[] mailSplits = mails.split(","); + List<String> mailList = new LinkedList<>(Arrays.asList(mailSplits)); + try{ + mailUtil.sendMailBatch(name,mailList,queue.getTitle(),queue.getContent()); + //鍒犻櫎 鏁版嵁搴撻偖浠堕槦鍒楄〃涓� 宸茶鍙戦�佺殑閭欢璁板綍 + mailQueueService.deleteById(queue.getId()); + //鏃ュ織 + String msgDetail = "鍙戦�佺粰閭" + mails + ",鏍囬涓�:" + queue.getTitle() + ",鍐呭涓�:" + queue.getContent(); + logService.record(uId, name, UserOperation.TYPE_SEND_MAIL.getType(), "閭欢鍙戦��", msgDetail); + } catch (MessagingException ex) { //閭欢鍙戦�佸紓甯� + //System.out.println("閭欢鍙戦�佸紓甯�,鍚庣画浼氭寔缁彂閫佺洿鍒版垚鍔�"); + } } } -- Gitblit v1.9.1