处理存档邮箱重定向

存档邮箱可以包含主存档邮箱和一个或多个辅助存档邮箱, (通过自动展开存档) 创建。 随着时间的推移,文件夹内容可能会分布在这些邮箱中。

在某些情况下,文件夹显示在主存档邮箱中,但其内容实际上驻留在辅助存档邮箱中。 这种类型的文件夹称为 扩展文件夹。 它充当主存档中文件夹的逻辑表示形式,但数据本身存储在不同的存档邮箱中。

当应用程序访问扩展的文件夹时,API 可能会返回 HTTP 重定向或错误响应。 响应指示访问内容的正确终结点。

运作方式

  • 你的应用使用主存档邮箱 ID 向文件夹或项目发出请求。
  • 如果目标驻留在辅助存档中,API 将返回重定向响应 (,例如 HTTP 308 Permanent Redirect 带有重定向 URL 的) 。
  • 你的应用向响应中指示的 URL 发出新请求。

示例 1:访问文件夹时重定向

当你访问物理驻留在辅助存档邮箱中的文件夹时,API 会返回带有 HTTP 308 Permanent Redirect 标头的 Location

请求

以下示例显示了一个请求。

GET https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:e0643f21@a7809c93/folders/NJWt2LeVEAAAIBDAAAAA==

响应

以下示例显示了重定向的响应。

HTTP/1.1 308 Permanent Redirect
Content-Length: 0
Location: https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:767fh867@a7809c93/folders/NJWt2LeVEAAAIBDAAAAA==

跟进请求

使用标头中的 URL Location 发出新请求。

GET https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:767fh867@a7809c93/folders/NJWt2LeVEAAAIBDAAAAA==

示例 2:使用存档重定向响应导出项

从具有自动展开存档文件夹的邮箱导出项目时,响应中的某些项目可能包含 ErrorArchiveFolderMovedPermanently 错误而不是数据。 这表示该项目在物理上驻留在辅助存档邮箱中。 使用错误消息中提供的 URL 为这些项目重新发出导出请求。

响应

以下示例演示了一个响应,其中一个项已成功导出,而另一个项目需要重定向。

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.exportItemResponse)",
    "value": [
        {
            "itemId": "AAMkADHGHGDDDSSAFDHGJ",
            "changeKey": "CQAAABYAAAC92FzB9+QsR5Q6SPVnShx0AAAAABQ/",
            "data": "AQAAAAgAAAAAAAAAAQAAAAQAA"
        },
        {
            "itemId": "AQMkADVmZgBkYzA2OSADDSG",
            "Error": {
                "message": "https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:5ffdc069-c31e-43fa-9542-eaf862ce18c0@601eaae7-815e-4d2e-9e48-109351d094ab/exportItems",
                "code": "ErrorArchiveFolderMovedPermanently"
            }
        }
    ]
}

对于返回 ErrorArchiveFolderMovedPermanently的项,请使用项目 ID 对错误消息中的 URL 发出新的 POST 请求以导出它。

示例 3:使用重定向处理导入到存档文件夹

尝试将项目导入物理驻留在辅助 (自动展开) 存档邮箱中的文件夹中时,会收到指示 HTTP 409 Conflict 正确目标邮箱的响应。

响应

以下示例显示了相应的响应。

HTTP/1.1 409 Conflict
Content-type: application/json

{
    "Message": "Invalid import session. The target session is expected in mailbox MBX:f10964a6-4fd0-4f74-8@4d2e-9e48-109351d094ab."
}

若要解决此问题,请 创建一个新的导入会话 ,针对错误消息 (中指示的邮箱 ID,在这种情况下, MBX:f10964a6-4fd0-4f74-8@4d2e-9e48-109351d094ab) 。 使用新会话响应中的 importUrl 属性重试导入。