以下のスクリプトの目的は、Googleシートからメールを送信することですが、条件が満たされた場合のみ送信します。GoogleのスクリプトからGoogleシートからメールを送信するif条件が機能しない
私のスプレッドシートのM列(12行目)の値は、TRUEまたはFALSEです。セル内で実行されるANDスクリプトに基づいて、セルはTRUEまたはFALSEを表示します。たとえば、TRUEの1つの条件は、列Pが空である(EMAIL_SENTを表示するのではなく)ことです。 ANDステートメントは正常に動作します。
しかし、スクリプトを実行すると、この条件に関係なくメールが送信されます。だから、何かが、私はこのチュートリアルhereに、それをもと
...条件と間違っている...しかし、私はちょうどそのようにそれを実行し、元は私を助けない、どちらか私のために動作するようには思えません推測!
// Create a date object for the current date and time.
var now = new Date();
// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = "EMAIL_SENT";
var SENDYESNO = "FALSE";
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 16)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var title = row[0];
var name = row[2];
var link = row[9];
var emailAddress = row[10]; // First column
var message = row[14]; // Second column
var emailSent = row[16]; // Third column
var date = row[17];
var yesNo = row[12];
if (yesNo != SENDYESNO) { // Prevents sending duplicates
var subject = "Sending emails from a Spreadsheet";
GmailApp.sendEmail(emailAddress, subject, "Dear " + title + " " + name + ", \n\nThis is an email report of your link. \n\nYour link is " + link + " \n\nKind regards,\nName ", {
from: "[email protected]",
name: "My name"});
sheet.getRange(startRow + i, 16).setValue(EMAIL_SENT);
sheet.getRange(startRow + i, 17).setValue(now);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
ありがとうございました! – touto