C# · 12月 21, 2021

EWS 通过SubscribeToPullNotifications订阅Exchange删除邮件

摘要

在使用拉通知的方式监听exchange邮件的时候,无法监听到收件箱删除的邮件。最后通过调试发现,在删除收件箱邮件的时候,是将收件箱的邮件移动到了deleted item文件夹,会触发Moved事件,知道删除收件箱的过程,那么就好做了。

解决办法

关于拉通知的demo可以参考上篇文章的代码

关键代码块

._pullsubscription = ._service.SubscribeToPullNotifications(folderIds,, IEnumerable itemEvents = (ItemEvent itemEvent (itemEvent != uniqueId = itemEvent.ItemId == ? </span><span style=”color: #0000ff;”&gt;if</span> (!<span style=”color: #0000ff;”&gt;string</span><span style=”color: #000000;”&gt;.IsNullOrEmpty(uniqueId)) { Item item </span>= Item.Bind(<span style=”color: #0000ff;”&gt;this</span>._service,<span style=”color: #0000ff;”&gt;new</span><span style=”color: #000000;”&gt; ItemId(uniqueId)); Console.WriteLine(itemEvent.EventType.ToString()); </span><span style=”color: #0000ff;”&gt;switch</span><span style=”color: #000000;”&gt; (itemEvent.EventType) { </span><span style=”color: #0000ff;”&gt;case</span><span style=”color: #000000;”&gt; EventType.Moved: Console.WriteLine(item.Subject); </span><span style=”color: #0000ff;”&gt;break</span><span style=”color: #000000;”&gt;; </span><span style=”color: #0000ff;”&gt;case</span><span style=”color: #000000;”&gt; EventType.NewMail: Console.WriteLine(item.Subject); </span><span style=”color: #0000ff;”&gt;break</span><span style=”color: #000000;”&gt;; </span><span style=”color: #0000ff;”&gt;default</span><span style=”color: #000000;”&gt;: </span><span style=”color: #0000ff;”&gt;break</span><span style=”color: #000000;”&gt;; } } } }</span></pre>

参考资料