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 關注
- 194 瀏覽
添加回答
舉報
