outlook消息属性(Flag、IsRead)和删除状态的同步

Synchronization of outlook messages attributes (Flag, IsRead) and deletion status

根据此文档 Synchronize messages API 用户可以使用非常简单的 skipToken 机制来同步消息。它适用于获取文件夹中的新邮件。

但是! 我还感兴趣的是如何同步标志和状态,例如消息是否已读。 例如,我同步了收件箱文件夹中的所有邮件。在该用户转到他的 Outlook 帐户并阅读消息并为此消息设置一些标志之后。

我怎样才能得到这些信息?我是否应该重新同步所有消息以仅获取那些更改?

另外,我是如何知道消息删除的?如果某些用户从收件箱中删除了邮件,我如何在不重新获取所有邮件的情况下知道删除了哪封邮件?

您应该使用 Microsoft Graph API 并停止使用 Outlook Rest API,因为它已被淡化,开发人员体验不再需要投入更多精力。

使用增量查询功能使用 Microsoft Graph to synchronize and track changes

增量查询将发生初始同步调用。确保 select 您关心的属性:

GET https://graph.microsoft.com/v1.0/me/mailfolders/AQMkADNkNAAAgEMAAAA/messages/delta?$select=subject,sender,isRead
Prefer: odata.maxpagesize=50

如果响应 JSON 对象中有一个 @odata.nextlink,GET 那个 URL 到下一页结果。

如果响应在响应 JSON 对象中有一个 @odata.deltaLink,缓存那个 URL 直到下次你想检查更改。