自动通过电子邮件发送Google工作表回复

时间:2020-04-06 04:50:42

标签: google-apps-script google-sheets

任何人都可以帮助Google应用程序脚本触发自动电子邮件给未通过测验的申请人-得分低于Google表格A列中的130吗?

提前感谢您的帮助!

Quiz Results Response

2 个答案:

答案 0 :(得分:0)

您是否希望表格填写后自动发送邮件?在这种情况下,您可以使用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
    });
  }
}
//
//



希望有帮助!

答案 1 :(得分:0)

此功能处理从第一行到最后一行的完整电子表格数据,并发送分数小于130的故障通知电子邮件...

function notifyFailedCandidates () 
{
  //Get the active sheet from the current spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  //Get all the rows from the spreadsheet
  var rangeData = sheet.getDataRange();
  var lastColumn = rangeData.getLastColumn();
  var lastRow = rangeData.getLastRow();
  var searchRange = sheet.getRange(2,1, lastRow-1, lastColumn);
  var rows = searchRange.getValues();

  //loop through each of the rows
  for (var rowNumber in rows)
  {
    //Get each of the values from the row
    var quizScore = rows[rowNumber][0];
    var firstName = rows[rowNumber][1];
    var lastName = rows[rowNumber][2];
    var email = rows[rowNumber][3];

    //Send a failure notification if the score is less than 130
    if (parseInt (quizScore) < 130)
    {
      MailApp.sendEmail
      (
        email, //candidate email address
        'Notification of test failure', //Subject of failure notification email

        //Contents of failure notification email
        'Hi ' + firstName + "\n\n" + 
        'This email is to let you know that unfortunately you failed the test, with a score of ' + quizScore + ' / 170' + "\n\n" +
        'Better luck next time'
      );
    }
  }
}