我在GET
上执行me/MailFolders/{folder_id}/messages
,通过Office 365 REST API同步Office 365邮件文件夹。对于两个不同的帐户,我最近收到 500 对这些GET
的回复,错误代码为 ErrorMessagePerFolderCountReceiveQuotaExceeded ,错误消息为“收到的消息已经删除了该文件夹的配额。“(Typo他们的,不是我的。)
我找不到有关此错误的任何文档。这是什么意思?我该怎么做才能解决这个问题?
答案 0 :(得分:1)
我似乎无法找到任何文档。
从错误消息中,它似乎可能与"每个邮箱文件夹的最大邮件数量相关" Exchange Online限制。你知道该文件夹是否包含1M +消息吗?
https://technet.microsoft.com/en-us/library/exchange-online-limits.aspx#MailboxFolderLimits
我想我的另一个想法就是你在很短的时间内收到过多的邮件。建议将端点GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages
与$deltaToken
和$skipToken
一起使用,以跳过以前同步的消息。
https://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations#synchronize-messages
答案 1 :(得分:1)
通过Outlook REST API同步到Exchange文件夹时,会向其传递同步令牌。作为响应,API返回新的同步令牌和一组更改。并且客户端应该使用下一个同步请求发回新令牌。
对于大多数支持同步的系统,在后续请求中使用陈旧的同步令牌(即已经发送到服务器一次的那个)通常只会成功而没有问题。而Exchange似乎也是这样工作的......在你做的前999,999次。在第1,000,000次(以及之后的每次),您获得 ErrorMessagePerFolderCountReceiveQuotaExceeded 。这是(我认为)因为Exchange会跟踪它发出的每个令牌,并在每次用于同步时更新其商店中的令牌。如果客户端使用陈旧令牌,则Exchange将其视为新客户端,并将该陈旧令牌作为新条目添加到其活动令牌列表中。该活动令牌列表最多可包含1,000,000个条目。 ErrorMessagePerFolderCountReceiveQuotaExceeded 是指示Exchange的活动令牌列表已溢出的神秘错误。