有没有办法访问某人的电子邮件并代表某人使用其余的api发送?任何代码示例都会有所帮助。
答案 0 :(得分:4)
您的意思是委托方案,您在此身份验证为UserA,但代表UserB发送邮件? REST API目前不支持该方案。然而,应用程序可以以该用户身份访问用户的电子邮件(前提是用户自己登录并同意)。您还可以使用client credential flow
更新:我们现在通过REST API支持委托访问。为此,您的应用必须申请新的权限范围。
如果您使用的是Azure v2 OAuth2端点,则可以使用新的范围来启用此功能。例如,如果您使用(require (planet jphelps/loop)) ;; Download, install, and
;; use the library.
(loop for n from 1 to 5
do (displayln ...))
访问用户的邮件,那么获得对委托邮箱的相同访问权限的范围将为https://outlook.office.com/mail.read
。
如果您使用的是Azure v1 OAuth2端点,则需要修改应用注册中设置的权限。有新的权限可用,包括"和共享"。例如,提供对用户邮件的读访问权限的权限是"读取用户邮件"。委托访问权限是"读取用户和共享邮件"。
一旦您的应用拥有正确的权限,访问代理数据与访问用户数据的方式非常相似。最大的区别在于您无法使用https://outlook.office.com/mail.read.shared
网址细分,因此您必须使用/me
,并将/users/{user-id}
设置为委托。
例如,要访问bob@example.com' s收件箱:
user-id