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

Apps Script中MailApp.sendEmail传数组收件人报错求助

解决MailApp.sendEmail参数不匹配的报错

这个问题我太熟悉了!你碰到的报错核心就是参数类型不匹配,咱们来一步步拆解:

为什么会报错?

报错提示:

Exception: The parameters (number[],String,String,(class)) don't match the method signature for MailApp.sendEmail.

这里的关键是number[]——你传给sendEmail的收件人列表email_list_S1是一个数字数组,但MailApp.sendEmail要求收件人参数必须是:

  • 单个邮箱字符串,或者
  • 逗号分隔的多邮箱字符串,或者
  • 字符串类型的邮箱数组

你的email_list_S1是通过map(elem => elem[0])生成的,这里elem[0]对应的单元格值被Google Sheets识别成了数字类型(比如邮箱格式被误解析,或者单元格是空值自动转成了数字),导致最终数组不符合方法要求。

两种可行的解决方案

方案1:强制将每个邮箱转为字符串类型

修改生成email_list_S1的代码,在map时把每个元素强制转成字符串:

var email_list_S1 = data2.filter(function(item){
  return item[15]=="ON" && item[9]=="S1" && item[436] =="";
}).map(elem => String(elem[0])); // 用String()强制转换为字符串类型

方案2:转成你已经验证可行的逗号分隔字符串

如果转字符串数组还是有问题,可以直接把数组拼接成你之前用的逗号分隔格式:

var email_list_S1 = data2.filter(function(item){
  return item[15]=="ON" && item[9]=="S1" && item[436] =="";
}).map(elem => String(elem[0])).join(','); // 拼接为逗号分隔的字符串

验证效果

修改后,email_list_S1要么是符合要求的字符串数组,要么是你已经确认可行的逗号分隔字符串,就能顺利调用MailApp.sendEmail啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:02:44