JavaMail - 停止自动发送已读回执

时间:2014-01-31 15:52:43

标签: java email exchange-server javamail imap

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

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

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

2 个答案:

答案 0 :(得分:0)

你不能在你的客户端那样做。您的客户端没有这样做,IMAP无法配置Exchange。

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

答案 1 :(得分:0)

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

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