微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在使用Graph 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等发送),这将使您的后端应用使用客户端凭据流来获取仅应用令牌。在这种情况下,应用程序本身将具有以任何用户身份发送的权限。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。