我正在构建一个 CRM,它通过使用 Microsoft Graph API 处理发送到用户 Office365 帐户的电子邮件来处理应用程序中的电子邮件交换。跟踪实际邮箱中的电子邮件的最佳实践是什么?我应该使用增量还是订阅?
据我所知,Delta 是提供有关邮箱当前状态的数据的 URL,但 Delta 需要定期触发(我会使用 CRON 作业),但随后我会运行处理的邮件数量超出了需要,因为用户每天不会收到那么多电子邮件。
或者,如果我使用订阅,它会在收到新电子邮件时通知我,并且我可以在应用程序中使用 Webhook 进行处理。
来自Microsoft Graph documentation似乎增量是跟踪更改的方式,但我觉得因为我需要知道何时收到新电子邮件以便可以对其进行相应处理,所以从某种意义上说增量会有点矫枉过正。
最佳答案
您可以结合使用两者。
网络钩子(Hook)告诉您邮箱已更改,增量告诉您邮箱中发生了什么更改。当您收到通知时,您可以拉取增量以检索对邮箱的更改。
这样做的原因有很多,但最主要的原因是电子邮件的 id
可能会发生变化。这是因为消息 ID 是一个复合值,其中包括存储它的文件夹。因此,如果消息被移动,您在通知中收到的 ID 将无效。从历史上看,这是一种罕见的竞争条件,但随着交互式移动通知的出现,电子邮件进入并立即“存档”现在已经很常见了。通过依靠 Webhook 进行通知和内容增量,您可以避免 CRON 作业,同时减少在处理消息之前 ID 的更改。
关于microsoft-graph-api - 同步邮箱状态、增量与订阅的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651144/