使用Microsoft Graph对接Outlook时如何添加多个Cc/Bcc收件人?
我来帮你搞定这个Microsoft Graph发送邮件时添加多个抄送、密送收件人的问题!其实问题的核心是要确保请求体里的ccRecipients和bccRecipients是数组类型,而不是单个对象——这也是很多人踩坑的地方。
正确的请求体格式示例
你需要在发送邮件的JSON请求体中,把ccRecipients和bccRecipients定义为数组,每个数组元素是包含emailAddress的对象,里面指定收件人的名称和邮箱地址。以下是完整的可测试示例:
{ "message": { "subject": "测试多抄送密送邮件", "body": { "contentType": "Text", "content": "这是一封带有多个抄送和密送的测试邮件" }, "toRecipients": [ { "emailAddress": { "name": "主收件人", "address": "to@example.com" } } ], "ccRecipients": [ { "emailAddress": { "name": "抄送收件人1", "address": "cc1@example.com" } }, { "emailAddress": { "name": "抄送收件人2", "address": "cc2@example.com" } } ], "bccRecipients": [ { "emailAddress": { "name": "密送收件人1", "address": "bcc1@example.com" } }, { "emailAddress": { "name": "密送收件人2", "address": "bcc2@example.com" } } ] }, "saveToSentItems": true }
常见错误排查
如果你在Graph Explorer测试失败,大概率是以下问题之一:
- 错误地将
ccRecipients/bccRecipients写成单个对象(比如没有用[]包裹) - 收件人对象缺少
emailAddress嵌套层,直接把name和address放在外层 - 邮箱地址格式不合法(比如拼写错误、缺少@符号)
- 权限不足:确保你的应用已申请
Mail.Send权限(委托或应用权限均可,根据你的场景选择)
Graph Explorer测试步骤
- 打开Graph Explorer,登录你的Outlook账号
- 选择HTTP方法为
POST,请求路径填写/me/sendMail - 在请求体中粘贴上面的示例JSON,替换为你自己的邮箱地址
- 点击“Run query”发送请求,成功后会返回202 Accepted状态码
按照这个格式来,你应该就能成功发送带多个抄送和密送的邮件了!
内容的提问来源于stack exchange,提问作者Vedran vranić
相关产品推荐
相关产品推荐

