Google脚本,发送包含表单提交触发的表单详细信息的电子邮件

时间:2014-08-08 17:27:53

标签: google-apps-script

function sendFormByEmail (e)
{
  var email = "inputemail@address";
  var txt = "";
  for (var field in e.namedValues) {
    txt += field + ' :: ' + e.namedValues[field].toString() + "\n\n";
  }

  MailApp.sendEmail(email, "input email subject", txt);
}

我相信以下工作一次(当填写有效的电子邮件地址时)。然后我复制并粘贴了上面和上面的完全相同的脚本。添加了一封不同的电子邮件,希望表格细节可以通过电子邮件发送给两个不同的人。然后上面没有工作。试图删除它的第二个副本。这并没有解决问题。现在我在测试运行时遇到以下错误:TypeError:无法读取属性" namedValues"来自undefined。 (第5行,文件"电子邮件提交表格和#34;)。我完全感到困惑,因为我非常确定这是与之前工作的脚本相同的脚本。我必须透露这是我十多年来第一次尝试编写脚本。我不是程序员 - 我是新手,从未正式学过编码。有人能够向我解释外行人的条款可能会发生什么吗?或者在适当的时候更正脚本?提前感谢您的时间。

1 个答案:

答案 0 :(得分:1)

TypeError:无法从undefined读取属性“namedValues”,当您尝试从Apps脚本编辑器中运行该函数时会发生。没有事件(e)参数传递给函数。

您需要确保为您的函数设置一个On表单提交触发器,并且您必须在Apps脚本编辑器中执行一次(如果在设置触发器时没有提示),接受使用从您的帐户发送电子邮件。

如果您要将邮件发送给多个人,请用逗号分隔列表;

e.g。

// broken up for clarity
var email = "inputemail@address";
email += ",";
email += "secondrecipient@address";
// add the email address collected from the form
email += ",";
email += e.namedValues['Username'];

enter image description here

enter image description here