2014-01-29 23 views
1

如果我有一個mapid的storeid,通過folderpicker從outlook互操作庫中選擇,有沒有一種方式給我獲取該文件夾的smtpaddress?有沒有辦法讓一個地圖製作者或outlook互操作文件夾給定的entryid(或storeid)

我知道它在擴展屬性中,但我希望能夠在沒有任何重大解析或ldap查詢的情況下執行此操作。

我需要smtpaddress的原因是爲了通過EWS連接到文件夾 - 我目前正試圖用交換web服務來替換我們對outlook interop的引用,這已經成爲一個棘手的問題,因爲我們很多用戶有代理訪問不屬於他們的郵箱

+0

通常,文件夾沒有SMTP地址。你的意思是文件夾ID? –

+0

我不 - 我的意思是該文件夾所在的郵箱所有者的smtpaddress。爲了獲取mapifolder的entryid屬性並將其轉換爲交換Web服務商店標識,我需要提供smtpaddress的郵箱的所有者。 [這裏](http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.idformat(v = exchg.80).aspx)是idformat的枚舉。 以便我可以轉換爲[here](http://msdn.microsoft.com/en-us/library/office/bb856559(v = exchg.140).aspx) – subrama6

+0

達到了先前評論的編輯限制[this](http://msdn.microsoft.com/en-us/library/ff184600.aspx)是我想要做的,但是當我使用folderpicker來選擇另一個用戶的郵箱中的文件夾(我有權訪問),我沒有得到任何回報的帳戶 – subrama6

回答

2

對於郵箱所有者,您可以嘗試讀取MAPIFolder.Store屬性以獲取父存儲,然後閱讀PR_MAILBOX_OWNER_ENTRYID屬性(DASL名稱"http://schemas.microsoft.com/mapi/proptag/0x661B0102")使用Store.PropertyAccessor.GetProperty。然後,您可以使用商店所有者條目ID來調用Namespace.GetAddressEntryFromID。一旦擁有AddressEntry對象,就可以使用AddressEntry.GetExchangeUser.PrimarySmtpAddress。

請注意,PR_MAILBOX_OWNER_ENTRYID屬性僅適用於在線商店。您可能想要使用Redemption及其RDOExchangeMailboxStore .Owner.SmtpAddress屬性。可以使用RDOSession.GetRDOObjectfromOutlookObject(Store)或使用RDOSession.GetStoreFromID檢索RDOExchangeMailboxStore。

+0

這工作就像一個魅力 - 唯一的事情添加是GetProperty返回一個字節(),並將其轉換爲字符串與system.text.encoding無法按預期方式工作。相反,你需要使用PropertyAccessor.BinaryToString – subrama6

+0

不要讓它工作:(我回到字節數組,但我不能將它轉換成有意義的 – Gerwald

+0

使用PropertyAccessor.BinaryToString –

相關問題