确定所选的电子邮件是从收件箱或发送项目

问题描述:

我编程的Outlook插件,需要确定一个选择的电子邮件是否来自InboxSent 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... 

您应该明显增加错误处理对象处置这个示例代码。