首页 > 解决方案 > 根据字符串单元格值中的关键字自动通过电子邮件发送 Google 表单提交

问题描述

我从下面的代码中收到了 gmail,但不是我想要包含的表单值。当学生在表单的一个字段(col J)中键入重要或令人担忧的关键字时,我正在尝试让 Google 表单(表)向我(老师)发送电子邮件。

想象一个基本上包含以下字段的 Google 表单:

如果学生在最后一列(J 列)中键入任何警告词,例如“死亡”或“药物”等,我想获得一份包含该行所有信息摘要的 gmail。到目前为止,我已经设置了一个触发器,并且只收到了一个带有主题和消息的 gmail,但该消息不包含连接的 vars 值。

此外,gmail 的主题不包含连接的 studname,这会很有帮助。我很好奇您将如何修复此代码。谢谢你!!

function checkComments(){
var commentsRange =   SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange("J2");
  var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet2");
  var lastrow = sheet.getLastRow();
  var comments = sheet.getRange('J' + lastrow).getValue();
  
  if (comments === '.*drug.*'||'.*die.*'||'.*emotion.*'||'.*suicide.*'||) //many more root key words will be added in here in this |OR| format
{
    
// Send Alert Email.

  var timestamp = sheet.getRange('A' + lastrow).getValue();
  var studname = sheet.getRange('C' + lastrow).getValue();
  var studemail = sheet.getRange('B' + lastrow).getValue();
  var feelings= sheet.getRange('E' + lastrow).getValue();
  var tired= sheet.getRange('F' + lastrow).getValue();
  var stressed= sheet.getRange('G' + lastrow).getValue();
  var studwork = sheet.getRange('H' + lastrow).getValue();
  var cool = sheet.getRange('I' + lastrow).getValue();
  var results = timestamp + ' \n ' + studname + ' \n ' + studemail + ' \n ' + feelings + ' \n ' + tired + ' \n ' + stressed + ' \n ' + studwork + ' \n ' + cool + ' \n ' + comments;
  var emailAddress = 'my email address';
  var message = 'Alert from the daily survey!\n' + results;
  var subject = 'Daily Survey Alert from ' + studname;
    
MailApp.sendEmail(emailAddress, subject, message);
    
  }
}```

标签: google-sheetsgmailgoogle-forms

解决方案


要匹配关键字,请替换

if (comments === '.*drug.*'||'.*die.*'||'.*emotion.*'||'.*suicide.*'||)

if(!!comments.match(/drug|die|emotion|suicide/))

推荐阅读