有没有办法使用其他 API 访问某人的电子邮件并代表某人发送?任何代码示例都会有所帮助。
1 回答
你的意思是像一个委托场景,你被认证为 UserA 但代表 UserB 发送邮件?REST API 目前不支持这种情况。但是,该应用程序可以以该用户的身份访问该用户的电子邮件(前提是用户自己登录并同意)。您还可以使用客户端凭据流获得组织中所有用户的组织管理员同意。
更新:我们现在支持通过 REST API 进行委托访问。为此,您的应用必须请求新的权限范围。
如果您使用的是 Azure v2 OAuth2 终结点,则有新的范围可以启用此功能。因此,例如,如果您使用 访问用户的邮件https://outlook.office.com/mail.read
,那么可以让您获得对委托邮箱的相同访问权限的范围将是https://outlook.office.com/mail.read.shared
。
如果您使用的是 Azure v1 OAuth2 终结点,则需要修改应用注册时设置的权限。有新的可用权限将包括“和共享”。例如,授予用户邮件读取权限的权限是“读取用户邮件”。委托访问的权限是“读取用户和共享邮件”。
一旦您的应用程序获得了正确的权限,那么访问委托数据就与您访问用户数据的方式非常相似。最大的区别是您不能使用/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