【发布时间】:2019-08-02 00:59:01
【问题描述】:
问题:每次我运行脚本时,以前的电子邮件都会加载到电子表格中。鉴于我需要每周运行此脚本,我想忽略之前运行中已导入的电子邮件。
我认为需要在 for 循环中进行编辑,或者在追加之前添加 if 语句
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var label = GmailApp.getUserLabelByName("Test Script");
var threads = label.getThreads();
for (var i=0; i<threads.length; i++)
{
var messages = threads[i].getMessages();
for (var j=0; j<messages.length; j++)
{
var msg = messages[j].getPlainBody();
var sub = messages[j].getSubject();
var dat = messages[j].getDate();
ss.appendRow([msg, sub, dat])
}
}
目前的输出是: 电子邮件 1 电子邮件 2 电子邮件 3 电子邮件 1 电子邮件 2 电子邮件 3 电子邮件 4 电子邮件 1 电子邮件 2 电子邮件 3 电子邮件 4 电子邮件 5
但我希望它只添加新的电子邮件: 电子邮件 1 电子邮件 2 电子邮件 3 +电子邮件 4 +电子邮件 5
【问题讨论】:
-
要么让你的脚本检查电子表格中是否已经存在电子邮件,要么使用某种方式过滤你正在处理的电子邮件(例如添加/删除标签)
-
您可能还会发现使用GmailApp.search() 的一些价值
标签: google-apps-script google-sheets