4

我正在编写Outlook 加载项,需要确定所选电子邮件是否来自InboxSent Items以便在将电子邮件保存在数据库中时可以使用文件夹 =“收件箱”或“已发送”来标记电子邮件。

我知道我可以将文件夹名称与收件箱或已发送邮件进行比较并确定文件夹,但是,我如何确定所选电子邮件何时位于收件箱的子文件夹之一中。是否有一个FolderType属性可以检查所选电子邮件的文件夹是收件箱还是已发送类似于用 标识项目类型OlItemType)?

4

1 回答 1

7

您需要查看MailItem.Parent并将其转换为Outlook.Folder. 拥有 后Folder,您可以通过 访问显示名称Folder.Name。如果要确定所选项目是否是 的子文件夹Inbox,则需要递归调用Parent树直到Parent为空才能找到根父文件夹。

Outlook.Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer();
Outlook.MailItem mailItem = explorer.Selection.OfType<Outlook.MailItem>().First();
Outlook.Folder parentFolder = mailItem.Parent as Outlook.Folder;
if (parentFolder.Parent == null) // we are at the root
{
  string folderName = parentFolder.Name;
}
else
  // .. recurse up the parent tree casting parentFolder.Parent as Outlook.Folder...

您显然应该在此示例代码中添加错误处理对象处理。

于 2012-08-13T20:48:35.533 回答