正在发送 Google 表单回复到提交时的特定电子邮件地址

Sending Google Forms responses to specified e-mail address on Submit

我正在尝试设置 Google 表单,一旦表单提交者点击 "Submit" 按钮,响应不仅会填充到专用电子表格中,还会通过电子邮件发送到特定的邮件组

可能最好的方法是使用 Google 脚本和触发器,包括 "onsubmit"、"Mailapp.sendmail" 函数,但我在这里遇到的问题是: a)直接从刚刚提交的表格中获得回复 b) 将 "send from" 电子邮件地址(将向邮件组发送电子邮件)更改为提交者的电子邮件 c) 将表单响应与 mailapp.sendmail 函数

连接起来

我试过类似的东西,但它存在上述问题:

function OnSubmit(e) {  var formResponses = 
FormApp.getActiveForm().getResponses();
Logger.log(formResponses.length);
var formResponse = formResponses[formResponses.length-1];
var itemResponses = formResponse.getItemResponses();
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
Logger.log('Last response to the question "%s" was "%s"',
           itemResponse.getItem().getTitle(),
           itemResponse.getResponse());
MailApp.sendEmail ("email@mydoiman.com", "Form Submited " + Date.now(), 
FormApp.getActiveForm().getResponses());
}}

非常感谢您的帮助!因为我在这方面完全是业余的。

a) 要在电子邮件中获得答复,您可以这样做:

function sendAnswers(e) {
  var items = e.response.getItemResponses();
  var emailRespondent = e.response.getRespondentEmail();
  var html = "";
    for(var i = 0; i< items.length; i++) {
    var item = items[i];
    html += "<b>"+item.getItem().getTitle()+"</b> : "+ item.getResponse() + "<br>";

  }
  MailApp.sendEmail("EMAIL_RECIPIENT", "Form answers", "", {htmlBody:html})
}

b) 无法更改电子邮件的 'To'。

c) 是的,我们使用 MailApp 功能。

=> 不要忘记创建触发器以在 onFormSubmit 上具有函数 运行。

=> 在 emailRespondent 中,如果您单击以收集受访者的电子邮件,您将获得提交表单的人的电子邮件。如果您不这样做,请评论该行,即

  // var emailRespondent = e.response.getRespondentEmail();

史蒂芬