为什么Google App脚本触发触发重复发送电子邮件?

时间:2019-05-21 15:50:02

标签: google-apps-script

我有一个应用程序,可在提交表单时触发向某些用户发送电子邮件。触发器工作正常,除了它向用户发送重复的电子邮件。

我尝试在底层Google表格中添加一列,以标记是否已发送电子邮件,如果已发送,则不要再发送电子邮件。它不起作用。还有很多代码,但是,我包括了相关的代码。

  var _sheet = sheet;
  var _data = getRowsData(_sheet);

  var _markPending = function(d) {

    d.state = PENDING_STATE;
    d.identifier = Utils.generateUUID();
    d.budgeted = FIN_BUDGET;
    d.DepartmentName = FIN_SUB;
    d.financeDirectorApproval = FIN_APPROVE;
    d.finalFinanceApproval = CFO_STATE;

 Logger.log(_markPending);
   manager_email = d[SETTINGS.MANAGERS_EMAIL_COLUMN_NAME].match(EMAIL_REGEX);

   d.manager_email = manager_email


     if (d.mailSent != 'Sent') 
    {
    MailApp.sendEmail(SETTINGS.HR_MANAGER_EMAIL_ADDRESS, subject2, "",{ htmlBody: message});
     d.mailSent = MAIL_SENT;
   };
Head    onFormSubmit    Trigger May 21, 2019, 9:57:39 AM    3.141 s 
Completed
Head    onFormSubmit    Trigger May 21, 2019, 9:57:39 AM    3.298 s 
Completed
  Logger.log("Good afternoon, Good Evening and Good night");
  var sheet = getSpreadsheet().getSheetByName(RESPONSES_SHEET);
  handler = SheetHandler(sheet);
  handler.processSheet();
  writeToLog();
  var lastRowValues = sheet.getRange(sheet.getLastRow(),1,1,sheet.getLastColumn()).getValues();
  var Var1 = lastRowValues[0][1];
  var Var2 = lastRowValues[0][13];
  var Var3 = lastRowValues[0][17];
  var Var4 = lastRowValues[0][16];
  var Var5 = lastRowValues[0][2];
  var Var6 = lastRowValues[0][7];
  var Var7 = lastRowValues[0][8];
  var Var8 = lastRowValues[0][3];
  var Var9 = lastRowValues[0][5];  
  var Var10 = lastRowValues[0][27];

  var subject2 = "Form Input - " + Var1 + " - " + Var2
  var manager_email = "abc@abc.com";

  var emailBody = "Labe1: " + Var1 
  + "<br /> \ Label2: " + Var2 
  + "<br /> \ Label3: " + Var3 
  + "<br /> \ Label4: " + Var4 
  + "<br /> \ Label5: " + Var5 
  + "<br /> \ Label6: " + Var6  
  + "<br /> \ Label7: " + Var7 
  + "<br /> \ Label8: " + Var8 
  + "<br /> \ Label9: " + Var9;


    MailApp.sendEmail(manager_email, subject2, "",{ htmlBody: emailBody });

//    } ;      
//  
}; ```

1 个答案:

答案 0 :(得分:0)

您可能会收到不需要的触发器,看到的是:How can I be getting multiple unwanted event blocks from the same onFormSubmit Trigger?

您也许可以使用类似于该逻辑示例的方法来消除不需要的触发器

相关问题