|
@@ -455,8 +455,11 @@ public class EmailParseService {
|
|
}
|
|
}
|
|
Map<String, List<EmailContentInfoDTO>> emailMessageMap = MapUtil.newHashMap();
|
|
Map<String, List<EmailContentInfoDTO>> emailMessageMap = MapUtil.newHashMap();
|
|
for (Message message1 : messages) {
|
|
for (Message message1 : messages) {
|
|
|
|
+ long start = System.currentTimeMillis();
|
|
|
|
+ String emailTitle = null;
|
|
try {
|
|
try {
|
|
MimeMessage message = (MimeMessage) message1;
|
|
MimeMessage message = (MimeMessage) message1;
|
|
|
|
+ emailTitle = message.getSubject();
|
|
List<EmailContentInfoDTO> emailContentInfoDTOList = CollUtil.newArrayList();
|
|
List<EmailContentInfoDTO> emailContentInfoDTOList = CollUtil.newArrayList();
|
|
String uuidKey = UUID.randomUUID().toString().replaceAll("-", "");
|
|
String uuidKey = UUID.randomUUID().toString().replaceAll("-", "");
|
|
Integer emailType;
|
|
Integer emailType;
|
|
@@ -467,13 +470,13 @@ public class EmailParseService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
senderEmail = getSenderEmail(message);
|
|
senderEmail = getSenderEmail(message);
|
|
- emailType = EmailUtil.getEmailTypeBySubject(message.getSubject(), emailTypeMap);
|
|
|
|
|
|
+ emailType = EmailUtil.getEmailTypeBySubject(emailTitle, emailTypeMap);
|
|
String emailDateStr = DateUtil.format(emailDate, DateConst.YYYY_MM_DD_HH_MM_SS);
|
|
String emailDateStr = DateUtil.format(emailDate, DateConst.YYYY_MM_DD_HH_MM_SS);
|
|
if (emailType == null) {
|
|
if (emailType == null) {
|
|
- log.info("邮件不满足解析条件 -> 邮件主题:{},邮件日期:{}", message.getSubject(), emailDateStr);
|
|
|
|
|
|
+ log.info("邮件不满足解析条件 -> 邮件主题:{},邮件日期:{}", emailTitle, emailDateStr);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- log.info("邮件采集成功 -> 邮件主题:{},邮件日期:{}", message.getSubject(), emailDateStr);
|
|
|
|
|
|
+ log.info("邮件{} 基本信息获取完成,开始下载附件!邮件日期:{}", emailTitle, emailDateStr);
|
|
Object content = message.getContent();
|
|
Object content = message.getContent();
|
|
// 1.邮件为MIME多部分消息体:可能既有邮件又有正文
|
|
// 1.邮件为MIME多部分消息体:可能既有邮件又有正文
|
|
if (content instanceof MimeMultipart) {
|
|
if (content instanceof MimeMultipart) {
|
|
@@ -484,8 +487,8 @@ public class EmailParseService {
|
|
EmailContentInfoDTO emailContentInfoDTO = new EmailContentInfoDTO();
|
|
EmailContentInfoDTO emailContentInfoDTO = new EmailContentInfoDTO();
|
|
emailContentInfoDTO.setEmailContent(content.toString());
|
|
emailContentInfoDTO.setEmailContent(content.toString());
|
|
emailContentInfoDTO.setEmailDate(emailDateStr);
|
|
emailContentInfoDTO.setEmailDate(emailDateStr);
|
|
- emailContentInfoDTO.setEmailTitle(message.getSubject());
|
|
|
|
- String fileName = message.getSubject() + DateUtil.format(emailDate, DateConst.YYYYMMDDHHMMSS24);
|
|
|
|
|
|
+ emailContentInfoDTO.setEmailTitle(emailTitle);
|
|
|
|
+ String fileName = emailTitle + DateUtil.format(emailDate, DateConst.YYYYMMDDHHMMSS24);
|
|
String filePath = path + mailboxInfoDTO.getAccount() + File.separator + DateUtil.format(emailDate, DateConst.YYYY_MM_DD) + File.separator + fileName + ".html";
|
|
String filePath = path + mailboxInfoDTO.getAccount() + File.separator + DateUtil.format(emailDate, DateConst.YYYY_MM_DD) + File.separator + fileName + ".html";
|
|
File saveFile = new File(filePath);
|
|
File saveFile = new File(filePath);
|
|
saveFile.setReadable(true);
|
|
saveFile.setReadable(true);
|
|
@@ -511,9 +514,13 @@ public class EmailParseService {
|
|
});
|
|
});
|
|
emailMessageMap.put(uuidKey, emailContentInfoDTOList);
|
|
emailMessageMap.put(uuidKey, emailContentInfoDTOList);
|
|
}
|
|
}
|
|
- log.info("邮件{} 解析内容为:{}", message.getSubject(), emailContentInfoDTOList);
|
|
|
|
|
|
+// log.info("邮件{} 解析内容为:{}", emailTitle, emailContentInfoDTOList);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("获取邮箱的邮件报错,堆栈信息:{}", ExceptionUtil.stacktraceToString(e));
|
|
log.error("获取邮箱的邮件报错,堆栈信息:{}", ExceptionUtil.stacktraceToString(e));
|
|
|
|
+ } finally {
|
|
|
|
+ if (log.isInfoEnabled()) {
|
|
|
|
+ log.info("邮件{} 下载完成,总计耗时{} ms", emailTitle, System.currentTimeMillis() - start);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
folder.close(false);
|
|
folder.close(false);
|