我正在使用JavaMail
开发邮件客户端(IMAP / SMTP)。此客户端与Exchange 2010服务器通信,当我在需要它们的消息中设置标志SEEN时,该服务器会自动发送已读回执。如何避免服务器发送这些收据?我试图从消息中删除Disposition-Notification-To标头但我得到以下异常:
javax.mail.IllegalWriteException: "IMAPMessage is read-only"
即使我以READ_WRITE
模式打开文件夹。我读到这个问题是由于IMAP
协议限制造成的。有没有办法不发送阅读收据?
答案 0 :(得分:0)
你不能在你的客户端那样做。您的客户端没有这样做,IMAP无法配置Exchange。
(另外,IMAP无法修改消息。一旦存储,消息可以被任何客户端永久缓存,不被任何其他客户端修改。)
答案 1 :(得分:0)
正确的做法是重新配置服务器。
缺少这一点,您可以复制邮件,修改副本以删除标题,将副本附加到原始文件夹,然后删除原始文件。您需要使用IMAPMessage.setPeek方法来防止在原始邮件上设置SEEN标志。使用MimeMessage复制构造函数进行复制。请注意,如果邮件很大,这将是昂贵的。