【问题标题】:How to get In-Place archive mailbox in Exchange Online using Office 365 APIs如何使用 Office 365 API 在 Exchange Online 中获取就地存档邮箱
【发布时间】:2020-05-21 01:20:44
【问题描述】:

我想获取就地邮箱中的文件夹/电子邮件列表。但是邮箱列表和文件夹列表都不会返回就地邮箱。

这是我到目前为止所尝试的:

  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 如何处理就地邮箱;文件夹级别(看起来不像)或用户级别的邮箱?

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

【问题讨论】:

    标签: office365 office365api


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    是否可以使用 Office 365 统一 API?如果没有,有没有其他选择?

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

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

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

    【讨论】:

    • 可以通过 MS Graph API 访问 In-Place Archive。请看下面的答案。
    【解决方案3】:

    您可以使用“知名”文件夹名称

    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的完整列表

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多