繁体   English   中英

在使用 Graph API 发送邮件时使用在租户中创建的用户的 userPrincipalName

[英]Using userPrincipalName of a user created in tenant while sending mails using Graph API

我正在使用图形 API https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/sendMail 发送电子邮件。 在将我的租户中已存在的用户的 userPrincipalName 设置为发件人时,它可以完美运行。 在我的租户中创建用户并使用该 userPrincipalName 作为发件人后,我没有看到任何电子邮件被发送。 这是为什么? 我错过了什么吗?

每当您使用委派权限时(即当用户登录时),即使您的管理员已同意Mail.Send.Shared ,它也不会授予对租户中所有邮箱的访问权限。 这些 OAuth 权限不会覆盖为用户设置的权限(和限制)。

如果用户尚未配置具有能够“发送为”notifications@contoso.com 用户的权限,则您将看到此错误。

要使其正常工作,您实际上需要向将使用您的应用程序的所有用户授予“代理发送”权限。

这是一件微妙的事情,当然它有点令人困惑。 在 Azure 门户中,权限的描述略有不同,具体取决于您查看的是应用程序权限还是委派权限

  • Application: Send mail as any user
  • Delegated: Send mail on behalf of others

您可以在此处使用的另一种避免将这些权限授予所有用户(这将允许他们通过 Outlook 等发送)的方法是让您的后端应用程序使用客户端凭据流来获取仅限应用程序的令牌。 在这种情况下,应用程序本身将有权以任何用户的身份发送。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM