2013-04-23 92 views
0

我正在使用EWS API連接並從Exchange 2007服務器檢索郵件,該工作正常。現在我想要獲得拉通知。我找到了一個例子here,這是我曾嘗試:EWS API:如何獲取拉通知?

public IEnumerable<ItemEvent> GetPullNotifications(FolderId folderId) 
{ 
    PullSubscription subscription = Service.SubscribeToPullNotifications(new FolderId[] { folderId }, 5, null, EventType.NewMail, EventType.Created, EventType.Deleted); 
    return subscription.GetEvents().ItemEvents; 
} 

public void CheckPullNotifications(object source, ElapsedEventArgs e) 
{ 
    Console.WriteLine("Check..."); 
    IEnumerable<ItemEvent> itemEvents = ewsClient.GetPullNotifications(WellKnownFolderName.Inbox); 
    foreach (ItemEvent itemEvent in itemEvents) 
    { 
     switch (itemEvent.EventType) 
     { 
      case EventType.NewMail: 
       MessageBox.Show("New mail: " + itemEvent.ItemId.UniqueId); 
       break; 
      case EventType.Deleted: 
       MessageBox.Show("Mail deleted: " + itemEvent.ItemId.UniqueId); 
       break; 
     } 
    } 

    return; 
} 

//... 
Timer myTimer = new Timer(); 
myTimer.Elapsed += new ElapsedEventHandler(CheckPullNotifications); 
myTimer.Interval = 1000; 
myTimer.Start(); 

但是,我從來沒有得到上面的開關,當我把一個斷點。我發送了一些郵件並刪除了一些,沒有任何反應。

任何想法,爲什麼這是行不通的?或者還有其他方法可以獲取拉通知嗎?

回答

0

我找到了解決方案。我上面做的是創建一個新的訂閱,並立即嘗試獲得結果。相反,我必須創建一次訂閱,然後隨時提取結果。

實施例:

public void SubscribePullNotifications(FolderId folderId) 
{ 
    Subscription = Service.SubscribeToPullNotifications(new FolderId[] { folderId }, 1440, null, EventType.NewMail, EventType.Created, EventType.Deleted); 
} 

public void GetPullNotifications() 
{ 
    IEnumerable<ItemEvent> itemEvents = Subscription.GetEvents().ItemEvents; 
    foreach (ItemEvent itemEvent in itemEvents) 
    { 
     switch (itemEvent.EventType) 
     { 
      case EventType.NewMail: 
       MessageBox.Show("New Mail"); 
       break; 
     } 
    } 
} 
// ... 
SubscribePullNotifications(WellKnownFolderName.Inbox); 
Timer myTimer = new Timer(); 
myTimer.Elapsed += new ElapsedEventHandler(GetPullNotifications); 
myTimer.Interval = 10000; 
myTimer.Start(); 
+0

是對範圍之外定義訂閱? – 2017-01-10 22:56:41