【问题标题】:How to retrieve the Outlook folder of a mail item (Outlook.MailItem)?如何检索邮件项目 (Outlook.MailItem) 的 Outlook 文件夹?
【发布时间】:2017-06-07 14:00:32
【问题描述】:

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

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

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”的子文件夹,如下所示。

【问题讨论】:

标签: c# outlook vsto outlook-2010


【解决方案1】:

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

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

父对象是动态的,因此会引起问题。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的回答,我正在评估它,但我确实想提一下,如果我的默认收件箱文件夹中有一个子文件夹,则主文件夹路径上的 foreach 循环有子文件夹项目。如果是这种情况,我可能必须评估每个项目的 MAPIFolder.Name。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多