2014-01-29 2 views
1

주어진 mapifolder 또는 outlook interop 폴더에 대한 smtpaddress있는 경우 Outlook interop 라이브러리에서 folderpicker 통해 선택한 mapidder storeid가있는 나를위한 방법입니다. 그 폴더에 대한 smtpaddress를 얻으려면?거기에있는 방법입니다 indexif (또는 storeid)

확장 속성에 있음을 알고 있지만, 무거운 구문 분석이나 LDAP 쿼리없이이 작업을 수행하기를 바랬습니다.

내가 smtpaddress를 필요로하는 이유는 EWS를 통해 폴더에 연결하는 것입니다. 현재 Outlook interop에 대한 참조를 Exchange 웹 서비스로 대체하려고합니다. 많은 사람들이 Exchange 웹 서비스를 사용하고 있습니다. 사용자는 자신이 속한 사서함에 대한 액세스 권한을 위임합니다.

+0

일반적으로 폴더에는 SMTP 주소가 없습니다. 폴더 ID를 의미합니까? –

+0

나는 그 폴더가 들어있는 사서함 소유자의 smtpaddress를 의미하지 않는다. mapifolder의 entryid 속성을 가져 와서 Exchange 웹 서비스 저장소 ID로 변환하기 위해, 나는 그 smtpaddress를 제공해야한다. 사서함의 소유자. [여기] (http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.idformat (v = exchg.80) .aspx)는 idformat의 열거 형입니다. 나는 [여기] (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를 사용할 때 (나는 액세스 권한이 있습니다. to), 나는이 계정에 대해 아무것도 얻지 못했습니다. – 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 속성을 사용할 수 있습니다. RDOExchangeMailboxStore는 RDOSession.GetRDOObjectfromOutlookObject (Store)를 사용하거나 RDOSession.GetStoreFromID를 사용하여 검색 할 수 있습니다.

+0

이것은 매력처럼 작동했습니다. 유일한 추가 정보는 GetProperty가 byte()를 반환하고 system.text.encoding으로 문자열로 변환하는 것이 예상대로 작동하지 않는다는 것입니다. 오히려, 당신은 PropertyAccessor.BinaryToString을 사용해야합니다 – subrama6

+0

작동시키지 마세요 :(나는 바이트 배열을 가져 오지만 의미있는 무언가로 변환 할 수 없습니다. – Gerwald

+0

PropertyAccessor.BinaryToString 사용 –

관련 문제