【问题标题】:Google Apps Script: Multiple recipients in GmailApp?Google Apps 脚本:GmailApp 中有多个收件人?
【发布时间】:2013-09-28 21:02:06
【问题描述】:

我可以通过 GmailApp.sendEmail() 向多个收件人发送电子邮件吗?我尝试将收件人地址存储为一个数组,但它似乎没有发送任何一个。

谢谢!

【问题讨论】:

  • 好吧,好像只是延迟发送,可能和this有关。

标签: google-apps-script google-apps-for-education


【解决方案1】:

是的,你可以。

如果您将自己导向 Google Apps 电子表格服务,您可以在 Gmail 方法下看到高级参数。 GmailApp Services

它可能看起来像这样。

GmailApp.sendEmail(recipient, subject, message, {cc: "email1@email.com,email2@email.com"});

我从不喜欢这种方式,如果我要发送给不同数量的人,并且想给每个人发一封电子邮件而不是一个大抄送,我发现的解决方法是:

var emails = ["email1@email.com","email2@email.com","email3@email.com"];
for (var i = 0; i < emails.length; i++) {
  GmailApp.sendEmail(emails[i], subject, message);
}

通过这种方式,您可以通过添加/减去电子邮件来简单地编辑电子邮件数组,而无需更改发送电子邮件的实际代码。唯一的缺点是它会根据您在数组中的地址数量发送 X 封电子邮件(如果您担心达到每日上限),但它仍然有效。

【讨论】:

  • 顺便说一下,您需要在message{ 之间为第四个参数选项添加一个逗号
  • 我将我的收件人电子邮件存储为一个数组,然后简单地进行数组连接以调用 GmailApp.sendEmail 一次而不是多次。 GmailApp.sendEmail(emails.join(', '), subject, message);
【解决方案2】:

收件人参数接受一个字符串,因此您可以简单地将多个收件人写成一个字符串,中间用逗号分隔:

GmailApp.sendEmail('first.last@example.com, your.friend@example.com', ...); 

应该可以。请注意,他们都将彼此视为收件人。

编辑:我试过了,效果很好。

【讨论】:

    【解决方案3】:

    当我有多个地址时,我只是通过一个范围引用列表。下面的脚本示例将发送到名为电子邮件的工作表/选项卡上从 C2:C6 中提取的 5 个电子邮件地址。

        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var emailRange = ss.getSheetByName("Email").getRange(2,3,5,1);
        var emailAddress = emailRange.getValues();
          Logger.log(emailAddress);
        var message = 'Message you wish to enter';
        var subject = 'Verbiage for Subject Line';
       GmailApp.sendEmail(emailAddress, subject, message) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 2019-06-12
      • 2014-10-01
      • 2018-02-16
      • 2023-04-05
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多