4

我正在探索一个选项,看看是否可以使用 Office 365 Mail REST API 从组织中的所有邮箱(即域内)获取消息,或者是否有任何其他方式可以轻松获取这些消息。

这些是我探索过的选项:1)将所有电子邮件密送至特定帐户,然后从密送帐户获取消息。2) 探索了将所有邮件发送到另一个电子邮件服务器的连接器选项。3)我还在其他帖子中看到建议创建一个管理员帐户/安全组,并使用 power shell 为该帐户提供对组织中所有邮箱的完全访问权限,但此选项似乎非常不方便,因为可以添加新邮箱,因此 power shell需要再次运行,即使管理员用户在使用 REST API 获取消息时仍被授予完全访问权限,那么它只会从管理员帐户的邮箱中获取消息,而不是从组织中的所有邮箱获取消息。

所以我想知道是否可以使用 Office 365 REST API 或其他一些可行且更清洁的方式获取组织的所有电子邮件?

4

2 回答 2

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 的请求,并且应用程序可以管理具有许多用户(可能是整个组织)的许多订阅。

于 2017-02-02T15:55:02.330 回答
1

所以我想知道是否可以使用 Office 365 REST API 或其他一些可行且更清洁的方式获取组织的所有电子邮件?

对的,这是可能的。我们还可以使用 Microsoft Graph(以前称为 Office 365 统一 API)通过单个 REST API 端点 ( https://graph.microsoft.com ) 从 Microsoft 云服务公开多个 API。并使用客户端凭据身份验证流程获取用于阅读组织下所有电子邮件的令牌。

以下是实现目标的步骤。

  1. 在 Azure 门户上注册应用程序(Web)(请参阅此处
  2. 授予应用程序足够的权限

    一个。选择 Microsoft Graph 资源

    湾。在应用程序权限列表列表中授予应用程序“Mail.Read”,如下所示

在此处输入图像描述 3. 使用以下代码获取token

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 为您想要的特定用户获取电子邮件

    获取 /users/<id | userPrincipalName>/messages

    获取https://graph.microsoft.com/users/user1@teant.onmicrosoft.com/messages

    授权:不记名{token}

于 2016-05-30T05:38:13.790 回答