确定所选电子邮件是来自收件箱还是已发送邮件

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

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

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

 Outlook.Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer(); Outlook.MailItem mailItem = explorer.Selection.OfType().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... 

显然,您应该在此示例代码中添加error handling对象处理