Google脚本通过电子邮件将答案和问题发送给用户

时间:2013-04-30 07:23:49

标签: google-apps-script

我正在尝试制作一个简单的脚本,向通过Google表单填写调查问卷的用户发送电子邮件。

他们将进行调查,答案记录在电子表格中,此脚本将通过电子邮件向他们发送问题的副本(标题)及其答案(应该是表格的最后一行)。

发送到的电子邮件将是最后一列,不包含在电子邮件中。

这是我正在努力实现此目的的脚本:

function sendFormByEmail(e) {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getActiveSheet();

 var emailSubject = "EMAIL-SUBJECT-HERE";  
 var yourEmail    = "CURRENTLY-JUST-A-STATIC-EMAIL-ADDRESS"; //get this from a field.value then just cut off that field from being included in the email (just do column-1)...


 var headers = headersRange.getValues()[0];  //google api to get the header values.

 var lastRow = s.getLastRow();

 var message += headers.toString();
 message += (headersRange.getValue()[last]).toString(); //should get the last row of data?

  MailApp.sendEmail(yourEmail, emailSubject, message); 
}

2 个答案:

答案 0 :(得分:0)

添加在提交表单时执行的触发器,并将此函数附加到触发器。
在您的代码中,您可以在代码中使用e.values[]来引用用户提交的值。这样您就不必阅读电子表格

function  sendFormByEmail(e) {
  var email = e.values[0];  // assuming 1st field is email
  var firstName = e.values[1]; // assuming 2nd field is first name
  ...

}

答案 1 :(得分:0)

您可能会发现很难阅读电子邮件的结果,其中所有问题都在一行中,所有答案都在另一行中。

很容易在标题和循环中循环播放如果您愿意,请立即填写电子邮件地址。

function sendFormByEmail(e) {

  var emailSubject = "EMAIL-SUBJECT-HERE";  
  var emailQ = 1;  // Column number with email address

  var headers = SpreadsheetApp.getActiveSheet().getDataRange().getValues()[0];  //google api to get the header values.

  var message = "Your survey responses:\n\n";

  // Print Questions & Answers in pairs
  for (i=0; i < headers.length; i++) {
    if (i == emailQ) continue; // skip email address
    message += headers[i]+"\n"
             + e.values[i]+"\n\n";
  }

  MailApp.sendEmail(e.values[emailQ], emailSubject, message); 
}