学生填写 Google 表格时给教师的表格通知

Form Notification for Teachers when Students Fill out Google Form

我正在为学校制作一个网站,以连接学生和教师。教师填写 Google 表格请求服务(给论文打分...),并将其连接到 Google 电子表格。然后学生可以看到该电子表格并在不同的 Google 表格上注册以帮助老师,并且该响应记录在同一个 Google 电子表格中。当学生提交 his/her Google 表格时,我希望通过电子邮件通知老师有学生报名帮助他们。我该如何发送该通知?而且我不希望通知来自我自己的学校地址。那可能吗? 这是 Google 网站:https://sites.google.com/fcpsschools.net/jmhsservicesignup/subjects/math

这是我目前的代码:

function sendEmails() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tutors 
Signed Up");

  var startRow = sheet.getLastRow();  // First row of data to process

  var dataRange = sheet.getRange(startRow, 1, 1, 5)
  // Fetch values for each row in the Range.

  var data = dataRange.getValues();

  for (i in data) {

    var row = data[i];

    var emailAddress = row[3];       // Second column

    var tutor = row[0];

    MailApp.sendEmail(emailAddress,"Tutor Request Filled",""+tutor+" has accepted your request to be tutored! Please notify"+tutor+" if anything changes.");

  }
}

getLastRow 似乎不起作用,而且电子邮件是从我自己的地址发送的,而不是 Google 表单通知(如果可能的话)。

如果这是不可能的,我可能会让学生发送电子邮件给老师,但我真的想自动化这个过程。如果您能想到解决方法,那也很棒。

补充 Sandy Good 和 Guilherme 提到的内容。 这里还有一些提示:

不清楚您要在函数中获取哪些数据。您是否要从表单提交中获取数据?在这种情况下,您需要从脚本菜单设置触发器,并将其连接到函数(函数需要有一个 'event' 参数,通常称为 e)。

function processFromSubmission(e) {//get data from e}

如果您不想这样做,我们深表歉意。当您登录 sheet.getLastRow()?

时会发生什么

询问学校是否可以为您提供另一个电子邮件地址以用于此表格,例如 notifications@yourschool.edu。按照 steps here 设置您的别名。为 "owns" 这些表单向其发送数据的电子表格的 gmail 帐户执行此操作。

确保您的别名设置正确。当您撰写电子邮件时,您应该能够在 "from" 下拉菜单中看到它。也可以尝试 运行 代码 Logger.log(GmailApp.getAliases()) 并检查日志以查看它是否可用。

使用 GmailApp.sendEmail 发送电子邮件,而不是 MailApp.sendEmail。它们几乎相同,但看起来 MailApp 版本不允许您从别名发送。如果您想将其设置为其他内容,您也可以指定 'replyTo' 电子邮件,例如填写表格的学生或其他任何内容(仍然不清楚您要设置的内容!)。

像这样发送电子邮件:

GmailApp.sendEmail(emailAddress, subject, body,
   {replyTo: replyToEmailAddress_can_be_any_email,
    from: 'notifications@yourschool.edu'
 });

注意:您的 link 没有打开。