c# - 使用 EWS 托管 API 维护拉取通知中的亲和性

标签 c# exchange-server office365 exchangewebservices

我需要将数千个邮箱中的事件通知到另一个系统,我已经创建了一个拉取通知订阅并且效果很好,我已经创建了其中的几个但是我需要分别从每个邮箱中获取 GetEvents(),然后我看了这篇文章How to: Maintain affinity between a group of subscriptions and the Mailbox server in Exchange在 MSDN 中,它说我需要向订阅添加 header ,然后我将能够在一个请求中为所有订阅添加 getEvents(),使用 EWS 托管 API 它应该如下所示:

service.HttpHeaders.Add("X-AnchorMailbox", Mailbox.SMTPAddress);
service.HttpHeaders.Add("X-PreferServerAffinity", "true");

然后我应该在响应中取回一个 cookie:

X-BackEndOverrideCookie

我没有在响应中看到 cookie,并且我在文章中没有找到任何关于如何在 EWS 托管 API 中获取和使用它的内容(除了上面的这两行,文章的其余部分都是基于 XML我不太喜欢的请求)。除此之外,就请求而言,它应该包括所有订阅 ID(如 XML 中所示),为此我也没有在 EWS 托管 API 中找到解决方案。 我已经使用流式通知解决方案完成了此操作,但我想使用拉取通知。

如果有人对此有任何经验,我很乐意听到。 预先感谢您花时间阅读本文,并感谢您的回答(如果您已回答)。

最佳答案

对于 Office 365,你看过 Webhooks 了吗?通过我们的 Office 365 邮件、日历和联系人 REST API 端点?请参阅 http://dev.outlook.com 上的“连接到 Outlook 服务”获取更多信息。要访问组织内的多个邮箱,您需要使用 client credential flow .

只要接收通知的系统有一个始终可用的端点来接收推送通知,该模型就可以更好地监控来自数千个邮箱的通知。我的建议是查看使用 Webhooks API。它目前处于 Beta 阶段,但我们正在积极努力将其推向 GA。届时,您可以在生产环境中使用 Webhook。

关于c# - 使用 EWS 托管 API 维护拉取通知中的亲和性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30598486/

相关文章:

c# - lambda 表达式中的异常处理

office365 - 如何在从 Microsoft Graph 返回的用户列表中检测 session 室?

c# - 在 C# 中调用 PowerShell 脚本非常耗时

c# - 从 Web API 方法获取原始 POST 数据

c# - 为什么我可以使用 lambda 表达式代替回调委托(delegate)?

c# - 交易所托管 API : Why is the event not fired when a item is deleted?

python - 初始化中……命令 'sox'返回了非零的退出状态2

php - 使用 Office365 SMTP 设置 PHPMailer

c# - 如何减少 .net 应用程序的启动和运行时间?

c# - 邮件在创建后过早启用 AD 帐户