Невозможно получить доступ к почтовым ящикам Office 365 других пользователей с помощью redemption

#c# #visual-studio #outlook-redemption

#c# #visual-studio #outlook-redemption

Вопрос:

У меня есть программа, которая использует redemption для доступа к элементам входящих сообщений пользователей. Программа работает на собственном сервере Exchange без проблем. Однако мы находимся в процессе перехода на O365. Мы пытаемся преобразовать программу для подключения к Office 365. Это работает для пользователя, который вошел в систему на ПК и имеет настройки Outlook. Когда я пытаюсь получить доступ к почтовому ящику другого пользователя в Exchange online, к которому у меня есть полные права доступа, я получаю сообщение об ошибке в IMAPISession:: OpenMsgStore: MAPI_E_LOGON_FAILED «.

У кого-нибудь это работает? Есть ли какие-либо разрешения, кроме полного доступа, которые мне нужно назначить? Дайте мне знать, какой опыт у вас был.

Вот код для подключения.

 rdsSession.LogonHostedExchangeMailbox("user@domain.com", "user@domain.com", "Password")
  

Ошибка возникает в этой строке при попытке получить папку «Входящие».

 rdfFolder = rdsSession.GetDefaultFolder(rdoDefaultFolders.olFolderInbox)
  

Если я добавлю туда свою учетную запись, это сработает. Другая учетная запись пользователя с полным доступом этого не делает.

Спасибо

Ответ №1:

Основное правило заключается в том, чтобы сначала подключиться к своему почтовому ящику (администратора) с помощью LogonHostedExchangeMailbox , а затем открыть почтовый ящик другого пользователя с помощью RDOSession.GetSharedMailbox / GetSharedDefaultFolder

Комментарии:

1. Спасибо, вы попробуете это.

2. Я получаю это сейчас при использовании user@domain.mail.onmicrosoft.com домен в getsharedmailbox(). {«Не удалось найти DN хранилища» amp; vbCrLf amp; «Не удалось получить XML-файл автоматического обнаружения: GetAutodiscoverForEmailAddress: в AD нет серверов автоматического обнаружения для этого адреса» amp; vbCrLf amp; «Ошибка HTTP 404 от uxy.com/autodiscover/autodiscover.xml » amp; vbCrLf amp; «Ответ сервера:» amp; vbCrLf amp; «<!DOCTYPE html PUBLIC «»-//W3C //DTD XHTML 1.0 Strict//RU»» «» w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd «»>»

3. У меня это получилось, моя проблема была с многофакторной аутентификацией в моей учетной записи O365. После отключения этого и переключения на getsharedmailbox и getshareddefaultfolder все работает. Как для внутренних пользователей, так и для пользователей O365, поскольку мы все еще находимся в гибридном режиме. Спасибо, Дмитрий.