SendGrid 7.6.2批量收件人发送邮件报错:期望email为字符串
SendGrid多收件人配置错误修正
你的问题出在收件人对象的email字段格式不符合SendGrid的要求:SendGrid不允许单个收件人对象的email值为数组,该字段必须是字符串类型。
正确的多收件人配置方式
有两种可行的写法:
方式1:拆分为多个收件人对象(推荐)
把每个收件人单独写成一个对象,统一放在数组中:
const mailsTo = [ { email: "demo@email.com", name: "demo", type: 'to' }, { email: "demo1@email.com", name: "demo1", type: 'to' } ];
之后直接将这个数组传入send()或sendMultiple()方法即可——单个字符串收件人能正常发送,就是因为符合单个对象的email为字符串的规则。
方式2:使用personalizations字段配置(适合复杂场景)
如果需要给不同收件人设置不同的主题、内容等,可以通过personalizations数组来配置:
const msg = { from: 'your@email.com', subject: '测试邮件', text: '这是测试内容', personalizations: [ { to: [{ email: "demo@email.com", name: "demo" }] }, { to: [{ email: "demo1@email.com", name: "demo1" }] } ] }; sgMail.send(msg);
关于send()和sendMultiple()的区别
send():适合给多个收件人发送相同内容的邮件,直接传多收件人对象数组即可。sendMultiple():适合给不同收件人发送不同内容的邮件,需要配合personalizations数组实现差异化配置。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

