【问题标题】:Send a personnalised email from a Google Form从 Google 表单发送个性化电子邮件
【发布时间】:2020-06-05 21:44:55
【问题描述】:

我正在开始一个新项目。当有人使用我的 Google 表单购买图书时,我必须发送确认电子邮件。现在,当您填写完表格后,我可以发送电子邮件,但我无法在电子邮件中输入买家姓名和书籍数量。 F.ex:你好“约翰”,你会在一周内收到你的“3”本书。

我尝试过这样的事情:

function sendEmail(e) {

  var formreponse = e.responses;
  var itemreponse = formreponse.getItemResponses();
  var number= itemreponse[5].getResponse(); //because it's in the 5th columns of the spread sheets 
  var name= itemreponse[3].getResponse();

然后我就写一个这样的简单代码

var TextToSend = "blablabla" + name + " blabla" + number + ".";
GmailApp.sendEmail(emailTo, subject, TextToSend, options);

但我收到一条错误消息:

无法读取未定义的属性“响应”。

我不知道为什么!

不能完成这个简单的任务让我非常沮丧。

【问题讨论】:

    标签: email google-apps-script gmail google-forms


    【解决方案1】:

    问题:

    • 当手动运行这个函数时,通过编辑器,没有event object被传递,所以eundefined。您不应手动运行此函数。
    • responses 不是 Form submit 触发器的有效事件属性。

    解决办法:

    var formreponse = e.response;
    

    参考:

    【讨论】:

    • 我已经进行了更改,但我有同样的错误:TypeError: Cannot read property 'response' of undefined 所以还有别的东西哈哈:/
    • @Barnabé 我编辑了我的问题,你错过了另一篇文章。请让我知道这是否可以解决您的问题/需要有关如何继续的更多详细信息。
    • @lamblichus 所以我有一个触发器:当有人提交表单时。而且我只是更改了一点代码:var nombre = e.response.getGradableItemResponses["Name of the question #1 in the form"]; var prenom = e.response.getGradableItemResponses["Prénom"]; var nom = e.response.getGradableItemResponses["Nom"]; 通过此更改,电子邮件将发送到邮件地址电子邮件中的文本未由答案完成。而不是:`你好约翰,你的电话号码是 0123456789` 你会收到:Hello undefined, your phone number is undefined
    • @Barnabé, getGradableItemResponses 返回一个 ItemResponses 数组。如果您想访问其中一个ItemResponses,您必须指定一个索引(例如getGradableItemResponses[0]),而不是与项目名称对应的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多