我可以从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);
}
答案 0 :(得分:2)
您无需搜索-您可以使用MAPIFolder.Folders["The Folder Name"]
(其中MAPIFolder
是父文件夹)打开它-您只需要知道相对于默认文件夹的位置。例如。如果它与“收件箱”处于同一级别,则可以使用GetDefaultFolder(olFolderInbox)
,然后使用Inbox.Parent.Folders["The Folder Name"]
来检索“收件箱”文件夹。