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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将SEEN标志设置为从gmail读取的邮件相关的知识,希望对你有一定的参考价值。

我正在使用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

答案

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

folder.open(Folder.READ_WRITE)

当你打开你的文件夹。

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

另一答案
message.setFlag(Flags.Flag.SEEN, true);

这是您在代码上执行的写入操作。

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

folder.open(Folder.READ_WRITE)

以上是关于无法将SEEN标志设置为从gmail读取的邮件的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 JavaMail 读取 Outlook 邮件,而 Gmail 可以工作

在 C# 中从 Gmail 中读取电子邮件

“SMTP 连接()失败”。将其配置为从远程主机发送电子邮件时

在 jsp 中使用 imap 从 gmail 读取电子邮件

使用 Gmail API 阅读其他用户的电子邮件

gmail邮件服务器无法发送邮件