如何获取 Google 表单字段值并在 Apps 脚本中使用它来发送电子邮件

How to get Google Form field value and use it in Appscript to send an email

我想获取我在名为“邮件列表”的 Google 表单下拉列表中设置的值。

我想做的是发送一封自定义电子邮件到我 select 的值。

我的表格是这样的:

现在,一旦我 select 一个选项,我想给它发送一封电子邮件。这是我在表单中的 appscript 代码:

function sendEmail(e) {
  
  var html = HtmlService.createTemplateFromFile("email.html");
  var htmlText = html.evaluate().getContent();
  
  var emailTo = e.response.getRespondentEmail(); // how do I get the dropdown value here?
  Logger.log(emailTo)
  var subject = "sample subject";
  var textBody = "this is a body";
  var options = { htmlBody: htmlText };
  
  if(emailTo !== undefined){
    
    GmailApp.sendEmail(emailTo, subject, textBody, options)
  }
}

问题是如何将 emailTo 设置为我在下拉列表中 select 的值?

我的电子表格是这样的:

e.values[1]  

values 属性 包含所有随表单提交的响应的数组,其中 e.values[0] 是时间戳,e.values[1 ] 是选择的下拉值

解释:

假设 sendEmail(e) 是表单中的 On form submit 触发器,那么您可以获得第一个响应项(在您的例子中是电子邮件):

var itemResponses = e.response.getItemResponses();
var email = itemResponses[0].getResponse();  // returns the email if given

解决方案:

function sendEmail(e) {
  
  var html = HtmlService.createTemplateFromFile("email.html");
  var htmlText = html.evaluate().getContent();
  
  var itemResponses = e.response.getItemResponses();
  var emailTo = itemResponses[0].getResponse();  // returns the email if given

  var subject = "sample subject";
  var textBody = "this is a body";
  var options = { htmlBody: htmlText };
  
  if(emailTo !== undefined){
    
    GmailApp.sendEmail(emailTo, subject, textBody, options)
  }
}