2 回答
TA贡献1875条经验 获得超5个赞
我不是微软产品线的专家。但从命名上看,Outlook 是客户端,Exchange 是服务器。
也就是说,您可以在 Outlook 客户端中使用 Recipient 对象来指代收件人,无论实际的邮件服务器是什么,它可以是 Exchange,如您的情况,也可以是 Gmail、Yahoo! 邮件、mail.live.com 等等。
而 ExchangeUser 对象专门用于 Exchange 邮箱用户,通常在企业中设置。因此,您可以找到 Recipient 对象所没有的详细属性,例如 JobTitle 和 OfficeLocation(以及更多)。
此对象提供对适用于 Exchange 用户的属性(例如 FirstName、JobTitle、LastName 和 OfficeLocation)的一流访问权限。
请注意,如果您未连接到 Exchange 服务器,则不能使用 Recipient.AddressEntry.GetExchangeUser()。
TA贡献1820条经验 获得超3个赞
收件人对象作为收件人表中的一行存储在消息本身内部。Recipient.Name对应PR_DISPLAY_NAME。该PR_ENTRYID行中的属性(如果接收者被解析则存在)指向地址簿对象。这就是Recipient.AddressEntry返回的结果 - 它使用接收者的PR_ENTRYID来调用IAddrBook::OpenEntry.
返回AddressEntry.Name的值理论上可以不同Recipient.Name(一个来自地址簿对象,另一个来自PR_DISPLAY_NAME消息收件人表)。ExchangeUser本质上是AddressEntry具有 Exchange 特定属性的对象的扩展,因此ExchangeUser.Name应与AddressEntry.Name.
您可以使用OutlookSpy(我是它的作者)看到这一点 - 选择一条消息,转到 GetRecipientTable 选项卡。右键单击该PR_ENTRYID属性并选择IMAPISession::OpenEntry。您还可以PR_DISPLAY_NAME将属性编辑为与 GAL 对象不同的内容。PR_DISPLAY_TO消息的属性将在保存消息时反映新的收件人姓名。
- 2 回答
- 0 关注
- 204 浏览
添加回答
举报
