使用 Microsoft Graph 获取新电子邮件

Get new emails with microsoft graph

我正在尝试使用 Microsoft Graph 仅接收新电子邮件。 我通过检查

这样的日期来做到这一点
GET https://graph.microsoft.com/v1.0/me/messages?$filter=receivedDateTime+gt+2016-06-06T08:08:08Z

是否有可能构建查询以获取新消息但基于 id 而不是 receivedDateTime?类似于:获取信息直到找到 id=....?

您正在寻找的方案正是新 Delta query 旨在支持的方案。增量允许您检索自上次轮询该文件夹以来对给定文件夹(即收件箱)的更改。消息 ID 不是静态的或连续的,因此它们不适合 属性 来确定新消息与旧消息。

我认为增量查询解决方案非常好(如不同答案中所建议)。但是,就我的目的而言,有两个主要缺点:1)它现在处于预览(测试版)阶段,因此它不太适合生产代码;2)它似乎不支持 [=14= 的监控]所有 封邮件,只是特定文件夹中的邮件。

我实际上更喜欢您使用的解决方案。响应 header 中的时间戳可用于重置您查询中的时间字段,因此如果您有 "receivedDateTime gt 12:00:00" 并为您的请求取回 12:01:00 的服务器时间,下次可以用"receivedDateTime gt 12:01:00"