【问题标题】:How to use multiple cells for email body, Google Sheets如何使用多个单元格作为电子邮件正文、Google 表格
【发布时间】:2019-06-21 16:31:54
【问题描述】:

我正在使用以下代码从 Google 表格电子表格发送电子邮件。

function email(){
  var rng = SpreadsheetApp.getActiveSheet().getActiveRange()
  var email = rng.getValues(); GmailApp.sendEmail(email[0][0], email[1][0], email[2][0]);
}

选定的 3 个单元格包含电子邮件地址:email[0][0]、主题:email[1][0] 和邮件正文:email[2][0]

代码运行良好,但我希望消息正文由多个单元格组成。因此,例如单元格[2][0], [3][0], [4][0] 将全部包含在消息正文中。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    鉴于您已经定义了变量,您可以使用+ 运算符将这些数组对象相互添加。由于我们正在处理字符串,因此它将连接值。

    GmailApp.sendEmail() 的正确语法如下:

    GmailApp.sendEmail(recipient, subject, body);
    

    因此,您连接这些值的新代码行将是:

    GmailApp.sendEmail(email[0][0], email[1][0], email[2][0] + email[3][0] + email[4][0]);
    

    或者,您可以单独定义 body 变量,然后在 sendEmail() 中调用它,如下所示:

    function email(){
      var rng = SpreadsheetApp.getActiveSheet().getActiveRange();
      var email = rng.getValues();
      var body = email[2][0] + email[3][0] + email[4][0];
      GmailApp.sendEmail(email[0][0], email[1][0], body);
    }
    

    这只是让跟踪电子邮件正文的外观变得更容易一些,因为如果您尝试连接,sendEmail() 的代码行将开始包裹或延伸到您的浏览器窗口之外多个数组对象到一个电子邮件正文中。


    参考资料:

    1. Javascript + Operator
    2. GmailApp.sendEmail()

    【讨论】:

      【解决方案2】:

      由于电子邮件地址:email[0][0]、主题:email[1][0] 和消息正文:email[2][0] 都在第 1 列中。我可能猜想您将每个收件人的内容保存在不同的列中,所以这可能是有道理的让您使用 email[3][0] 到 email[n][0] 来获取此地址的其他信息,然后您可以遍历列以发送多封电子邮件。

      让我们假设 email[3][0] = Salutation 和 email [4][0] 可能包含邮件正文和电子邮件 [5][0] 你的再见。

      因此,电子邮件命令将如下所示:

      GmailApp.sendEmail(email[3][0] + email[3][0] + email[3][0], email[1][0], email[2][0]); }

      如果您在循环中对所有列进行排序,您将用您的索引参数替换零。这可能要复杂得多,具体取决于您的要求有多精细。但进一步发展这个想法需要你没有分享的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-08
        • 1970-01-01
        • 2012-11-21
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多