查找一些关于流通知订阅邮件的资料,这里整理一下。
核心代码块<span >namespace<span > Exchange101{
<span >//<span > This sample is for demonstration purposes only. Before you run this sample,make sure that the code meets the Coding requirements of your organization.
<span >class<span > Notifications
{
<span >static ExchangeService service = Service.ConnectToService(UserDataFromConsole.GetUserData(),<span >new<span > TraceListener());
<span >private <span >static<span > autoresetEvent Signal;
</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">static</span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">vo<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a></span> Main(<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">string</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">[] args) { SetStreamingNotifications(service); </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Wait for the app<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>cation to exit</span> Signal = <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">new</span> <a href="https://m.jb51.cc/tag/auto/" target="_blank" >auto</a><a href="https://m.jb51.cc/tag/reset/" target="_blank" >reset</a>Event(<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">false</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); Signal.WaitOne(); } </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">static</span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">vo<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a></span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> SetStreamingNotifications(ExchangeService service) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Subscribe to streaming notifications on the In<a href="https://www.jb51.cc/tag/Box/" target="_blank" >Box</a> f<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der,and <a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a>en </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> for "NewMail","Created",and "Deleted" events. </span> StreamingSubscription streamingsubscription =<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> service.Subscrib<a href="https://www.jb51.cc/tag/eto/" target="_blank" >eto</a>StreamingNotifications( </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">new</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> F<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>[] { WellK<a href="https://www.jb51.cc/tag/Now/" target="_blank" >Now</a>nF<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>.In<a href="https://www.jb51.cc/tag/Box/" target="_blank" >Box</a> },EventType.NewMail,EventType.Created,EventType.Deleted); StreamingSubscriptionConnection connection </span>= <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">new</span> StreamingSubscriptionConnection(service,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800080;">1</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); connection.AddSubscription(streamingsubscription); </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Delegate event handlers. </span> connection.OnNotificationEvent += <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">new</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> StreamingSubscriptionConnection.NotificationEventDelegate(OnEvent); connection.OnSubscriptionError </span>+= <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">new</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> StreamingSubscriptionConnection.SubscriptionErrorDelegate(OnError); connection.On<a href="https://www.jb51.cc/tag/dis/" target="_blank" >dis</a>connect </span>+= <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">new</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> StreamingSubscriptionConnection.SubscriptionErrorDelegate(On<a href="https://www.jb51.cc/tag/dis/" target="_blank" >dis</a>connect); connection.<a href="https://www.jb51.cc/tag/open/" target="_blank" >open()</a>; Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">--------- StreamSubscription event -------</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); } </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">static</span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">private</span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">vo<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a></span> On<a href="https://www.jb51.cc/tag/dis/" target="_blank" >dis</a>connect(<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">object</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> sender,SubscriptionErrorEventArgs args) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Cast the sender as a StreamingSubscriptionConnection object. </span> StreamingSubscriptionConnection connection =<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> (StreamingSubscriptionConnection)sender; </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Ask the user if t<a href="https://www.jb51.cc/tag/hey/" target="_blank" >hey</a> want to reconnect or close the subscription. </span>
<span > ConsoleKeyInfo cki;
Console.Writeline(
Console.Writeline(<span >"<span >Do you want to reconnect to the subscription? Y/N<span >"<span >);
<span >while (<span >true<span >)
{
cki = Console.ReadKey(<span >true<span >);
{
<span >if (cki.Key ==<span > ConsoleKey.Y)
{
connection.open();
Console.Writeline(<span >"<span >Connection open.<span >"<span >);
Console.Writeline(<span >"<span >\r\n<span >"<span >);
<span >break<span >;
}
<span >else <span >if (cki.Key ==<span > ConsoleKey.N)
{
Signal.Set();
<span >bool isOpen =<span > connection.IsOpen;
</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">if</span> (isOpen == <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">true</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Close the connection</span>
<span > connection.Close();
}
<span >else<span >
{
<span >break<span >;
}
}
}
}
} </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">static</span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">vo<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a></span> OnEvent(<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">object</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> sender,NotificationEventArgs args) { StreamingSubscription subscription </span>=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> args.Subscription; </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Loop through all item-related events. </span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">foreach</span> (NotificationEvent notification <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">in</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> args.Events) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">switch</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> (notification.EventType) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">case</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> EventType.NewMail: Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">\n-------------Mail created:-------------</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">break</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">; </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">case</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> EventType.Created: Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">\n-------------Item or f<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der created:-------------</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">break</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">; </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">case</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> EventType.Deleted: Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">\n-------------Item or f<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der deleted:-------------</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">break</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">; } </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> <a href="https://www.jb51.cc/tag/dis/" target="_blank" >dis</a>play the notification <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>entif<a href="https://m.jb51.cc/tag/IE/" target="_blank" >IE</a>r. </span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">if</span> (notification <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">is</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> ItemEvent) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> The NotificationEvent for an email message is an ItemEvent. </span> ItemEvent itemEvent =<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> (ItemEvent)notification; Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">\nItem<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>: </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span> +<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> itemEvent.Item<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>.Unique<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>); } </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">else</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> The NotificationEvent for a f<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der is a F<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>derEvent. </span> F<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>derEvent f<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>derEvent =<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> (F<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>derEvent)notification; Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">\nF<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>: </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span> +<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> f<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>derEvent.F<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>der<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>.Unique<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>); } } } </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">static</span> <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">vo<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a></span> OnError(<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">object</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> sender,SubscriptionErrorEventArgs args) { </span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">//</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> Handle error conditions. </span> Exception e =<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> args.Exception; Cons<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>e.Write<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>ne(</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">\n-------------Error ---</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span> + e.Message + <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">-------------</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">); } }
}
相关资料 总结以上是内存溢出为你收集整理的EWS 流通知订阅邮件全部内容,希望文章能够帮你解决EWS 流通知订阅邮件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)