Загрузка gmail в листы по дате и метке - PullRequest
0 голосов
/ 23 января 2019

Моя работа использует gmail и множество ярлыков, чтобы отличить нашу работу.Мы пытаемся экспортировать на основе меток.Какая информация о Gmail мне нужна, так это от, до и от субъекта.Это можно сделать несколькими способами: загрузить все электронные письма и создать столбец с метками, которые я могу проанализировать, или создать разные макросы для каждой метки.Я нашел некоторый код в Интернете, но он позволяет только выбирать данные за предыдущую дату.Мне нужно было бы иметь возможность выбрать диапазон дат относительно текущей даты.Как сегодня до 1 года назад.Или вчера плюс год назад.Пожалуйста, помогите, мой код не такой продвинутый.

function FollowUpYesterday() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  var sheet = ss.getSheetByName("data");

  var today = new Date();
  var dd = today.getDate() - 1;
  var mm = today.getMonth() + 1; //January is 0 DO NOT FORGET THIS
  var yyyy = today.getFullYear();
  var yesterday = yyyy + '/' + mm + '/' + dd;

  var query = "after:" + yesterday  + " label:02 Status/A FollowUp";

  var threads = GmailApp.search(query);

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

      var from = messages[m].getFrom(); //from field
      var to = messages[m].getTo(); //to field
      var time = messages[m].getDate(); //date field
      var subject = messages[m].getSubject(); //subject field
      var mId = messages[m].getId(); //id field to create the link later

      var mYear = time.getFullYear();
      var mMonth = time.getMonth() + 1;
      var mDay = time.getDate();
      var messageDate = mYear + '/' + mMonth + '/' + mDay;
      Logger.log('msg date ' + messageDate);


      if (messageDate === yesterday) {
        supportStats.push(from);
        supportStats.push(to);
        supportStats.push(time);
        supportStats.push(subject);
        supportStats.push('https://mail.google.com/mail/u/0/#inbox/' + mId); 

        SpreadsheetApp.getActiveSheet().appendRow(supportStats);
      }
    } 
  }
}

метка выше - только одна из многих, которые у меня есть.так что либо вытащить много макросов таким образом, либо, если есть способ получить все письма и получить столбец метки, то я смогу затем проанализировать также.

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