Необходимо скопировать данные из электронной почты и вставить в электронную таблицу Google - PullRequest
1 голос
/ 23 сентября 2019

В этом коде ответа было написано две функции, одна из которых является основной, а другая - извлекает подробности, поэтому она принимает две функции, при каждом запуске сценария ошибка его генерации, такая как getdate (), не определяется, поэтому я просто делаю как одну функцию как главную, теперь данные отслеживаются автоматически на листе, но их чтение только первого потока, который является непрочитанной меткой.если метка имеет 23 нити, то первая нить повторяется только 23 раза.Даже я изменил threads.messages (0), отслеживая только первую ветку, которая уже прочитана веткой, а не прочитана и отслеживает непрочитанную ветку.Не могли бы вы помочь мне

function main(){
  var query = {'q':'label:"Sanmina EDI Failed Concurrent Jobs Alert" is:UNREAD'};

  var threads = Gmail.Users.Messages.list(userId='me', q=query);

  for(i in threads.messages){
    var threadIds = threads.messages[0].threadId;
    var message = GmailApp.getMessageById(threadIds);
    extractDetails(message);
    GmailApp.markMessageRead(message);
    }

    function extractDetails(message)
{
    var dateTime = message.getDate();
    var bodyContents = message.getBody();
    var action= bodyContents.search("Invoice")
    var action1=bodyContents.search("Error")
    var action2=bodyContents.search("Terminated")

    if(action > 0)
    {
      var out="Need to create SR"
      }
    else if(action1>0 || action2>0)
    {
      var out="Need to create SR"
      }
    else
    {
      var out="Printing output file"
      }

    var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    activeSheet.autoResizeRows(1, 2);
    activeSheet.appendRow([dateTime, bodyContents, out]);

  }
}

[введите описание изображения здесь] [1]

Sanmina EDI Предупреждение о сбое одновременных заданий - имя субъекта с тем же именем для метки

Производственный рабочий процесс Mailer Май26, 2017, 19:30

Идентификатор запроса Название программы Состояние Запрошено ---------- ------------------------------------------------------------ -------- 813511350Sanmina EDI 850/860 Табличный отчет о входящих поступлениях / изменениях Предупреждение NERODRIG

1 Ответ

0 голосов
/ 24 сентября 2019

Попробуйте использовать Gmail API для поиска в темах:

function main(){
  var query = {'q':'label:"Sanmina EDI Failed Concurrent Jobs Alert" is:UNREAD'};

  var threads = Gmail.Users.Messages.list(userId='me', q=query);

  for(i in threads.messages){
    var threadIds = threads.messages[i].threadId;
    var message = GmailApp.getMessageById(threadIds);

    extractDetails(message);
    GmailApp.markMessageRead(message);
    }

  }

  function extractDetails(message){

    var dateTime = message.getDate();
    var bodyContents = message.getPlainBody();
    var action= bodyContents.search("Invoice")
    var action1=bodyContents.search("Error")
    var action2=bodyContents.search("Terminated")

    if(action > 0)
    {
      var out="Need to create SR"
      }
    else if(action1>0 || action2 > 2)
    {
      var out="Need to create SR"
      }
    else
    {
      var out="Printing output file"
      }

    var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    activeSheet.appendRow([dateTime, bodyContents, out]);

  } 

Если вам нужно только последнее сообщение, используйте threads.messages[0] вместо i.

Дополнительная информация: Метод списка

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