如何使用IMAP唯一标识Java邮件消息?

Rak*_*ela 5 java email jakarta-mail

Java Mail中的IMAP消息由它的相对位置编号标识,该编号从1开始.

参考, http://docs.oracle.com/javaee/1.4/api/javax/mail/Message.html#getMessageNumber()

消息号是临时详细信息.

有没有办法永久唯一地识别使用Java Mail API通过IMAP访问邮箱的邮件/邮件,该邮件/邮件在会话中保持正确?

Bil*_*non 8

查看UIDFolder接口,该接口公开IMAP UID功能.

  • UIDFolder uf =(UIDFolder)文件夹; (2认同)

Pet*_* T. 5

您可以使用以下代码作为示例来获取消息的唯一标识符

Folder folder = imapStore.getFolder("INBOX"); // get reference for inbox folder
UIDFolder uf = (UIDFolder)folder; // cast folder to UIDFolder interface
folder.open(Folder.READ_ONLY); // open folder
Message messages[] = folder.getMessages(); // get all messages
Long messageId = uf.getUID(messages[0]); // get message Id of first message in the inbox
Run Code Online (Sandbox Code Playgroud)