Outlook Mail REST API委托访问/模拟?

问题描述:

有没有办法访问某人的电子邮件并代表某人使用其余的api发送?任何代码示例都会有所帮助。Outlook Mail REST API委托访问/模拟?

你的意思是像一个委托场景,你被认证为UserA但代表UserB发送邮件? REST API目前不支持该场景。该应用程序可以以该用户的身份访问用户的电子邮件(只要用户自己登录并同意)。您也可以通过使用client credential flow,为组织中的所有用户授予组织管理员同意。

UPDATE:我们现在通过REST API支持委托访问。为了做到这一点,你的应用必须要求新的权限范围。

如果您使用的是Azure v2 OAuth2端点,则会有新的范围启用此功能。因此,例如,如果您通过https://outlook.office.com/mail.read访问用户的邮件,则可以获得对代理邮箱的相同访问权限的范围为https://outlook.office.com/mail.read.shared

如果您使用的是Azure v1 OAuth2端点,则需要修改应用程序注册中设置的权限。有新的权限可用,包括“和共享”。例如,授予读取用户邮件权限是“读取用户邮件”。代理访问的权限是“读取用户和共享邮件”。

一旦您的应用程序具有正确的权限,那么访问委托数据与访问用户数据的方式非常相似。最大的不同之处在于,您无法使用/me网址段,您必须改为使用/users/{user-id},并将user-id设置为代表。

例如,访问[email protected]'s收件箱:

GET https://outlook.office.com/api/v2.0/users/[email protected]/mailFolders/inbox/messages