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