2012-08-29 18 views
3

當打電話下面我的代碼snipit:錯誤萎靡不振的電子郵件消息的Java

Message message_in = null; 
inbox instanceof IMAPFolder 
IMAPFolder f = (IMAPFolder)inbox; 
f.idle(); 
System.out.println("IDLE done");            
message_in = inbox.getMessage(inbox.getMessageCount()); 
message_in.setFlag(Flags.Flag.DELETED, true); 
inbox.expunge(); 

我收到錯誤消息:

javax.mail.MessagingException: A9 NO Command received in Invalid state.; 
    nested exception is: 
    com.sun.mail.iap.CommandFailedException: A9 NO Command received in Invalid state. 
    at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:905) 
    at javax.mail.Message.setFlag(Message.java:578) 
    at com.name.vmmonitor.main.VMMonitor.startPolling(VMMonitor.java:160) 
    at com.name.vmmonitor.main.VMMonitor.main(VMMonitor.java:283) 
Caused by: com.sun.mail.iap.CommandFailedException: A9 NO Command received in Invalid state. 
    at com.sun.mail.iap.Protocol.handleResult(Protocol.java:351) 
    at com.sun.mail.imap.protocol.IMAPProtocol.storeFlags(IMAPProtocol.java:1589) 
    at com.sun.mail.imap.protocol.IMAPProtocol.storeFlags(IMAPProtocol.java:1574) 
    at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:901) 
    ... 3 more 

問題是什麼?我可以調用message_in.getSubject()等方法,但爲什麼不能使用message_in.setFlag()

回答

5

「A9 NO命令收到處於無效狀態。」意味着IMAP文件夾(帳戶)是隻讀的。

+0

是否需要解決_server端(即我所連接的郵件服務器)或_client端(即我的程序中的設置)問題? – rudolph9

+0

它可能是。這可能是您獲取IMAPFolder的方式或服務器設置的方式。 –