获取所有Outlook文件夹和子文件夹的列表

时间:2012-05-03 01:37:13

标签: c# outlook

我一直试图弄清楚如何获取所有Outlook文件夹的列表已经有一段时间了,但是只能获得默认文件夹列表(即收件箱,发件箱,已发送邮件,已删除邮件等)。 )。如果我创建了个人或自定义文件夹怎么办?例如,如果我向outlook添加名为“Receipts”的文件夹,则这不是默认文件夹,也不会显示在“默认文件夹”下。如何使用c#中的Microsoft.Office.Interop.Outlook访问此文件夹。

我正在尝试创建一种从任何给定文件夹自动将某些新邮件下载到电子表格中的方法。我想如果我能得到所有文件夹的列表,那么我只能从所选文件夹中获取消息。

Outlook._Folders oFolders;          
Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolder‌​Inbox).Parent;
foreach (Outlook.MAPIFolder Folder in oFolders) 

2 个答案:

答案 0 :(得分:10)

这应打印出Outlook中的所有文件夹,包括公共文件夹。

foreach (MAPIFolder folder in olNS.Folders)
{
    GetFolders(folder);
}

public void GetFolders(MAPIFolder folder)
{
    if (folder.Folders.Count == 0)
    {
         Console.WriteLine(folder.FullFolderPath);
    }
    else
    {
         foreach (MAPIFolder subFolder in folder.Folders)
         {
              GetFolders(subFolder);
         }
    }
}

答案 1 :(得分:0)

在MSDN上查看“如何:枚举文件夹”: http://msdn.microsoft.com/en-us/library/ff184607.aspx