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