使用 mail.send 时 Microsoft Graph OrganizationFromTenantGuidNotFound

Microsoft Graph OrganizationFromTenantGuidNotFound when using mail.send

我想使用 Microsoft Graph,这很有效:

await graphClient.Users["xxxxxxx-xxxx-xxx-xxxx-xxxxxxx"]
                .Request()
                .GetAsync();

这会引发 OrganizationFromTenantGuidNotFound 错误:

await graphClient.Users["xxxxxxx-xxxx-xxx-xxxx-xxxxxxx"]
                .SendMail(message, false)
                .Request()
                .PostAsync()

我使用客户端 ID、租户 ID 和密码作为应用程序进行身份验证。

我在我的应用程序注册中设置了邮件权限并分配了用户。

Graph permissions with admin consent

我尝试将范围定义为“https://graph.microsoft.com/mail.send/.default”,但随后出现此错误:MsalServiceException: AADSTS500011: 资源主体名为https://graph.microsoft.com/mail.send 未在租户中找到...

我也尝试过将新用户添加到我的应用程序注册中,但出现了同样的错误。

我的 AAD 帐户有 Microsoft 365 家庭版订阅,我有一个 Azure 试用帐户。

我还应该检查什么?谢谢!

OrganizationFromTenantGuidNotFound 主要是在没有邮箱时出现。

您应该拥有 Exchange Online 许可证才能使用 SendMail 端点,因为此端点正在处理交换工作负载。而且,由于您在 Azure AD 中指定了权限,您可以简单地将范围添加为 https://graph.microsoft.com/.default,这会提取 Azure AD 中的所有给定权限并添加到您的令牌中。

确保您正在使用客户端凭据流(应用程序上下文)获取应用程序令牌。