Как вытащить содержимое цепочки, соответствующей критериям поиска, в лист Google? - PullRequest
0 голосов
/ 27 июня 2019

В настоящее время у меня есть скрипт Служб Google, на котором запущена электронная таблица, которая запрашивает правильный адрес электронной почты, к которому я запрашиваю. Тем не менее, я могу получить только оригинальное содержание основного письма, когда я на самом деле пытаюсь получить ответный поток в реальном разговоре по электронной почте.

Кто-нибудь знает, возможно ли это или как это сделать?

Мой текущий скрипт извлекает только начальное электронное письмо из поискового запроса, но это не является намерением.

function myFunction() {
  // Use sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // Gmail query
  var query = "subject:Attendance Shed";
  // Search in Gmail, bind to array
  var threads = GmailApp.search(query);
  // Loop through query results
  for (var i = 0; i < threads.length; i++)
  {
    // Get messages in thread, add to array
    var messages = threads[i].getMessages();

    // Used to find max index in array
    var max = messages[0];
    var maxIndex = 0;

    // Loop through array to find maxIndexD = most recent mail
    for (var j = 0; j < messages.length; j++) {
      if (messages[j] > max) {
        maxIndex = j;
        max = messages[j];
      }
    } 
    // Find data
    var mId = messages[maxIndex].getId() // ID used to create mail link
    var from = messages[maxIndex].getFrom();
    var cc = messages[maxIndex].getCc();
    var time = threads[i].getLastMessageDate()
    var sub = messages[maxIndex].getSubject();
    // Write data to sheet
    ss.appendRow([from, cc, time, sub, 'https://mail.google.com/mail/u/0/#inbox/'+mId])
  }
}

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

1 Ответ

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

Попробуйте этот код после строки var messages = threads[i].getMessages();:

…

for (var j = 0; j < messages.length; j++) {
    // Find data
    var mId = messages[j].getId() // ID used to create mail link
    var from = messages[j].getFrom();
    var cc = messages[j].getCc();
    var time = threads[i].getLastMessageDate()
    var sub = messages[j].getSubject();
    // Write data to sheet
    ss.appendRow([from, cc, time, sub, 'https://mail.google.com/mail/u/0/#inbox/' + mId])
}
ss.appendRow();

Это позволит получить информацию о каждом сообщении, а затем добавить пустую строку для разделения между потоками.

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