注意:相同的流程适用于Office 365许可证。
Exchange安装信息: 我们有一个混合环境,主要交换服务器是内部部署,并在线交换存档用户邮箱。
许可: Exchange Online Archiving
方案: 我们正在使用Office 365 rest apis。 我使用了全局管理员授权,并将生成的刷新令牌存储在安全位置。使用刷新令牌,我获取访问令牌。然后,该访问令牌用于获取用户的邮件端点。
然后,为了获取用户邮件文件夹,我创建了client_credentials type的新access_token,然后在上面的端点上查询文件夹列表。
以下是详细的请求/回复。 出于隐私原因,故意删除了user_name和access_token。
** REQUEST START (Sat Apr 23 07:40:28 2016) **
REQUEST: GET https://outlook.office365.com/api/v1.0/users('<user_name>')/folders/?$top=100
Accept-Encoding: gzip, deflate
accept: application/json
User-Agent: python-requests/2.4.1 CPython/2.7.8 Linux/3.13.0-83-generic
Connection: keep-alive
content-type: application/json
Authorization: Bearer <access_token>
None
* * * *
RESPONSE (404)
x-calculatedbetarget: AM2PR05MB1089.eurprd05.prod.outlook.com
x-powered-by: ASP.NET
transfer-encoding: chunked
request-id: 8c9ac8a6-8fe7-46f6-8dcc-1fff8b1ac8ac
x-aspnet-version: 4.0.30319
server: Microsoft-IIS/8.0
cache-control: private
x-beserver: AM2PR05MB1089
x-diaginfo: AM2PR05MB1089
x-feserver: BN1PR08CA0019
set-cookie: exchangecookie=309073c961cb44798302c8eb2fee0188; expires=Sun, 23-Apr-2017 07:40:28 GMT; path=/; HttpOnly
date: Sat, 23 Apr 2016 07:40:28 GMT
odata-version: 4.0
content-type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
x-backendhttpstatus: 404
{"error":{"code":"ErrorFolderNotFound","message":"The specified folder could not be found in the store."}}
我的问题:
答案 0 :(得分:0)
我测试过,如果用户在Exchange Online上没有主邮箱,则会收到404错误。例如,Azure AD中不存在用户,或者Azure AD中存在用户,但没有Exchange Online许可证(Compare Exchange Online plans)
在您的情况下,用户许可证是“Exchange Online Archiving”,这是一种基于云的企业级归档解决方案,可帮助您解决归档,合规性,监管和电子发现挑战。但它不会在Exchange Online上为用户提供主邮箱,这就是用户在尝试查找主邮箱时会收到404错误的原因。
<强>更新#1:强>
我假设混合环境如下:Exchange内部部署+ Exchange Online(Exchange Online计划1或2 + Exchange Online Archiving)。
某些用户邮箱完全在Exchange上联机,但其他用户的邮箱位于内部部署的Exchange Server上(如果我有任何误解,请纠正我。)
目前,Office 365 API不支持访问实现邮箱。
对于主邮箱位于内部部署Exchange Server上的用户。由于Office 365 API适用于Exchange Online但不适用于Exchange内部部署,因此您无法在这些用户上使用Office 365 API。
对于主邮箱位于Exchange联机(Exchange Online Plan 1或2用户)的用户,您将能够使用Office 365 API来访问邮箱。
要访问内部部署Exchange Server中的邮箱,可以考虑使用EWS API。