确定所选的电子邮件是从收件箱或发送项目
问题描述:
我编程的Outlook插件,需要确定一个选择的电子邮件是否来自Inbox
或Sent Items
,这样我可以标记电子邮件文件夹=“收件箱”或当我将它保存在我的数据库中时发送。确定所选的电子邮件是从收件箱或发送项目
据我所知,我可以将文件夹名称与收件箱或已发送邮件进行比较并确定文件夹,但是,如何确定所选电子邮件何时位于收件箱中的某个子文件夹中。是否有FolderType
属性,查看所选邮件的文件夹是否是收件箱或发送(类似识别物品类型与OlItemType
)?
答
您需要查看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...
您应该明显增加错误处理和对象处置这个示例代码。