从包含数组作为消息的电子表格发送电子邮件

时间:2013-02-07 05:25:43

标签: google-apps-script google-sheets

我正在尝试创建一个脚本,该脚本每天从正在更改的电子表格中发送电子邮件(使用TODAY()函数过滤自身,以便在每天的特定工作表上放置新数据)。我的问题是我需要电子邮件的消息包含一个大约15行和7列的数组。此代码只想抓取一个单元格作为整个消息。

此外,它具有将'EMAIL_SENT'放入单元格以确保它不重新发送它的功能。问题是出于这个目的,我想让它每晚触发并发送一封电子邮件,然后在第二天晚上触发并再次发送相同的电子邮件......阵列中的数据将发生变化。

感谢您的帮助! 亚历

 var EMAIL_SENT = "EMAIL_SENT";
var NA = "N/A";

function sendEmails2() {
  var ss = SpreadsheetApp.openById( 'MY ID' ),
      sheet = ss.getSheetByName( 'Daily Reports' ),
      startRow = 2;  // First row of data to process
  var numRows = 2000;   // Number of rows to process

  var dataRange = sheet.getRange(startRow, 6, numRows, 13)

  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[10];  // First column
    var message = row[11];       // Second column
    var emailSent = row[12];     // Third column
    if ((emailSent != EMAIL_SENT) && ((emailAddress != "#N/A") && (emailAddress != 0))) {  // Prevents sending duplicates
      var subject = row[0];
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 18).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();  
    }
  }
}

1 个答案:

答案 0 :(得分:0)

只需添加电子邮件,即可在邮件的邮件中加入多个单元格。像

这样的东西
var message = "Value1: " + row[10] + "  Value2: " + row[11] ...