Google apps script 气体:每人只发送一次提醒电子邮件

Google apps script 气体:每人只发送一次提醒电子邮件,google-apps-script,google-sheets,reminders,Google Apps Script,Google Sheets,Reminders,我是谷歌应用程序脚本的新手,我已经编写了一个脚本,在谷歌电子表格中有一个组任务列表,如果任务今天到期,我会自动向人们发送提醒 脚本运行良好,但我想改进它,因为在我的脚本中,如果我今天有3项任务到期,我将收到3封不同的电子邮件。有没有一种方法可以让我每人只发送一封电子邮件,其中概述了他们今天的所有任务 我找了一会儿,但什么也没找到 非常感谢 function Reminders() { var sheet = SpreadsheetApp.getActiveSheet(); var ne

我是谷歌应用程序脚本的新手,我已经编写了一个脚本,在谷歌电子表格中有一个组任务列表,如果任务今天到期,我会自动向人们发送提醒

脚本运行良好,但我想改进它,因为在我的脚本中,如果我今天有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();
    }
  }
}

功能提醒(){
var sheet=SpreadsheetApp.getActiveSheet();
var newEmployee=sheet.getRange(“C1”).getValue();
var sheetId=SpreadsheetApp.getActiveSpreadsheet().getId();
var EMAIL_SENT=“OUI”
var dataRange=sheet.getRange(72000,1,12)/(sart行,行数N°,起始列,列数N)
var data=dataRange.getValues();
对于(变量i=0;i
有几种方法可以做到这一点

要使电子邮件包含摘要信息,请在循环中创建一个字符串,该字符串将添加到电子邮件中

    message= row[2] + message;
您可以按名称对电子表格进行排序,将MailApp放入if语句中,检查下一行是否有不同的名称,如果它确实发送电子邮件

如果不想按名称排序,可以通过一个包含所有可能名称的数组进行循环