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

使用OAuth2令牌发送Microsoft 365邮件时SMTP认证失败及权限疑问

SMTP OAuth2 认证失败问题排查与解决

一、获取https://outlook.office.com/SMTP.Send权限的步骤

  • 进入Azure AD应用注册的「API权限」页面,点击「添加权限」
  • 选择「Microsoft Graph」→ 切换到「应用权限」标签(因你使用client_credentials授权类型,需申请应用级权限)
  • 在权限搜索框输入SMTP.Send,即可找到归属为Outlook的该权限(注意区分Microsoft Graph下的同名权限,部分场景需使用Outlook域的权限)
  • 添加权限后,务必点击「授予管理员同意」,否则权限无法生效

二、Client Credentials授权类型的核心问题

  • Client Credentials是应用自身身份认证,而非用户身份,因此无法直接以普通用户邮箱身份发送邮件
  • 该模式下获取令牌时,必须指定范围为https://outlook.office.com/.default,而非Microsoft Graph的范围
  • 发送邮件时,SMTP用户名需填写租户内已授权的邮箱地址,同时确保该邮箱在Microsoft管理中心已启用「Authenticated SMTP」

三、额外排查项

  • 用jwt.ms解析获取到的令牌,确认aud(受众)字段值为https://outlook.office.com,否则令牌无效
  • 检查SMTP服务器配置:服务器地址smtp.office365.com,端口587,强制启用TLS加密
  • 若需模拟特定用户发送邮件,建议切换为Authorization Code授权类型,该类型需用户完成授权流程,可直接指定https://outlook.office.com/SMTP.Send范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:43:17