Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 学生填写谷歌表格时教师的表格通知_Google Apps Script_Google Sheets_Google Forms - Fatal编程技术网

Google apps script 学生填写谷歌表格时教师的表格通知

Google apps script 学生填写谷歌表格时教师的表格通知,google-apps-script,google-sheets,google-forms,Google Apps Script,Google Sheets,Google Forms,我正在为学校制作一个网站来连接学生和老师。教师填写一份谷歌表格,要求提供服务(批改试卷…),并将其连接到谷歌电子表格。然后,学生可以看到该电子表格,并在不同的谷歌表格上注册以帮助老师,并且该响应记录在同一个谷歌电子表格中。当学生提交他/她的谷歌表单时,我希望通过电子邮件通知老师有学生注册帮助他们。我如何发送通知?我不希望通知来自我自己的学校地址。可能吗? 以下是谷歌网站: 这是我目前掌握的代码: function sendEmails() { var sheet = Spreadsheet

我正在为学校制作一个网站来连接学生和老师。教师填写一份谷歌表格,要求提供服务(批改试卷…),并将其连接到谷歌电子表格。然后,学生可以看到该电子表格,并在不同的谷歌表格上注册以帮助老师,并且该响应记录在同一个谷歌电子表格中。当学生提交他/她的谷歌表单时,我希望通过电子邮件通知老师有学生注册帮助他们。我如何发送通知?我不希望通知来自我自己的学校地址。可能吗? 以下是谷歌网站:

这是我目前掌握的代码:

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似乎不起作用,电子邮件是从我自己的地址发送的,如果可能的话,也不是谷歌表单通知


如果这是不可能的,我可能只是让学生发送电子邮件给老师,但我真的想自动化的过程。如果你能想出一个解决办法,那也太棒了。

再加上Sandy Good和Guilherme提到的。 这里还有一些提示:

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

函数processFromSubmission(e){//get data from e}

如果你不想这么做,我会道歉的。记录sheet.getLastRow()时会发生什么情况

询问学校是否可以为您获取另一个用于此表单的电子邮件地址,例如notifications@yourschool.edu. 按照设置您的别名。为“拥有”这些表单发送数据的电子表格的gmail帐户这样做

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

使用GmailApp.sendmail发送电子邮件,而不是MailApp.sendmail。它们几乎相同,但MailApp版本似乎不允许您使用别名发送。如果您想将“replyTo”电子邮件设置为其他内容,例如学生填写表单或其他内容(仍然不清楚您要设置什么!),您也可以指定该电子邮件

发送电子邮件,如:

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

注意:您的链接未打开。

要使电子邮件来自不同的电子邮件地址,帐户必须允许别名电子邮件地址,并且您必须使用高级参数和
from
设置。需要通过一个过程来设置和验证别名电子邮件地址是否为帐户所有。否则,任何人都可以发送来自其他人的电子邮件。您可能还需要与帐户域管理员联系,以查看是否设置了任何限制。因此,您需要了解域管理员是谁。除了Sandy Good comment、Notification Add-on之外,您还应该查看代码。