【发布时间】:2018-01-12 04:34:21
【问题描述】:
我正在使用带有 IMAP 协议的 java 邮件 API 连接 Office 365 邮箱。
我们有连续的消息流到邮箱并通过 java 邮件 API 读取这些消息。阅读消息后,这些消息将被移动到其他文件夹或删除。成功移动/删除一批后,我正在对 INBOX 文件夹进行删除。
上述功能在大约 72 小时内运行良好,然后 EXPUNGE 命令不断失败。以下是观察到的异常
javax.mail.MessagingException: A447 NO EXPUNGE failed.;嵌套的 例外是:com.sun.mail.iap.CommandFailedException: A447 NO 删除失败。在 com.sun.mail.imap.IMAPFolder.expunge(IMAPFolder.java:2190) 在 com.sun.mail.imap.IMAPFolder.expunge(IMAPFolder.java:2151) 在 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) 在 com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:425) 在 com.sun.mail.imap.protocol.IMAPProtocol.expunge(IMAPProtocol.java:1479) 在 com.sun.mail.imap.IMAPFolder.expunge(IMAPFolder.java:2183) ... 10 更多
如何避免这种情况?在什么情况下可以观察到这种情况?
【问题讨论】:
-
@Всеволод Тимченко 如果您想从 Microsoft 获得答案,那么您可以考虑联系 Microsoft。如果您想从其他人那里得到答案,那么 Bill Shannon 就像任何人一样具有权威性和可信度。
-
@arnt 这不是我想要微软的答案,我想要任何关于实际错误的信息。 “服务器的删除请求失败”正是错误消息,没有人需要 stackoverflow 来解决这个问题。 “关闭并重新打开文件夹”不是比“您尝试重新启动它吗?您尝试重新启动它 3 次了吗?”更多的解决方案。造成这种情况的 3 大最常见原因是什么?这是 100% 服务器端,还是某种格式错误的请求可能是罪魁祸首?任何事物? “重新打开文件夹”,天哪。
-
@arnt 也,我尝试联系 Microsoft,他们的支持以“服务器未能通过删除请求”结束。由于整个对话似乎毫无结果,我正在努力寻找能够说出任何实质性内容的人。
-
来自服务器的实际错误消息是“EXPUNGE failed”。它的命令标签是A447,错误代码是NO。 NO 表示从客户端收到的命令没有语法错误或类似问题,但由于某种原因处理命令失败。
标签: api office365 jakarta-mail imap