javamail:在imap邮件上设置自定义标志并使用自定义标志搜索邮件

时间:2012-02-14 14:03:51

标签: java email imap javamail

是否可以使用java邮件在IMAP邮件上设置自定义标志而不覆盖现有标志?例如,我需要在已处理的消息上设置一个标记为“已处理”而不将其状态更改为SEEN / DELETED,或者没有邮件客户端干扰此“已处理”标记。

然后我需要找到所有没有“已处理”标志的邮件并处理它们,之后它们也会被标记为“已处理”。

谢谢!

1 个答案:

答案 0 :(得分:16)

Flags processedFlag = new Flags("processed");
folder.setFlags(msgs, processedFlag, true);
// or
msg.setFlags(processedFlag, true);

并非所有IMAP服务器都支持这些“用户标志”,但大多数都会支持。要查找没有此标志的消息:

Message[] msgs = folder.search(new FlagTerm(processedFlag, false));