Библиотека Outlook Redemption - доступ к общим почтовым ящикам / определенным папкам с помощью учетной записи службы

Я конвертирую существующий фрагмент кода с помощью Redemption (библиотека MS Exchange) для работы под учетной записью службы. Проблема, с которой я столкнулся, заключается в том, что я не могу искать почтовые папки, как раньше.

Первое препятствие при переходе на сервисный аккаунт было преодолено путем переключения

_rdoSession.Logon() // <- Which uses the account’s MAPI profile, and throws an exception under a service account 

To:

_rdoSession.LogonExchangeMailbox("", "mailserver.example.com"); 

Проблема возникает при попытке доступа к определенным папкам. Раньше я мог использовать:

_session.GetFolderFromPath("\\\\Mailbox - Example shared mailbox\\Inbox\\FolderOne"); 
_session.GetFolderFromPath("\\\\Mailbox - Example shared mailbox\\Inbox\\FolderTwo"); 

Под сервисным аккаунтом я не могу обращаться к общим почтовым аккаунтам с таким же синтаксисом, так как получаю сообщение об ошибке:

Could not open store "Mailbox – Example shared mailbox": Error in IMAPITable.FindRow: MAPI_E_NOT_FOUND 

Некоторые поисковые запросы в Google показали, что первым шагом является использование:

_session.Stores.GetSharedMailbox("Example shared mailbox ")

Я проверил, что это возвращает правильный объект общего почтового ящика.

Однако - оттуда методов поиска нет. Я могу попытать счастья в создании нового кода для навигации по структуре папок с помощью свойства .RootFolder, но это похоже на взлом.

Как мне получить доступ к определенным папкам в общем почтовом ящике, запущенном под учетной записью службы в Redemption?


person Overflew    schedule 01.03.2012    source источник


Ответы (1)


Вы можете использовать либо

store = _session.Stores.GetSharedMailbox («Пример общего почтового ящика»);

folder = store.IPMRootFolder.Folders.Item («Входящие»). Folders.Item («FolderTwo»);

or

store = _session.Stores.GetSharedMailbox («Пример общего почтового ящика»);

папка = store.GetDefaultFolder (olFolderInbox) .Folders.Item ("FolderTwo");

person Dmitry Streblechenko    schedule 02.03.2012