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

时间:2016-04-29 13:21:42

标签: office365 office365api

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

这是我迄今为止所尝试过的:

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

    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. 获取文件夹列表
    2. 请求:

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

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

3 个答案:

答案 0 :(得分:1)

  

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

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

BTW,实现是Exchange的一项功能,EWS API支持归档项目,但它不支持在实现邮箱中列出邮件(Archiving in EWS in Exchange)。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

的完整列表