24282 2 gadi atpakaļ
vecāks
revīzija
a7210044d2

+ 20 - 14
src/main/java/com/fjhx/email/service/impl/MailServiceImpl.java

@@ -259,19 +259,29 @@ public class MailServiceImpl implements IMailService {
             }
 
             // 赋值邮件 正文、附件
-            CompletableFuture<Void> setTextAndAttachmentFuture =
-                    CompletableFuture.runAsync(() -> setTextAndAttachment(message, messageDetailVo), executor);
+            CompletableFuture<Void> setTextAndAttachmentFuture = CompletableFuture.runAsync(() -> {
+                try {
+                    setTextAndAttachment(message, messageDetailVo);
+                } catch (Exception e) {
+                    throw new ServiceException("邮件加载失败");
+                }
+            }, executor);
 
             // 赋值邮件 收件人、抄送人、密送人、回复人
-            CompletableFuture<Void> setAddressFuture =
-                    CompletableFuture.runAsync(() -> setAddress(message, messageDetailVo), executor);
+            CompletableFuture<Void> setAddressFuture = CompletableFuture.runAsync(() -> {
+                try {
+                    setAddress(message, messageDetailVo);
+                } catch (MessagingException e) {
+                    throw new ServiceException("邮件加载失败");
+                }
+            }, executor);
 
             // 设置已读
             CompletableFuture<Void> setSeenFuture = CompletableFuture.runAsync(() -> {
                 try {
                     ImapUtil.setSeen(message);
                 } catch (MessagingException e) {
-                    throw new ServiceException("设置邮件已读错误");
+                    throw new ServiceException("邮件加载失败");
                 }
             }, executor);
 
@@ -484,8 +494,7 @@ public class MailServiceImpl implements IMailService {
     /**
      * 获取邮件 收件人、抄送人、密送人、回复人
      */
-    @SneakyThrows
-    private void setAddress(IMAPMessage message, MessageDetailVo messageDetailVo) {
+    private void setAddress(IMAPMessage message, MessageDetailVo messageDetailVo) throws MessagingException {
 
         List<MessageAddress> messageAddressList = ImapUtil.getMessageAddressList(message);
 
@@ -506,8 +515,7 @@ public class MailServiceImpl implements IMailService {
     /**
      * 获取邮件正文以及附件
      */
-    @SneakyThrows
-    private void setTextAndAttachment(IMAPMessage message, MessageDetailVo vo) {
+    private void setTextAndAttachment(IMAPMessage message, MessageDetailVo vo) throws MessagingException, IOException {
 
         List<CompletableFuture<Void>> futureList = new ArrayList<>();
 
@@ -517,11 +525,9 @@ public class MailServiceImpl implements IMailService {
 
             @Override
             public void setPlain(String plain) {
-                if (plain != null) {
-                    if (ObjectUtil.notEqual(vo.getMimeType(), "text/html")) {
-                        vo.setContent(plain);
-                        vo.setMimeType("text/plain");
-                    }
+                if (ObjectUtil.notEqual(vo.getMimeType(), "text/html")) {
+                    vo.setContent(plain);
+                    vo.setMimeType("text/plain");
                 }
             }