Отправить ежедневный триггер по электронной почте - PullRequest
0 голосов
/ 15 марта 2019

Я хотел бы отправлять электронные письма каждый будний день.Список адресов указан на одном из листов.Когда используется специфичный для события триггер, электронное письмо отправляется как следует.Тем не менее, когда я установил его на запуск по времени, он не выполняется должным образом.Я получаю следующую ошибку относительно созданной мной переменной numRows: Сначала выберите активный лист.(строка 21, файл "sendEmails")

    // define how HTML object is being sent: 
function convSheetAndEmail(rng, email, subj)
{
  var HTML = SheetConverter.convertRange2html(rng);
  MailApp.sendEmail(email, subj, '', {htmlBody : HTML});
}

// function 2: 
function doGet()
{  
  var sh1 = SpreadsheetApp.getActive().getSheetByName('Dashboard')
  var dataRange = sh1.getDataRange();
  var sh2 = SpreadsheetApp.getActive().getSheetByName('control_panel')
  var numRows = SpreadsheetApp.getActiveSpreadsheet('Sales/Ops Daily Report').getLastRow()-1;

  var data = sh2.getRange(2,1,numRows,1).getValues()
  
  // loop through the array with the mail addresses:
  for (i in data) {
    var row = data[i];
    var emailAddress = row[0];
    var subject = 'Sales/Ops Daily Report';
    convSheetAndEmail(dataRange, emailAddress, subject);
  }
}

// send email
function createTriggers() {
   var days = [ScriptApp.WeekDay.MONDAY, ScriptApp.WeekDay.TUESDAY,
               ScriptApp.WeekDay.WEDNESDAY, ScriptApp.WeekDay.THURSDAY,                                            
               ScriptApp.WeekDay.FRIDAY];
   for (var i=0; i<days.length; i++) {
      ScriptApp.newTrigger(doGet())
               .timeBased().onWeekDay(days[i])
               .atHour(14).create();
   }
}

  

1 Ответ

0 голосов
/ 15 марта 2019

Метод ScriptApp.newTrigger() должен использовать строковый аргумент типа, то есть имя функции. Вместо этого вы использовали doGet() call в качестве аргумента. В результате триггер установлен неправильно. Если вы собираетесь запустить эту функцию, вы должны написать: ScriptApp.newTrigger("doGet") и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...