如何使用 Office 365 API 在 Exchange Online 中获取就地存档邮箱

How to get In-Place archive mailbox in Exchange Online using Office 365 APIs

我想获取就地邮箱中 folders/emails 的列表。但是邮箱列表和文件夹列表都没有 returns 就地邮箱。

这是我到目前为止尝试过的方法:

  1. 使用以下请求获取邮箱

要求:

https://outlook.office365.com/api/v1.0/users('someuser@somedomain.onmicrosoft.com')

回复:

{
    "@odata.context": "https://outlook.office365.com/api/v2.0/$metadata#Users/$entity",
    "@odata.id": "https://outlook.office365.com/api/v2.0/Users('12637010-f344-4827-9e3b-21218392985d@649b37da-e479-45dc-a099-fda797d7fcee')",
    "Id": "12637010-f344-4827-9e3b-21218392985d@649b37da-e479-45dc-a099-fda797d7fcee",
    "EmailAddress": "someuser@somedomain.onmicrosoft.com",
    "DisplayName": "User Name",
    "Alias": "user1",
    "MailboxGuid": "12312312-a498-46d1-93a8-870cd3faffec"
}
  1. 获取文件夹列表

要求:

https://outlook.office365.com/api/v1.0/users('someuser@somedomain.onmicrosoft.com')/folders?$top=100

回复:

{
    "@odata.context": "https://outlook.office365.com/api/v1.0/$metadata#Users('someuser%40somedomain.onmicrosoft.com')/Folders",
    "value": [{
        "@odata.id": "https://outlook.office365.com/api/v1.0/Users('someuser@somedomain.onmicrosoft.com')/Folders('ABCDA3AYxNjE2NjQyLWE0OTgtNDZkMy05M2E4LTg3MGNkM2ZhZmZlYwAuAAAAAACbFtMO1RLxQoChh4quwNSoAQChU257vJJfSLjbblRIqUFSAABgaA9RAAA=')",
        "Id": 'ABCDA3AYxNjE2NjQyLWE0OTgtNDZkMy05M2E4LTg3MGNkM2ZhZmZlYwAuAAAAAACbFtMO1RLxQoChh4quwNSoAQChU257vJJfSLjbblRIqUFSAABgaA9RAAA=',
        "DisplayName": "Clutter",
        "ParentFolderId": "ABCDAAVCNjE2NjQyLWE0OTgtNDZkMy05M2E4LTg3MGNkM2ZhZmZlYwAuAAAAAACbFtMO1RLxQoChh4quwNSoAQChU257vJJfSLjbblRIqUFSAAAAAAEIAAA=",
        "ChildFolderCount": 0,
        "UnreadItemCount": 0,
        "TotalItemCount": 1
    },
    {
.... other folders like Inbox, Conversations, Conversations history etc.
    }]
}

是否可以使用 Office 365 统一 API 获取它?如果没有,还有其他选择吗?如果是,Exchange online 如何处理 In-Place 邮箱;文件夹级别(看起来不像)或用户级别邮箱?​​

注意:我更改了请求和响应中的敏感信息

Is it possible to get it use Office 365 unified APIs? If not, is there any alternative?

存档邮箱(在 Exchange Online 中称为就地存档)是与用户关联的辅助邮箱。 Office 365 API 不支持访问存档邮箱。

顺便说一句,实现是Exchange的一个特性,EWSAPI支持归档项目,但也不支持在实现邮箱中列出邮件(Archiving in EWS in Exchange)。

对于 Office 365 的新功能请求 API,您可以考虑在 Office Developer Platform UserVoice 上提交。

GET https://graph.microsoft.com/v1.0/me/mailFolders/{id}/childFolders 这里作为 id 您可以使用众所周知的文件夹名称。它是归档邮箱的 archivemsgfolderroot。

您可以使用 "well-known" 文件夹名称

ArchiveMsgFolderRoot

访问就地存档邮箱。 例如,要从就地存档邮箱中的收件箱文件夹中获取所有邮件,请使用以下查询:

GET https://graph.microsoft.com/v1.0/me/mailFolders/ArchiveMsgFolderRoot/childFolders/Inbox/messages

注意:它还使用另一个预定义的文件夹 ID (Inbox)

有关 how to work with In-Place Archive Mailbox via Graph API

的更多详细信息

以及 well-known folder names

的完整列表