You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph SDK发送草稿邮件时遇ErrorInvalidRecipients错误

解决Microsoft Graph SDK 5.13.0发送邮件时的ErrorInvalidRecipients错误

问题原因

你创建草稿后直接将返回的draftMessage传入SendMailPostRequestBody发送,而Graph API返回的草稿对象中,收件人字段(如ToRecipients)未被完整保留或序列化,导致发送时系统识别不到有效收件人。

解决方案

不要通过SendMail接口发送草稿,直接调用草稿邮件的Send端点,复用草稿中已有的所有信息(包括收件人):

修改后的代码

var graphMessage = new Message
{
  Subject = "Test",
  Body = new ItemBody
  {
    ContentType = BodyType.Text,
    Content = "Test"
  },
  ToRecipients = new List<Recipient>
  {
    new Recipient
    {
      EmailAddress = new EmailAddress
      {
        Address = "***@***.com"
      }
    }
  }
};

// 创建草稿
var draftMessage = await client.Users["no-reply@***.com"].Messages.PostAsync(graphMessage);

// 此处添加大附件到草稿(示例)
// var largeAttachment = new FileAttachment { /* 附件配置 */ };
// await client.Users["no-reply@***.com"].Messages[draftMessage.Id].Attachments.PostAsync(largeAttachment);

// 直接发送草稿,无需重新构造Message对象
await client.Users["no-reply@***.com"].Messages[draftMessage.Id].Send.PostAsync();

补充说明

如果坚持使用SendMail方法,需确保传入的Message对象包含完整的收件人信息,不能直接复用Graph返回的草稿对象。但针对大附件场景,直接发送草稿是更贴合Graph API最佳实践的方式。

内容的提问来源于stack exchange,提问作者rdadkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:22:11