2012-06-12 56 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 –