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

mtl*_*401 9 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) 
Run Code Online (Sandbox Code Playgroud)

小智 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);
         }
    }
}
Run Code Online (Sandbox Code Playgroud)