繁体   English   中英

Google脚本:sendEmail到密件抄送列表时出错

[英]Google Scripts: Error when sendEmail to bcc list

我正在尝试编写脚本以将电子邮件发送到Google电子表格中的通讯组列表。 在将其移至实时环境之前,我使用的列表中只有3个电子邮件地址的测试表。 我希望将其发送给我,并在名单上的每个人都抄送。 如果我将电子邮件地址列表放在sendEmail的收件人位置中,则脚本可以正常工作,但是当我尝试使用sendEmail的密件抄送高级参数将电子邮件地址移至密件抄送位置时,脚本将无法正常工作。 在这种情况下,我得到以下错误:

遇到错误:无效的电子邮件:[L; @ 130cab11

在此错误中,每次我运行脚本时,“ 130cab11”部分都会更改。 脚本唯一一致的部分是“遇到错误:无效的电子邮件:[L; ...”

我的脚本的相关部分如下:

// Retrieve data for the Email that will be sent///
   var email_column = ss.getSheetByName(sendtosheet)
   var lastrow = email_column.getLastRow()
   var get_email_data = email_column.getRange(2,2,lastrow-1,1).getValues()
   var emailTemplate = ss.getSheetByName("Email Templates").getRange("B1").getValue()
   var aliases = GmailApp.getAliases();
      Logger.log(aliases)

//Format the email
   var advancedArgs = {bcc:get_email_data,from: aliases[0]}
   var Self = "MyEmail@mycompany.com"
   var subject = "INVITE: Upcoming Focus Group Session";
   var message = emailTemplate

//Send the email
   GmailApp.sendEmail(Self, subject, message, advancedArgs)

如果我不使用bcc参数发送电子邮件并且具有如下结构的sendEmail代码,则此代码可以正常工作:

//Send the email
   GmailApp.sendEmail(get_email_data, subject, message, {from: aliases[0]})

我搜索了stackoverflow和google脚本手册以及我能想到的其他地方,因此将不胜感激。

您需要提供密件抄送列表作为字符串。

var get_email_data = email_column.getRange(2,2,lastrow-1,1).getValues()

在上面的语句之后, get_email_data包含对象的二维数组,其内容在指示的范围内。 这就是为什么该错误消息抱怨[L;...当它想要一个字符串时有一个数组,但是却盲目地将其视为字符串并感到困难。

在执行此操作之前:

 var advancedArgs = {bcc:get_email_data,from: aliases[0]}

...您需要将数组的内容连接到包含逗号分隔的子字符串列表的字符串中。 幸运的是,即使对于此二维数组,Array方法.toString()也会做到这一点。

var get_email_data = email_column.getRange(2,2,lastrow-1,1).getValues()
                                 .toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM