首页 > 解决方案 > 自动电子邮件谷歌表响应

问题描述

任何人都可以帮助使用谷歌应用脚​​本来触发自动发送电子邮件给未能通过测验的申请人 - 在谷歌表格上的 A 列上得分低于 130?

在此先感谢您的帮助!

测验结果响应

标签: google-apps-scriptgoogle-sheets

解决方案


您希望邮件在填写完表格后自动发送吗?在这种情况下,您可以使用 onFormSubmit 触发器自动将邮件发送给他。

如果您正在处理答案然后创建结果表,您可以通过处理表中的每一行来从结果表发送邮件。您可以轻松找到许多示例,如何根据列中的值从工作表发送邮件。

我附上了一个类似的代码,它会在用户提交表单后自动将响应发送给用户。我正在存储他的电子邮件 ID(基于员工编号)并在请求时立即向他发送一些数据(基于他的员工编号)。它用作“员工自助门户”。


function onFormSumbit(e) {
  var emp = e.source.getActiveSheet().getRange(e.range.rowStart,2).getValue();
  var lvss = SpreadsheetApp.openById("xxxx"); // blanks https://docs.google.com/spreadsheets/d/1kjOjhH0dvz4j3FsB_1UR5astpy8-ZxszNI4BZo4XJP0/edit#gid=0
  SpreadsheetApp.setActiveSpreadsheet(lvss);
  var lvsht = lvss.getSheetByName("Blanks");
  var lvlr = lvsht.getLastRow();
  var vA =lvsht.getRange("A:L").getValues();
  var html="<style>th,td{border:1px solid black;}</style><table>";
  html+='<tr>';
  for(var i=0;i< 4 ;i++) {//make title
       html+=Utilities.formatString('<th>%s</th>',vA[0][i]);
     }
  html+='</tr>';
  for (i=1;i<lvlr;i++){
    if (vA[i][0]==emp){
      html+='<tr>';
      for (j=0;j<4;j++) {
         if ( j==2 ){
            vA[i][j]=Utilities.formatDate(vA[i][j],"GMT+05:30", "dd-MM-yy");
          }//if date
          html+=Utilities.formatString('<td>%s</td>',vA[i][j]);
      }//for emp
      html+='</tr>';
    }//if
  }//for
  html+='</table><br>';
  var empss = SpreadsheetApp.openById("xxxx"); // emp master 
  SpreadsheetApp.setActiveSpreadsheet(empss);
  var empsht = empss.getSheetByName("Emp");
  var emplr = empsht.getLastRow();
  var empvals =empsht.getRange("A:H").getValues();
  for (i=1;i<emplr;i++){
    if (empvals[i][0]==emp){
      var em1=empvals[i][7];
      var name=empvals[i][1]
      break;
    }//if
  }//for
  var subject="Your punch blanks "+name;
  if (em1=="") {} else {
  //MailApp.sendEmail(em1, subject, html);}
    MailApp.sendEmail({
      to: em1,
      subject: subject,
      htmlBody: html
    });
  }
}
//
//



希望能帮助到你 !!


推荐阅读