Javascript onFormSubmit触发器无法在表单提交时发送电子邮件

Javascript onFormSubmit触发器无法在表单提交时发送电子邮件,javascript,forms,google-apps-script,triggers,eventtrigger,Javascript,Forms,Google Apps Script,Triggers,Eventtrigger,我这里有一段代码,在提交表单时,应该: 使用表单响应在电子表格中执行一些计算,创建包含用户结果的pdf文件,并通过电子邮件发送给他们 我已经设置了一个运行onFormSubmit的触发器,其中包含来自电子表格onFormSubmit的事件,下面是我的代码: //Set out global variables var docTemplate = "1Ff3SfcXQyGeCe8-Y24l4EUMU7P9TsgREsAYO9W6RE2o"; var docName="Calculations";

我这里有一段代码,在提交表单时,应该:

使用表单响应在电子表格中执行一些计算,创建包含用户结果的pdf文件,并通过电子邮件发送给他们

我已经设置了一个运行onFormSubmit的触发器,其中包含来自电子表格onFormSubmit的事件,下面是我的代码:

//Set out global variables
var docTemplate = "1Ff3SfcXQyGeCe8-Y24l4EUMU7P9TsgREsAYO9W6RE2o";
var docName="Calculations";

//createOnFormSubmitTrigger();
function onFormSubmit(e){

  //Variables

  var ssID = '1dMmihZoJqfLoZs9e7YMoeUb_IobW4k6BbOuMDOTTLGk';
  var ss = SpreadsheetApp.openById(ssID);
  ss.setActiveSheet(ss.getSheetByName("Sheet3"));
  var totalOutstandingPrincipalDebt = SpreadsheetApp.getActiveSheet().getRange("G25").getValue();
  var totalOutstandingInterest = SpreadsheetApp.getActiveSheet().getRange("H25").getValue();
  var totalOutstandingCompensation = SpreadsheetApp.getActiveSheet().getRange("I25").getValue();
  var dailyInterestRate = SpreadsheetApp.getActiveSheet().getRange("J25").getValue();
  var grandTotal = SpreadsheetApp.getActiveSheet().getRange("K25").getValue();
  var userEmail = SpreadsheetApp.getActiveSheet().getRange("H24").getValue();

  //Template Info

  var copyId=DriveApp.getFileById(docTemplate).makeCopy(docName+' for '+userEmail).getId();
  var copyDoc = DocumentApp.openById(copyId);
  var copyBody = copyDoc.getActiveSection();

  //Putting the data into the file
  copyBody.insertParagraph(1,'Total Outstanding Principal Debt: £' + totalOutstandingPrincipalDebt);
  copyBody.insertParagraph(2,'Total Outstanding Interest: £'+ totalOutstandingInterest );
  copyBody.insertParagraph(3,'Total Outstanding Compensation: £'+ totalOutstandingCompensation);
  copyBody.insertParagraph(4,'Grand Total: £' + grandTotal);
  copyBody.insertParagraph(5,'Daily Interest Rate: £'+ dailyInterestRate);
  copyDoc.saveAndClose();

 //email pdf document as attachment 
  var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
  var subject = "Calculations";
  var body = "Thank you very much for using our online calculator. Please find your results attached.";

  MailApp.sendEmail(userEmail, subject, body, {htmlBody: body, attachments: pdf});

  //Deletes temporary Document
  DriveApp.getFileById(copyId).setTrashed(true);
}
当我在脚本编辑器中时,脚本有时会运行良好,但不总是这样?!,但当我提交表单时,我收到以下错误通知:发送电子邮件失败:无收件人第40行,文件代码,其中第40行为行:

MailApp.sendEmail(userEmail, subject, body, {htmlBody: body, attachments: pdf});
我曾尝试对userEmail变量使用getNote而不是getValue,但也没有成功!我还确保电子表格上的单元格引用格式为纯文本而不是数字,但我不确定现在还可以尝试什么!如有任何建议,将不胜感激


提前非常感谢:

自从我换了衣服后,它就开始工作了:

var ssID = '1dMmihZoJqfLoZs9e7Y.............';
var ss = SpreadsheetApp.openById(ssID);
ss.setActiveSheet(ss.getSheetByName("Sheet3"));
var totalOutstandingPrincipalDebt = SpreadsheetApp.getActiveSheet().getRange("G25").getValue();
var totalOutstandingInterest = SpreadsheetApp.getActiveSheet().getRange("H25").getValue();
var totalOutstandingCompensation = SpreadsheetApp.getActiveSheet().getRange("I25").getValue();
var dailyInterestRate = SpreadsheetApp.getActiveSheet().getRange("J25").getValue();
var grandTotal = SpreadsheetApp.getActiveSheet().getRange("K25").getValue();
var userEmail = SpreadsheetApp.getActiveSheet().getRange("H24").getValue();
致:

 var ssID = '1dMmihZ.................';
var ss = SpreadsheetApp.openById(ssID);
var sheet = SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);
var totalOutstandingPrincipalDebt = sheet.getRange("G25").getValue();
var totalOutstandingInterest = sheet.getRange("H25").getValue();
var totalOutstandingCompensation = sheet.getRange("I25").getValue();
var dailyInterestRate = sheet.getRange("J25").getValue();
var grandTotal = sheet.getRange("K25").getValue();
var userEmail = sheet.getRange("H24").getValue();