我正在开发Android邮件客户端。我需要为每封电子邮件消息构建一个“对话”结构。
IMAPMessage.getInReplyTo()
返回消息作为回复的消息的消息ID的方法。不幸的是,从
获取消息似乎没有简单的方法IMAPFolder
使用其消息ID。只能通过其UID获取消息。是否有一种通过其消息ID获取IMAP消息的简单方法?
答案 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。