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

使用Microsoft Graph应用-only认证读取Outlook.com邮件遇错及可行性咨询

使用Microsoft Graph应用权限读取Outlook.com邮件的问题

我以微软的.NET应用权限教程为基础,尝试使用Microsoft Graph读取我的@outlook.com账户邮件,已完成以下操作:

  • 在Azure账户中创建应用注册,将支持账户类型设置为“任何组织目录中的账户(任何Azure AD目录 - 多租户)和个人Microsoft账户(如Skype、Xbox)”
  • 添加了如下API权限:API权限截图
  • 创建用于ClientSecretCredential的密钥
  • 将我的@outlook.com账户邀请添加到Azure Active Directory中,不确定此步骤是否必要

初始化GraphServiceClient的代码如下:

if (_clientSecretCredential == null)
{
    _clientSecretCredential = new ClientSecretCredential(
        _settings.TenantId, _settings.ClientId, _settings.ClientSecret, new TokenCredentialOptions { AuthorityHost = AzureAuthorityHosts.AzurePublicCloud });
}

if (_appClient == null)
{
    _appClient = new GraphServiceClient(_clientSecretCredential, 
        // 使用默认范围,将请求应用注册中配置的范围
        new[] {"https://graph.microsoft.com/.default"});
}

调用邮件端点时,根据传入的userId不同,会出现两种错误:

userId = "someone_outlook.com#EXT#@MyAzureAdminEmail.onmicrosoft.com"; // 出现下方错误1
userId = "someone@outlook.com"; // 出现下方错误2
userId = "<object_id_guid>"; // 出现下方错误2
var messages = await _appClient.Users[userId].MailFolders["inbox"].Messages
                               .Request()
                               .GetAsync();

错误1:

获取用户出错:状态码:NotFound
Microsoft.Graph.ServiceException: 代码:Request_ResourceNotFound
消息:资源'someone_outlook.com'不存在,或其查询的引用属性对象不存在。

错误2:

获取用户出错:状态码:Unauthorized
Microsoft.Graph.ServiceException: 代码:OrganizationFromTenantGuidNotFound
消息:租户GUID '[guid]'对应的租户不存在。

我未找到任何使用Microsoft Graph和应用-only认证读取Microsoft账户(@outlook.com、@hotmail.com、@live.com)邮件的示例,请问此场景是否可行?

谢谢,
Garry

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:35:19