Регистрация почты Google в листе Google, скрипт Google Apps - PullRequest
0 голосов
/ 30 ноября 2018

HELP!Я использую сценарий, который я в основном написал из Tom Woodward в Bionice Teaching для записи сообщений электронной почты в электронную таблицу.http://bionicteaching.com/auto-logging-email-via-google-script/ Мне нужно добавить столбец, в котором собраны все ярлыки, прикрепленные к сообщениям.Мне нужно, чтобы это было сделано для моей работы, но я новичок в Google Apps Script и мне действительно нужно, чтобы кто-то держал меня за руку ... По сути, делаю это для меня, а затем учу меня, что вы делали.Я очень ценю любую помощь, которую вы можете оказать мне в любом случае.Спасибо Вот что я использую:

function myFunction() {

//this is just the stuff that recognizes what spreadsheet you're in
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheets = ss.getSheets();
   var sheet = ss.getSheetByName("data"); //gets the right sheet

//this chunk gets the date info  
 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;

//****************************************************  
//searches your GMail for emails written after yesterday
  var query = "after:" + yesterday;

  var threads = GmailApp.search(query);
  Logger.log('threads len ' + threads.length);

  Logger.log(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 = [];

//here's where you decide what parts of the email you want
      var from = messages[m].getFrom(); //from field
      Logger.log(from);
      var time = messages[m].getDate();//date field
      Logger.log(time);
      var subject = messages[m].getSubject();//subject field
      Logger.log(subject);
      var body = messages[m].getPlainBody();//body field
      Logger.log(body);
      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);

//decides what found emails match yesterday's date and push them to an array to write to the spreadsheet
      if (messageDate === yesterday) {
      supportStats.push(from);
      supportStats.push(time);
      supportStats.push(subject);
      supportStats.push(body);
      supportStats.push('https://mail.google.com/mail/u/0/#inbox/'+mId); //build the URL to the email
      SpreadsheetApp.getActiveSheet().appendRow(supportStats); //writes to the spreadsheet
      }
    }

  }          

}

Вот результаты, которые я получаю ... Отлично!За исключением того, что я хотел бы еще один столбец, который добавляет метки, которые на каждом сообщенииКак я могу это сделать? результаты spreatsheet mail скрипта Google Apps-> sheet

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете использовать это:

var labels = threads[i].getLabels();

GmailThread :: getLabels ()

GmailThread имеет ярлыки, а не GmailMessage.Возвращает массив меток.Возможно, используйте:

var labelsString = "";
var labelArray = []
for each (var label in labels)
{
  labelArray.push(label.getName());
}
if (labelArray.length > 0)
{
  labelsString = labelArray.join(','); 
} 

для вставки в строку таблицы.

GmailLabel :: getName ()

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