Я конвертирую существующий кусок кода, используя 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 , но это похоже на хак.
Как мне обращаться к определенным папкам вобщий почтовый ящик, запускаемый под учетной записью службы в «Погашение»?