Целью является сбор данных gmail из входящих и исходящих сообщений из всех ярлыков и запись информации в различные таблицы, соответствующие метке, к которой они принадлежат.Создание электронных таблиц и заполнение их конкретными данными
По существу - метка определит, к какой электронной таблице относятся ее соответствующие данные gmail. В настоящее время я все настраиваю в одну таблицу. Этот метод скоро станет неуправляемым.
for (var l = 0; l < labels.length; l++) {// ** Runs a for-loop over "labels array".
var label = labels[l].getName();//Gets "this" label name.
var labelThreads = GmailApp.getUserLabelByName(label).getThreads(start, end);//Gets threads in "this" label. (*Set Limits Here*)
var labelMessages = GmailApp.getMessagesForThreads(labelThreads);//Gets array with each email from "this" thread.
for (var t = 0; t <labelThreads.length; t++){// ** Runs a for-loop over threads in a label.
if (labelMessages[t] == undefined){}// If it's empty, skip.
else {// If it's not empty.
emailBody.push([" "]);
emailFrom.push([labelMessages[t][0].getFrom()]);
emailTo.push([labelMessages[t][0].getTo()]);
emailDate.push([Utilities.formatDate(labelMessages[t][0].getDate(), "GMT", "MMM d, EEE, yyyy - HH:mm")]);
emailSubject.push([labelMessages[t][0].getSubject()]);
emailLabel.push([labels[l].getName()]);
}
}
// ** THEN, LOG THE FILLED DATA ARRAYS TO ROWS **
//getSheetValues(startRow, startColumn, numRows, numColumns)
mySheet.getRange(2,2,emailLabel.length,1).setValues(emailLabel);
mySheet.getRange(2,4,emailFrom.length,1).setValues(emailFrom);
mySheet.getRange(2,3,emailTo.length,1).setValues(emailTo);
mySheet.getRange(2,1,emailDate.length,1).setValues(emailDate);
mySheet.getRange(2,5,emailSubject.length,1).setValues(emailSubject);
mySheet.getRange(2,6,emailBody.length,1).setValues(emailBody);
}
}
В то время как я был в состоянии создать программно таблицы с теми же именами, как и все мои этикетки, я не знаю, как выбрать и заполнить их с правильными данными по электронной почте.
Я понимаю, что мой код в настоящее время работает, потому что такое же количество электронной почты данных фиксируется в каждом массиве, поэтому все строки данных «строка-вверх» (эта информация предоставляется по телефону (начало, конец).
полный код здесь: http://pastie.org/9768890
Обновление- осветленный вопрос: конкретный вопрос это- как я могу отделить информацию, хранящуюся в arrays- emailFrom, emailTo, emailDate, почтовое сообщение, emailLabel, на отдельные листы - на этикетке. В таблице будет указано название электронной почты как название, и я хочу, чтобы все ema il, относящихся к этой метке, которая будет введена в эту таблицу.
Есть ли проблема с кодом, или он работает, и вы просто не понимаете, почему? – John
мой код не разбивает и не устанавливает данные в соответствующие электронные таблицы. он в настоящее время только собирает данные и устанавливает все это в 1 таблицу. поэтому есть проблема с кодом, и я не понимаю, как это сделать. - В моем операторе – mrcni