FolderClosedException:* BYE JavaMail 异常:java.io.IOException:连接被服务器删除?

Gam*_*mby 5 gmail jakarta-mail

我正在使用 javamail 1.5.5,我想监听 GMail 邮箱中的新邮件。

我有一个 MessageCountListener 的实现,在它的 messagesAdded 方法上,最后我这样做:

try {
        // process new messages
        idleManager.watch(ifo); // keep watching for new messages
    } catch (MessagingException mex) {
        logger.error(".....", mex);
    }
Run Code Online (Sandbox Code Playgroud)

我不确定是否理解,因为我遇到了异常......

我相信我正在做这里所说的https://javamail.java.net/nonav/docs/api/com/sun/mail/imap/IdleManager.html#watch-javax.mail.Folder-

遵循一些邮件调试日志,考虑到在该异常之后,不再有新消息到达侦听器。

DEBUG IMAP: IdleManager selected 1 channels
DEBUG IMAP: IdleManager selected folder: imaps://xxxxxxxxxx@imap.gmail.com:993/INBOX
* 1026 FETCH (UID 4284 FLAGS (\Answered \Seen))
DEBUG IMAP: IdleManager continue watching folder imaps://xxxxxxx@imap.gmail.com:993/INBOX
DEBUG IMAP: IdleManager adding imaps://xxxxxxxxx@imap.gmail.com:993/INBOX to selector
DEBUG IMAP: IdleManager waiting...
DEBUG IMAP: IdleManager selected 1 channels
DEBUG IMAP: IdleManager selected folder: imaps://xxxxxxxxxxx@imap.gmail.com:993/INBOX
DEBUG IMAP: handleIdle: set to RUNNING
DEBUG IMAP: IdleManager got exception for folder: imaps://prismatest@imap.gmail.com:993/INBOX, THROW: 
javax.mail.FolderClosedException: * BYE JavaMail Exception: java.io.IOException: Connection dropped by server?
    at com.sun.mail.imap.IMAPFolder.handleIdle(IMAPFolder.java:3199)
    at com.sun.mail.imap.IdleManager.processKeys(IdleManager.java:370)
    at com.sun.mail.imap.IdleManager.select(IdleManager.java:281)
    at com.sun.mail.imap.IdleManager.access$200(IdleManager.java:137)
    at com.sun.mail.imap.IdleManager$1.run(IdleManager.java:164)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
DEBUG IMAP: IdleManager waiting...
Run Code Online (Sandbox Code Playgroud)

谢谢再见