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

拥有Azure应用凭据,如何用OAuth2调用Microsoft Graph API发送Office365邮件?

正确使用Microsoft Graph OAuth2发送邮件的操作指南

1. 先搞定权限配置(核心前提)

你用的是客户端凭据流(无用户交互的服务端模式),必须在Azure应用注册里配置应用权限(不是委托权限):

  • 搜索添加Mail.Send应用权限
  • 配置完成后必须点击授予管理员同意,否则获取的令牌里不会包含该权限

2. 替换为正确的API端点

客户端凭据流没有用户上下文,/me完全不适用,也不能直接把/me替换成邮箱地址,要使用以下端点:

POST https://graph.microsoft.com/v1.0/users/{发件人邮箱地址}/sendMail

这里的{发件人邮箱地址}必须是当前租户内的有效邮箱账号。

3. 规范请求体格式

请求体必须符合Microsoft Graph的要求,示例如下:

{
  "message": {
    "subject": "测试邮件",
    "body": {
      "contentType": "Text",
      "content": "这是通过Microsoft Graph发送的测试邮件内容"
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "收件人邮箱@example.com"
        }
      }
    ]
  },
  "saveToSentItems": true
}

4. 验证令牌有效性

获取令牌后,可通过JWT解码工具查看roles字段,确认其中包含Mail.Send权限。如果没有,检查权限配置和管理员同意是否完成。

常见问题排查

  • 提示“权限不足”:确认配置的是应用权限而非委托权限,且已完成管理员同意
  • 提示“用户未找到”:确认{发件人邮箱地址}是租户内存在的有效邮箱
  • 请求必须携带头信息:Authorization: Bearer {你的令牌}和Content-Type: application/json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:02:33