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

Mag*_*num 4 c# outlook vsto outlook-2010

我正在通过以下方式获取我的默认收件箱文件夹 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
}
Run Code Online (Sandbox Code Playgroud)

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

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

小智 7

谢谢各位大侠指点。但是,我最初在实施时遇到了一些麻烦。这是我解决它的方法,以防万一有人面临同样的问题。

Outlook.MAPIFolder parentFolder = mailItemToDelete.Parent as Outlook.MAPIFolder;
string FolderLocation = parentFolder.FolderPath;
Run Code Online (Sandbox Code Playgroud)

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


Dmi*_*nko 3

你是说文件夹路径吗?使用 MAPIFolder.FullFolderPath。如果您只需要名称,则可以使用 MAPIFoldert.Name。

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