Google Apps Script中MailApp.sendEmail的抄送/密送使用问题
解决Google Apps Script中MailApp.sendEmail添加抄送/密送的参数错误问题
其实你遇到的问题不是MailApp.sendEmail只支持4个参数,而是你对参数的使用方式不对~
MailApp.sendEmail有几种不同的参数重载形式,你当前用的是**sendEmail(recipient, subject, body, options)**这种结构:
- 前三个参数分别是收件人、主题、纯文本内容
- 第四个参数是一个配置对象,所有额外的邮件设置(比如
htmlBody、cc、bcc、附件等)都要放在这个对象里,而不能作为单独的参数追加在后面。
如果你把cc/bcc单独加在{htmlBody:message}后面,就会导致参数数量超过这个重载形式的上限,自然会报“参数过多”的错误。
正确的写法示例
把cc、bcc和htmlBody放在同一个配置对象里:
// 单个抄送/密送地址 MailApp.sendEmail(emailAddress, subject, message, { htmlBody: message, cc: 'cc_recipient@example.com', bcc: 'bcc_recipient@example.com' }); // 多个抄送/密送地址用逗号分隔 MailApp.sendEmail(emailAddress, subject, message, { htmlBody: message, cc: 'cc1@example.com, cc2@example.com', bcc: 'bcc1@example.com, bcc2@example.com' });
另一种更清晰的重载形式
你也可以直接使用只传一个配置对象的重载,把所有属性都放在对象里,这样更不容易搞混参数顺序:
MailApp.sendEmail({ to: emailAddress, subject: subject, body: message, htmlBody: message, cc: 'cc@example.com', bcc: 'bcc@example.com' });
这样写就不会再出现参数过多的错误啦,所有邮件相关的配置都统一放在一个对象中管理即可。
内容的提问来源于stack exchange,提问作者jon_win
相关产品推荐
相关产品推荐

