为了账号安全,请及时绑定邮箱和手机立即绑定

Recipient.Name 和 ExchangeUser.Name 有什么区别?

Recipient.Name 和 ExchangeUser.Name 有什么区别?

C#
元芳怎么了 2022-07-23 18:03:11
有这两个对象:Microsoft.Office.Interop.Outlook.Recipient (https://docs.microsoft.com/en-us/office/vba/api/outlook.recipient.name)Microsoft.Office.Interop.Outlook.ExchangeUser (https://docs.microsoft.com/en-us/office/vba/api/outlook.exchangeuser.name)而且它们都有一个 name 属性,在我的情况下似乎是相同的,我可以从using转换Recipient为. 我使用哪个属性有关系吗?两者之间有什么区别(除了文档的写入/读取差异)。ExchangeUserRecipient.AddressEntry.GetExchangeUser()name
查看完整描述

2 回答

?
慕田峪4524236

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()。


查看完整回答
反对 回复 2022-07-23
?
DIEA

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消息的属性将在保存消息时反映新的收件人姓名。


查看完整回答
反对 回复 2022-07-23
  • 2 回答
  • 0 关注
  • 204 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号