春天整合和收到日期问题

时间:2015-06-16 03:23:35

标签: java imap spring-integration javax.mail

我正在使用最新的spring集成(4.1.5)javax.mail(1.4.7)库,但看起来这个问题从一开始就坐在那里。

我正在尝试通过IMAP协议从邮件服务器获取日期,但SI始终返回null。这是因为https://github.com/spring-projects/spring-integration/blob/4.1.x/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java

中的第301行
MimeMessage mimeMessage = new IntegrationMimeMessage((MimeMessage) filteredMessages[i]);

所以不要让我得到IMAPMessage实例,而是让我得到MimeMessage,它有方法getReceivedDate的存根:

public Date getReceivedDate() throws MessagingException {
return null;    
}

我看到标题包含非null元素已接收,因此我看到的唯一选项是手动解析此标题。

SI的行为是否正确?错误或功能? 以及如何避免手动解析收到的日期标题?

2 个答案:

答案 0 :(得分:2)

收到的日期可用作internaldate获取项目。

Parsing Received是一个非常大的问题,这可能是Spring开发者尚未完成的原因以及为什么你会讨厌这样做。看看internaldate是否会这样做。

答案 1 :(得分:1)

我一直在看Sun代码;它使用INTERNALDATE获取项来填充receivedDate属性...

javamail 1.5.2中的第1194行...

else if (item instanceof INTERNALDATE)
    receivedDate = ((INTERNALDATE)item).getDate();

然而,Spring并未公开这一点;我创建了一个JIRA issue