代码
需要引用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-ID
string messageId = emailMessage.InternetMessageHeaders.Find("Message-ID").Value;
Console.WriteLine("Message-ID:" + messageId);
Console.WriteLine("--------------------------");
}
}
}
}