Outlook 邮件 REST API 委托访问/模拟?

Outlook Mail REST API Delegate Access / Impersonation?

有没有办法访问某人的电子邮件并代表某人使用其余部分发送电子邮件api?任何代码示例都会有所帮助。

您的意思是像委托场景一样,您作为 UserA 进行身份验证但代表 UserB 发送邮件? REST API 目前不支持这种情况。 但是,该应用程序可以作为该用户访问用户的电子邮件(前提是用户自己登录并同意)。您还可以使用 client credential flow.

为组织中的所有用户征得组织管理员同意

更新:我们现在支持通过 REST APIs 进行委托访问。为此,您的应用必须请求新的权限范围。

如果您使用的是 Azure v2 OAuth2 端点,则有新的范围可以启用此功能。因此,例如,如果您使用 https://outlook.office.com/mail.read 访问用户的邮件,则可以让您对委托邮箱具有相同访问权限的范围将是 https://outlook.office.com/mail.read.shared.

如果您使用的是 Azure v1 OAuth2 终结点,则需要修改应用注册时设置的权限。有可用的新权限,其中包括 "and shared"。例如,授予用户邮件读取权限的权限是 "Read user mail"。委托访问权限为"Read user and shared mail".

一旦您的应用获得了正确的权限,那么访问委托数据与您访问用户数据的方式非常相似。最大的区别是您不能使用 /me URL 段,您必须使用 /users/{user-id},并将 user-id 设置为委托。

例如,要访问 bob@example.com 的收件箱:

GET https://outlook.office.com/api/v2.0/users/bob@example.com/mailFolders/inbox/messages