Exchange Web 服务通知
Posted
技术标签:
【中文标题】Exchange Web 服务通知【英文标题】:Exchange Web Services Notifications 【发布时间】:2011-05-27 13:29:12 【问题描述】:我需要为我的应用程序编写一个 Exchange 集成块。每当服务器上的任何 Exchange 帐户创建联系人、任务、约会等时,我希望我的应用程序接收通知,以便它可以在应用程序中创建等效对象。
通过查看 EWS 托管 API 以及较低级别的 Web 服务 API,您似乎只能订阅整个用户的邮箱或该邮箱中的子文件夹。我的应用程序有什么方法可以简单地订阅服务器上的所有邮箱吗?
谢谢你, 泰德兹
【问题讨论】:
【参考方案1】:不,Exchange 不支持“所有邮箱”通知。而且您真的不想订阅所有通知 - 想象一下您将从 1000 多个邮箱 Exchange 服务器收到的通知数量。 在公共文件夹的情况下,您不能订阅商店范围内的通知;就像它的架构方式一样。 在更一般的注意事项上,不要使用事件或通知进行同步 - 通知可以并且在重负载下被丢弃。 有官方支持的 API(Active Sync,ICS)。充其量,通知可以用作您的代码必须尽快执行同步的提示。
【讨论】:
只是想指出 Exchange 将捆绑通知。因此,如果在短时间内发生 100 个事件,您可能只会收到少数通知,每个通知中包含多个事件。然后,您将循环确定事件类型并从那里开始。 我很好奇你说通知会在负载过重的情况下丢失。据我所知,通知会在 CAS 上保留多久(无论何时发生奇怪的事情都等待您重新连接),并且只有在 CAS 向您发送通知并且您没有在特定时间内回复时才会被丢弃.很好的答案。 +1 我明白了。这将是一个订阅通知的生产 Web 应用程序服务器,而不是移动设备,所以这就是为什么我认为负载不会太大。但是,如果它们根本不可靠,那么使用它们就没有任何意义。我不认为有办法进行全面同步?听起来 ActiveSync/ICS 是针对移动设备的,并且仍然一次只针对一个邮箱。 @Tedderz:只要您的应用程序正确处理通知,通知就非常可靠。如果 CAS 向您发送通知(推送或拉取)并且您没有在特定时间内回复,那么您将失去订阅。此外,考虑到我们不知道 Dmitry 的要求是什么,“可靠”一词非常模糊。最后,在您关闭 EWS 通知之前,您应该对其进行测试,看看它是否满足您的需求。以上是关于Exchange Web 服务通知的主要内容,如果未能解决你的问题,请参考以下文章
EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒
易宝典文章——玩转Office 365中的Exchange Online服务 之二十五 配置出站垃圾邮件策略通知