Получение тела отдельных писем из gmail на листы Google - PullRequest
1 голос
/ 18 июня 2019

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

Каждый день я получаю несколько писем, которые выглядят следующим образом:

Ваше имя: Имя Фамилия

Номер телефона: 555 867 5309

Адрес электронной почты: FakeEmail@email.com

С чем вам нужна помощь? Запрос кто-то делает.

Я пытаюсь автоматически отправить тело этих писем на новую строку в Google Sheet, когда они приходят.

На данный момент у меня каждое письмо получает ярлык "myLabel", когда оно приходит. Затем я запускаю следующий скрипт, который является слегка измененной версией того, что я нашел здесь:

    function myFunction() {

      var ss = SpreadsheetApp.getActiveSheet();

      var label = GmailApp.getUserLabelByName("MyLabel");
      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 msg = messages[j].getBody();

          ss.appendRow([msg])
        }
          threads[i].removeLabel(label);
      }
    }

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

1 Ответ

0 голосов
/ 18 июня 2019

Почему бы не пометить сообщения как прочитанные, когда вы закончите их обрабатывать?Вот пример из одного из моих сценариев.

  var pendingEmailLabel = "MyLabel";
  var threads = GmailApp.getUserLabelByName(pendingEmailLabel).getThreads();
  for (var t = 0; t < threads.length; ++t) {
    var thread = threads[t];
    var messages = thread.getMessages();
    for (var m = 0; m < messages.length; ++m) {
      var message = messages[m];
      if (message.isUnread()) {
          // INSERT YOUR CODE HERE THAT TAKES ACTION ON THE MESSAGE
          message.markRead();
        }
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...