调用Microsoft Graph API读取租户用户邮件遇ErrorItemNotFound错误求助
问题排查:读取租户用户邮件返回ErrorItemNotFound错误
我尝试读取租户内某用户的邮件,管理员已为应用授予以下权限:
offline_access AccessReview.Read.All AccessReview.ReadWrite.All Channel.ReadBasic.All ChannelMessage.Read.All ChannelSettings.Read.All Chat.Read ChatMessage.Read DelegatedPermissionGrant.ReadWrite.All Directory.Read.All Directory.ReadWrite.All Mail.Read Mail.Read.Shared Mail.ReadBasic Mail.ReadWrite MailboxSettings.Read openid profile TeamMember.Read.All TeamSettings.Read.All User.Read User.Read.All User.ReadBasic.All email
但在Graph Explorer和PHP代码中调用端点 https://graph.microsoft.com/v1.0/users/<user_email>/messages 时,均返回如下错误:
"error": { "code": "ErrorItemNotFound", "message": "The specified object was not found in the store., Default folder AllItems not found.", "innerError": { "date": "2022-11-29T09:16:49", "request-id": "2449c64a-9aa8-479d-8de4-923a2a306583", "client-request-id": "5eb26a2e-54da-bba2-0adf-4fa7bca43df2" } }
附带AD权限设置截图:AD权限截图
可能的问题原因排查
- 目标用户邮箱未配置/不存在:错误提示“Default folder AllItems not found”,大概率是该用户没有Exchange Online邮箱,或邮箱未完成初始化。可先调用
https://graph.microsoft.com/v1.0/users/<user_email>/mailFolders验证是否能获取邮箱文件夹,若仍返回找不到的错误,说明用户邮箱未启用或未创建。 - 权限类型与调用方式不匹配:确认权限类型是应用权限还是委派权限。如果用客户端凭据流(应用权限),需确保授予的是
Mail.Read应用权限;如果是委派流,需确保登录用户有访问目标邮箱的权限,或配置邮箱共享并使用Mail.Read.Shared权限。 - 用户邮箱状态异常:检查目标用户邮箱是否处于禁用、归档、软删除状态,可通过Exchange管理中心或Azure AD后台确认。
- 端点参数错误:核实
<user_email>是租户内有效的用户主体名称(UPN)或邮箱地址,避免拼写错误或格式错误。 - 权限未生效:部分Graph权限授予后需要数分钟到数小时才能生效,可等待一段时间后重新测试。
内容的提问来源于stack exchange,提问作者Benjamin Mwendwa Munyoki
相关产品推荐
相关产品推荐

