Любой REST API Office 365 для получения сообщений из всех почтовых ящиков в организации?

Я изучаю вариант, чтобы узнать, можно ли получать сообщения из всех почтовых ящиков в организации (например, в домене) с помощью API REST почты Office 365 или есть какой-либо другой способ легко получить эти сообщения.

Вот варианты, которые я изучил: 1) bcc для всех писем на определенную учетную запись, а затем получение сообщений от учетной записи bcc. 2) Изучил вариант коннектора для отправки всех писем на другой почтовый сервер. 3) Я также видел в других сообщениях, которые советуют создать учетную запись администратора / группу безопасности и предоставить этой учетной записи полный доступ ко всем почтовым ящикам в организации с использованием оболочки питания, но этот вариант кажется очень неудобным, поскольку новый почтовый ящик может быть добавлен, поэтому оболочка питания необходимо будет запустить снова, и даже если пользователю Admin предоставляется полный доступ, когда REST API используется для получения сообщения, он будет получать сообщения только из почтового ящика учетной записи администратора, а не из всех почтовых ящиков в организации.

Поэтому мне было интересно, можно ли получать все электронные письма организации с помощью REST API Office 365 или каким-либо другим осуществимым и более чистым способом?


person mbz_slk    schedule 27.05.2016    source источник
comment
Следуйте blogs.msdn.microsoft.com/exchangedev/2015/01/21/, чтобы узнать, как получить доступ ко всем почтовым ящикам.   -  person Jackie    schedule 30.05.2016


Ответы (2)


Я не думаю, что в настоящее время есть способ сделать это в реальном времени.

Было предложено перебрать всех пользователей, но недокументированные пороги регулирования (https://social.msdn.microsoft.com/Forums/en-US/358c5468-f887-4517-a2f0-245197dc6e0d/graph-api-rate-limiting-throttling?forum=WindowsAzureAD) сделать этот путь неопределенным. Например, что, если в организации 1000 пользователей, которые в среднем отправляют 5 писем в секунду? Что, если нам нужна самая свежая картинка?

Использование подписок (https://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/subscription) мы можем определить, какие пользователи затронуты (без особых подробностей в полезной нагрузке), но когда мы перейдем к поиску подробной информации мы рискуем задушить. Без каких-либо производственных возможностей пакетной обработки мы вынуждены искать по одному пользователю за раз.

Существует слабая надежда (пока еще недокументированная и непроверенная), что пороговые значения допускают запросы для разных URI и что приложение может управлять множеством подписок с множеством пользователей (возможно, со всей организацией).

person piisexactly3    schedule 02.02.2017

Поэтому мне было интересно, можно ли получать все электронные письма организации с помощью REST API Office 365 или каким-либо другим осуществимым и более чистым способом?

Да, это возможно. Мы также можем использовать Microsoft Graph (ранее называвшийся унифицированным API Office 365), который предоставляет несколько API из облачных служб Microsoft через одну конечную точку REST API (https://graph.microsoft.com). И используйте поток аутентификации учетные данные клиента, чтобы получить токен для читать все электронные письма от организации.

Вот шаги для достижения цели.

  1. Зарегистрируйте приложение (веб-сайт) на портале Azure (см. здесь)
  2. Предоставьте приложению достаточное разрешение

    а. Выберите ресурс Microsoft Graph

    б. предоставьте приложению «Mail.Read» в списке разрешений приложения, как показано ниже.

введите здесь описание изображения 3. Использование приведенного ниже кода для получения токена

POST https://login.microsoftonline.com/O365E3W15.onmicrosoft.com/oauth2/token

grant_type=client_credentials&client_id={ClientID}&client_secret={clientSecret}&resource=https%3A%2F%2Fgraph.microsoft.com
  1. Вот REST, чтобы получить электронную почту для конкретного пользователя, которого вы хотели

    GET / users / ‹id | userPrincipalName ›/ messages

    ПОЛУЧИТЬ https://graph.microsoft.com/users/[email protected]/messages

    Авторизация: предъявитель {токен}

person Fei Xue - MSFT    schedule 30.05.2016
comment
Фей: Спасибо за ответ, но я ищу получение писем от всех пользователей вместо GET / user / ‹id | userPrincipalName ›/ сообщения для конкретного пользователя. Возможно ли такое? Я имею в виду: [email protected], [email protected] и т. Д., То, что я хочу сделать, это что-то вроде GET для доменного имени foo.com, и я должен иметь возможность получать электронные письма всех пользователей в foo.com без нужно пройти через каждого пользователя. - person mbz_slk; 27.06.2016
comment
В настоящее время REST в Office 365 не поддерживает получение всех сообщений в организации без зацикливания всех пользователей. Вы можете отправить отзыв с здесь, если вам нужна эта функция. - person Fei Xue - MSFT; 28.06.2016
comment
@ FeiXue-MSFT Можно ли также получить электронные письма для деактивированных учетных записей? При деактивации письма исчезнут? У нас есть ситуация, когда сотрудники могут покинуть компанию, и другой сотрудник должен взять на себя их предыдущую переписку по электронной почте с нашими клиентами. - person WowBow; 16.09.2016