【发布时间】:2021-03-25 02:56:41
【问题描述】:
我目前正在使用 C# 开发 Outlook VSTO-AddIn。我想阅读每个 mailItem 的某些属性。 (例如 SenderName、SenderEmailAdress 等 ..) 据我所知,我已经理解 - 我有两种选择来实现这一目标:
- 访问 Outlook 对象模型
- 使用“属性访问器对象”读取属于 MailItem 但未在 Outlook 对象模型中公开的 MAPI 属性。 (https://docs.microsoft.com/de-de/office/vba/api/outlook.propertyaccessor)
属性访问器的小代码片段:
mailItem 是 Microsoft.Office.Interop.Outlook 命名空间中 MailItemClass 类的对象。
PropertyAccessor olPA = mailItem.PropertyAccessor;
SenderMailAddress = olPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0C1F001F");
我遇到了以下奇怪的行为: 结果取决于我是通过 IMAP 还是通过 TCP/RPC-Connections 访问邮箱。 主要是在尝试访问某个帐户已被删除的某人发送的 mailItem 的属性时。 使用 IMAP 连接时,MAPI 请求可以正常工作,而使用 TCP/RPC 时则不行。
我在该主题上找到的大多数资源都来自 2009 年至 2010 年,因此我不确定它们如何转化为 2016 年版的 Outlook。
非常感谢任何阐明 TCP/RPC 在这种情况下的区别的提示。
【问题讨论】: