2016-04-13 86 views
0

我是Google Apps新手,我写了一个脚本在Google电子表格中创建了一个任务列表,并在他们的任务今天到期时自动发送提醒。GAS:发送提醒每个人只需发送一次电子邮件

脚本工作正常,但我想改进它,因为在我的脚本中,如果我今天有3个任务,我将收到3个不同的电子邮件。有没有办法让我们每个人只能发送一封电子邮件,并回顾他们今天所有的应有任务?

我已经找了一段时间,但找不到任何东西。

非常感谢!

Spreadsheet pic

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: '[email protected]', 
     }); 

     // B. We write in colum 10 that a reminder has been sent 
     sheet.getRange(startRow + i, 9).setValue(EMAIL_SENT) 
     SpreadsheetApp.flush(); 
    } 
    } 
} 

回答

0

有几种方法,你可以做到这一点。

为了使电子邮件包含摘要信息创建一个循环,增加自身

message= row[2] + message; 

你可以按名称进行排序的表格,把MailApp检查,看看是否下一行的if语句内内的字符串有一个不同的名称,如果它发送电子邮件。

如果您不想按名称排序,则可以循环显示所有可能名称的数组。

相关问题