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

时间:2013-04-15 08:44:34

标签: 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
}

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

An image of a user-created subfolder in Outlook-2010

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

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