我正在尝试编写一个脚本,根据电子表格上的输入向特定的人发送电子邮件。我无法收到要发送的电子邮件。我希望这个脚本能做X事:
这是我当前的脚本代码:
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);
}
}
}
答案 0 :(得分:0)
我使用此脚本在表单提交时向用户发送电子邮件。您可以从处理网络表单的Google电子表格中运行它。
var EMAIL_SENT = "Email_Sent";
function sendEmails2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var startRow = 2; //starts checking from row 2
var numRows = 1000; //to handle at least the first 1000 rows
var dataRange = sheet.getRange(startRow, 1, numRows, 1000)
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0]; //gets the email address of the user in Col 1
var message = row[1]; // gets the message from Col 2
var emailSent = row[2]; // writes "Email_Sent" in Col 3
if (emailSent != EMAIL_SENT) {
var subject = "Place your default subject";
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}