我正在编写一个 Outlook 插件,需要确定所选电子邮件是否来自 Inbox
或 Sent Items
这样当我将电子邮件保存在我的数据库中时,我可以用 folder="Inbox"或 "Sent"标记电子邮件。
我知道我可以将文件夹名称与收件箱或已发送邮件进行比较并确定文件夹,但是,我如何确定所选电子邮件何时位于收件箱的子文件夹之一中。有没有FolderType
属性来检查所选电子邮件的文件夹是收件箱还是已发送(类似于使用 OlItemType
识别项目类型)?
最佳答案
您需要查看 MailItem.Parent
并将其转换为 Outlook.Folder
.拥有文件夹
后,您可以通过Folder.Name
访问显示名称。 .如果要判断选中的项目是否是Inbox
的子文件夹,则需要递归调用Parent
树,直到Parent
为null找到根父文件夹。
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...
显然,您应该将错误处理 和对象处置 添加到此示例代码中。
关于c# - 确定所选电子邮件是来自收件箱还是已发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11941288/