我正在用 C# 开发 Outlook 插件,并且在区分从文件夹(收件箱、已发送等)打开的邮件和从独立 .msg 文件打开的邮件时遇到问题。
我试过检查 Parent 属性,但它显示了两种类型的收件箱。
有什么想法吗?
/山姆
查看属性,在我看来,如果 MailItem 从文件系统打开,则 .EntryID 属性为空,如果从文件夹中打开文件,则该属性具有值。根据它的帮助条目,这是有道理的;一个警告是,如果消息是新消息(即尚未保存在文件夹中,但文件系统中也不存在),您还希望此属性为空白。
从有关空白值的帮助中:
因此,在保存或发送 Outlook 项目之前,不会为该项目设置 EntryID 属性
您想对其进行试验,并确保在实施之前它的行为确实正确:)
如果做不到这一切,下一步可能会很复杂;一种方法是检查 Outlook 打开的句柄。通过Process Explorer检查它们(在非特权上下文中)显示每条消息都有一个句柄;句柄的名称与消息主题匹配,路径是文件的路径。枚举这些的一种解决方案是在这个答案中。
HTH,杰夫