Gmail Script для пересылки сообщений, которым назначен ярлык с последнего часа - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь переслать все электронные письма, которым назначен определенный ярлык, каждому человеку по очереди один раз в заданный интервал. Вот код, который у меня есть до сих пор ...

// Set Interval here
// Don't forget to change trigger interval as well
var interval = 60;
var labels = [['assigned-to-mark','mark@example.com'],
              ['assigned-to-john','john@example.com]];

function autoForward(label,recipient) {
  var date = new Date();
  var timeFrom = Math.floor(date.valueOf()/1000) - (60 * interval);
  var threads = GmailApp.search('label:' + label + ' after:' + timeFrom);
  // All messages in threads from search
  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    Logger.log(messages.length);
    for (var j = 0; j < messages.length; j++) {
      messages[j].forward(recipient);
    }
  }
}

function doForward() {
  for (var i = 0; i < labels.length; i++) {
    autoForward(labels[i][0],labels[i][1]);
  }
}

Я установил триггер для функции doForward(), которая срабатывает один раз каждые 60 минут. Если я вручную создаю поиск, я возвращаю, скажем, одно электронное письмо, но при запуске сценария пересылается больше, чем это. Кроме того, длина threads, кажется, увеличивается каждый раз, когда я запускаю его. В первый раз было 20, потом было 40, и запуск сценария занимал все больше и больше времени.

Я явно что-то делаю не так - пожалуйста, помогите:)

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