2015-05-29 20 views
0

使用OpenSharedItem功能來讀取.msg文件,並且在保存文件後收件人更改名稱時遇到確定電子郵件收件人的問題。OpenSharedItem定位收件人

如果.msg文件保存在磁盤上,我可以讀取PR_RECEIVED_BY_EMAIL_ADDRESS以獲取Exchange地址格式的接收電子郵件地址,但是如果此人有名稱,則CN =不再匹配。

我一直在使用下面的回讀接收E-mail地址,直到我遇到了這個問題:

Outlook.PropertyAccessor propAccess = mailItem.PropertyAccessor; 
propAccess.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0076001E"); 

返回一個Exchange地址,如: /O =組織/ OU =交流Administrative Group/CN = Recipients/CN =

有沒有辦法將舊地址解析爲當前顯示名稱?

任何建議,將不勝感激。

回答

1

首先,檢查PR_RECEIVED_BY_ENTRYID屬性是否存在(您可以在OutlookSpy中執行此操作 - 單擊OpenIMsgOnIStg)。如果存在,請使用PropertyAccessor.GetProperty讀取PR_RECEIVED_BY_ENTRYID屬性(DASL名稱http://schemas.microsoft.com/mapi/proptag/0x003F0102),使用PropertyAccessor.BinaryToString將其轉換爲十六進制字符串,然後使用它調用Namespace.GetAddressEntryFromID。然後您可以從AddressEntry.Name屬性中檢索當前名稱。如果該屬性不存在或者GetAddressEntryFromID失敗(如果條目消失或者如果您在沒有原始Exchange服務器的配置文件中打開),請準備好處理錯誤。