我使用java邮件API与IMAP协议连接Office 365邮箱。
我们有连续的邮件流到邮箱并通过java邮件API读取它们。读取邮件后,这些邮件将被移动到其他文件夹或删除。成功移动/删除批处理后,我正在对INBOX文件夹进行删除。
上述功能在72小时内表现良好,然后EXPUNGE命令不断失败。以下是观察到的例外情况
javax.mail.MessagingException:A447没有EXPUNGE失败。嵌套 例外是:com.sun.mail.iap.CommandFailedException:A447 NO EXPUNGE失败了。在 com.sun.mail.imap.IMAPFolder.expunge(IMAPFolder.java:2190)at at com.sun.mail.imap.IMAPFolder.expunge(IMAPFolder.java:2151)at at com.eiq.socvueportal.securitymonitoring.incidents.feeder.mail.IncidentsMailboxReader.expungeConnectionInbox(IncidentsMailboxReader.java:423) 在 com.eiq.socvueportal.securitymonitoring.incidents.feeder.mail.IncidentsMailboxReader.updateCompletedConnection(IncidentsMailboxReader.java:311) 在 com.eiq.socvueportal.securitymonitoring.incidents.feeder.mail.IncidentsMailboxReader.checkAndUpdateConnectionInstances(IncidentsMailboxReader.java:285) 在 com.eiq.socvueportal.securitymonitoring.incidents.feeder.mail.IncidentsMailboxReader.getUnreadIncidentMails(IncidentsMailboxReader.java:76) 在 com.eiq.socvueportal.securitymonitoring.incidents.feeder.worker.IncidentMailsProcessor.findAndProcessUnreadMails(IncidentMailsProcessor.java:200) 在 com.eiq.socvueportal.securitymonitoring.incidents.feeder.worker.IncidentMailsProcessor.run(IncidentMailsProcessor.java:85) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)引起: com.sun.mail.iap.CommandFailedException:A447 NO EXPUNGE失败。在 com.sun.mail.iap.Protocol.handleResult(Protocol.java:399)at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:425)at com.sun.mail.imap.protocol.IMAPProtocol.expunge(IMAPProtocol.java:1479) 在com.sun.mail.imap.IMAPFolder.expunge(IMAPFolder.java:2183)... 10 更
如何避免这种情况?在什么情况下可以观察到这一点?
答案 0 :(得分:2)
服务器失败了删除请求。联系Microsoft以了解服务器失败的原因。作为解决方法,您可以关闭该文件夹并重新打开它;关闭文件夹时将完成删除。