Google表格两次发送电子邮件

时间:2018-10-04 08:09:39

标签: javascript loops email google-apps-script conditional-statements

我已经创建了一个Google Apps脚本来根据特定条件自动执行电子邮件。它可以工作,但是有一个我无法弄清的主要错误。

错误是它会同时发送两封电子邮件,第一封电子邮件是正确的,并且包含我需要的所有信息,第二封电子邮件将包含相同的标题,但没有值。

我只想知道为什么它发送第二封电子邮件。

function onEdit(e) {
var spreadSheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetName();
if(spreadSheetName === "KOSU"){
    var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("KOSU");

 var localTime = ss.getRange("A1").getValue();
 var actualKosu = ss.getRange("B30:T30").getValues()[0];
 var predictedKosu = ss.getRange("B25:T25").getValues()[0];
 var hourlyProduced = ss.getRange("B29:T29").getValues()[0];

 var timeRange = ss.getRange("B19:T19").getValues()[0];

//loop through range of times and compare values
//grab actual kosu, predicted kosu, hourly produced then email to relevant people

for(var i = 0; i < timeRange.length; i++){
  if(localTime >= timeRange[i] && localTime < timeRange[i + 1]){
    MailApp.sendEmail({
          to: 'person@gmail.com',
            subject: "KOSU UPDATE",
          htmlBody: 
           '<div>' +
           '<h3>SWI1 - KOSU UPDATE</h3>' +
           '</div>' +
          '<div>' +
          '<h3>PREDICTED KOSU:'+ Math.round(predictedKosu[i]) + '</h3>' +
          '<h3>ACHIEVED KOSU:'+ Math.round(actualKosu[i]) + '</h3>' +
          '<h3>HOURLY OUTPUT:'+ Math.round(hourlyProduced[i]) + '</h3>' +
          '</div>'
        });
       }
      }
     }
   }

1 个答案:

答案 0 :(得分:0)

感谢所有建议和帮助。

事实证明,我设法将其链接到工作表的备份版本,因此它正在从空白工作表和预期工作表中发送信息。