Office365 是否有Office 365 REST API可用于从组织中的所有邮箱获取邮件?

Office365 是否有Office 365 REST API可用于从组织中的所有邮箱获取邮件?,office365,office365-restapi,Office365,Office365 Restapi,我正在探索一个选项,看看是否可以使用Office 365 Mail REST API从组织中(即域内)的所有邮箱获取邮件,或者是否有任何其他方法可以轻松获取这些邮件 以下是我探索过的选项: 1) 密件抄送所有电子邮件到特定帐户,然后从密件抄送帐户获取消息。 2) 探索了连接器选项以将所有邮件发送到另一个电子邮件服务器。 3) 我在其他帖子中也看到,建议创建一个管理员帐户/安全组,并使用power shell为该帐户提供对组织中所有邮箱的完全访问权限,但此选项似乎非常不方便,因为可能会添加新邮箱,

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

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

所以我想知道是否有可能使用Office 365 REST API或其他可行且更干净的方法获取组织的所有电子邮件

所以我想知道是否有可能使用Office 365 REST API或其他可行且更干净的方法获取组织的所有电子邮件

是的,这是可能的。我们还可以使用Microsoft Graph(以前称为Office 365统一API)通过单个REST API端点()公开来自Microsoft云服务的多个API。并使用身份验证流获取用于读取组织下所有电子邮件的令牌

以下是实现目标的步骤

  • 在Azure门户上注册应用程序(web)(请参阅)
  • 授予应用程序足够的权限

    a。选择Microsoft图形资源

    b。授予应用程序权限列表中的应用程序“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
    
  • 下面是为您想要的特定用户获取电子邮件的REST

    获取/用户//消息

    得到

    授权:承载{令牌}


  • 我认为目前没有一种方法可以实时做到这一点

    有人建议对所有用户进行循环,但未记录的节流阈值()使该路径不确定。例如,如果一个组织有1000名用户,平均每秒可能发送5封电子邮件,该怎么办?如果我们想要一张最新的照片呢

    使用subscriptions()我们可以识别哪些用户受到了影响(负载中没有太多细节),但是当我们去查找详细信息时,我们有被限制的风险。由于没有任何生产批处理功能,我们不得不一次查找一个用户


    存在一个渺茫的希望(到目前为止尚未记录和测试),即阈值允许对不同URI的请求,并且应用程序可以管理多个用户(可能是整个组织)的多个订阅.

    下面了解如何访问所有邮箱。费:谢谢你的回答,但我要找的是获取所有用户的邮件,而不是对特定用户执行get/user//消息。有可能吗?我的意思是:a@foo.com, b@foo.com等等,我想做的是像进入域名foo.com一样,我应该能够在foo.com中获取所有用户的电子邮件,而不必遍历每个用户。目前,Office 365 REST不支持获取组织上的所有邮件,而不是循环所有用户。如果需要此功能,您可以提交来自的反馈。@FeiXue MSFT您还可以检索停用帐户的电子邮件吗?当停用发生时,电子邮件会消失吗?我们的情况是,员工可能离开公司,而另一名员工必须接管他们以前与客户的电子邮件通信。