【问题标题】:How do I ensure that the SEEN flag on an IMAP email message is not automatically marked as SEEN on doing getContent如何确保 IMAP 电子邮件中的 SEEN 标志在执行 getContent 时不会自动标记为 SEEN
【发布时间】:2013-05-10 02:17:37
【问题描述】:

我正在处理与外部 IMAP 服务器的不良连接。我需要我的应用程序定期从该邮件服务器下载消息。在很多情况下,我的代码已经使用 javamail 下载了消息并执行了 message.getContent,然后正在处理各个正文部分(附件)。在执行此操作的过程中,连接可能会断开。

因此,我需要确保在执行 message.getContent 时不会将消息自动标记为 SEEN,这就是 Javamail 的行为方式,如此处的回复中所述: https://stackoverflow.com/a/7679091/303106

有什么方法可以确保未下载的邮件不会被标记为“已查看”?

【问题讨论】:

    标签: imap jakarta-mail


    【解决方案1】:
    Message msg = ...;
    ((IMAPMessage)msg).setPeek(true);
    

    【讨论】:

      【解决方案2】:

      是的,在获取数据时使用BODY.PEEK 而不是仅仅BODY,和/或使用EXAMINE 而不是SELECT 打开邮箱。我将把它作为练习留给读者阅读 javamail 的文档,以了解这些选项与 havamail 提供的功能有何关系。

      【讨论】:

      • 谢谢。至少我知道有办法。我将查看 javamail 文档。它没有很好的记录,但我在 API 文档中看到了一些似乎相关的方法。
      猜你喜欢
      • 2013-04-18
      • 2014-02-01
      • 1970-01-01
      • 2011-03-18
      • 2017-07-15
      • 1970-01-01
      • 2011-09-19
      • 2011-06-23
      • 2010-09-05
      相关资源
      最近更新 更多