我正在处理与外部IMAP服务器的错误连接。我需要我的应用程序定期从此邮件服务器下载邮件。在很多情况下,我的代码已经使用javamail下载了消息并执行了message.getContent,然后处理各个正文部分(附件)。在执行此操作的过程中,连接可能会丢失。
因此我需要确保消息在执行message.getContent时没有自动标记为SEEN,这就是Javamail的行为方式,如本回复中所述: https://stackoverflow.com/a/7679091/303106
有没有办法确保未下载的邮件未标记为SEEN?
答案 0 :(得分:6)
Message msg = ...;
((IMAPMessage)msg).setPeek(true);
答案 1 :(得分:4)
是的,在获取数据时使用BODY.PEEK
而非BODY
,和/或使用EXAMINE
代替SELECT
来打开邮箱。我将把它作为练习让读者阅读javamail的文档,看看这些选项如何与havamail提供的功能相关。