修改获取邮件Message-ID的方式,获取不到Message-ID时换成主题+接收时间或者时发送时间
This commit is contained in:
parent
9546f610b9
commit
25bf3542b5
|
@ -1,9 +1,12 @@
|
|||
package org.jeecg.modules;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.jeecg.common.constant.StringConstant;
|
||||
import org.jeecg.common.email.EmailLogManager;
|
||||
import org.jeecg.common.email.EmailServiceManager;
|
||||
import org.jeecg.common.properties.TaskProperties;
|
||||
|
@ -14,6 +17,7 @@ import org.jeecg.modules.spectrum.SpectrumLogManager;
|
|||
import org.jeecg.modules.spectrum.SpectrumParsingActuator;
|
||||
import org.jeecg.modules.spectrum.SpectrumServiceQuotes;
|
||||
import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
|
||||
|
||||
import javax.mail.Message;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
|
@ -33,11 +37,14 @@ public class EmailParsingActuator extends Thread{
|
|||
private SpectrumServiceQuotes spectrumServiceQuotes;
|
||||
private EmailCounter emailCounter;
|
||||
private Date systemStartupTime;
|
||||
@Setter @Getter
|
||||
@Setter
|
||||
@Getter
|
||||
private boolean isStop;
|
||||
@Setter @Getter
|
||||
@Setter
|
||||
@Getter
|
||||
private boolean threadSleep;
|
||||
@Setter @Getter
|
||||
@Setter
|
||||
@Getter
|
||||
private Date stopTime;
|
||||
|
||||
public void init(EmailProperties emailProperties, SpectrumServiceQuotes spectrumServiceQuotes,
|
||||
|
@ -90,12 +97,19 @@ public class EmailParsingActuator extends Thread{
|
|||
if (ArrayUtils.isNotEmpty(messages)) {
|
||||
//检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除
|
||||
for(int i=messages.length-1;i>=0;i--){
|
||||
String messageId = null;
|
||||
if (null == messages[i].getHeader("Message-ID")) {
|
||||
messages = ArrayUtils.remove(messages, i);
|
||||
continue;
|
||||
// 有些邮箱拿不到 message-ID,换成主题+接收时间
|
||||
String subject = messages[i].getSubject().replace(" ", StringConstant.UNDER_LINE);
|
||||
Date date = messages[i].getReceivedDate() == null ? messages[i].getSentDate() : messages[i].getReceivedDate();
|
||||
String receivedStr = DateUtil.format(date, DatePattern.NORM_DATETIME_MINUTE_PATTERN);
|
||||
messageId = subject + StringConstant.UNDER_LINE + receivedStr;
|
||||
// messages = ArrayUtils.remove(messages, i);
|
||||
// continue;
|
||||
}else {
|
||||
messageId = ((MimeMessage) messages[i]).getMessageID();
|
||||
}
|
||||
if (!messages[i].isExpunged()){
|
||||
String messageId = ((MimeMessage) messages[i]).getMessageID();
|
||||
final boolean exist = emailServiceManager.check(messages[i],messageId);
|
||||
messageIds.add(messageId);
|
||||
if (exist) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user