IMAP - JavaMail - 如何知道要处理哪些消息?
IMAP - JavaMail - How to know which messages to process?
我想达到的目标:
- 我正在编写一个 Java 程序,它使用 IMAP 每 5 分钟连接到一些 gmail 帐户并从一些邮件中提取信息。
- 我想检查所有消息(传入和传出)并只接收我未处理的消息。我所说的 "processed" 不仅仅指 "read" 或 "seen" 消息。我的应用程序不关心其他用户是否访问了该帐户并阅读了消息。我的应用程序需要跟踪它处理的最后一条消息,并在下次处理这些消息时从第一条未处理的消息开始。
- 我不想更改消息中的任何内容。我不想将它们标记为已读或已读。
我实现的:
- 建立 IMAP 连接。
- 打开并访问“[Gmail]/All Mail”文件夹中的所有邮件。
我试过的:
- 我一直在阅读有关 UID 和消息编号的信息,但我不确定它们是否可以帮助我实现我想要的。也许 UID 可以,但是:如何使用 JavaMail 检索它?
- 我找到了 Folder.getMessages(int start, int end),但我认为它指的是文件夹中邮件的索引,我相信它可以轻松更改。
任何人都可以提供一些指导,说明最好的方法是什么?
谢谢!
IMAP UID 与包含邮件的文件夹相关。我不知道 Gmail 如何处理“[Gmail]/All Mail”文件夹中邮件的 UID,但如果它做的正确,您可以使用 UIDFolder 界面来获取 UID。并且如上所述,一旦您处理了某个 UID,所有新消息都将具有更大的 UID,这可以使处理更有效率。
另一种方法是使用 Message-ID,它有一组不同的问题...
我想达到的目标:
- 我正在编写一个 Java 程序,它使用 IMAP 每 5 分钟连接到一些 gmail 帐户并从一些邮件中提取信息。
- 我想检查所有消息(传入和传出)并只接收我未处理的消息。我所说的 "processed" 不仅仅指 "read" 或 "seen" 消息。我的应用程序不关心其他用户是否访问了该帐户并阅读了消息。我的应用程序需要跟踪它处理的最后一条消息,并在下次处理这些消息时从第一条未处理的消息开始。
- 我不想更改消息中的任何内容。我不想将它们标记为已读或已读。
我实现的:
- 建立 IMAP 连接。
- 打开并访问“[Gmail]/All Mail”文件夹中的所有邮件。
我试过的:
- 我一直在阅读有关 UID 和消息编号的信息,但我不确定它们是否可以帮助我实现我想要的。也许 UID 可以,但是:如何使用 JavaMail 检索它?
- 我找到了 Folder.getMessages(int start, int end),但我认为它指的是文件夹中邮件的索引,我相信它可以轻松更改。
任何人都可以提供一些指导,说明最好的方法是什么?
谢谢!
IMAP UID 与包含邮件的文件夹相关。我不知道 Gmail 如何处理“[Gmail]/All Mail”文件夹中邮件的 UID,但如果它做的正确,您可以使用 UIDFolder 界面来获取 UID。并且如上所述,一旦您处理了某个 UID,所有新消息都将具有更大的 UID,这可以使处理更有效率。
另一种方法是使用 Message-ID,它有一组不同的问题...