Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

How to add "SENT EMAIL" info to my Google Sheets Script?

41 views
Skip to first unread message

Rodrigo Santana

unread,
Apr 15, 2020, 3:34:04 PM4/15/20
to Google Apps Script Community
Hello, right below I have a script function to send email when the schedule date reaches TODAY formula on Google Sheets. Now I just want to make sure there's no chance for sending email 2 times. And I wanted to appear SENT EMAIL when the email is sent .
Can someone help me and fix the script for me to be able to do that?



function myProbation() {
//by Mirzan
//this function runs based on daily trigger that will be set in project trigger.


//declare variable 
  var ss = SpreadsheetApp.getActiveSpreadsheet();  //declare the spreadsheet
  var sheet = ss.getSheetByName("Sheet1");  //please change according to your sheet name
  var range = sheet.getDataRange(); //to set the range as array
  var values = range.getDisplayValues(); //to get the value in the array
  var lastRow = range.getLastRow();

//array [R][C] started from [0][0] 
  var curDate = values[1][9]; //this to declare cell H2/today() value, [1][7] means cell [2][H]
  var anyMatches = false;
  var message = "";
  
//this to get the email from spreadsheet account
  var email = Session.getActiveUser().getEmail();  
  var optionalEmail = values[2][1]; //this for
  var targetRecipient= "";
  
//now we use FOR function for looping the process
  var i;
  var logContent = '';
  for (i = 5; i < lastRow; i++)  //set variable i as index that start from row 5 and continue down
  {  
    var ProbationDueDate = values[i][6];  //get index value that set the send date

    //Now the IF functions, if today matches the send date, send an email
   //need to convert the date format to string first

    if (ProbationDueDate.toString() == curDate.toString()) 
    {  
      var NewHireName = values[i][0];     //[New Hire Name] cell A++
      var NewHireEmail = values[i][1];     // [New Hire Email] cell B++
      var SupervisorEmail = values[i][3];      //[Supervisor Email] cell D++
      var HrbpEmail = values[i][5]; //[HRBP Email] cell F++
      var SupervisorName = values[i][4]; //[supervisor name] cell E++
      var DueDate = values[i][2]; //[probation end date] cell C++
      var SendEmailDate = ProbationDueDate;
      var message = values[i][7];
      
      // if there is a match, set anyMatches to true so email gets sent
      anyMatches = true;  
      
      // footer for check log message
      logContent += "Content No. " + i  + targetRecipient + " -- " + message + " ++++++++++++++++++++<br/>";
 
     // Now using API to send the email 
    MailApp.sendEmail({
     to: SupervisorEmail,
     cc:  HrbpEmail + "," + NewHireEmail + "," + optionalEmail,
     subject: 'Probation Review Reminder  ' + NewHireName,
     htmlBody: message});  
    }  
  }  // ends for loop
  
  Logger.log(logContent);
}
Reply all
Reply to author
Forward
0 new messages