如何在JavaScript中通过Microsoft Graph API v1.0发送多抄送收件人邮件
修复Microsoft Graph API发送带多抄送邮件的BadRequest错误
你的请求返回BadRequest错误,核心有三个问题,对应修改如下:
错误原因及修复点
- ccRecipients类型不匹配:你用
JSON.stringify()把数组转成了字符串,但Graph API要求该字段必须是对象数组,不能是字符串。 - 字段名拼写错误:收件人对象里的邮箱字段写成了
addresss(多了一个s),正确字段名是address。 - 潜在的邮箱格式问题:拆分后的邮箱地址可能包含前后空格,会导致邮箱无效,需要清理。
修改后的完整代码
var ccaddresses = current.getValue('copied').split(','); var ccRe = []; for (i = 0; i < ccaddresses.length; i++) { // 清理邮箱地址的前后空格,避免无效格式 var cleanAddress = ccaddresses[i].trim(); ccRe.push({ "emailAddress": { "address": cleanAddress // 修正字段名拼写错误 } }); } // 构造请求体 var requestBody = { "message": { "subject": current.getValue('subject'), "body": { "contentType": "html", "content": current.getValue('body') }, "toRecipients": [{ "emailAddress": { "address": current.getValue('direct') } }], "ccRecipients": ccRe // 直接传入数组,无需JSON.stringify }, "saveToSentItems": true // 改用布尔值,更符合API schema规范 };
关键修改说明
- 移除
JSON.stringify(ccRe),直接将数组赋值给ccRecipients,完全匹配API要求的数组类型。 - 修正
addresss为address,确保字段名符合Graph API的收件人对象结构。 - 增加
trim()处理邮箱地址,避免拆分后残留的空格导致邮箱格式无效。 - 可选优化:将
"saveToSentItems": "true"改为布尔值true,API原生支持该类型,更规范。
内容的提问来源于stack exchange,提问作者Brijmohan
相关产品推荐
相关产品推荐

