1

変化するスプレッドシートから毎日メールを送信するスクリプトを作成しようとしています(TODAY()関数を使用して自身をフィルタリングし、毎日特定のシートに新しいデータを配置します)。私の問題は、シートから約15行7列の配列を含む電子メールのメッセージが必要なことです。このコードは、メッセージ全体として1つのセルを取得したいだけです。

また、これには「EMAIL_SENT」をセルに入れて再送信しないようにする機能があります。問題はこの目的のためです。毎晩トリガーして1通のメールを送信してから次の夜にトリガーして同じメールを再度送信するようにします...配列内のデータが変更されます。

ご協力いただきありがとうございます!アレックス

 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();  
    }
  }
}
4

1 に答える 1

0

複数のセルを追加するだけで、メールのメッセージに複数のセルを配置できます。何かのようなもの

var message = "Value1: " + row[10] + "  Value2: " + row[11] ...
于 2013-02-07T18:03:52.527 に答える