我是Google Apps脚本的新手,我编写了一个脚本,可以在Google电子表格中设置一个群组任务列表,并在今天的任务到期时自动发送人员提醒。
脚本工作正常,但我想改进它,因为在我的脚本中,如果我今天有3个任务,我会收到3封不同的电子邮件。有没有办法每人只发送一封电子邮件,并回顾一下他们今天所有应有的任务?
我已经找了一段时间但找不到任何东西。
非常感谢!
function Reminders() {
var sheet = SpreadsheetApp.getActiveSheet();
var newEmployee = sheet.getRange("C1").getValue();
var sheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
var EMAIL_SENT = "OUI"
var dataRange = sheet.getRange(7, 200, 1, 12) // (sart Row, N° of Rows, Start Column, n° of Columns)
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[4]; // We look for email adress on colum 5
if (emailAddress == "") continue;
var subject = "Reminder - you have a task due today for " + newEmployee;
var message = row[2];
var joursrestants = row[7]; // We look for days left before task deadline in column 8
var statut = row[9]; // We look for task statut in colum 9
if (joursrestants == "0" && statut == "A FAIRE") { // if days left before task = 0 AND status = "A FAIRE" :
// A. We send a reminder Email
MailApp.sendEmail(emailAddress, subject, message, {
name: 'Rappel automatique',
replyTo: 'no-reply@socomore.com',
});
// B. We write in colum 10 that a reminder has been sent
sheet.getRange(startRow + i, 9).setValue(EMAIL_SENT)
SpreadsheetApp.flush();
}
}
}
答案 0 :(得分:0)
有几种方法可以做到。
要使电子邮件包含摘要信息,请在循环中创建一个添加到自身的字符串
message= row[2] + message;
您可以按名称对电子表格进行排序,将MailApp放在if语句中,该语句检查下一行是否有不同的名称,如果它确实发送了电子邮件。
如果您不想按名称排序,则可以循环遍历所有可能名称的数组。