在谷歌表单、谷歌应用程序脚本中记录谷歌邮件



HELP!我用的是一个脚本,我基本上是从Bionice Teaching的Tom Woodward那里抄袭的,用来在电子表格中记录电子邮件。http://bionicteaching.com/auto-logging-email-via-google-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谷歌应用程序脚本邮件的结果->sheet

您可以使用这个:

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((

最新更新