2016-04-13 124 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語句內內的字符串有一個不同的名稱,如果它發送電子郵件。

如果您不想按名稱排序,則可以循環顯示所有可能名稱的數組。

相關問題