【发布时间】:2018-11-30 15:17:21
【问题描述】:
帮助!我使用的脚本基本上是从 Bionice Teaching 的 Tom Woodward 那里抄来的,在电子表格中记录电子邮件信息。 http://bionicteaching.com/auto-logging-email-via-google-script/ 我需要添加一个列来收集已附加到消息的所有标签。我需要为我的工作完成这项工作,但我是 Google Apps 脚本的新手,真的需要有人握住我的手……基本上是为我做这件事,然后教我你做了什么。在任何情况下,我都非常感谢您能给我的任何帮助。谢谢 这是我正在使用的:
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 results of Google Apps script mail->sheet
【问题讨论】:
-
我可以问你关于你的问题吗?你能提供你当前脚本的问题吗?例如,如果结果不是您想要的和/或发生错误,请显示出来。
-
我相信标签是附加在线程上的,而不是消息上。所以你可以使用
messages[m].getThread().getLabels()。
标签: google-apps-script google-sheets gmail