无法将SEEN标志设置为从gmail读取的邮件

时间:2010-07-19 08:10:11

标签: java gmail imap

我正在使用IMAP协议连接到我的Gmail帐户。

我的申请在这一行失败了。 message.setFlag(Flags.Flag.SEEN,true);

日志详细信息如下:

[java] ---- exception report ----------------------------------------------------------
 [java] An error Occured while reading mail
 [java] Exception: javax.mail.MessagingException
 [java] Message: A10 NO STORE attempt on READ-ONLY folder (Failure)
 [java] ---- cause ---------------------------------------------------------------------
 [java] Exception: com.sun.mail.iap.CommandFailedException
 [java] Message: A10 NO STORE attempt on READ-ONLY folder (Failure)
 [java] ---- stack trace ---------------------------------------------------------------
 [java] com.sun.mail.iap.CommandFailedException: A10 NO STORE attempt on READ-ONLY folder (Failure)
 [java] com.sun.mail.iap.Protocol.handleResult(Protocol.java:294)
 [java] com.sun.mail.imap.protocol.IMAPProtocol.storeFlags(IMAPProtocol.java:1294)
 [java] com.sun.mail.imap.protocol.IMAPProtocol.storeFlags(IMAPProtocol.java:1279)
 [java] com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:843)
 [java] javax.mail.Message.setFlag(Message.java:565)

任何帮助将不胜感激。

谢谢, Kumaraswamy.N

2 个答案:

答案 0 :(得分:5)

看起来您将文件夹打开为READ_ONLY。确保你正在做

folder.open(Folder.READ_WRITE)

打开文件夹时。

BTW POP协议无法识别标志。所以我很惊讶它适用于POP,因为在使用POP时你应该得到一个IllegalWriteException。无论如何, message.setFlag(...)不会对POP做任何事情。

答案 1 :(得分:0)

message.setFlag(Flags.Flag.SEEN, true);

这是您对代码执行的写操作。

正如@Nikordaris所说的那样,给予书面许可:

folder.open(Folder.READ_WRITE)