C#Outlook按其特殊类型区分文件夹

时间:2015-11-30 11:10:07

标签: c# ms-office add-in outlook-2010

我需要检查给定文件夹是否具有特殊类型。例如,我需要检查文件夹是否是发件箱文件夹。我知道我可以使用Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox);检索发件箱文件夹 但那样我才能访问主邮箱的发件箱文件夹。由于我正在使用多个邮箱,这是不够的。 我知道我可以通过检查它的名称来区分文件夹,但由于名称是本地化的,它应该适用于所有语言,这是不可接受的解决方案。

或许有一种方法可以检索特殊类型的所有文件夹,例如发件箱,这会让我向前迈进一步。

感谢您的回复。

1 个答案:

答案 0 :(得分:0)

我用

HashSet<string> excludeFolderIds = new HashSet<string>();
Outlook.Stores stores = application.Session.Stores;
foreach(Outlook.Store store in stores){
    //exclude outbox folder from event
    Outlook.MAPIFolder exclude =  store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox);
    excludeFolderIds.Add(exclude.EntryID);
}

稍后通过调用excludeFolderIds.Contains(folder.EntryID)

检查文件夹是否具有此类型

所以store.GetDefaultFolder(OlDefaultFolder)是从其他帐户获取默认文件夹的关键