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

使用Microsoft Graph API访问Office365邮箱报错ErrorNonExistentMailbox求助

解决Microsoft Graph API报错ErrorNonExistentMailbox的问题

Hey,我来帮你排查这个问题——你遇到的ErrorNonExistentMailbox报错,结合守护进程(无头应用)的场景,大概率和权限配置、邮箱状态或者令牌有效性有关,咱们一步步理清楚:

1. 先确认应用权限是否配置到位

守护进程应用走的是应用权限路线(没有用户交互,不能用委派权限),你得确保这两步都做对了:

  • 在应用注册里添加了Mail.Read(或Mail.ReadWrite)的应用权限(不是委派权限);
  • 已经完成管理员同意——权限列表里状态要显示“已授予[你的租户名称]管理员同意”,如果没同意,点一下“授予管理员同意”按钮搞定。

2. 验证用户邮箱的实际状态

虽然你说邮箱存在,但开发者租户里的用户有时候可能邮箱没完全初始化,或者被意外禁用:

  • 去Microsoft 365管理中心,找“用户>活跃用户”,点开对应用户看“邮件”状态是不是“已启用”;
  • 也可以用PowerShell直接查:
    Get-Mailbox -Identity xx@yy.onmicrosoft.com
    
    如果能返回正常的邮箱信息,说明状态没问题;要是报错,就得先启用或者修复这个邮箱。

3. 检查令牌里的权限范围

你的令牌得包含正确的应用权限,找个本地的JWT解码工具(别用在线的,避免泄露敏感信息),看看roles字段里有没有Mail.Read或者对应的邮件权限条目。

  • 如果roles里没这个权限,说明要么权限没加对,要么管理员同意没生效,重新走一遍权限配置流程,再重新获取令牌试试。

4. 确认请求的用户身份格式正确

你请求URL里的xx@yy.onmicrosoft.com必须是租户内有效的用户主体名称(UPN),别用别名或者其他格式,确保和用户在Microsoft 365里的UPN完全一致。

5. 试试用用户ID替代UPN发起请求

有时候UPN可能因为同步问题导致识别异常,你可以换成用户的对象ID来请求:

GET https://graph.microsoft.com/v1.0/users/{user-object-id}/messages

用户的对象ID可以在Microsoft 365管理中心的用户详情页,或者应用注册的“企业应用>用户和组”里找到。

最后补充一点:别忘了确认用户已经分配了Exchange Online许可证——只有有这个许可证的用户,才会有可访问的邮箱哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:02:53