我正在构建一个CRM,该CRM通过处理使用Microsoft Graph API发送到用户Office365帐户的电子邮件来处理应用程序中的电子邮件交换。在实际邮箱中跟踪电子邮件的最佳实践是什么?我应该使用增量订阅吗?
据我所知,Delta是提供有关邮箱当前状态数据的URL,但是需要定期触发增量(我将使用CRON作业),但随后我将运行由于用户每天不会收到那么多电子邮件,因此处理量超出了需要。
或者,如果我使用的订阅将在收到新电子邮件时通知我,并且可以在应用中使用网络挂钩进行处理。
从Microsoft Graph documentation看来,增量是跟踪更改的方法,但是我觉得由于我所需要的只是知道何时收到新电子邮件,以便可以相应地对其进行处理,因此在某种程度上过分杀人了。
答案 0 :(得分:1)
您可以将两者结合使用。
webhook告诉您邮箱已更改,delta告诉您邮箱中已更改的内容。收到通知时,请拉动增量以检索对邮箱的更改。
这样做的原因很多,但主要的原因是电子邮件的id
可以更改。这是因为消息ID是包含存储在其中的文件夹的复合值。因此,如果消息被移动,则您在通知中收到的ID将无效。从历史上看,这是一种比较罕见的比赛条件,但是随着交互式移动通知的出现,现在电子邮件进入并立即被“存档”已经很普遍了。通过依靠webhooks来获取通知,并依靠delta来获取内容,您可以避免CRON作业,同时在处理消息之前减轻ID的更改。