java mail - 按消息ID获取消息

时间:2013-04-10 18:46:17

标签: java android email imap

我正在开发Android邮件客户端。我需要为每封电子邮件消息构建一个“对话”结构。

IMAPMessage.getInReplyTo()

返回消息作为回复的消息的消息ID的方法。不幸的是,从

获取消息似乎没有简单的方法
IMAPFolder

使用其消息ID。只能通过其UID获取消息。是否有一种通过其消息ID获取IMAP消息的简单方法?

2 个答案:

答案 0 :(得分:9)

您可以使用IMAPFolder的搜索方法:

SearchTerm searchTerm = new MessageIDTerm(messageId);
Message[] messages = imapFolder.search(searchTerm);

请在此处查看IMAPFolder搜索方法的文档: https://javamail.java.net/nonav/docs/api/com/sun/mail/imap/IMAPFolder.html#search(javax.mail.search.SearchTerm)

以及此处的MessageIDTerm类: https://javamail.java.net/nonav/docs/api/javax/mail/search/MessageIDTerm.html

答案 1 :(得分:0)

遗憾的是,没有直接的解决方案......您可以尝试的是使用body structures所有邮件ID维护内部结构,然后执行一对一的Message-ID检查并获取邮件的UID。无论如何你会这样做,以显示Maillist。添加一个新逻辑来映射消息ID。