适用于 :Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

Outlook 邮件 API 允许你阅读、创建和发送消息和附件,查看和响应事件消息,并管理由 Office 365 中的 Azure Active Directory 保护的文件夹。 它还提供相同的功能给特定于以下域中的 Microsoft 帐户:Hotmail.com、Live.com、MSN.com、Outlook.com 和 Passport.com。

为简便起见,本文的其余部分使用 Outlook.com 来指代这些 Microsoft 帐户域。

对 API 的 2.0 版不感兴趣? 在左侧的目录中,转到 Office 365 REST API 参考 部分,然后选择所需的版本。

所有“邮件 API”操作

消息存储在邮箱文件夹中,因此消息端点通常包含该消息的文件夹。 文件夹由 ID 或已知文件夹名称来指定,如 Inbox Drafts SentItems ,或 DeletedItems

  • 创建并发送消息
  • 回复或全部答复消息
  • 转发新的或起草的消息
  • 移动或复制消息
  • 管理重点收件箱
  • 管理 @-Mentions (预览)
  • 管理规则 (预览)
  • 取消订阅 (预览)
  • 获取语​​言选项(预览)
  • 获取时区选项(预览)
  • 获取邮箱设置
  • 获取自动回复设置
  • 更新自动回复设置
  • 获取邮件提示 (预览)
  • 文件夹操作

    邮箱文件夹可以包含邮件和其他文件夹。 你可以获取、创建、改变、删除和管理文件夹。 你可以使用以下知名文件夹名而不是 ID 来指定相应的文件夹: Inbox SentItems Drafts 、 或者 DeletedItems

  • 获取文件夹
  • 同步文件夹
  • 创建文件夹
  • 更新文件夹
  • 删除文件夹
  • 移动或复制文件夹
  • REST API 消息资源
  • REST API 文件夹资源
  • 使用“邮件 REST API”

    像其他 Outlook REST API 那样,对于邮件 API 的每个请求,都应该包含有效的访问令牌。 获取访问令牌需要注册和识别应用,并获得相应的授权。

    你可以 了解更多 有关简化注册和授权选项的信息。 在 邮件 API 中继续执行特定操作时,请记住这一点。

    API 版本

    Outlook REST API 的所有版本都支持“邮件 REST API”。 功能可能因具体版本而异。

    除非指定,否则所有“邮件 API”请求均代表登录用户执行。 如果有适当的权限,可以在登录用户或用户 ID 指定的用户上执行如“重点收件箱 API”之类的一些 API 子集。

    有关 Outlook REST API 所有子集所共有的更多信息,请参阅 使用 Outlook REST API

    你可以从邮箱文件夹中获取消息集合或单条消息。

    响应中的每条消息都包含多个属性,包括 正文 属性。 邮件正文可以是文本或 HTML。 如果正文是 HTML 格式,默认情况下,在 REST 响应中返回正文内容之前,将删除嵌入 正文 属性中的任意具有潜在不安全性的 HTML(例如,JavaScript)。

    要获取整个原始 HTML 内容,请包括以下 HTTP 请求标头:

    Prefer: outlook.allow-unsafe-html
    

    要指定 GET 请求的 正文UniqueBody 的属性中所返回的所需格式,使用该 Prefer: outlook.body-content-type 标头:

  • 指定 Prefer: outlook.body-content-type="text" 获取以文本格式返回的邮件正文。
  • 指定 Prefer: outlook.body-content-type="html",或者直接跳过标头,以 HTML 格式返回邮件正文。
  • 如果你指定了任一标头,则响应将包含相应的 Preference-Applied 标头作为确认:

  • 对于文本格式请求: Preference-Applied: outlook.body-content-type="text"
  • 对于 HTML 格式请求: Preference-Applied: outlook.body-content-type="html"
  • 获取消息集合
  • 获取消息集合

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 本节中的操作行为因版本而异。 选择左侧的目录中 Office 365 REST API 引用 下的版本以了解更多详情。

    从登录用户的整个邮箱(包括“已删除项”和“杂文”文件夹)中获取消息集合。

    GET https://outlook.office.com/api/v2.0/me/messages
    

    你还可以在用户的​​邮箱中指定一个文件夹并从那个文件夹中获取消息集合。

    GET https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}/messages
    

    默认情况下,响应中的每条消息都包含其所有属性。 使用 $select 只指定那些你需要的最佳性能的属性。 始终返回该 ID 属性。 请参阅 OData 查询参数 了解筛选、排序和分页参数。

    以下示例显示如何使用 $select 指定在响应中仅返回每条消息的 发件人主题 属性。 请参阅 获取消息 中的示例响应,以了解当您不使用 $select 时为一个消息返回的完整属性列表。

    GET https://outlook.office.com/api/v2.0/me/MailFolders/sentitems/messages/?$select=Sender,Subject
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('sentitems')/Messages(Sender,Subject)",
        "value": [
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2TIzAAAA=')",
                "@odata.etag": "W/\"CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTJqS\"",
                "Id": "AAMkAGI2TIzAAAA=",
                "Subject": "Meeting Notes",
                "Sender": {
                    "EmailAddress": {
                        "Name": "Alex D",
                        "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2TIy-AAA=')",
                "@odata.etag": "W/\"CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTJqP\"",
                "Id": "AAMkAGI2TIy-AAA=",
                "Subject": "Contract Signing",
                "Sender": {
                    "EmailAddress": {
                        "Name": "Alex D",
                        "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                "@odata.type": "#Microsoft.OutlookServices.EventMessage",
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2TIy9AAA=')",
                "@odata.etag": "W/\"CwAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTJqJ\"",
                "Id": "AAMkAGI2TIy9AAA=",
                "Subject": "Rob:Alex 1:1",
                "Sender": {
                    "EmailAddress": {
                        "Name": "Alex D",
                        "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
    

    请求的 消息 集合。

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 通过 ID 获取消息。

    GET https://outlook.office.com/api/v2.0/me/messages/{message_id}
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
        "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2THVSAAA=')",
        "@odata.etag": "W/\"CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTIKz\"",
        "Id": "AAMkAGI2THVSAAA=",
        "CreatedDateTime": "2014-10-20T00:41:57Z",
        "LastModifiedDateTime": "2014-10-20T00:41:57Z",
        "ChangeKey": "CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTIKz",
        "Categories": [],
        "ReceivedDateTime": "2014-10-20T00:41:57Z",
        "SentDateTime": "2014-10-20T00:41:53Z",
        "HasAttachments": true,
        "Subject": "Re: Meeting Notes",
        "Body": {
            "ContentType": "Text",
            "Content": "\n________________________________________\nFrom: Alex D\nSent: Sunday, October 19, 2014 5:28 PM\nTo: Katie Jordan\nSubject: Meeting Notes\n\nPlease send me the meeting notes ASAP\n"
        "BodyPreview": "________________________________________\nFrom: Alex D\nSent: Sunday, October 19, 2014 5:28 PM\nTo: Katie Jordan\nSubject: Meeting Notes\n\nPlease send me the meeting notes ASAP",
        "Importance": "Normal",
        "ParentFolderId": "AAMkAGI2AAEMAAA=",
        "Sender": {
            "EmailAddress": {
                "Name": "Katie Jordan",
                "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com"
        "From": {
            "EmailAddress": {
                "Name": "Katie Jordan",
                "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com"
        "ToRecipients": [
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
        "CcRecipients": [],
        "BccRecipients": [],
        "ReplyTo": [],
        "ConversationId": "AAQkAGI2yEto=",
        "IsDeliveryReceiptRequested": false,
        "IsReadReceiptRequested": false,
        "IsRead": false,
        "IsDraft": false,
        "WebLink": "https://outlook.office365.com/owa/?ItemID=AAMkAGI2THVSAAA%3D&exvsurl=1&viewmodel=ReadMessageItem"
    

    请求的 消息

    默认情况下,响应包含指定消息的所有属性。 使用 $select 只指定那些你需要的最佳性能的属性。 始终返回该 ID 属性。 请参阅 OData 查询参数 了解筛选、排序和分页参数。

    以下示例显示如何使用 $select 指定在响应中仅返回每条消息的 发件人主题 属性。

    GET https://outlook.office.com/api/v2.0/me/messages/AAMkAGE1I5MTAAA=?$select=Sender,Subject
    

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 你可以将本地数据存储与服务器上的消息同步。 消息同步是按文件夹操作,例如,您可以同步收件箱中的所有消息。 要同步文件夹层次结构中的消息,你需要分别同步每个文件夹。

    该 API 既支持检索文件夹中所有消息的完全同步,又支持检索自上次完全同步以来发生更改的所有消息的增量同步。

    同步邮件文件夹通常需要两个或更多的 GET 请求。 发出 GET 请求方法与你 获取消息 的方式很像,只是会包括某些请求标头,并在适当时包括 deltaTokenskipToken

  • 你必须在所有同步请求中指定 Prefer: odata.track-changes 标头,但那些包含从上个同步请求返回的 skipToken 的请求除外。 在第一个响应中,查找 Preference-Applied: odata.track-changes 标头,在继续之前确认资源支持同步。

  • 你可以指定 Prefer: odata.maxpagesize={x} 标头来设置请求中返回的最大消息数。

    下面是一轮典型的同步消息:

  • 使用强制性 Prefer: odata.track-changes 标头发出初始 GET 请求。 对同步请求的初始响应始终返回 deltaToken。 (第二个 GET 请求和后续 GET 请求与第一个 GET 请求不同,不同之处在于该请求包括在前一个响应中收到的 deltaTokenskipToken。)

  • 如果第一个响应返回 Preference-Applied: odata.track-changes 标头,你可以继续同步该文件夹。

  • 进行第二次 GET 请求。 指定 Prefer: odata.track-changes 标头和从第一个 GET 返回的 deltaToken,以确定是否有任何其他消息。 第二个请求将返回其他消息,且如果有更多的消息可用,则返回 skipToken,如果最后一条消息已经同步,则返回 deltaToken(在这种情况下同步轮次完成,你可以停止)。

  • 通过发送 GET 调用并包括前一次调用中返回的 skipToken,继续进行同步。 在再次使用 deltaToken 获取包含 @odata.deltaLink 标头的最终响应(指明同步已完成)时停止。

    缓存这次完全同步轮次中收到的最后一个 delta 令牌。 使用它开始一次增量同步轮次。

    这是一次增量同步轮次:

  • 使用强制性 Prefer: odata.track-changes 标头和在完全同步轮次的最后响应中收到的缓存 deltaToken 来进行初始 GET 请求。

  • 第二步和后续步骤遵循用于完全同步的模式。

    在特定文件夹中同步消息

    GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages
    

    第二个请求,或后续轮次中的第一个请求

    GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
    

    同一轮次中的第三个或后续请求

    如果前一个响应包含 skipToken,则请继续发送下一个同步请求。 在再次使用 @odata.deltaLink 获取一个包含 deltaToken 标头的响应时停止。

    GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$skipToken={skip_token}
    

    默认情况下,同步将返回文件夹中的所有属性和所有消息。 使用 $select 查询表达式以只指定你需要获得最佳性能的属性。 始终返回该 ID 属性。

    同步支持查询表达式 $select、$top、$expand。 对 $filter 和 $orderby 支持有限,而对 $search 则不支持。

  • 唯一支持的 $filter 表达式是“$filter=ReceivedDateTime+ge+{value}”或“$filter=ReceivedDateTime+gt+{value}”。
  • 唯一支持的 $orderby 表达式是“$orderby=ReceivedDateTime+desc”。 如果不包含 $orderby 表达式,则不能保证返回顺序。
  • 请参阅 OData 查询参数 了解筛选、排序和分页参数。

    包含请求消息的集合和一个 deltaTokenskipToken,你用于从服务器请求其他消息数据页面以进行增量同步。

    以下示例显示对包含 7 条消息的特定文件夹进行同步的一系列请求。 第一个同步请求指定一次返回 2 条消息 (odata.maxpagesize 是 2 ),每条消息只有 发件人主题 属性。

  • 初始响应返回 2 条消息,deltaLinkdeltaToken
  • 第二个请求使用那个 deltaToken。 第二个响应返回 2 条消息, nextLinkskipToken
  • 要完成同步,第三个和第四个请求使用从上一个同步请求返回的 skipToken,直到第四个响应返回 deltaLinkdeltaToken,在这个情况下,这轮同步才完成。 保存 deltaToken 供下一轮同步使用。
  • 示例:初始请求

    GET https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages?$select=Subject,Sender HTTP/1.1
    Prefer: odata.maxpagesize=2
    Prefer: odata.track-changes
    

    示例初始响应数据

    初始响应包括 Preference-Applied: odata.track-changes 标头,表示这个文件夹支持同步。 响应还包括两条消息和一条 deltaToken

    Preference-Applied: odata.track-changes
      "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('AAMkAGI5MAAAwW-j-AAA%3D')/Messages(Subject,Sender)",
      "value":[
          "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADPAAA=')",
          "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS9+\"",
          "Id":"AAMkAGI5MAAAwXADPAAA=",
          "Subject":"Updates from All Company",
          "Sender":{
            "EmailAddress":{
              "Name":"Contoso Demo on Yammer",
              "Address":"noreply@yammer.com"
          "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADVAAA=')",
          "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS+E\"",
          "Id":"AAMkAGI5MAAAwXADVAAA=",
          "Subject":"RE: Latin American Ad Campaign - XT Series",
          "Sender":{
            "EmailAddress":{
              "Name":"Alex Darrow",
              "Address":"AlexD@contoso.onmicrosoft.com"
      "@odata.deltaLink":"https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24deltatoken=MfzCBD5nm2dcGAFGk5qypL1PSyEAADFmX28BAAAA"
    

    示例第二个请求

    第二个请求指定了从以前的响应中返回的 deltaToken

    GET https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24deltatoken=MfzCBD5nm2dcGAFGk5qypL1PSyEAADFmX28BAAAA HTTP/1.1
    Prefer: odata.maxpagesize=2
    Prefer: odata.track-changes
    

    示例第二个响应数据

    第二个响应包括另外两个消息和一个 skipToken,表示文件夹中还有更多要同步的消息。

    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('AAMkAGI5MAAAwW-j-AAA%3D')/Messages(Subject,Sender)/$delta", "value":[ "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADQAAA=')", "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS9/\"", "Id":"AAMkAGI5MAAAwXADQAAA=", "Subject":"International Launch Planning for XT2000", "Sender":{ "EmailAddress":{ "Name":"Engineering", "Address":"engineering@contoso.onmicrosoft.com" "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADUAAA=')", "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS+D\"", "Id":"AAMkAGI5MAAAwXADUAAA=", "Subject":"RE: Latin American Ad Campaign - XT Series", "Sender":{ "EmailAddress":{ "Name":"Anne Wallace", "Address":"AnneW@contoso.onmicrosoft.com" "@odata.nextLink":"https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24skipToken=MfzCAj5nm2dcGAFGk5qypL1PSyEAADFmX28CAAAA"

    示例第三个请求

    第三个请求包括从以前的响应中返回的 skipToken

    GET https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24skipToken=MfzCAj5nm2dcGAFGk5qypL1PSyEAADFmX28CAAAA HTTP/1.1
    Prefer: odata.maxpagesize=2
    

    示例第三个响应数据

    第三个响应返回另外两条信息和另一个 skipToken,表示文件夹中仍有要同步的消息。

    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('AAMkAGI5MAAAwW-j-AAA%3D')/Messages(Subject,Sender)/$delta", "value":[ "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADTAAA=')", "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS+C\"", "Id":"AAMkAGI5MAAAwXADTAAA=", "Subject":"RE: Latin American Ad Campaign - XT Series", "Sender":{ "EmailAddress":{ "Name":"Pavel Bansky", "Address":"PavelB@contoso.onmicrosoft.com" "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADSAAA=')", "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS+B\"", "Id":"AAMkAGI5MAAAwXADSAAA=", "Subject":"Latin American Ad Campaign - XT Series", "Sender":{ "EmailAddress":{ "Name":"Engineering", "Address":"engineering@contoso.onmicrosoft.com" "@odata.nextLink":"https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24skipToken=MfzCAj5nm2dcGAFGk5qypL1PSyEAADFmX28DAAAA"

    示例第四个请求

    第四个请求包括上一个响应中的 skipToken

    GET https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24skipToken=MfzCAj5nm2dcGAFGk5qypL1PSyEAADFmX28DAAAA HTTP/1.1
    Prefer: odata.maxpagesize=2
    

    第四和最终的响应示例数据

    第四个响应返回文件夹中仅剩的消息和一个表示这个文件夹的同步已完成的 deltaToken。 保存 deltaToken 供这个文件夹的下一轮同步。

    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('AAMkAGI5MAAAwW-j-AAA%3D')/Messages(Subject,Sender)/$delta", "value":[ "@odata.id":"https://outlook.office.com/api/v2.0/Users('f97adce1-d718-4a0e-9af8-b10167e3a346@0d76cf04-f6a0-46cc-947b-d2e1bdd98d11')/Messages('AAMkAGI5MAAAwXADRAAA=')", "@odata.etag":"W/\"CQAAABYAAAA+Z5tnXBgBRpOasqS9T0shAAAwYS+A\"", "Id":"AAMkAGI5MAAAwXADRAAA=", "Subject":"Data sheets for the XT2000 ", "Sender":{ "EmailAddress":{ "Name":"Engineering", "Address":"engineering@contoso.onmicrosoft.com" "@odata.deltaLink": "https://outlook.office365.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24deltaToken=0_zCBD5nm2dcGAFGk5qypL1PSyEAADBb9RkEAAAA"

    示例增量同步请求

    第一个响应包括上次完全同步响应的 deltaToken

    GET https://outlook.office.com/api/v2.0/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24select=Subject%2cSender&%24deltatoken=0_zCBD5nm2dcGAFGk5qypL1PSyEAADBb9RkEAAAA HTTP/1.1
    Prefer: odata.maxpagesize=2
    Prefer: odata.track-changes
    

    对增量同步请求的响应包括对文件夹消息集的任何更改。

    示例增量同步响应

    响应显示对消息集进行了一项更改。 消息被删除。

    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('AAMkAGI5MAAAwW-j-AAA%3D')/Messages(Subject,Sender)/$delta", "value": [ "id": "Messages('AAMkAGY5MDFjNTQyLWI3NzItNGE4My04ZWE4LWQ4YmMwNTJkYTg1YwBGAAAAAAD7fYH1FVR1TayS78jtGGehBwDB1GgBNTpbT6Qe-PzdAR4YAh7cdimCAADwOTzPjXdMTKEex95TwbKkAACLEykWAAA=')", "reason": "deleted" "@odata.deltaLink": "https://outlook.office365.com/api/beta/Me/MailFolders('AAMkAGI5MAAAwW-j-AAA=')/messages/?%24deltaToken=4_zRDV5nm2dcGAFGk5qypL1PSyEAADBb9RkEAAAA"

    创建并发送消息

    你可以即时发送新消息,或创建草稿消息,然后发送。 你可以在任何文件夹中创建草稿。

  • 即时发送新消息
  • 创建草稿消息
  • 发送草稿消息
  • 即时发送新消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.send
  • wl.imap
  • 通过使用 SendMail 方法发送请求正文中提供的消息。 通过在 附件 集合属性中指定,你可以在同一个操作调用中包含一个或多个附件。 你还可以将消息保存在“已发送邮件”文件夹中。

    POST https://outlook.office.com/api/v2.0/me/sendmail
    

    在请求正文中,使用必需的 ToRecipients 属性和任何可写的 消息 属性来指定 Message 参数。 只有为 false 时才需要 SaveToSentItems 参数。

    POST https://outlook.office.com/api/v2.0/me/sendmail
      "Message": {
        "Subject": "Meet for lunch?",
        "Body": {
          "ContentType": "Text",
          "Content": "The new cafeteria is open."
        "ToRecipients": [
            "EmailAddress": {
              "Address": "garthf@a830edad9050849NDA1.onmicrosoft.com"
        "Attachments": [
            "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
            "Name": "menu.txt",
            "ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk="
      "SaveToSentItems": "false"
    
    Status code: 202
    

    创建草稿消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 创建新邮件的草稿。 草稿可以在任何文件夹中创建,也可以选择 更新 之后 发送。 要保存到草稿文件夹,请使用 /me/messages 快捷方式。

    POST https://outlook.office.com/api/v2.0/me/messages
    POST https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}/messages
    

    在请求正文中指定任何可写的 消息 属性。

    POST https://outlook.office.com/api/v2.0/me/MailFolders/inbox/messages
    Content-Type: application/json
      "Subject": "Did you see last night's game?",
      "Importance": "Low",
      "Body": {
        "ContentType": "HTML",
        "Content": "They were <b>awesome</b>!"
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com"
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGE0Mz7k0AAA=')",
      "@odata.etag": "W/\"CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0Ag5\"",
      "Id": "AAMkAGE0Mz7k0AAA=",
      "ChangeKey": "CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0Ag5",
      "Categories": [],
      "CreatedDateTime": "2014-10-18T20:06:51Z",
      "LastModifiedDateTime": "2014-10-18T20:06:51Z",
      "Subject": "Did you see last night's game?",
      "BodyPreview": "They were awesome!",
      "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nThey were <b>awesome</b>!\r\n</body>\r\n</html>\r\n"
      "Importance": "Low",
      "HasAttachments": false,
      "ParentFolderId": "AAMkAGE0MAAEPAAA=",
      "From": null,
      "Sender": null,
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Katie Jordan"
      "CcRecipients": [],
      "BccRecipients": [],
      "ReplyTo": [],
      "ConversationId": "AAQkAGE0Mpv2hisc=",
      "ReceivedDateTime": "2014-10-18T20:06:51Z",
      "SentDateTime": "2014-10-18T20:06:51Z",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsDraft": true,
      "IsRead": true
    

    草稿 消息

    发送草稿消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.send
  • wl.imap
  • 通过使用 发送 方法,发送 新消息草稿回复草稿全部答复草稿转发草稿。 然后消息保存在“已发送邮件”文件夹中。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/send
    

    本节中的操作行为因版本而异。 选择左侧的目录中 Office 365 REST API 引用 下的版本以了解更多详情。

    你可以即时回复注释,也可以先创建回复草稿,然后更新并发送草稿。

    你只能回复消息的发件人或一次回答所有收件人。

  • 即时回复发件人
  • 即时全部答复
  • 创建草稿回复消息
  • 创建草稿全部回复消息
  • 即时回复发件人

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.send
  • wl.imap
  • 通过指定注释并使用 回复 方法来回复消息的发件人。 然后消息保存在“已发送邮件”文件夹中。

    或者,如果你需要修改回复的任何 可更新的属性,你可以先 创建草稿回复消息更新 消息属性,然后 发送 回复。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/reply
    
    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGE0Mz8DmAAA=/reply
    Content-Type: application/json
      "Comment": "Sounds great! See you tomorrow."
    
    Status code: 202
    

    即时全部答复

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.send
  • wl.imap
  • 通过指定注释并使用 ReplyAll 方法来回复消息的所有收件人。 然后消息保存在“已发送邮件”文件夹中。

    或者,如果你需要修改回复的任何 可更新属性,你可以先 创建草稿全部回复消息更新 消息属性,然后 发送 回复。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/replyall
    
    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGE0MSz8DmAAA=/replyall
    Content-Type: application/json
      "Comment": "Thanks for the heads up."
    
    Status code: 202
    

    创建草稿回复消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 创建回复指定 消息 的草稿。 然后你可以 更新 草稿,将回复内容添加到 正文 属性,或更改其他 消息属性,或者仅 发送草稿。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/createreply
    
    POST https://outlook.office.com/api/v2.0/me/messages/AAMkADA1MTAAAAqldOAAA=/createreply
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Messages('AAMkADA1MTAAAH5JKoAAA=')",
      "@odata.etag": "W/\"CQAAABYAAADX8oL1Wa7jQbcPAHouCzswAAAH5/DO\"",
      "Id": "AAMkADA1MTAAAH5JKoAAA=",
      "CreatedDateTime": "2016-03-15T08:33:43Z",
      "LastModifiedDateTime": "2016-03-15T08:33:43Z",
      "ChangeKey": "CQAAABYAAADX8oL1Wa7jQbcPAHouCzswAAAH5/DO",
      "Categories": [ ],
      "ReceivedDateTime": "2016-03-15T08:33:43Z",
      "SentDateTime": "2016-03-15T08:33:43Z",
      "HasAttachments": false,
      "InternetMessageId": "<DM2PR00MB00571796B16132601E1F286CF7890@DM2PR00MB0057.namprd00.prod.outlook.com>",
      "Subject": "RE: Let's start a group",
      "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n<body>Fanny, would you name the group if the project is approved, please?\r\n<b>From:</b> Fanny Downs<br>\r\n<b>Sent:</b> Friday, March 4, 2016 12:23:35 AM<br>\r\n<b>To:</b> Admin<br>\r\n<b>Subject:</b> Re: Let's start a group</font>\r\n<p>That's a great idea!<br>\r\n</body>\r\n</html>"
      "BodyPreview": "Fanny, would you name the group if the project is approved, please?\r\n________________________________\r\nFrom: Fanny Downs\r\nSent: Friday, March 4, 2016 12:23:35 AM\r\nTo: Admin\r\nSubject: Re: Let's start a group\r\n\r\n\r\nThat's a gre",
      "Importance": "Normal",
      "ParentFolderId": "AQMkADA1MTAAAAIBDwAAAA==",
      "Sender": {
        "EmailAddress": {
          "Name": "Admin",
          "Address": "admin@contoso.onmicrosoft.com"
      "From": null,
      "ToRecipients": [
          "EmailAddress": {
            "Name": "Fanny Downs",
            "Address": "fannyd@contoso.onmicrosoft.com"
      "CcRecipients": [ ],
      "BccRecipients": [ ],
      "ReplyTo": [ ],
      "ConversationId": "AAQkADA1MTVGjIwpLvWmGtIo-aFE=",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsRead": true,
      "IsDraft": true,
      "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADA1MTAAAH5JKoAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
      "MentionedMe": null,
      "AppliedHashtagsPreview": null,
      "LikesPreview": null,
      "MentionsPreview": null,
      "Mentioned": [ ],
      "InferenceClassification": "Focused",
      "UnsubscribeData": [ ],
      "UnsubscribeEnabled": false,
      "Flag": { "FlagStatus": "NotFlagged" }
    

    ToRecipientIsDraft、以及其他预填充的适当属性的草稿回复 消息

    创建草稿全部回复消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 创建草稿以回复指定邮件的发件人和所有收件人。 然后你可以 更新 草稿,将回复内容添加到 正文,或更改其他 邮件属性,或者仅 发送 草稿。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/createreplyall
    
    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGE0Mz8DmAAA=/createreplyall
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGE0Mz7k5AAA=')",
      "@odata.etag": "W/\"CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AhF\"",
      "Id": "AAMkAGE0Mz7k5AAA=",
      "ChangeKey": "CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AhF",
      "Categories": [],
      "CreatedDateTime": "2014-10-18T21:21:06Z",
      "LastModifiedDateTime": "2014-10-18T21:21:06Z",
      "Subject": "RE: Check out the new Office 365 APIs",
      "BodyPreview": "If the project gets approved, please decide on the name.\r\n_________________________________\r\nFrom: Alex D\r\nSent: Saturday, October 18, 2014 9:18:18 PM\r\nTo: Katie Jordan; Garth Fort\r\nSubj",
      "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n...</html>\r\n"
      "Importance": "Normal",
      "HasAttachments": false,
      "ParentFolderId": "AAMkAGE0MAAEPAAA=",
      "From": null,
      "Sender": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Katie Jordan"
          "EmailAddress": {
            "Address": "garthf@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Garth Fort"
      "CcRecipients": [],
      "BccRecipients": [],
      "ReplyTo": [],
      "ConversationId": "AAQkAGE0M3HbTkEU=",
      "ReceivedDateTime": "2014-10-18T21:21:06Z",
      "SentDateTime": "2014-10-18T21:21:06Z",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsDraft": true,
      "IsRead": true
    

    ToRecipientIsDraft、以及其他预填充的适当属性的草稿回复 消息

    转发新的或起草的消息

    本节中的操作行为因版本而异。 选择左侧的目录中 Office 365 REST API 引用 下的版本以了解更多详情。

    你可以直接转发消息,也可以创建草稿转发消息,然后进行更新并发送。

  • 直接转发消息
  • 创建转发消息
  • 直接转发消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.send
  • wl.imap
  • 通过使用 转发 方法转发消息,也可以有选择地指定注释。 然后消息保存在“已发送邮件”文件夹中。

    另外,如果你需要在要转发的消息中修改任何 可更新的属性,你可以先 创建一个转发消息草稿更新 消息属性,然后 发送 回复。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/forward
    

    指定 注释 和请求正文中的 ToRecipients 参数。

    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGE0Mz8DmAAA=/forward
    Content-Type: application/json
      "Comment": "FYI",
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com"
          "EmailAddress": {
            "Address": "garthf@a830edad9050849NDA1.onmicrosoft.com"
    
    Status code: 202
    

    创建草稿转发消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 创建草稿以转发指定邮件。 然后你可以 更新 草稿以将内容添加到 正文 或更改其他 消息属性,或者仅 发送 草稿。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/createforward
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGE0Mz7k6AAA=')",
      "@odata.etag": "W/\"CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AhG\"",
      "Id": "AAMkAGE0Mz7k6AAA=",
      "ChangeKey": "CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AhG",
      "Categories": [],
      "CreatedDateTime": "2016-03-15T08:42:10Z",
      "LastModifiedDateTime": "2016-03-15T08:42:10Z",
      "Subject": "FW: Let's start a group",
      "BodyPreview": "Dana, just want to make sure you get this.\r\n________________________________\r\nFrom: Admin\r\nSent: Tuesday, March 15, 2016 6:47:54 AM\r\nTo: Fanny Downs; Randi Welch\r\nSubject: RE: Let's st",
      "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n...</html>\r\n"
      "Importance": "Normal",
      "HasAttachments": false,
      "ParentFolderId": "AAMkAGE0MAAEPAAA=",
      "From": null,
      "Sender": {
        "EmailAddress": {
          "Address": "'alexd@contoso.onmicrosoft.com'",
          "Name": "Alex D"
      "ToRecipients": [],
      "CcRecipients": [],
      "BccRecipients": [],
      "ReplyTo": [],
      "ConversationId": "AAQkAGE0M3HbTkEU=",
      "ReceivedDateTime": "2016-03-15T08:42:10Z",
      "SentDateTime": "2016-03-15T08:42:10Z",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsDraft": true,
      "IsRead": true
    

    IsDraft 和预先填充适当的属性的草稿转发 消息

    更改消息的可写属性并保存更改。

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 更改草稿或现有 消息 上的可写属性。 只有你指定的属性才会更改。

    PATCH https://outlook.office.com/api/v2.0/me/messages/{message_id}
    

    在请求正文中指定一个或多个可写 消息属性。

    PATCH https://outlook.office.com/api/v2.0/me/messages/AAMkAGE0Mz8S-AAA=
    Content-Type: application/json
      "Categories": [
        "Orange category",
        "Green category"
      "IsRead": true
    
    Status code: 200
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGE0Mz8S-AAA=')",
      "@odata.etag": "W/\"CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AIP\"",
      "Id": "AAMkAGE0Mz8S-AAA=",
      "ChangeKey": "CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AIP",
      "Categories": [
        "Orange category",
        "Green category"
      "CreatedDateTime": "2014-10-17T17:12:15Z",
      "LastModifiedDateTime": "2014-10-19T03:24:35Z",
      "Subject": "Meeting notes from today",
      "BodyPreview": "See attached",
      "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n...</html>\r\n"
      "Importance": "Normal",
      "HasAttachments": true,
      "ParentFolderId": "AAMkAGE0MAAEMAAA=",
      "From": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "Sender": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Katie Jordan"
      "CcRecipients": [],
      "BccRecipients": [],
      "ReplyTo": [],
      "ConversationId": "AAQkAGE0Mip-qvhs=",
      "ReceivedDateTime": "2014-10-17T17:12:15Z",
      "SentDateTime": "2014-10-17T17:12:12Z",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsDraft": false,
      "IsRead": true
    

    已更新的 消息

    删除消息时请小心。 已删除内容可能无法恢复。 要了解更多信息,请参阅 删除项目

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • DELETE https://outlook.office.com/api/v2.0/me/messages/{message_id}
    
    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGI2TIy-AAA=/move
    Content-Type: application/json
      "DestinationId": "AAMkAGI2AAEJAAA="
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGE0MGz_vSAAA=')",
      "@odata.etag": "W/\"CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTJqP\"",
      "Id": "AAMkAGI2shBhAAA=",
      "ChangeKey": "CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTJqP",
      "Categories": [],
      "CreatedDateTime": "2014-10-20T00:13:21Z",
      "LastModifiedDateTime": "2014-10-20T00:13:23Z",
      "Subject": "Contract Signing",
      "BodyPreview": "There will be a detailed legal review of Project Falcon once the contract is ready.",
      "Body": {
        "ContentType": "Text",
        "Content": "There will be a detailed legal review of Project Falcon once the contract is ready."
      "Importance": "Normal",
      "HasAttachments": false,
      "ParentFolderId": "AAMkAGI2AAEJAAA=",
      "From": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "Sender": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Katie Jordan"
          "EmailAddress": {
            "Address": "garthf@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Garth Fort"
      "CcRecipients": [],
      "BccRecipients": [],
      "ReplyTo": [],
      "ConversationId": "AAQkAGI2NGWgitxag=",
      "ReceivedDateTime": "2014-10-20T00:13:21Z",
      "SentDateTime": "2014-10-20T00:13:21Z",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsDraft": false,
      "IsRead": true
    

    已移动的 消息

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 将邮件复制到文件夹。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/copy
    
    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGI2TIy-AAA=/copy
    Content-Type: application/json
      "DestinationId": "inbox"
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGE0Mz8TDAAA=')",
      "@odata.etag": "W/\"CQAAABYAAAAmP1Ln1wcHRariNdTMGAO9AAAS0AIS\"",
      "Id": "AAMkAGI2T8DtAAA=",
      "ChangeKey": "CQAAABYAAACd9nJ/tVysQos2hTfspaWRAAADTJqP",
      "Categories": [],
      "CreatedDateTime": "2014-10-20T00:13:21Z",
      "LastModifiedDateTime": "2014-10-20T00:13:23Z",
      "Subject": "Contract Signing",
      "BodyPreview": "There will be a detailed legal review of Project Falcon once the contract is ready.",
      "Body": {
        "ContentType": "Text",
        "Content": "There will be a detailed legal review of Project Falcon once the contract is ready."
      "Importance": "Normal",
      "HasAttachments": false,
      "ParentFolderId": "AAMkAGE0MAAEMAAA=",
      "From": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "Sender": {
        "EmailAddress": {
          "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
          "Name": "Alex D"
      "ToRecipients": [
          "EmailAddress": {
            "Address": "katiej@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Katie Jordan"
          "EmailAddress": {
            "Address": "garthf@a830edad9050849NDA1.onmicrosoft.com",
            "Name": "Garth Fort"
      "CcRecipients": [],
      "BccRecipients": [],
      "ReplyTo": [],
      "ConversationId": "AAQkAGI2NGVhZTVlLTI1OGMtNDI4My1iZmE5LTA5OGJiZGEzMTc0YQAQAKjRc0YJSUBJpofjWgitxag=",
      "ReceivedDateTime": "2014-10-20T00:13:21Z",
      "SentDateTime": "2014-10-20T00:13:21Z",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsDraft": false,
      "IsRead": true
    

    消息的新副本。

    管理重点收件箱

    通过重点收件箱,你可以查看收件箱的 Focused 选项卡中的重要邮件和 Other 选项卡中的其余收件箱邮件。分类系统最初按照默认方式组织收件箱邮件。可以随着时间推移通过用户界面或以编程方式对系统进行更正和培训。使用地越多,系统越能更好地推断哪些传入邮件是重要的。

    在编程级别,重点收件箱 REST API 可以处理指定用户的消息,并支持每个消息的 InferenceClassification 属性。 可能的值是 FocusedOther,这表明用户是否认为该消息分别更重要和更不重要。 要纠正和训练信息分类系统,请在消息级别使用 PATCH 操作在 InferenceClassification 属性上

    重点收件箱 REST API 还允许你创建覆盖。 每个覆盖,都由一个表示 InferenceClassificationOverride 实例表示,是分类系统的指令,总是以一致的方式(即总是“重点”或总是“其他”)标明来自特定发件人的消息,而不管任何先前学习的方法。 你可以 创建获取更新删除 指定的用户的替代。 那个用户的替代,如果有的话,可以在一个 InferenceClassification 导航属性内访问,这是一个 InferenceClassificationOverride 实例的集合。 覆盖允许用户更多地控制传入消息的分类,并建立对分类系统的更大信任。

    请注意,分类系统只会在收件箱中收到的消息中学习并应用分类。 其他文件夹中的消息默认为“重点”。 设置会影响到达收件箱的未来邮件的fu覆盖;覆盖不会修改包括收件箱在内的任何文件夹中现有消息的 InferenceClassification 属性。

    对邮件分类系统进行培训

  • 更新消息分类
  • 使用替代对每个发件人一致分类

  • 为发件人创建覆盖
  • 获取所有用户替代
  • 为发件人更新覆盖
  • 删除发件人替代
  • 更新消息分类

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 更改指定消息的 InferenceClassification 属性。 如果消息在收件箱中,则用户将在相应的 Focused 或者 Other 标签下看到那个消息。这种修正还会训练消息分类系统为指定用户定制未来的分类。

    PATCH https://outlook.office.com/api/v2.0/me/messages('{message_id}')
    PATCH https://outlook.office.com/api/v2.0/Users('{user_id}')/messages('{message_id}')
    

    这个示例把 InferenceClassification 属性更改成 Other 针对登录用户的指定消息。

    PATCH https://outlook.office.com/api/v2.0/me/messages('AAMkADA1MTQBAAA=')
        "InferenceClassification": "Other"
    

    这里显示的响应对象显示已更新的 InferenceClassification 属性并为了简洁而截断。 实际的 PATCH 请求会返回消息的所有属性。

    Status code: 200 OK
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages/$entity",
        "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Messages('AAMkADA1MTQBAAA=')",
        "@odata.etag": "W/\"CQAAABYAAADX8oL1Wa7jQbcPAHouCzswAAAffAsD\"",
        "Id": "AAMkADA1MTQBAAA=",
        "Importance": "Normal",
        "Sender": {
            "EmailAddress": {
                "Name": "Fanny Downs",
                "Address": "fannyd@adatum.onmicrosoft.com"
        "From": {
            "EmailAddress": {
                "Name": "Fanny Downs",
                "Address": "fannyd@adatum.onmicrosoft.com"
        "ToRecipients": [
                "EmailAddress": {
                    "Name": "Admin",
                    "Address": "admin@adatum.onmicrosoft.com"
        "InferenceClassification": "Other"
    

    为发件人创建覆盖

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 创建由 SMTP 地址识别的发件人的替代。将以后来自该 SMTP 地址的邮件一致归为替代中指定的类别。

  • 如果已经存在具有相同 STMP 地址的覆盖,则用提供的值更新那个覆盖的 ClassifyAs名称 字段。
  • 基于唯一发件人的 SMTP 地址,邮箱支持的最大替代数目为 1000 个。
  • POST 操作仅支持一次创建一个替代。 要创建多个替代,你可以发送多个 POST 请求或 批量处理 它们。
  • POST https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides
    POST https://outlook.office.com/api/v2.0/Users('{user_id}')/InferenceClassification/Overrides
    

    新创建的 InferenceClassificationOverride 或更新的 InferenceClassificationOverride 实例是否已经存在具有相同 SMTP 地址的实例。

    POST https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides
        "ClassifyAs": "Focused",
        "SenderEmailAddress": {
            "Name": "Fanny Downs",
            "Address": "fannyd@adatum.onmicrosoft.com"
    
    Status code: 201 Created
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/InferenceClassification/Overrides/$entity",
        "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/InferenceClassificationOverrides('98f5bdef-576a-404d-a2ea-07a3cf11a9b9')",
        "Id": "98f5bdef-576a-404d-a2ea-07a3cf11a9b9",
        "ClassifyAs": "Focused",
        "SenderEmailAddress": {
            "Name": "Fanny Downs",
            "Address": "fannyd@adatum.onmicrosoft.com"
    

    获取所有用户替代

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 获取用户设置为始终以特定方式对来自特定发件人的邮件进行分类的替代。

    每个替代均对应一个发件人的 SMTP 地址。最初,用户没有任何替代。

    GET https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides
    GET https://outlook.office.com/api/v2.0/Users('{user_id}')/InferenceClassification/Overrides
    

    一个 InferenceClassificationOverride 实例的集合。 如果用户没有设置任何覆盖,则返回空的集合。

    GET https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides
    
    Status code: 200 OK
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/InferenceClassification/Overrides",
        "value": [
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/InferenceClassificationOverrides('98f5bdef-576a-404d-a2ea-07a3cf11a9b9')",
                "Id": "98f5bdef-576a-404d-a2ea-07a3cf11a9b9",
                "ClassifyAs": "Focused",
                "SenderEmailAddress": {
                    "Name": "Fanny Downs",
                    "Address": "fannyd@adatum.onmicrosoft.com"
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/InferenceClassificationOverrides('98f5bdef-576a-404d-a2ea-07a3cf34af4r')",
                "Id": "98f5bdef-576a-404d-a2ea-07a3cf34af4r",
                "ClassifyAs": "Other",
                "SenderEmailAddress": {
                    "Name": "Randi Welch",
                    "Address": "randiw@adatum.onmicrosoft.com"
    

    为发件人更新覆盖

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 按指定内容更改覆盖的 ClassifyAs 字段。

    不能在 InferenceClassificationOverride 实例中使用 PATCH 更改任何其他字段。

    如果发件人的覆盖存在,并且发件人更改了他/她的显示名称,可以 使用 POST 强制更新现有覆盖中的名称字段

    如果发件人的替代存在,并且发件人更改了他/她的 SMTP 地址,“更新”此发件人的替代的唯一方法是:删除 现有替代,然后使用新的 SMTP 地址 创建 新替代。

    PATCH https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides('{override_id}')
    PATCH https://outlook.office.com/api/v2.0/Users('{user_id}')/InferenceClassification/Overrides('{override_id}')
    

    更新的 InferenceClassificationOverride 实例。

    以下示例更改了登录用户的替代。 该覆盖是给带有 SMTP 地址 randiw@adatum.onmicrosoft.com 的发件人的,从 Other 更改为 Focused

    PATCH https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides('98f5bdef-576a-404d-a2ea-07a3cf34af4r')
        "ClassifyAs": "Focused"
    
    Status code: 200 OK
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/InferenceClassification/Overrides/$entity",
        "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/InferenceClassificationOverrides('98f5bdef-576a-404d-a2ea-07a3cf34af4r')",
        "Id": "98f5bdef-576a-404d-a2ea-07a3cf34af4r",
        "ClassifyAs": "Focused",
        "SenderEmailAddress": {
            "Name": "Randi Welch",
            "Address": "randiw@adatum.onmicrosoft.com"
    

    删除发件人替代

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 删除由其 ID 指定的替代。

    DELETE https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides('{override_id}')
    DELETE https://outlook.office.com/api/v2.0/Users('{user_id}')/InferenceClassification/Overrides('{override_id}')
    
    DELETE https://outlook.office.com/api/v2.0/me/InferenceClassification/Overrides('98f5bdef-576a-404d-a2ea-07a3cf34af4r')
    
    Status code: 204 No Content
    

    管理 @-Mentions(预览)

    这个功能目前在 beta 版中可用。 要了解详细信息,请在左侧的目录中转到 Office 365 REST API 参考部分,并选择 beta

    管理规则(预览)

    这个功能目前在 beta 版中可用。 要了解详细信息,请在左侧的目录中转到 Office 365 REST API 参考部分,并选择 beta

    取消订阅(预览)

    这个功能目前在 beta 版中可用。 要了解详细信息,请在左侧的目录中转到 Office 365 REST API 参考部分,并选择 beta

    获取语​​言选项(预览)

    此功能目前只在 beta 版中可用。 要了解详细信息,请在左侧的目录中转到 Office 365 REST API 参考部分,并选择 beta

    获取时区选项(预览)

    此功能目前只在 beta 版中可用。 要了解详细信息,请在左侧的目录中转到 Office 365 REST API 参考部分,并选择 beta

    获取邮箱设置

    最低要求的范围

  • https://outlook.office.com/mailboxsettings.read
  • 获取登录用户主邮箱的设置。 设置示例包括用户的首选语言和默认时区以及任何自动回复设置。

    GET https://outlook.office.com/api/v2.0/me/MailboxSettings
    

    MailboxSettings

    在所有邮箱设置中获取首选语言设置:

    GET https://outlook.office.com/api/beta/me/MailboxSettings/Language
    

    LocaleInfo

    在所有邮箱设置中获取首选时区设置:

    GET https://outlook.office.com/api/beta/me/MailboxSettings/TimeZone
    

    以 Windows 时区格式表示首选时区的字符串。

    你也可以 获取具体的自动回答设置

    以下示例获取登录用户的所有邮箱设置。

    GET https://outlook.office.com/api/v2.0/me/MailboxSettings
    
    Status code: 200
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailboxSettings",
        "AutomaticRepliesSetting": {
            "Status": "Scheduled",
            "ExternalAudience": "All",
            "ScheduledStartDateTime": {
                "DateTime": "2016-03-14T07:00:00.0000000",
                "TimeZone": "UTC"
            "ScheduledEndDateTime": {
                "DateTime": "2016-03-28T07:00:00.0000000",
                "TimeZone": "UTC"
            "InternalReplyMessage": "<html>\n<body>\n<p>I'm at our company's worldwide reunion and will respond to your message as soon as I return.<br>\n</p></body>\n</html>\n",
            "ExternalReplyMessage": "<html>\n<body>\n<p>I'm at the Contoso worldwide reunion and will respond to your message as soon as I return.<br>\n</p></body>\n</html>\n"
        "TimeZone": "Pacific Standard Time",
        "Language":{
            "Locale":"en-US",
            "DisplayName":"English (United States)"
    

    获取自动回复设置

    最低要求的范围

  • https://outlook.office.com/mailboxsettings.read
  • 获取登录用户邮箱的自动回复设置。

    自动回复允许你在向你发送电子邮件时自动通知消息人员。 例如,你可以在你没有空并且无法回复他们时通知他们。

    由于自动回复是用户邮箱设置的一部分(以 MailboxSettings 表示),你可以通过获取所有邮箱设置,其中包括自动回复设置,或者通过获取具体的自动回复设置,来查看自动回复设置。

    你可以使用 Prefer: outlook.timezone HTTP 标头来指定首选的时区,以显示 ScheduledStartDateTimeScheduledEndDateTime 的值。

    GET https://outlook.office.com/api/v2.0/me/MailboxSettings/AutomaticRepliesSetting
    

    AutomaticRepliesSetting

    GET https://outlook.office.com/api/v2.0/me/MailboxSettings/AutomaticRepliesSetting
    
    Status code: 200
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailboxSettings/AutomaticRepliesSetting",
        "Status": "AlwaysEnabled",
        "ExternalAudience": "None",
        "ScheduledStartDateTime": {
            "DateTime": "2016-03-19T02:00:00.0000000",
            "TimeZone": "UTC"
        "ScheduledEndDateTime": {
            "DateTime": "2016-03-20T02:00:00.0000000",
            "TimeZone": "UTC"
        "InternalReplyMessage": "<html>\n<body>\n<p>I'm at our company's worldwide reunion and will respond to your message as soon as I return.<br>\n</p></body>\n</html>\n",
        "ExternalReplyMessage": "<html>\n<body>\n<p>I'm at the Contoso worldwide reunion and will respond to your message as soon as I return.<br>\n</p></body>\n</html>\n"
    

    更新自动回复设置

    最低要求的范围

  • https://outlook.office.com/mailboxsettings.readwrite
  • 自动回复是用户邮箱设置的一部分(以 MailboxSettings 表示)。 你可以通过更新相应的邮箱设置来启用、配置或禁用自动回复。

    不能创建或删除任何邮箱设置。

    PATCH https://outlook.office.com/api/v2.0/me/MailboxSettings
    

    MailboxSettings

    在获取自动回复设置 前面的示例 之后,下一个示例把 状态AlwaysEnabled 更改为 Scheduled,并将开始日期和结束日期更改为不同的日期范围。

    PATCH https://outlook.office.com/api/v2.0/me/MailboxSettings
    Content-Type: application/json
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailboxSettings",
        "AutomaticRepliesSetting": {
            "Status": "Scheduled",
            "ScheduledStartDateTime": {
              "DateTime": "2016-03-20T18:00:00.0000000",
              "TimeZone": "UTC"
            "ScheduledEndDateTime": {
              "DateTime": "2016-03-28T18:00:00.0000000",
              "TimeZone": "UTC"
    
    Status code: 200
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailboxSettings",
        "AutomaticRepliesSetting": {
            "Status": "Scheduled",
            "ExternalAudience": "None",
            "ScheduledStartDateTime": {
                "DateTime": "2016-03-20T02:00:00.0000000",
                "TimeZone": "UTC"
            "ScheduledEndDateTime": {
                "DateTime": "2016-03-28T02:00:00.0000000",
                "TimeZone": "UTC"
        "InternalReplyMessage": "<html>\n<body>\n<p>I'm at our company's worldwide reunion and will respond to your message as soon as I return.<br>\n</p></body>\n</html>\n",
        "ExternalReplyMessage": "<html>\n<body>\n<p>I'm at the Contoso worldwide reunion and will respond to your message as soon as I return.<br>\n</p></body>\n</html>\n"
        "TimeZone": "Pacific Standard Time",
        "Language":{
            "Locale":"en-US",
            "DisplayName":"English (United States)"
    

    获取 MailTips(预览)

    这个功能目前在 beta 版中可用。 要了解详细信息,请在左侧的目录中转到 Office 365 REST API 参考部分,并选择 beta

    你可以获取附件集合或获取附件。

  • 获取附件集合
  • 获取附件集合

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 获取特定消息的附件。

    GET https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments
    

    默认情况下,响应中的每个附件都包含与该附件类型对应的所有属性。 使用 $select 只指定那些你需要的最佳性能的属性。 始终返回该 ID 属性。 请参阅 OData 查询参数 了解筛选、排序和分页参数。

    一个附件集合,其类型可以为 FileAttachmentItemAttachment

    示例请求和响应

    以下示例显示如何使用 $select 指定在响应中仅返回每个文件附件的 名称 属性。 请参阅 获取附件 中的示例回应,以了解当您不使用 $select 时为一个附件返回的完整属性列表。

    GET https://outlook.office.com/api/v2.0/me/messages/AAMkAGI2THVSAAA=/attachments?$select=Name
    
    Status code: 200
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages('AAMkAGI2THVSAAA%3D')/Attachments(Name)",
        "value": [
                "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2THVSAAA=')/Attachments('AAMkAGI2j4kShdM=')",
                "Id": "AAMkAGI2j4kShdM=",
                "Name": "minutes.docx"
    

    以下示例显示获取 Outlook 邮件项目的唯一附件。 该响应包括附件 ID,该附件 ID 也是附加消息的 ID。

    GET https://outlook.office.com/api/v2.0/me/messages('AAMkADFiNTPAAA=')/attachments
    Content-Type: application/json
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages('AAMkADFiNTPAAA%3D')/Attachments",
      "value": [
          "@odata.type": "#Microsoft.OutlookServices.ItemAttachment",
          "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-20075df800e5@1717622f-1d94-4d0c-9d74-f907ad6677b4')/Messages('AAMkADFiNTPAAA=')/Attachments('AAMkADFiNTAUhhYuYi0=')",
          "Id": "AAMkADFiNTAUhhYuYi0=",
          "Name": "How to retrieve item attachment using Outlook REST API",
          "ContentType": message/rfc822,
          "Size": 71094,
          "IsInline": false,
          "LastModifiedDateTime": "2015-09-24T05:57:59Z",
    

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 获取特定消息的附件

    GET https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments/{attachment_id}
    

    请参阅 OData 查询参数 了解筛选、排序和分页参数。

    默认情况下,响应包含附件的所有属性。 使用 $select 只指定那些你需要的最佳性能的属性。 请参阅示例的 获取附件集合。 始终返回该 ID 属性。 请参阅 OData 查询参数 了解筛选、排序和分页参数。

    请求的 文件附件项目附件

    GET https://outlook.office.com/api/v2.0/me/messages/AAMkAGI2THVSAAA=/attachments/AAMkAGI2j4kShdM=
    
    Status code: 200
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages('AAMkAGI2THVSAAA%3D')/Attachments/$entity",
        "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
        "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2THVSAAA=')/Attachments('AAMkAGI2j4kShdM=')",
        "Id": "AAMkAGI2j4kShdM=",
        "LastModifiedDateTime": "2014-10-20T00:41:52Z",
        "Name": "minutes.docx",
        "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
        "Size": 11585,
        "IsInline": false,
        "ContentId": null,
        "ContentLocation": null,
        "ContentBytes": "UEsDBBQABgAIAAAAIQDCAAA4KQAAAAA="
    

    示例请求(参考附件)

    以下示例获取消息的参考附件。

    GET https://outlook.office.com/api/v2.0/me/messages/AAMkAGE1Mbs88AADUv0uFAAA=/attachments/AAMkAGE1Mbs88AADUv0uFAAABEgAQAPSg72tgf7hJp0PICVGCc0g=
    
    Status code: 200
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/messages('AAMkAGE1Mbs88AADUv0uFAAA%3D')/attachments/$entity",
      "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
      "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAPSg72tgf7hJp0PICVGCc0g=",
      "LastModifiedDateTime": "2016-03-12T06:04:38Z",
      "Name": "Koala picture",
      "ContentType": null,
      "Size": 382,
      "IsInline": false,
      "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
      "ProviderType": "OneDriveBusiness",
      "ThumbnailUrl": null,
      "PreviewUrl": null,
      "Permission": "Edit",
      "IsFolder": false
    

    示例请求(在附件上 $expand)

    以下示例获取并展开与消息属性一致的所有 3 个参考附件。

    GET https://outlook.office.com/api/v2.0/me/messages/AAMkAGE1Mbs88AADUv0uFAAA=/?$expand=attachments
    
    Status code: 200
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/messages/$entity",
      "@odata.etag": "W/\"CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AADZsPav\"",
      "Id": "AAMkAGE1Mbs88AADUv0uFAAA=",
      "CreatedDateTime": "2016-03-08T01:01:57Z",
      "LastModifiedDateTime": "2016-03-12T06:18:54Z",
      "ChangeKey": "CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AADZsPav",
      "Categories": [ ],
      "ReceivedDateTime": "2016-03-08T01:01:57Z",
      "SentDateTime": "2016-03-08T01:01:51Z",
      "HasAttachments": true,
      "InternetMessageId": "<SN2SR0101MB00299F0D7D22EE5D380104ED84B20@SN2SR0101MB0029.namsdf01.sdf.exchangelabs.com>",
      "Subject": "RE: New year activity",
      "Body": {
        "ContentType": "html",
        "Content": "<html>\r\n<<body>Let's gather to celebrate the new year! </body>\r\n</html>\r\n"
      "BodyPreview": "What about the tulips?\r\n________________________________\r\nFrom: Dana Swope <danas@contoso.onmicrosoft.com>\r\nSent: Monday, March 7, 2016 10:51:39 PM\r\nTo: Dana Swope; Culinary Expert Group\r\nSubject: RE: New year activity\r\n\r\nLet's gather to celebrate the new year! ",
      "Importance": "Normal",
      "ParentFolderId": "AQMkAGE1MQN7j5uzzwAAAIBDAAAAA==",
      "Sender": {
        "EmailAddress": {
          "Name": "Dana Swope",
          "Address": "danas@contoso.onmicrosoft.com"
      "From": {
        "EmailAddress": {
          "Name": "Dana Swope",
          "Address": "danas@contoso.onmicrosoft.com"
      "ToRecipients": [
          "EmailAddress": {
            "Name": "Dana Swope",
            "Address": "danas@contoso.onmicrosoft.com"
          "EmailAddress": {
            "Name": "Culinary Expert Group",
            "Address": "Chefs@contoso.onmicrosoft.com"
      "CcRecipients": [ ],
      "BccRecipients": [ ],
      "ReplyTo": [ ],
      "ConversationId": "AAQkAGE1MMM2SaRFsKgx7BKVfig=",
      "ConversationIndex": "AQHRaThgdSG4wzZJpEWwqDHsEpV+KJ9OtWGUgAAkYLI=",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsRead": true,
      "IsDraft": false,
      "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1Mbs88AADUv0uFAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
      "InferenceClassification": "Focused",
      "UnsubscribeData": [ ],
      "UnsubscribeEnabled": false,
      "Flag": { "FlagStatus": "NotFlagged" },
      "Attachments@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/messages('AAMkAGE1Mbs88AADUv0uFAAA%3D')/attachments",
      "Attachments": [
          "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
          "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=",
          "LastModifiedDateTime": "2016-03-12T05:54:31Z",
          "Name": "Personal pictures",
          "ContentType": null,
          "Size": 362,
          "IsInline": false,
          "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics",
          "ProviderType": "OneDriveBusiness",
          "ThumbnailUrl": null,
          "PreviewUrl": null,
          "Permission": "edit",
          "IsFolder": true
          "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
          "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAPSg72tgf7hJp0PICVGCc0g=",
          "LastModifiedDateTime": "2016-03-12T06:04:38Z",
          "Name": "Koala picture",
          "ContentType": null,
          "Size": 382,
          "IsInline": false,
          "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
          "ProviderType": "OneDriveBusiness",
          "ThumbnailUrl": null,
          "PreviewUrl": null,
          "Permission": "edit",
          "IsFolder": false
          "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
          "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAO3wkFiM3KlCpn81m8qS1W0=",
          "LastModifiedDateTime": "2016-03-12T06:18:54Z",
          "Name": "Hydrangea picture",
          "ContentType": null,
          "Size": 412,
          "IsInline": false,
          "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
          "ProviderType": "OneDriveBusiness",
          "ThumbnailUrl": null,
          "PreviewUrl": null,
          "Permission": "edit",
          "IsFolder": false
    

    示例请求(嵌套附件项目上的 $expand)

    下面的示例获取嵌套附件项。

    GET https://outlook-sdf.office.com/api/v2.0/me/messages/AAMkAGE1Mbs88AADUv0uFAAA=/attachments/AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=$expand=Microsoft.OutlookServices.ItemAttachment/Item
    
    Status code: 200
        "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=",
        "LastModifiedDateTime": "2017-04-25T20:05:55Z",
        "Name": "RE: Changes to GetConditionMetadata handler",
        "ContentType": null,
        "Size": 78927,
        "IsInline": false,
        "Item": {
            "Id": "", 
            "Name": "How to retrieve item attachment using Outlook REST API",
            "ContentType": message/rfc822,
            "Size": 71094,
            "IsInline": false,
            "LastModifiedDateTime": "2015-09-24T05:57:59Z",
    

    你可以创建一个文件附件或 创建一个消息项目附件。

  • 创建文件附件
  • 创建项目附件
  • 创建参考附件
  • 创建文件附件

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 添加文件附件到消息。

    POST https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments
    

    以下示例将参考附件添加到现有消息。 附件是 OneDrive for Business 上的文件的链接。

    POST https://outlook.office.com/api/v2.0/me/messages/AAMkAGE1Mbs88AADUv0uFAAA=/attachments
    Content-Type: application/json
        "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment", 
        "Name": "Koala picture", 
        "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg", 
        "ProviderType": "oneDriveBusiness", 
        "Permission": "Edit", 
        "IsFolder": "False" 
    
    Status code: 201 Created
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/messages('AAMkAGE1Mbs88AADUv0uFAAA%3D')/attachments/$entity",
      "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
      "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAPSg72tgf7hJp0PICVGCc0g=",
      "LastModifiedDateTime": "2016-03-12T06:04:38Z",
      "Name": "Koala picture",
      "ContentType": null,
      "Size": 382,
      "IsInline": false,
      "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
      "ProviderType": "oneDriveBusiness",
      "ThumbnailUrl": null,
      "PreviewUrl": null,
      "Permission": "edit",
      "IsFolder": false
    

    以下示例在与创建草稿消息相同的调用中添加参考附件。 附件是 OneDrive for Business 上的文件的链接。

    POST https://outlook.office.com/api/v2.0/me/messages
    Content-Type: application/json
        "Subject": "Plan for dinner",
        "Body": {
          "ContentType": "HTML",
          "Content": "Office anniversary is coming soon!"
        "ToRecipients": [
            "EmailAddress": {
              "Address": "randiw@contoso.onmicrosoft.com"
        "Attachments": [
            "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment", 
            "Name": "Hydrangea picture", 
            "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg", 
            "ProviderType": "oneDriveBusiness", 
            "Permission": "Edit", 
            "IsFolder": "False" 
    
    Status code: 201 Created
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/messages/$entity",
      "@odata.etag": "W/\"CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AADZ8qi1\"",
      "Id": "AAMkAGE1Mbs88AADZ0CU9AAA=",
      "CreatedDateTime": "2016-03-12T09:04:54Z",
      "LastModifiedDateTime": "2016-03-12T09:04:54Z",
      "ChangeKey": "CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AADZ8qi1",
      "Categories": [ ],
      "ReceivedDateTime": "2016-03-12T09:04:54Z",
      "SentDateTime": "2016-03-12T09:04:54Z",
      "HasAttachments": true,
      "InternetMessageId": "<BL2SR0101MB00188944566BDECE6EDE57F384B60@BL2SR0101MB0018.namsdf01.sdf.exchangelabs.com>",
      "Subject": "Plan for dinner",
      "Body": {
        "ContentType": "html",
        "Content": "<html>\r\n<body>\r\nOffice anniversary is coming soon!\r\n</body>\r\n</html>\r\n"
      "BodyPreview": "Office anniversary is coming soon!",
      "Importance": "normal",
      "ParentFolderId": "AQMkAGE1MQN7j5uzzwAAAIBDwAAAA==",
      "Sender": null,
      "From": null,
      "ToRecipients": [
          "EmailAddress": {
          "Name": "Randi Welch",
          "address": "randiw@contoso.onmicrosoft.com"
      "CcRecipients": [ ],
      "BccRecipients": [ ],
      "ReplyTo": [ ],
      "ConversationId": "AAQkAGE1MMAAQAJk0cqqggzpKtIHErqyDkcU=",
      "ConversationIndex": "AQHRfD4+mTRyqqCDOkq0gcSurIORxQ==",
      "IsDeliveryReceiptRequested": false,
      "IsReadReceiptRequested": false,
      "IsRead": true,
      "IsDraft": true,
      "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1Mbs88AADZ0CU9AAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
      "InferenceClassification": "focused",
      "UnsubscribeData": [ ],
      "UnsubscribeEnabled": false,
      "Flag": { "flagStatus": "notFlagged" },
      "Attachments@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/messages('AAMkAGE1Mbs88AADZ0CU9AAA%3D')/attachments",
      "Attachments": [
          "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
          "Id": "AAMkAGE1Mbs88AADZ0CU9AAABEgAQAGe4H1iqXwtLsrCCLLkDxqo=",
          "LastModifiedDateTime": null,
          "Name": "Hydrangea picture",
          "ContentType": null,
          "Size": 0,
          "IsInline": false,
          "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
          "ProviderType": "oneDriveBusiness",
          "ThumbnailUrl": null,
          "PreviewUrl": null,
          "Permission": "edit",
          "IsFolder": false
    

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 删除消息的指定附件。 附件可以是 文件附件项目附件

    DELETE https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments/{attachment_id}
    
    DELETE https://outlook.office.com/api/v2.0/me/messages/AAMkAGE0Mz8S-AAA=/attachments/AAMkAGE0Mg67gL7o=
    
    Status code: 204
    

    获取文件夹

    你可以获取文件夹集合或获取用户邮箱中的文件夹。

  • 获取文件夹集合
  • 获取文件夹
  • 获取文件夹集合

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 获取登录用户 (.../me/MailFolders) 的根文件夹下或指定的文件夹下的文件夹集合。 你可以使用 .../me/MailFolders 快捷方式获取顶级文件夹集合并导航到另一个文件夹。

    GET https://outlook.office.com/api/v2.0/me/MailFolders
    GET https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}/childfolders
    

    请参阅 OData 查询参数 了解筛选、排序和分页参数。

    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders", "value": [ "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAEKAAA=')", "Id": "AAMkAGI2AAEKAAA=", "DisplayName": "Deleted Items", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 0, "TotalItemCount": 1 "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAEPAAA=')", "Id": "AAMkAGI2AAEPAAA=", "DisplayName": "Drafts", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 0, "TotalItemCount": 0 "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAEMAAA=')", "Id": "AAMkAGI2AAEMAAA=", "DisplayName": "Inbox", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 6, "TotalItemCount": 6 "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAEeAAA=')", "Id": "AAMkAGI2AAEeAAA=", "DisplayName": "Junk Email", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 0, "TotalItemCount": 0 "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAELAAA=')", "Id": "AAMkAGI2AAELAAA=", "DisplayName": "Outbox", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 0, "TotalItemCount": 0 "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAEJAAA=')", "Id": "AAMkAGI2AAEJAAA=", "DisplayName": "Sent Items", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 0, "TotalItemCount": 3

    请求的 文件夹 集合。

    获取文件夹

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • 通过 ID 获取文件夹。

    GET https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}
    

    获取用户共享的邮箱文件夹:

    GET https://outlook.office.com/api/v2.0/users/{user_id}/mailFolders/{folder_id}
    

    请参阅 OData 查询参数 了解筛选、排序和分页参数。

    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders/$entity", "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGI2AAEMAAA=')", "Id": "AAMkAGI2AAEMAAA=", "DisplayName": "Inbox", "ParentFolderId": "AAMkAGI2AAEIAAA=", "ChildFolderCount": 0, "UnreadItemCount": 6, "TotalItemCount": 6

    获取由其他用户共享的文件夹:

    GET https://outlook.office.com/api/v2.0/users/8c14ebe1-e4ba-4232cd011db47/mailFolders/AAMkADk0MGFkODE3LWE4MmYtNDRhOS04OGQxLTM
    
    HTTP/1.1 200 OK
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders/$entity",
        "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkADk0MGFkODE3LWE4MmYtNDRhOS04OGQxLTM')",
        "Id": "AAMkADk0MGFkODE3LWE4MmYtNDRhOS04OGQxLTM",
        "DisplayName": "Inbox",
        "ParentFolderId": "AAMkADk0MGFkODE3LWE4MmYtNDRhOS04OGQxLTM4QCHGmLqkYhISaO_lSymODLQABa6L5YpAAA=",
        "ChildFolderCount": 4,
        "UnreadItemCount": 27962,
        "TotalItemCount": 64420
    

    请求的 文件夹

    同步文件夹层次结构

    你可以获取邮箱中所有文件夹的常量表。 在同步邮件文件夹层次结构时,请求这个类别。

    文件夹类别

    你只能同步每个文件夹类别的顶级。 例如,你可以请求 Me/MailFolders 但不可以请求 Me/MailFolders('收件箱')

    同步支持检索层次结构中所有文件夹的完全同步以及检索自上次完全同步后发生更改的所有文件夹的增量同步。

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.read
  • wl.imap
  • GET https://outlook.office.com/api/v2.0/me/MailFolders
    
    POST https://outlook.office.com/api/v2.0/me/MailFolders/inbox/childfolders
    Content-Type: application/json
      "DisplayName": "Company"
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders('inbox')/ChildFolders/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGE0Mz-l_AAA=')",
      "Id": "AAMkAGE0Mz-l_AAA=",
      "ParentFolderId": "AAMkAGE0MAAEMAAA=",
      "DisplayName": "Company",
      "ChildFolderCount": 0,
      "UnreadItemCount": 2,
      "TotalItemCount": 27
    

    新的 文件夹

    你无法创建顶级文件夹。 你只能将文件夹添加到 childfolders 端点。

    更新文件夹

    更改文件夹名。

  • 更新文件夹
  • 更新文件夹

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 将文件夹名更改为 DisplayName 中指定的名称 。 该名称是 文件夹 的唯一可写属性。

    PATCH https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}
    
    PATCH https://outlook.office.com/api/v2.0/me/MailFolders/AAMkAGE0Mz-l_AAA=
    Content-Type: application/json
      "DisplayName": "Business"
    
    Status code: 200
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGE0Mz-l_AAA=')",
      "Id": "AAMkAGE0Mz-l_AAA=",
      "ParentFolderId": "AAMkAGE0MAAEMAAA=",
      "DisplayName": "Business",
      "ChildFolderCount": 0,
      "UnreadItemCount": 4,
      "TotalItemCount": 38
    

    更新的 文件夹

    删除文件夹

    删除一个文件夹及其所有内容。

  • 删除文件夹
  • 删除文件夹时要小心。 已删除内容可能无法恢复。 要了解更多信息,请参阅 删除项目

    删除文件夹

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 删除 folder_id 中指定的文件夹。

    DELETE https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}
    
    POST https://outlook.office.com/api/v2.0/me/MailFolders/AAMkAGE0Mz-l_AAA=/move
    Content-Type: application/json
      "DestinationId": "AAMkAGE0MyxQ9AAA="
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGE0Mz-l_AAA=')",
      "Id": "AAMkAGE0Mz-l_AAA=",
      "ParentFolderId": "AAMkAGE0MyxQ9AAA=",
      "DisplayName": "Business",
      "ChildFolderCount": 0,
      "UnreadItemCount": 4,
      "TotalItemCount": 38
    

    移动了的 文件夹

    复制文件夹

    最低要求的范围

    以下各项之一:

  • https://outlook.office.com/mail.readwrite
  • wl.imap
  • 通过使用 复制 方法将文件夹及其内容复制到另一个文件夹。

    POST https://outlook.office.com/api/v2.0/me/MailFolders/{folder_id}/copy
    
    POST https://outlook.office.com/api/v2.0/me/MailFolders/AAMkAGE0Mz-l_AAA=/copy
    Content-Type: application/json
      "DestinationId": "inbox"
    
    Status code: 201
      "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/MailFolders/$entity",
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/MailFolders('AAMkAGE0Mz-mAAAA=')",
      "Id": "AAMkAGE0Mz-mAAAA=",
      "ParentFolderId": "AAMkAGE0MAAEMAAA=",
      "DisplayName": "Business",
      "ChildFolderCount": 0,
      "UnreadItemCount": 4,
      "TotalItemCount": 38
    

    文件夹 的新副本。

    无论你准备开始构建应用还是只想了解更多信息,我们都已为你考虑周全。

  • 开始使用邮件、日历和联系人 REST API
  • 想要查看一些示例吗? 我们就有
  • 或者,了解有关使用 Office 365 平台的更多信息:

  • Outlook 开发人员中心的 Outlook REST API
  • Office 365 平台开发概述
  • Office 365 应用验证和资源授权
  • 将应用手动注册到 Azure AD,以便访问 Office 365 API
  • 日历 API 参考
  • 联系人 API 参考
  • 任务 REST API (预览)
  • OneDrive API
  • 发现服务 REST API 操作参考
  • 邮件、日历、联系人和任务 REST API 的资源参考
  •