C# 如何检索邮件项目(Outlook.MailItem)的Outlook文件夹?
我通过C# 如何检索邮件项目(Outlook.MailItem)的Outlook文件夹?,c#,outlook,vsto,outlook-2010,C#,Outlook,Vsto,Outlook 2010,我通过inboxFolder=Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox 在代码的其他地方,我开始执行foreach循环,从这些邮件中提取我想要的特定信息 foreach (var item in this.inboxFolder.Items) { Outlook.MailItem mailItem = (Outlook.MailItem)item
inboxFolder=Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox
在代码的其他地方,我开始执行foreach循环,从这些邮件中提取我想要的特定信息
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”的子文件夹,如下所示
您是指文件夹路径吗?如果只需要名称,请使用MAPIFolder.FullFolderPath.或MAPIFoldert.Name
还请记住,文件夹中所有项目的值都是相同的,因此没有理由在循环的每一步都对其进行评估。感谢指针人员。但是,我在最初实现相同的值时遇到了一些困难。以下是我如何解决它的,以防有人面临相同的问题
Outlook.MAPIFolder parentFolder = mailItemToDelete.Parent as Outlook.MAPIFolder;
string FolderLocation = parentFolder.FolderPath;
父对象是动态的,因此导致了问题。您需要检查
父对象
属性。请参阅:谢谢您的回答,我正在对其进行评估,但我想指出的是,如果我的默认收件箱文件夹中有子文件夹,则主文件夹路径上的foreach循环中有子文件夹项。看起来我可能需要重新设置计算每个项目的MAPIFolder.Name(如果是这种情况)。