摘要
在使用拉通知的方式监听exchange邮件的时候,无法监听到收件箱删除的邮件。最后通过调试发现,在删除收件箱邮件的时候,是将收件箱的邮件移动到了deleted item文件夹,会触发Moved事件,知道删除收件箱的过程,那么就好做了。
解决办法
关于拉通知的demo可以参考上篇文章的代码
关键代码块
this._pullsubscription = this._service.SubscribeToPullNotifications(folderIds, 30, null, EventType.NewMail, EventType.Moved);
IEnumerableitemEvents = _pullsubscription.GetEvents().ItemEvents; foreach (ItemEvent itemEvent in itemEvents) { if (itemEvent != null) { string uniqueId = itemEvent.ItemId == null ? string.Empty : itemEvent.ItemId.UniqueId; if (!string.IsNullOrEmpty(uniqueId)) { Item item = Item.Bind(this._service, new ItemId(uniqueId)); Console.WriteLine(itemEvent.EventType.ToString()); switch (itemEvent.EventType) { case EventType.Moved: Console.WriteLine(item.Subject); break; case EventType.NewMail: Console.WriteLine(item.Subject); break; default: break; } } } }
参考资料