所以我想弄清楚如何获取带有 UID 的消息
IMAPStore store = (IMAPStore) session.getStore("imaps");
store.connect();
IMAPFolder folder = (IMAPFolder) store.getFolder(FOLDER_NAME);
folder.open(Folder.READ_ONLY);
然后我要搜索该文件夹:
Message unreadMessages[] =
folder.search(new FlagTerm( new Flags(Flags.Flag.SEEN), false));
但是数组中的消息返回时没有 UID,那么如果没有 ID 来引用它们,我如何稍后将它们拉出来进行处理呢?
最佳答案
我假设您正在谈论 IMAP UID 并且您知道 IMAP UID 的工作原理。被删除的答案很好地解释了这一点。 Folder.search 为您提供了一堆 Message 对象。使用 UIDFolder.getUID 方法,您可以迭代每个 Message 对象并获取其相应的 UID。使用Folder.fetch方法,您可以使用单个IMAP命令预取这些UID,以便在本地进行每条消息的迭代以获取其UID。如果保存 UID,则稍后可以使用 UIDFolder 方法取回相应的 Message 对象。不要忘记检查 UIDVALIDITY。
关于java - 使用 JavaMail 如何进行搜索并获取带有我可以引用的 UID 的消息数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38714841/