Google apps script 谷歌应用程序脚本-延迟发送电子邮件48小时

Google apps script 谷歌应用程序脚本-延迟发送电子邮件48小时,google-apps-script,Google Apps Script,我需要延迟48小时发送电子邮件。我试过: var mail_date_plus_2 = new Date(date.setDate(mail_date+2)) 但我得到了一个错误: “ReferenceError:“日期”未定义。(第26行,文件“代码”) 以下是脚本: function sendEmail() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var data_sheet = ss.getSheetByName('Sh

我需要延迟48小时发送电子邮件。我试过:

var mail_date_plus_2 = new Date(date.setDate(mail_date+2))
但我得到了一个错误:

“ReferenceError:“日期”未定义。(第26行,文件“代码”)

以下是脚本:

function sendEmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var data_sheet = ss.getSheetByName('Sheet1');
  var values = data_sheet.getRange(2, 1, data_sheet.getLastRow(), data_sheet.getLastColumn()).getValues();
  var row = 2;
  var current_time= new Date();
  Logger.log('Current data and time is '+current_time)
  for(var v in values) {    
    var mail_note = data_sheet.getRange(row, 1).getNote();
    if(mail_note=='') {
      var mail_date = values[v][5];
      if(mail_date!='') {        
        if(current_time>mail_date) {
          Logger.log(v+'>>Need to send mail at '+mail_date);
          var name  =  values[v][2];
          var email =  values[v][4];
          var form  =  values[v][1];
          var htmlbody = RESERVATION_EMAIL_HTML;
          var prefix = 'Dear '+name+', '+"<br/><br/>";
          htmlbody = prefix + htmlbody
          if(form=='Reservation') {MailApp.sendEmail({
             to: email,
             subject: EMAIL_SUBJECT,
             htmlBody: htmlbody,        
          });
          }
          var cdate = new Date();
          data_sheet.getRange(row, 1).setNote('Mail has been sent at '+cdate)
        }
      }
    }
    row++;
  }
}
函数sendmail(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var数据表=ss.getSheetByName('Sheet1'); var values=data_sheet.getRange(2,1,data_sheet.getLastRow(),data_sheet.getLastColumn()).getValues(); var行=2; var current_time=新日期(); Logger.log('当前数据和时间为'+当前时间) 对于(值中的var v){ var mail_note=data_sheet.getRange(第1行).getNote(); 如果(邮件注释=“”){ var mail_date=值[v][5]; 如果(邮寄日期!=''){ 如果(当前时间>邮件日期){ Logger.log(v+'>>需要在'+mail_日期发送邮件); 变量名称=值[v][2]; var email=价值[v][4]; var形式=值[v][1]; var htmlbody=预订\电子邮件\ HTML; 变量前缀='亲爱的'+name+','+“

”; htmlbody=前缀+htmlbody if(form=='Reservation'){MailApp.sendmail({ 致:电邮:, 主题:电子邮件主题, htmlBody:htmlBody, }); } var cdate=新日期(); 数据表.getRange(第1行).setNote('邮件已在'+cdate'发送) } } } 行++; } }
如果
日期
是,您需要将其更改为
邮件日期
。但是firest确保
邮件日期
是日期类型。您可以使用关键字
typeof
检查JavaScript变量类型

var mail_date = values[v][5];
Logger.log('typeof mail_date: ' + typeof mail_date);
如果
mail\u date
不是日期类型,则将其转换为日期:

var mail_date = values[v][5];

if (typeof mail_date !== 'object') {//In JavaScript a date is an "object" type
  mail_date = new Date(mail_date);
};

var mail_date_plus_2 = new Date(mail_date.setDate(mail_date+2))

感谢您的回复。更改后,我收到另一个错误:TypeError:在对象中找不到函数setDate。(第28行,文件“Code”)