Google apps script 将带有特定Gmail标签的电子邮件复制到电子表格中,不得重复
我正在尝试制作一个脚本,在某个标签内接收电子邮件并将其放入谷歌表单。我现在正在使用这个函数:Google apps script 将带有特定Gmail标签的电子邮件复制到电子表格中,不得重复,google-apps-script,google-sheets,gmail,Google Apps Script,Google Sheets,Gmail,我正在尝试制作一个脚本,在某个标签内接收电子邮件并将其放入谷歌表单。我现在正在使用这个函数: function getMessagesWithLabel() { var destArray = new Array(); var threads = GmailApp.getUserLabelByName('Facebook').getThreads(0,10); for(var n in threads){ var msg = threads[n].getMessage
function getMessagesWithLabel() {
var destArray = new Array();
var threads = GmailApp.getUserLabelByName('Facebook').getThreads(0,10);
for(var n in threads){
var msg = threads[n].getMessages();
var destArrayRow = new Array();
destArrayRow.push('thread has '+threads[n].getMessageCount()+' messages');
for(var m in msg){
destArrayRow.push(msg[m].getSubject());
}
destArray.push(destArrayRow);
}
Logger.log(destArray);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
if(ss.getLastRow()==0){sh.getRange(1,1).setValue('getMessagesWithLabel() RESULTS')};
sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length).setValues(destArray)
}
这可以抓取“Facebook”标签上的所有电子邮件,但每次都会抓取所有电子邮件,每次运行时都会创建副本。我希望每次在“Facebook”标签上添加新行时,它都能创建一条新行。四个想法供您探索
ScriptProperties
中,则速度可能会快得多ScriptProperties
中运行
var threads = GmailApp.search('label:"Facebook" after:"2015/6/1"');
这将为线程提供在给定日期之后添加的任何消息,但线程也将具有该日期之前添加的消息。您可能仍然需要使用前面的选项之一来过滤掉这些内容。(除非,正如您在评论中指出的,您的线程将没有回复,因此只有一条消息。)var oldLabel = GmailApp.getUserLabelByName('Facebook');
var newLabel = GmailApp.getUserLabelByName('Facebook-processed');
var threads = oldLabel.getThreads(0,10);
for(var n in threads){
...
threads[n].removeLabel(oldLabel).addLabel(newLabel);
}
只是为了添加更多信息。每封收到的电子邮件都是一份工作单,没有回复。目前,我只是将workorder复制到一个google文档中,我想让它进入一个电子表格,在这个电子表格中,合并脚本可以将它复制到一个文档中(我已经完成了这部分)。很好,那么选项3应该对您非常有效,因为线程中只有一条消息。您也可以在处理消息后删除标签,并保持代码的其余部分不变。var threads=GmailApp.search('label:'Facebook'后面的“2015/6/1”');用于过滤已导出的消息?这是使用API的一个示例。将日期替换为上次运行脚本的日期。注意:gmail搜索参数
在
之后和在
之前的粒度是天
,它在您帐户时区的午夜开始。我收到一个错误“找不到方法removeLabel(string)。”确定新问题。我应该朝哪个方向将消息正文和日期添加到电子表格中?