2012-06-12 55 views
2

我使用Microsoft.Office.Interop.Outlook提取電子郵件附件:的Microsoft Outlook互操作(提取附件)非常緩慢

var MAPI = new Application().GetNamespace("MAPI"); 
var ExampleFolder = MAPI.GetDefaultFolder(OlDefaultFolders.olFolderSentMail) 

foreach (dynamic i in ExampleFolder.Items) 
    if (i.Attachments.Count > 0) 
    ; // DoSomething(); 

不幸的是,這是極其緩慢

  • 有沒有更快的方法來檢查附件?
  • 是否可以按日期對電子郵件進行過濾/排序:只循環最後n個項目?
+0

任何具有完整源代碼的最終解決方案? – Kiquenet

回答

3

當然,您可以使用Items.Sort對集合進行排序。 您也可以使用Items.Find/FindNext或Items.Restrict僅查找帶有附件的項目。您需要的財產是PR_HASATTACH(DASL名稱http://schemas.microsoft.com/mapi/proptag/0x0E1B000B

+0

謝謝!不幸的是,您的鏈接無法使用。你能再幫我一點嗎?我試過了:ExampleFolder.Items.Restrict(「[PR_HAS_ATTACH]」);沒有成功。 – fanti

+1

這不是一個鏈接,這是屬性DASL的名稱。有關示例,請參閱http://msdn.microsoft.com/en-us/library/bb612664.aspx –