Microsoft graph api 同步邮箱状态、增量与订阅的最佳实践

Microsoft graph api 同步邮箱状态、增量与订阅的最佳实践,microsoft-graph-api,microsoft-graph-mail,Microsoft Graph Api,Microsoft Graph Mail,我正在构建一个CRM,它通过使用Microsoft Graph API处理发送到用户Office365帐户的电子邮件来处理应用程序中的电子邮件交换。跟踪实际邮箱中的电子邮件的最佳做法是什么?我应该使用delta还是订阅 据我所知,Delta是提供邮箱当前状态数据的URL,但Delta需要定期触发(我会使用CRON作业),但我会运行比需要多得多的过程,因为用户每天不会收到那么多的电子邮件 或者,如果我使用订阅,当收到新电子邮件时会通知我,并且我可以在我的应用程序中使用webhook进行处理 从表面

我正在构建一个CRM,它通过使用Microsoft Graph API处理发送到用户Office365帐户的电子邮件来处理应用程序中的电子邮件交换。跟踪实际邮箱中的电子邮件的最佳做法是什么?我应该使用delta还是订阅

据我所知,Delta是提供邮箱当前状态数据的URL,但Delta需要定期触发(我会使用CRON作业),但我会运行比需要多得多的过程,因为用户每天不会收到那么多的电子邮件

或者,如果我使用订阅,当收到新电子邮件时会通知我,并且我可以在我的应用程序中使用webhook进行处理


从表面上看,delta似乎是跟踪变化的一种方式,但我觉得既然我只需要知道何时收到一封新的电子邮件,以便对其进行相应的处理,那么从某种意义上讲,delta就有点过分了。

您将两者结合使用

webhook告诉您邮箱已更改,delta告诉您邮箱中已更改的内容。当您收到通知时,您将拉取增量以检索对邮箱的更改

这样做的原因有很多,但主要原因是电子邮件的
id
可以更改。这是因为消息ID是一个复合值,其中包括存储它的文件夹。因此,如果消息被移动,您在通知中收到的Id将无效。从历史上看,这是一种有点罕见的种族状况,但随着交互式移动通知的出现,现在电子邮件进入并立即“存档”已司空见惯。通过依赖Webhook进行通知和内容增量,可以避免CRON作业,同时在处理消息之前减少Id更改