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



我正在为学校制作一个连接学生和老师的网站。教师填写一份谷歌表格,要求提供服务(批改论文......(,它连接到谷歌电子表格。然后,学生可以看到该电子表格,并在其他 Google 表单上注册以帮助教师,并且该回复会记录在同一 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}

如果您不想这样做,请道歉。当您登录工作表.getLastRow((时会发生什么?

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

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

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

发送电子邮件如下:

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

注意:您的链接未打开。

最新更新