2011-04-13 98 views
3

我打算創建一個Windows服務,該服務將監視具有特定主題的郵件的Exchange郵箱。來自這些電子郵件的附件需要存儲在網絡共享上的特定文件夾中。我相信我可以使用Exchange Web服務託管API(使用Exchange 2007 SP1)來實現此目的。使用Exchange託管API(EWS)監視郵箱附件

如果您有這方面的經驗,請分享以下MSDN鏈接以外的一些樣本或鏈接,這些鏈接可以幫助我快速入門。

http://msdn.microsoft.com/en-us/library/dd633696%28v=EXCHG.80%29.aspx

+0

有什麼建議嗎? – 2011-04-21 06:03:58

+0

@Pratick Kothari你有沒有試過在serverfault上問這個問題?我想你會在這個網站上有更多的運氣。 – calumbrodie 2011-04-28 13:49:29

+0

您是否試圖將附件保存到文件夾?還是你想移動電子郵件? – Sevki 2011-04-28 14:00:39

回答

9

比方說,這些郵件正在進入X上的郵箱收件箱。創建像這樣

PullSubscription subscription = 
SomeExchangeService.SubscribeToPullNotifications(
new FolderId[]{ WellKnownFolderName.Inbox },1440,"",EventType.Created); 
Subscriptions.Add(subscription); 

訂閱到該文件夾​​現在你必須設置一個計時器,並檢查拉notifs

static void Exchanger_Elapsed(object sender, ElapsedEventArgs e) 
    {  
     foreach (var pullSubscription in Subscriptions) 
     { 
      foreach (var itemEvent in pullSubscription.GetEvents().ItemEvents) 
      { 
       Item item = Item.Bind(SomeExchangeService, itemEvent.ItemId); 
       if (item.Subject == someString) 
       { 
        // item.Attachments do something 
        // As in read it as a stream and write it 
        // to a file according to mime type and file extension 
       } 
      } 
     } 
    } 

我希望這有助於...

UPDATE由於電子郵件請求

public static List<PullSubscriptionpublic static List<PullSubscription> Subscriptions = new List<PullSubscription>();> Subscriptions = new List<PullSubscription>(); 
0

考慮肌酐搜索文件夾以篩選消息。您只需要查找和處理搜索文件夾中的消息。

+0

由於您無法預訂Exchange 2007 sp1 EWS託管API中的搜索文件夾,因此這將導致輪詢服務器。 – Sevki 2011-05-03 06:34:09

相關問題