我正在使用EWS託管API和C#。使用Exchange Web服務託管API檢測電子郵件移動?
我想知道是否有可能檢測到電子郵件何時移動到另一個文件夾。
這是我到目前爲止有:
static void SetPullNotifications(ExchangeService service)
{
PullSubscription subscription = service.SubscribeToPullNotificationsOnAllFolders(
5, null,
EventType.Moved, EventType.Deleted, EventType.Copied, EventType.Modified);
GetEventsResults events = subscription.GetEvents();
foreach (ItemEvent itemEvent in events)
{
switch (itemEvent.EventType)
{
case EventType.Moved:
MessageBox.Show("Item Moved :" + itemEvent.ItemId.UniqueId);
break;
case EventType.Deleted:
MessageBox.Show("Item deleted: " + itemEvent.ItemId.UniqueId);
break;
case EventType.Copied:
MessageBox.Show("Item Copied :" + itemEvent.ItemId.UniqueId);
break;
case EventType.Modified:
MessageBox.Show("Item Modified :" + itemEvent.ItemId.UniqueId);
break;
}
}
}
這工作得很好,如果我把一個斷點的方法GetEvents()
,然後移動電子郵件。但沒有斷點,它不起作用。 events
不包含結果。
任何想法?
感謝您的回答。 不幸的是我工作的Exchange服務2010不是SP1 我試過類似這樣的東西,但與'PullSubscription',但當我嘗試'GetEvents()'我什麼也沒有 –
@StephaneBintein:我使用PullSubscriptions你和一切工作正常。您必須獲取您觀察的郵箱中的所有文件夾列表。而且,它工作正常。你的代碼應該看起來像這樣:列表 folders = GetAllFolderIds(); subscription = service.SubscribeToPullNotifications(文件夾,1440,水印,EventType.Moved); GetEventsResults currentevents = Subscription.GetEvents();如果郵件在訂閱和調用GetEvents()之間移動,則包含該移動。 –
@JürgenHoffmann:我認爲你應該添加你的評論作爲答案,以便OP可以將其標記爲正確的答案。 –