首页 > 解决方案 > Microsoft.Office.Interop.Outlook GetFolderFromID

问题描述

我可以从 Outlook 获取默认文件夹没问题,但我正在努力获取自定义文件夹。我想从 Outlook 中名为“Mass Archive”的文件夹中获取电子邮件,但我很难理解如何使用:

.GetFolderFromID()

根据我收集的信息,它采用的第一个参数是文件夹的名称,例如.GetFolderFromID("Mass Archive")

但我无法弄清楚我应该将什么作为第二个参数的对象。

我真的是新手,所以请向我解释一些事情,就像我很笨一样。

outlookApplication = new Application();
outlookNameSpace = outlookApplication.GetNamespace("MAPI");
//inboxFolder = outlookNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderDeletedItems);
inboxFolder = outlookNameSpace.GetFolderFromID("Mass Archive", "Mass Archive");
mailItems = inboxFolder.Items;

foreach (MailItem item in mailItems)
{
    emailDetails = new OutlookEmails
    {
        EmailFrom = item.SenderEmailAddress,
        EmailSubject = item.Subject,
        EmailBody = item.Body,
        ReceivedTime = item.ReceivedTime
    };
    listEmailDetails.Add(emailDetails);
    ReleaseComObject(item);
}

标签: c#outlook

解决方案


您无需搜索 - 您可以使用MAPIFolder.Folders["The Folder Name"]MAPIFolder父文件夹在哪里)打开它 - 您只需要知道它相对于默认文件夹的位置。例如,如果它与收件箱处于同一级别,您可以使用 检索收件箱文件夹GetDefaultFolder(olFolderInbox),然后使用Inbox.Parent.Folders["The Folder Name"]


推荐阅读