如何通过Graph API以其他用户身份向O365组发送邮件?
关于Graph API向Office 365组发送邮件自定义发件人的解决方案
可通过两种方式实现该需求,具体适配方案如下:
方案1:使用sendMail通用发信接口(更推荐)
无需调用组专属的会话线程接口,直接将邮件收件人设置为目标Office 365组的邮箱地址即可,完全复用你已知的代发逻辑:
- 确保生成令牌的用户已经在Exchange管理中心获得了目标代发身份的发送为权限
- 调用
sendMail接口时,在请求体中显式指定from和sender字段为你需要展示的发件人信息 - 需提前确认目标O365组开启了允许外部/非成员发信的配置,避免邮件被拒收
方案2:若必须保留邮件在组的会话历史中
如果你需要邮件同步显示在O365组的会话线程列表里,必须使用conversation/post/threads接口的话,可以通过以下方式实现:
- 直接以你需要作为发件人的用户身份申请委派权限令牌,使用该令牌调用对应组会话接口
- 可通过OAuth 2.0的资源所有者密码凭证流、证书服务主体绑定用户身份的方式获取对应用户的令牌,无需交互式登录
通用验证排查项
- 接口返回403错误时,优先检查令牌的权限范围是否包含
Mail.Send或Group.ReadWrite.All委派权限 - 确认代发权限配置生效后等待15分钟再进行测试,Exchange权限配置存在一定的同步延迟
内容的提问来源于stack exchange,提问作者Rafa Ayadi
相关产品推荐
相关产品推荐

