如何设置按日期触发的自动电子邮件警报

我正在努力编写一个应用程序脚本以根据日期触发自动电子邮件。我已经审查了其他问题/答案,但无法正确解决。我的Google表格如下:

Google Sheet

我的警报数据在名为“ H&S评论”的工作表中。 我的电子邮件在“电子邮件警报”表的A1单元格中。

发送电子邮件的触发日期是“ H&S评论”表的J列,我认为可以针对此日期和单元格J1(今天的日期)编写代码。

Column J = date email to be sent
Column I = first name of email recipient
Column H = email address
Column B = task per message
Column C = description per message

我的代码称为function sendEmails`。您将看到它需要您的专业知识。

此外,我希望可以将警报写到电子邮件收件人的Google日历,但不确定是否可以。

Jason82918 回答:如何设置按日期触发的自动电子邮件警报

这是您的脚本中的代码,已修改为当J列上的日期与J1中的日期匹配时发送电子邮件。我建议您将代码更改为使用getValues()[1]并循环生成的数组,而不是每次都使用getValue(),这样会优化得多,并且会阻止您达到Google配额[2]。

function sendEmails() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("H&S Reviews").activate();
  var lastRow = sheet.getLastRow();
  var message = spreadsheet.getSheetByName("Email Alerts").getRange(1,1).getValue();

  for (var i = 3;i<=lastRow;i++){

    var emailAddress = sheet.getRange(i,8).getValue();
    var firstName = sheet.getRange(i,9).getValue();
    var todaysDate = sheet.getRange(1,10).getValue();
    var date = sheet.getRange(i,6).getValue();
    date = Utilities.formatDate(date,'GMT+0200','dd MMMM yyyy');
    var task = sheet.getRange(i,2).getValue();
    var description = sheet.getRange(i,3).getValue();
    var messageBody = message.replace("{name}",firstName).replace("{Task}",task).replace("{Description}",description).replace("{Date}",date);
    var subject = "Health & Safety Review Task"; 

    var sendDate = sheet.getRange(i,10).getValue();
    var sheetDate = new Date(sendDate);
    Sdate=Utilities.formatDate(todaysDate,'yyyy:MM:dd')
    SsheetDate=Utilities.formatDate(sheetDate,'yyyy:MM:dd')
    Logger.log(Sdate+' =? '+SsheetDate)

    if (Sdate == SsheetDate){
      var subject = "Health & Safety Review Task";
      MailApp.sendEmail(emailAddress,subject,messageBody);
      Logger.log('SENT :'+emailAddress+'  '+subject+'  '+messageBody)
    }    
  }
}

[1] https://developers.google.com/apps-script/reference/spreadsheet/range#getValues()

[2] https://developers.google.com/apps-script/guides/services/quotas

本文链接:https://www.f2er.com/3126899.html

大家都在问