Script de Google Apps - Enviar correo electrónico basado en la fecha en la celda

He mirado a mi alrededor y tengo partes y piezas, pero no puedo armar el rompecabezas. Estoy intentando crear un script que se ejecutará en un disparador configurado para ejecutarse diariamente. El activador se configurará en la opción Recursos del editor.

Básicamente estoy buscando la secuencia de comandos para capturar un rango de celdas, identificar una fecha de vencimiento, que se completará en una columna, coincidir con la fecha actual. Si coincide, entonces envíe un correo electrónico. Comencé con el envío de un correo electrónico desde una hoja de cálculo en Google. He agregado una sentencia if para verificar la fecha, pero la estoy perdiendo en comparación con dataRange. Cualquiera podría ayudar a corregirlos o indicarme la dirección de la investigación.

La secuencia de comandos parece ejecutarse pero no pasa nada, lo que creo que es porque "if (currentTime == dataRange)" ¿DataRange no coincide correctamente?

Aquí está el código:

function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = 50;   // Number of rows to process
// Fetch the range of cells
var dataRange = sheet.getRange(startRow, 1, numRows, 2)
// Fetch values for each row in the Range.
var data = dataRange.getValues();   
//Get todays date     
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();      
//Test column  for date due & match to current date
    if ( currentTime == dataRange) {
  for (i in data) {
var row = data[i];
var emailAddress = row[0];  // First column
var message = row[1];       // Second column
var subject = "Task Item Due";
MailApp.sendEmail(emailAddress, subject, message);

}
}
}

Estoy actualizando la sugerencia proporcionada por Srik y proporcionando su sugerencia en el siguiente código. Intenté publicar esto un par de veces, así que no estoy seguro de por qué no está haciendo una revisión por pares anterior.

 function sendEmail() {

var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = 50;   // Number of rows to process

var dataRange = sheet.getRange(startRow, 1, numRows, 50);

// Fetch values for each row in the Range.
var data = dataRange.getValues();
//Browser.msgBox(data)

for (i in data) {
var row = data[i];
var date = new Date();
var sheetDate = new Date(row[1]);

if (date.getDate() == sheetDate.getDate() && date.getMonth() == sheetDate.getMonth() && date.getFullYear() == sheetDate.getFullYear());
{
  var emailAddress = row[0];  // First column
  var message = row[2];       // Second column
  var subject = "Sending emails from a Spreadsheet";
  MailApp.sendEmail(emailAddress, subject, message);
 // Browser.msgBox(emailAddress)

}

}

}

El código parece ejecutarse pero aparece el siguiente error con el editor de secuencias de comandos. "No se pudo enviar el correo electrónico: ningún destinatario (línea 23)". Pero todavía envía correos electrónicos. Debe comparar las fechas y solo enviar el correo electrónico si la fecha coincide. Está enviando un correo electrónico para cada fila. He compartido la hoja de cálculo para ver el código y cómo está configurada la hoja de cálculo.Hoja de cálculo compartida

CÓDIGO ACTUALIZADO W / SERGE HELP en el registrador y en Utilities.formatDate .. ¡Gracias!

function sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = sheet.getLastRow()-1;   // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
// Fetch values for each row in the Range.
var data = dataRange.getValues();
//Logger.log(data)

for (i in data) {
  var row = data[i];
  var date = new Date();
  date.setHours(0);
  date.setMinutes(0);
  date.setSeconds(0);
  //Logger.log(date);
  var sheetDate = new Date(row[2]);
 //Logger.log(sheetDate);
 var Sdate = Utilities.formatDate(date,'GMT+0200','yyyy:MM:dd')
 var SsheetDate = Utilities.formatDate(sheetDate,'GMT+0200', 'yyyy:MM:dd')
     Logger.log(Sdate+' =? '+SsheetDate)
        if (Sdate == SsheetDate){
          var emailAddress = row[0];  // First column
          var message = row[1];       // Second column
          var subject = "Your assigned task is due today." +message;
          MailApp.sendEmail(emailAddress, subject, message);
          //Logger.log('SENT :'+emailAddress+'  '+subject+'  '+message)
            }    
   }
  }

Respuestas a la pregunta(3)

Su respuesta a la pregunta