我正在编写 Outlook加载项,需要确定选定的电子邮件是来自Inbox
还是Sent Items
,以便我可以使用folder =“标记电子邮件我将其保存在数据库中时收件箱“或”已发送“。
我了解我可以将文件夹名称与收件箱或已发送邮件进行比较并确定文件夹,但是,如何确定所选电子邮件何时位于收件箱中的其中一个子文件夹中。是否有FolderType
属性来检查所选电子邮件的文件夹是收件箱还是已发送(类似于使用OlItemType
标识项目类型)?
答案 0 :(得分:5)
您需要查看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...
显然,您应该将错误处理和对象处理添加到此示例代码中。