Задать вопрос
alexgearbox
@alexgearbox

Почему скрипт не выбирает письма по заданному ярлыку(, но убирает ярлык с писем правильно)?

Накопал скрипт для копирования писем из Gmail в Гугл-таблицу. Подправил, чтобы работал не только с активной книгой (таблицей), но и с закрытой.

Проблема: сохраняются письма за последний три дня, а не те, для которых указан ярлык. (Ярлык с письма снимается корректно.)

Код
var SHEET_ID = "SPREADSHEET_ID_HERE"; 
var SHEET_NAME = "Sheet1";
var EMAIL_LABEL = "__renew";

function saveEmails() {

  var ss = SpreadsheetApp.openById(SHEET_ID);
  var sheet = ss.getSheetByName(SHEET_NAME);

  var label = GmailApp.getUserLabelByName(EMAIL_LABEL);
  var threads = label.getThreads();

  for (var i=0; i<threads.length; i++)
  {
    var messages = threads[i].getMessages();

    for (var j=0; j<messages.length; j++)
    {
      var dat = messages[j].getDate();
      var msg = messages[j].getBody();

      ss.appendRow(["", dat, "", msg])
    }
      threads[i].removeLabel(label); //убирает ярлык с письма
  }
}


P. S. Какой нужен код, чтобы ещё и все ярлыки, назначенные письму, заносились в таблицу?
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
А если попробовать искать письма так:
var EMAIL_LABEL = '__renew';
var query = 'in:inbox label:' + EMAIL_LABEL;
var threads = GmailApp.search(query);
var messages = GmailApp.getMessagesForThreads(threads);
for (var i = 0; i < messages.length; i++) {
  for (var j = 0; j < messages[i].length; j++) {
    Logger.log(messages[i][j].getDate() + ' ' + messages[i][j].getSubject());
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы