IMAP BEFORE 搜索结果在 Office 365 中始终为空

IMAP BEFORE search result is always empty with Office 365

我使用此代码以编程方式搜索 Outlook 365 收件箱:

Session session = Session.getDefaultInstance(new Properties());
Store store = session.getStore("imaps");
store.connect("outlook.office365.com", 993, EMAIL, PASSWORD);
Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_WRITE);
Message[] messages = emailFolder.search(new ReceivedDateTerm(LT,
        Date.from(Instant.now().minus(14, DAYS))));

因此执行 IMAP BEFORE search,例如SEARCH BEFORE 16-Oct-2021 ALL 但是返回的 messages 数组始终为空,尽管有数千封超过 14 天的邮件。如果使用非常短的间隔,则结果为非空。

Office 365 提供以下功能

CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CLIENTACCESSRULES CLIENTNETWORKPRESENCELOCATION BACKENDAUTHENTICATE CHILDREN IDLE NAMESPACE LITERAL+

是否有任何解决方案和/或变通方法可以使用“早于”和“早于”等日期执行服务器端搜索。使用可靠的 IMAP 和 Office 365?

在与 Microsoft Office 365 支持进行了更长时间的通信后,此错误终于被交换服务器团队修复并于 2022-01-21 CET 晚上推出。
现在 IMAP SEARCH BEFORE 命令按预期工作。

另外我们发现 SENTBEFORE and SENTSINCE are properly supported and return fast results even for thousands of messages while other IMAP email provider take several minutes for a result and similar amount of messages. They are supported by SentDateTerm in Jakara Mail 客户。

虽然 BEFOREONSINCE 引用未指定的 内部 日期,但使用 SENTBEFORESENTONSENTSINCE 消息的实际 Date: header