【发布时间】:2011-04-10 11:39:45
【问题描述】:
我正在使用 C# 开发 Outlook 插件,但在区分从文件夹(收件箱、已发送等)打开的邮件和从独立 .msg 文件打开的邮件时遇到问题。
我已尝试检查 Parent 属性,但它显示了两种类型的收件箱。
有什么想法吗?
/山姆
【问题讨论】:
标签: outlook directory mailitem
我正在使用 C# 开发 Outlook 插件,但在区分从文件夹(收件箱、已发送等)打开的邮件和从独立 .msg 文件打开的邮件时遇到问题。
我已尝试检查 Parent 属性,但它显示了两种类型的收件箱。
有什么想法吗?
/山姆
【问题讨论】:
标签: outlook directory mailitem
查看属性,在我看来,如果 MailItem 从文件系统打开,则 .EntryID 属性为空,如果从文件夹中打开文件,则它有一个值。这基于help entry 是有意义的;一个警告是,如果消息是新消息(即尚未保存在文件夹中,但文件系统中也不存在),您还希望此属性为空白。
来自有关空白值的帮助:
因此,EntryID 属性不是 为 Outlook 项目设置,直到它 保存或发送
您会想要对其进行试验,并确保在您实施之前它的行为确实正确 :)
如果做不到这一切,下一步可能会很复杂;一种方法是检查 Outlook 打开的句柄。通过Process Explorer 检查它们(在非特权上下文中)表明每条消息都有一个句柄;句柄的名称与消息主题匹配,路径是文件的路径。枚举这些的一种解决方案是this answer。
HTH, 杰夫
【讨论】: