【发布时间】:2015-08-31 17:18:03
【问题描述】:
我正在使用最新的 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 实例,而是让我获取具有方法 getReceivedDate 的存根的 MimeMessage:
public Date getReceivedDate() throws MessagingException {
return null;
}
我看到标头不包含空元素 Received 所以我看到的唯一选择是手动解析此标头。
SI 的行为是否正确?错误或功能? 以及如何避免手动解析收到的日期标头?
【问题讨论】:
-
疯狂的问题,但您是否尝试将 MimeMessage 转换为 IMAPMessage?
-
当然。 (com.sun.mail.imap.IMAPMessage)in.getPayload() - 无法将 'org.springframework.integration.mail.AbstractMailReceiver$IntegrationMimeMessage' 转换为 'com.sun.mail.imap.IMAPMessage'
标签: java imap spring-integration jakarta-mail