【问题标题】:Need Script for Google Docs to Send Auto Email需要 Google Docs 的脚本来发送自动电子邮件
【发布时间】:2020-04-28 22:37:23
【问题描述】:

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

function AutoConfirmation(e){
      var theirFirst = "Bill";
      var theirEmail = johndoe@example.com;
      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 列中提取数据吗?这是旧的脚本,现在不起作用吗? 在我的谷歌表中,我将 Site 而不是 event 作为列,另一个以 Complete 作为标题。 让我知道我在这里错过了什么,因为这似乎应该很简单。 我尝试运行它,结果如下:screenshot of the error I get 我在运行上面的代码时遇到了相同类型的错误,所以我想我会运行一个记录器来查看是否有任何结果,结果在屏幕截图中。点击链接查看。

【问题讨论】:

  • 虽然很遗憾,来自but it fails on the 4th line (var theEvent = e.values[1]):,我无法理解您的问题的细节,如果您直接通过脚本编辑器运行该函数,则会出现错误,因为没有使用事件对象。这个怎么样?
  • 这是怎么失败的?你得到什么错误? e.values[1]对应B列,是你要检索的数据吗?
  • 这是我使用上述代码得到的错误:TypeError: Cannot read property 'values' of undefined (line 4, file "Code")

标签: google-apps-script google-sheets triggers google-forms


【解决方案1】:

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

第 4 行不应该从我的 google 表格的第 1 列中提取数据吗?

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

【讨论】:

    【解决方案2】:

    问题:

    你得到的错误:

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

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

    解决办法:

    • 第 1 步:安装触发器:如果您还没有这样做,请手动安装触发器,跟随 these steps,或者以编程方式,将以下函数复制到绑定的脚本并运行它一次:
    function createOnFormSubmitTrigger() {
      var ss = SpreadsheetApp.getActive();
      ScriptApp.newTrigger("AutoConfirmation")
      .forSpreadsheet(ss)
      .onFormSubmit()
      .create();
    }
    
    • 第 2 步:提交表单!:安装触发器后,当用户提交附加到电子表格的表单时(即假设您已将表单附加到电子表格),@ 987654327@ 自动运行,包含these properties 的事件对象作为参数传递。如果你手动运行,e 是undefined(没有事件对象作为参数传递),你会得到错误。

    注意:

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

    参考:

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2021-12-28
      相关资源
      最近更新 更多