确定所选电子邮件是来自收件箱还是已发送邮件
我正在编写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和对象处理 。