Google应用脚本触发器不起作用 [英] Google app script trigger not working

查看:146
本文介绍了Google应用脚本触发器不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个发送电子邮件的Google应用程序脚本,并且我设置了一个触发器,以便在每个表单提交时发送电子邮件。问题是触发器在最初的几分钟内工作得非常好,但后来即使在输入正确的数据后也是如此。该脚本不发送邮件,我不得不手动按脚本的执行按钮。这里是我的代码

  var EMAIL_SENT =EMAIL_SENT; 
函数sendEmailsapp(){
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; //处理
的第一行数据var numRows = sheet.getLastRow(); //要处理的行数
//获取单元格范围A2:B3

var dataRange = sheet.getRange(startRow,1,numRows,8)
//为Range中的每一行提取值。
var data = dataRange.getValues();
for(var i = 0; i< data.length; ++ i){
var row = data [i];
var emailAddress = row [4]; //第一列
var message = row [5]; //第二列
var emailSent = row [7]; //第三列
var money = row [6]
if(emailSent!= EMAIL_SENT){//防止发送重复项
var subject =您已注册以下事件: - ;
var event;

MailApp.sendEmail(emailAddress,主题为请将您的大学编号和此邮件的副本带到手机或印刷纸上+
\\\
\\\
+姓名: - +行[1] + \\\
+ USN: - +行[2] + \\\
+ 移动: - +行[3] + \\\
+事件: - + message +\\\
noney状态: - + money +您在+ row [0])注册;
sheet.getRange(startRow + i,8).setValue(EMAIL_SENT);


//确保单元格在脚本中断的情况下立即更新
SpreadsheetApp.flush();
}
}
}

代码正常工作。唯一的问题是触发器。



这是我的触发器的图像。 sendEmailsapp是触发器,而sendEmailsweb是另一个触发器,它也遭遇同样的问题。



这里是log

我唯一的问题是触发器没有获得触发,这是不是与电子邮件发送。

解决方案

我的触发器不像你的工作,即使脚本是正确的。



解决方案非常愚蠢。我删除了触发器并添加了一个新的触发器。完全一样的触发器。


I have a google app script which sends email, and i have set a trigger such that it sends email on every form submit. The problem is the trigger works perfectly fine for initial few minutes, but later even after entering correct data. The script does not send the mail, i have to manually press the execution button of the script. Here is my code

var EMAIL_SENT = "EMAIL_SENT";
function sendEmailsapp() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = sheet.getLastRow();   // Number of rows to process
  // Fetch the range of cells A2:B3

  var dataRange = sheet.getRange(startRow, 1, numRows,8)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[4];  // First column
    var message = row[5];       // Second column
    var emailSent = row[7];  // Third column
    var money=row[6]
    if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates
      var subject = "You have been registered for follwoing events:-";
      var event;

      MailApp.sendEmail(emailAddress, subject, "Please bring your college id and copy of this mail either in phone or printed paper"+
                        "\n\n"+"Name:-"+row[1]+"\n"+"USN:-"+row[2]+"\n"+"Mobile:-"+row[3]+"\n"+"Event:-"+ message+"\nMoney status:-"+money+"You registered on"+row[0]);
        sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);


      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

The code works fine. The only problem is triggers.

Here is the image of my trigger. sendEmailsapp is the trigger, and sendEmailsweb is another trigger which also suffers from same problem.

here is the log

My only Problem is the trigger is not getting triggered, it is not with the email being sent.

解决方案

My trigger wasn't working just like yours, even though the script was correct.

The solution was very stupid. I deleted the trigger and added a new one. Exactly the same trigger.

这篇关于Google应用脚本触发器不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆