本文主要是介绍C#使用Exchange Web Services (EWS)通过流媒体订阅方式获取邮件列表、信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码
需要引用Microsoft.Exchange.WebServices包,using Microsoft.Exchange.WebServices.Data;
public class EWSConnection{public static void doWork(){// 设置Exchange服务器URL和用户凭据string exchangeUrl = "https://mail.xxx.com/EWS/Exchange.asmx";string username = ""; //Exchange账号string password = "";//账号密码// 创建ExchangeService实例ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);service.Url = new Uri(exchangeUrl);service.Credentials = new WebCredentials(username, password);//获取发件箱文件夹FolderId sentItemsFolderId = new FolderId(WellKnownFolderName.SentItems, username);Folder sentItemsFolder = Folder.Bind(service, sentItemsFolderId);// 创建订阅StreamingSubscription subscription = service.SubscribeToStreamingNotifications(new FolderId[] { sentItemsFolder.Id }, EventType.Created);// 设置订阅参数StreamingSubscriptionConnection connection = new StreamingSubscriptionConnection(service, 30);connection.AddSubscription(subscription);connection.OnNotificationEvent += OnNotificationEvent;connection.Open();}private static void OnNotificationEvent(object sender, NotificationEventArgs args){foreach (var notification in args.Events){if (notification is ItemEvent itemEvent && itemEvent.EventType == EventType.Created){EmailMessage emailMessage = EmailMessage.Bind(args.Subscription.Service, itemEvent.ItemId);Console.WriteLine("发件箱中的邮件:");Console.WriteLine("主题:" + emailMessage.Subject);Console.WriteLine("发件人:" + emailMessage.From.Name);Console.WriteLine("时间:" + emailMessage.DateTimeSent);// 获取Message-IDstring messageId = emailMessage.InternetMessageHeaders.Find("Message-ID").Value;Console.WriteLine("Message-ID:" + messageId);Console.WriteLine("--------------------------");}}}}
这篇关于C#使用Exchange Web Services (EWS)通过流媒体订阅方式获取邮件列表、信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!