【问题标题】:Why does google app script trigger send duplicate emails?为什么谷歌应用脚​​本触发器会发送重复的电子邮件?
【发布时间】:2019-05-21 15:50:02
【问题描述】:

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

我已尝试在我的底层 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 });

//    } ;      
//  
}; ```

【问题讨论】:

标签: google-apps-script


【解决方案1】:

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

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

【讨论】:

  • 谢谢!用表单提交代码更新了我原来的问题。无论如何,我都不是程序员。我假设我必须调整我的表单提交代码以包含您引用的更改。请指教。
  • @PushkarWazat 是的,我刚刚添加了一个表单,以便人们可以直接从该站点与我联系,这就是我在代码中输入的内容。 if(e.values &amp;&amp; e.values[1] &amp;&amp; e.values[2] &amp;&amp; e.values[3] &amp;&amp; e.values[4] &amp;&amp; quota&gt;0) { 所有问题都是必填项。我第一次运行代码时运行了两次,但我只收到一封电子邮件,因为第二封没有回答任何问题。
猜你喜欢
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2015-10-26
  • 2020-04-22
  • 2013-11-15
  • 1970-01-01
相关资源
最近更新 更多