【问题标题】:onFormSubmit trigger not working for sending out email upon form submissiononFormSubmit 触发器在提交表单时无法发送电子邮件
【发布时间】:2015-07-15 09:09:11
【问题描述】:

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

使用表单响应在电子表格中执行一些计算,创建一个包含用户结果的 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});

我已经尝试使用 getNote() 而不是 getValue() 作为 userEmail 变量,但这也不起作用!我还确保电子表格上的单元格引用格式为纯文本而不是数字,但我不确定现在还可以尝试什么!任何建议将不胜感激!

提前非常感谢:)

【问题讨论】:

    标签: javascript forms google-apps-script triggers eventtrigger


    【解决方案1】:

    自从我更改后它现在可以工作了:

    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();
    

    【讨论】:

      猜你喜欢
      • 2016-08-01
      • 1970-01-01
      • 2019-04-24
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2016-07-26
      相关资源
      最近更新 更多