类型错误: 无法读取未定义的属性'response'(第 8 行,文件 "Code" )



在脚本编辑器中创建谷歌表单后,我遇到了这个问题。我不知道为什么会出现这个问题。我完全是编程初学者,所以我将非常感谢您的简单解释。

function sendEmail(e) {
//response
//getRespondentEmail();
var html = HtmlService.createTemplateFromFile("email.html");
var htmlText = html.getCode();
Logger.log(htmlText);
var emailTo = e.response.getRespondentEmail();
var subject = "Response Received";
var textBody = "This email requires HTML support.";
var options = { htmlBody:htmlText }
if (emailTo !== undefined) {
GmailApp.sendEmail(emailTo, subject, textBody, options);
}
}

我不怎么处理表单,所以我只是为了好玩才玩这个,我从来没有看到过问题。

许多新海报经常尝试的一件事是从脚本编辑器中运行这样一个函数,因为它不会生成所需的事件对象"e",所以代码中会出现问题,因为e现在是未定义的。无论如何,这个功能的设置都是为了捕捉受访者的电子邮件、我表格上的项目以及相关的答案,并将其发布到电子表格中。我还添加了一个简单的模板化html,用于在电子邮件中发送内容。

GS:

function sendEmail(e) {
Logger.log(JSON.stringify(e));
const ss=SpreadsheetApp.openById(gssid);//Opening the spreadsheet containing form link
const sh=ss.getSheetByName('Sheet1');//Getting Item Titles and responses
sh.clearContents();
r.unshift(['Title','Response']);
r.unshift(['Email:',e.response.getRespondentEmail()]);//respondent email
sh.getRange(1,1,r.length,2).setValues(r);//Posting data to sheet1 in the open spreadsheet  
let o=HtmlService.createTemplateFromFile('email');
o.email=e.response.getRespondentEmail();//inserting global variable into template for use in html file during evaluate() process
GmailApp.sendEmail(recipient, 'Test', '', {htmlBody:o.evaluate().getContent()});
}

HTML:

受访者的电子邮件是:

表1邮寄表格:

一个
电子邮件:修订
标题响应
两个2

相关内容

最新更新