Google文档发送自动电子邮件所需要的脚本

问题描述 投票:0回答:2

我正在寻找可以添加到Google表格中的脚本,该脚本将自动生成电子邮件并在电子表格中包含某些字段。我已经创建了一个Google表单,并将该数据发送到Google电子表格,这个想法是,当用户提交表单时,它将数据发送到电子表格,然后电子表格发送自动电子邮件。我找到了此脚本并对其进行了一些编辑,但它在第四行(var theEvent = e.values[1])失败:

function AutoConfirmation(e){
      var theirFirst = "Bill";
      var theirEmail = [email protected];
      var theEvent = e.values[1];
      var subject = "Form Submitted";
      var message = "Thank you, " + theirFirst + " for the expressed interest in our " + theEvent;
   MailApp.sendEmail (theirEmail, subject, message);
}

第4行是否应该从Google工作表的第1列中提取数据?这是一个旧脚本,现在不起作用吗?在我的Google工作表中,我以“网站”而不是“事件”作为列,而另一个以“完整”作为标题。让我知道我在这里错过了什么,因为这似乎应该很简单。我试图运行它,这是结果:screenshot of the error I get运行上面的代码时,我会遇到相同类型的错误,因此我认为我将运行记录器以查看是否得到任何结果,并且结果在屏幕截图中显示。单击链接以查看它。

google-apps-script google-sheets google-form gs-installable-triggers
2个回答
0
投票

[看来,您找到的脚本是要放入绑定到Google电子表格的Apps脚本项目中的函数,并由可安装的触发器调用。

第4行是否应该从Google工作表的第1列中提取数据?

没有e.values返回一个使用从零开始的索引的数组。这意味着第一列Column A的索引为0


0
投票

问题:

您得到的错误:

TypeError:无法读取未定义的属性'值'

表示未定义事件对象(e),这意味着您正在尝试手动运行此功能。当发生相应的触发事件时,应该触发附加到触发器的功能:在这种情况下,当用户提交表单时。您不必手动运行它。

解决方案:

  • 第1步:安装触发器:如果尚未安装触发器,请按照these steps手动或以编程方式安装触发器,方法是将以下函数复制到绑定脚本中并运行一次:
function createOnFormSubmitTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger("AutoConfirmation")
  .forSpreadsheet(ss)
  .onFormSubmit()
  .create();
}
  • [第2步:提交表单!:安装触发器后,当用户提交附加到电子表格的表单(即假设您已将表单附加到电子表格)时,[C0 ]自动运行,并且包含AutoConfirmation的事件对象作为参数传递。如果手动运行它,则these propertiese(没有传递任何事件对象作为参数),并且会出现错误。

注意:

  • undefined将检索提交表单时写入e.values[1]的相同值,因为JavaScript数组的索引为零。您可能需要改用column B,以确保您正在检索所需的信息。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.