変化するスプレッドシートから毎日メールを送信するスクリプトを作成しようとしています(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();
}
}
}