|
@@ -2,6 +2,7 @@ package com.fjhx.email.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.fjhx.email.config.base.BaseEntity;
|
|
import com.fjhx.email.config.base.BaseEntity;
|
|
@@ -280,11 +281,20 @@ public class MailServiceImpl implements IMailService {
|
|
setTextAndAttachmentFuture.join();
|
|
setTextAndAttachmentFuture.join();
|
|
|
|
|
|
// 保存内容
|
|
// 保存内容
|
|
- executor.execute(() -> saveMessageDetail(messageId, messageDetailVo, type));
|
|
|
|
|
|
+ executor.execute(() -> {
|
|
|
|
+
|
|
|
|
+ // 关闭连接
|
|
|
|
+ try {
|
|
|
|
+ ImapUtil.closeFolder(folder);
|
|
|
|
+ ImapUtil.closeStore(store);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("关闭链接失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ saveMessageDetail(messageId, messageDetailVo, type);
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
|
|
- // 关闭连接
|
|
|
|
- ImapUtil.closeFolder(folder);
|
|
|
|
- ImapUtil.closeStore(store);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// copy一份数据,防止多线程下把文件路径前缀保存到数据库中
|
|
// copy一份数据,防止多线程下把文件路径前缀保存到数据库中
|
|
@@ -310,11 +320,15 @@ public class MailServiceImpl implements IMailService {
|
|
);
|
|
);
|
|
|
|
|
|
for (MailFolderInfo mailFolderInfo : mailboxInfo.getMailFolderInfoList()) {
|
|
for (MailFolderInfo mailFolderInfo : mailboxInfo.getMailFolderInfoList()) {
|
|
- IMAPFolder folder = (IMAPFolder) store.getFolder(mailFolderInfo.getName());
|
|
|
|
- folder.open(Folder.READ_WRITE);
|
|
|
|
- int unreadMessageCount = folder.getUnreadMessageCount();
|
|
|
|
- mailFolderInfo.setUnreadMessageCount(unreadMessageCount);
|
|
|
|
- ImapUtil.closeFolder(folder);
|
|
|
|
|
|
+ String name = mailFolderInfo.getName();
|
|
|
|
+ if (StrUtil.equalsAnyIgnoreCase(name, "inbox")) {
|
|
|
|
+ IMAPFolder folder = (IMAPFolder) store.getFolder(name);
|
|
|
|
+ folder.open(Folder.READ_WRITE);
|
|
|
|
+ int unreadMessageCount = folder.getUnreadMessageCount();
|
|
|
|
+ mailFolderInfo.setUnreadMessageCount(unreadMessageCount);
|
|
|
|
+ ImapUtil.closeFolder(folder);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
ImapUtil.closeStore(store);
|
|
ImapUtil.closeStore(store);
|