Microsoft graph api 无法代表另一个O365 outlook帐户发送电子邮件

Microsoft graph api 无法代表另一个O365 outlook帐户发送电子邮件,microsoft-graph-api,microsoft-graph-mail,Microsoft Graph Api,Microsoft Graph Mail,出于某种原因,“代表发送”功能对我来说失败了。图形始终返回一个错误sendasdeigned(当来自的和发送方字段值不同时) 验证这些帐户是否具有代表彼此发送的正确配置。我花了三天多的时间才把它修好 身份验证期间请求以下权限: openid 电子邮件 profile 离线访问 User.Read Mail.Read Mail.ReadWrite Mail.Read.Shared Mail.ReadWrite.Shared Mail.Send Mail.Send.Shared 对于下面的示例,

出于某种原因,“代表发送”功能对我来说失败了。图形始终返回一个错误sendasdeigned(当来自
发送方
字段值不同时)

验证这些帐户是否具有代表彼此发送的正确配置。我花了三天多的时间才把它修好

身份验证期间请求以下权限:

  • openid
  • 电子邮件
  • profile
  • 离线访问
  • User.Read
  • Mail.Read
  • Mail.ReadWrite
  • Mail.Read.Shared
  • Mail.ReadWrite.Shared
  • Mail.Send
  • Mail.Send.Shared
对于下面的示例,用户Gregory Test希望代表Sem Test发送消息。有效的授权访问令牌(经Gregory Test验证)用于发送电子邮件,但电子邮件传递始终失败

提交的JSON消息示例如下:

{
“信息”:{
“主题”:“尝试代表发送邮件”,
“正文”:{
“内容类型”:“html”,
“内容”:“电子邮件html内容”
},
“发件人”:{
“电子邮件地址”:{
“地址”:“扫描电镜”。test@contoso.com",
“名称”:“Sem测试”
}
},
“发件人”:{
“电子邮件地址”:{
“地址”:“格雷戈里。test@contoso.com",
“名称”:“格雷戈里测试”
}
},
“收件人”:[
{
“电子邮件地址”:{
“地址”:semtestestestes@gmail.com",
“名称”:“Sem Shehovtsov”
}
}
]
}
}
如果
发送方
发件人
设置为相同的值,则工作正常。
发件人
邮箱配置为允许代表其他用户发送邮件


有什么想法吗?

您不需要设置
Sender
属性,Graph会自动为您处理。从:

要从其他用户发送,请在发送到要从中发送的用户的电子邮件地址的邮件上设置
from
属性。您无需设置
发件人
属性-Microsoft Graph将根据授予已登录用户的邮箱权限对其进行适当设置

请尝试此有效负载:

{
   "message":{
      "subject": "Trying to send message on behalf",
      "body":{
         "contentType":"html",
         "content":" email html content "
      },
      "toRecipients":[
         {
            "emailAddress":{
               "address":"semtestestestes@gmail.com",
               "name":"Sem Shehovtsov"
            }
         }
      ],
      "from":{
         "emailAddress":{
            "address":"sem.test@contoso.com",
            "name":"Sem Test"
         }
      },
   }
}

此外,您不需要同时请求
Read
ReadWrite
作用域。
ReadWrite
作用域与
Read
作用域重叠

您不需要设置
Sender
属性,Graph会自动为您处理此问题。从:

要从其他用户发送,请在发送到要从中发送的用户的电子邮件地址的邮件上设置
from
属性。您无需设置
发件人
属性-Microsoft Graph将根据授予已登录用户的邮箱权限对其进行适当设置

请尝试此有效负载:

{
   "message":{
      "subject": "Trying to send message on behalf",
      "body":{
         "contentType":"html",
         "content":" email html content "
      },
      "toRecipients":[
         {
            "emailAddress":{
               "address":"semtestestestes@gmail.com",
               "name":"Sem Shehovtsov"
            }
         }
      ],
      "from":{
         "emailAddress":{
            "address":"sem.test@contoso.com",
            "name":"Sem Test"
         }
      },
   }
}
此外,您不需要同时请求
Read
ReadWrite
作用域。
ReadWrite
作用域与
Read
作用域重叠

删除“发件人”部分不会更改任何内容。删除“发件人”部分不会更改任何内容。