【问题标题】:JavaMail - Stop automatically sending read receiptsJavaMail - 停止自动发送已读回执
【发布时间】:2014-01-31 15:52:43
【问题描述】:

我正在使用JavaMail 开发邮件客户端 (IMAP/SMTP)。此客户端与 Exchange 2010 服务器通信,当我在需要它们的邮件中设置标志 SEEN 时,该服务器会自动发送已读回执。如何避免服务器发送这些收据?我试图从消息中删除 Disposition-Notification-To 标头,但出现以下异常:

javax.mail.IllegalWriteException: "IMAPMessage is read-only" 

即使我以READ_WRITE 模式打开他们的文件夹。我读到这个问题是由于IMAP 协议限制造成的。有没有办法不发送已读回执?

【问题讨论】:

    标签: java email exchange-server jakarta-mail imap


    【解决方案1】:

    您不能在您的客户端中这样做。您的客户端不这样做,而且 IMAP 没有提供配置 Exchange 的方法。

    (此外,IMAP 无法修改消息。消息一旦存储,任何客户端都可以永久缓存,并且不会被任何其他客户端修改。)

    【讨论】:

      【解决方案2】:

      正确的做法是重新配置服务器。

      如果没有,您可以复制邮件,修改副本以删除标题,将副本附加到原始文件夹,然后删除原始文件。您需要使用 IMAPMessage.setPeek 方法来防止在原始邮件上设置 SEEN 标志。使用 MimeMessage 复制构造函数进行复制。请注意,如果消息很大,这将很昂贵。

      【讨论】:

      • 如果我在删除原始邮件之前没有设置 SEEN 标志,服务器会发送“未读”通知。
      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2016-08-28
      相关资源
      最近更新 更多