如何检索邮件项的Outlook文件夹(Outlook.MailItem)?

我通过inboxFolder = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox获取我的默认收件箱文件夹

在我的代码的其他地方,我开始做foreach循环,从这些MailItems中提取我想要的特定信息

 foreach (var item in this.inboxFolder.Items) { Outlook.MailItem mailItem = (Outlook.MailItem)item; //.... doing stuff here string SenderEmail = mailItem.SenderEmailAddress; string SenderName = mailItem.SenderName; string FolderLocation = mailItem.???; //how to retrieve folder location? //.... more stuff here } 

例如:用户可能创建了一个名为“Test”的子文件夹,如下所示。

Outlook-2010中用户创建的子文件夹的图像

你的意思是文件夹路径? 使用MAPIFolder.FullFolderPath。 如果您只需要名称,请使用MAPIFoldert.Name。

另外请记住,文件夹中的所有项目的值都是相同的,因此没有理由在循环的每个步骤中对其进行评估。

谢谢指针家伙。 但是我最初在执行相同操作时遇到了一些麻烦。 以下是我如何解决它,以防万一有人面临同样的问题。

 Outlook.MAPIFolder parentFolder = mailItemToDelete.Parent as Outlook.MAPIFolder; string FolderLocation = parentFolder.FolderPath; 

Parent对象是动态的,因此导致问题。