[EWS]如何: 通过使用 Exchange 中的 EWS 流有关邮箱事件的通知

[EWS]如何: 通过使用 Exchange 中的 EWS 流有关邮箱事件的通知,第1张

概述摘要在之前的文章中,介绍ews拉通知的模式订阅邮件。详情可阅读这篇文章:EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒 ,可以看到拉通知的模式,是一次订阅,然后定时器不停的请求服务器。流通知流式处理通知依赖悬挂 get 请求在服务器上保留流订阅连接以便连接处于活动状态时所发生的任何事件传送到客户端立即打开。过程中的一个连接,并连接保持打开直到间隔过期,或最多 30 分钟可以发送多个通知。连接到期后,客户端发送悬挂再次 get 请求。图 2 显示了流订阅和流式处理通知的工作方式。c#代码// Subscribe to streaming notifications in the Inbox.StreamingSubscription = service.SubscribeToStreamingNotifications(new FolderId[] { WellKnownFolderName.Inbox },EventType.NewMail,EventType.Created,EventType.Deleted,EventType.Modified,EventType.Moved,EventType.Copied,EventType.FreeBusyChanged);// Create a streaming connection to the service object, over which events are returned to the client.// Keep the streaming connection open for 30 minutes.StreamingSubscriptionConnection connection = new StreamingSubscriptionConnection(service, 30);connection.AddSubscription(StreamingSubscription);connection.OnNotificationEvent += OnNotificationEvent;connection.OnDisconnect += OnDisconnect;connection.Open();可以通过上面代码看到,可以流通知方式,可以保持长连接,监听30分钟内收件箱邮件的事件,如果超时,可以出发断开连接的事件。这时我们可以再次创建连接。获取邮件内容private void OnNotificationEvent(object sender, NotificationEventArgs args){if (args != null){foreach (NotificationEvent notificationEvent in args.Events){if (notificationEvent is ItemEvent){ItemEvent itemEvent = (ItemEvent)notificationEvent;Console.WriteLine(notificationEvent.EventType.ToString());Item item = Item.Bind(this._service, itemEvent.ItemId);switch (notificationEvent.EventType){case EventType.Moved:Console.WriteLine(item.Subject);break;case EventType.NewMail:Console.WriteLine(item.Subject);break;default:break;}}}}}参考文章流通知https://msdn.microsoft.com/zh-cn/library/office/dn458792(v=exchg.150).aspx三种通知模式https://msdn.microsoft.com/zh-cn/library/office/dn458791(v=exchg.150).aspx

在之前的文章中,介绍ews拉通知的模式订阅邮件。详情可阅读这篇文章:href="http://www.cnblogs.com/wolf-sun/p/6483415.HTML" target="_blank">EWS 通过SubscribetoPullNotifications订阅Exchange新邮件提醒 ,可以看到拉通知的模式,是一次订阅,然后定时器不停的请求服务器。

流通知

流式处理通知依赖悬挂 get 请求在服务器上保留流订阅连接以便连接处于活动状态时所发生的任何事件传送到客户端立即打开。过程中的一个连接,并连接保持打开直到间隔过期,或最多 30 分钟可以发送多个通知。连接到期后,客户端发送悬挂再次 get 请求。图 2 显示了流订阅和流式处理通知的工作方式。

c#代码

StreamingSubscription =<span >//<span > Create a streaming connection to the service object,over which events are returned to the clIEnt.
<span >//
<span > Keep the streaming connection open for 30 minutes.

StreamingSubscriptionConnection connection = <span >new
StreamingSubscriptionConnection(service,<span >30<span >);
connection.AddSubscription(StreamingSubscription);
connection.OnNotificationEvent +=<span > OnNotificationEvent;
connection.Ondisconnect +=<span > Ondisconnect;
connection.open();

可以通过上面代码看到,可以流通知方式,可以保持长连接,监听30分钟内收件箱邮件的事件,如果超时,可以出发断开连接的事件。这时我们可以再次创建连接。

获取邮件内容

OnNotificationEvent( (args != (NotificationEvent notificationEvent (notificationEvent == Item.Bind( } } }</span></pre>参考文章

流通知

https://msdn.microsoft.com/zh-cn/library/office/dn458792(v=exchg.150).aspx

三种通知模式

https://msdn.microsoft.com/zh-cn/library/office/dn458791(v=exchg.150).aspx

总结

以上是内存溢出为你收集整理的[EWS]如何: 通过使用 Exchange 中的 EWS 流有关邮箱事件的通知全部内容,希望文章能够帮你解决[EWS]如何: 通过使用 Exchange 中的 EWS 流有关邮箱事件的通知所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1263980.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存