スプレッドシートの入力に基づいて特定の人に電子メールを送信するスクリプトを作成しようとしています。メールの送信がうまくいかず困っています。このスクリプトで X のことを実行したいと思います。
- タスク リード名の列 4 を監視します。
- 名前の入力に基づいて、適切なリードに電子メールを送信します。
- 重複したメールを送信しないでください。スクリプトは列 8 をチェックし、電子メールが送信されたことを確認し、送信されていない場合は電子メールを送信する必要があります。
- スプレッドシート名を電子メールの件名に挿入し、列 2 を電子メールの本文/メッセージとして使用します。
これが私の現在のスクリプトコードです:
function sendEmail() {
var emailColumn = 8;
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var row = sh.getActiveCell().getRowIndex();
var emailSent = "Yes. Email Sent";
var range = sh.getActiveCell();
var taskLeads = ["noah", "tony", "larry"];
var leadsColumn = 4;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = SpreadsheetApp.getActiveSheet();
if (range.getColumn() == leadsColumn && range.getValue().toLowerCase() == taskLeads[0]) {
var recipient = "email@email.com"; // email address
var body = sh.getRange(row, 2); // Message contained in second column
var subject = "New to do item in " + ss.getName(); //Pulls Spreadsheet name
sh.getRange(row, 10).setValue(body); //Testing
sh.getRange(row, 11).setValue(subject); //Testing
sh.getRange(row, 9).setValue(recipient); //Testing
MailApp.sendEmail(recipient, subject, body);
if (range.getColumn() == emailColumn && range.getValue().toLowerCase() == valueToWatch) {
sh.getRange(row, 8).setValue(emailSent);
}
}
}