You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph API修改Office 365邮件标记属性及相关疑问

关于Microsoft Graph API Office 365的两个问题解答

1. 创建非草稿状态的收件箱邮件

从EWS转到Graph API,确实会发现创建邮件的逻辑有些不同。Graph API默认创建的邮件是草稿状态,但你可以通过显式设置属性来生成非草稿的已接收邮件,直接出现在收件箱里。

具体操作是调用POST /users/{user-id}/messages接口,在请求体里必须设置以下关键属性:

  • isDraft: false:明确标记为非草稿
  • receivedDateTime:指定邮件的接收时间
  • sender和from:设置发件人信息(可以是外部邮箱或内部用户)
  • toRecipients:收件人列表
  • subject和body:邮件主题和内容

另外要确保你的应用拥有Mail.ReadWrite权限(委托或应用权限都可以)。

举个请求体的示例:

{
  "subject": "测试非草稿收件箱邮件",
  "body": {
    "contentType": "Text",
    "content": "这是直接生成的已接收邮件,不是草稿"
  },
  "toRecipients": [
    {
      "emailAddress": {
        "address": "recipient@example.com",
        "name": "收件人姓名"
      }
    }
  ],
  "sender": {
    "emailAddress": {
      "address": "sender@example.com",
      "name": "发件人姓名"
    }
  },
  "from": {
    "emailAddress": {
      "address": "sender@example.com",
      "name": "发件人姓名"
    }
  },
  "receivedDateTime": "2024-05-20T10:30:00Z",
  "isDraft": false
}

发送这个请求后,邮件会直接出现在指定用户的收件箱中,状态是已接收(非草稿)。

2. 修改邮件标记属性

你说得没错,目前Graph API的Beta版本提供了更全面的邮件标记属性修改能力,稳定版(v1.0)的支持相对有限。下面分几种常见场景给你示例:

场景1:修改已读/未读状态

使用PATCH /users/{user-id}/messages/{message-id}接口,请求体设置isRead属性:

{
  "isRead": true
}

场景2:添加或修改分类(Categories)

同样用PATCH请求,更新categories数组:

{
  "categories": ["重要", "待跟进"]
}

场景3:设置跟进标记(Follow-up Flag)

Beta版本支持followUpFlag属性,可以设置跟进状态、截止时间等:

{
  "followUpFlag": {
    "flagStatus": "Flagged",
    "dueDateTime": {
      "dateTime": "2024-05-25T17:00:00Z",
      "timeZone": "UTC"
    }
  }
}

注意事项:

  • Beta版本的API可能会有变动,微软不建议在生产环境直接使用,如果你的场景要求稳定性,可能需要等待这些功能进入v1.0稳定版;
  • 操作时需要确保应用拥有对应的权限(比如Mail.ReadWrite);
  • 如果是修改批量邮件的标记,也可以使用POST /users/{user-id}/messages/microsoft.graph.update的批量操作接口,效率更高。

内容的提问来源于stack exchange,提问作者VitalyT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:44:07