2014-01-29 2 views
1

, если у меня есть storeid для mapifolder, выбранный через папкуpicker из библиотек interlook interlook, есть ли способ для меня получить smtpaddress для этой папки?есть ли способ получить smtpaddress для папки mapifolder или Outlook interop с учетом entryid (или storeid)

Я знаю, что это расширенные свойства, но я надеялся сделать это без какого-либо серьезного анализа или запроса ldap.

Причина, по которой мне нужен smtpaddress, чтобы подключиться к папке через EWS - в настоящее время я пытаюсь заменить наши ссылки на внешний вид с помощью обменных веб-сервисов, и это стало моментом, поскольку многие из наших пользователи имеют доступ делегатов к почтовым ящикам, которые не принадлежат им

+0

В общем, папки не имеют SMTP-адресов. Вы имеете в виду идентификатор папки? –

+0

Я не ... я имею в виду smtpaddress владельца почтового ящика, в котором находится папка. Чтобы взять свойство entryid mapifolder и преобразовать его в идентификатор магазина веб-сервиса обмена, мне нужно предоставить smtpaddress владелец почтового ящика. [здесь] (http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.idformat (v = exchangeg.80) .aspx) является перечислением для idformat. , так что я могу конвертировать как [здесь] (http://msdn.microsoft.com/en-us/library/office/bb856559 (v = exchangeg.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. Затем вы можете использовать идентификатор записи владельца магазина, чтобы вызвать Namespace.GetAddressEntryFromID. Когда у вас есть объект AddressEntry, вы можете использовать AddressEntry.GetExchangeUser.PrimarySmtpAddress.

Обратите внимание, что свойство PR_MAILBOX_OWNER_ENTRYID доступно только в интернет-магазинах. Возможно, вы захотите использовать Redemption и его RDOExchangeMailboxStore. Свойство .Owner.SmtpAddress. RDOExchangeMailboxStore можно получить с помощью RDOSession.GetRDOObjectfromOutlookObject (Store) или с помощью RDOSession.GetStoreFromID.

+0

, это работало как шарм - единственное, что добавляет id, это то, что GetProperty возвращает byte(), и преобразование его в строку с помощью system.text.encoding не работает должным образом. скорее, вам нужно использовать PropertyAccessor.BinaryToString – subrama6

+0

Не заставляйте его работать :(Я возвращаю массив байтов, но я не могу его преобразовать в что-то значимое – Gerwald

+0

Использовать PropertyAccessor.BinaryToString –

Смежные вопросы