我用它删除标签中的所有电子邮件:
WKNavigationDelegate
但是它很慢(对于包含几百条消息的标签,速度要超过1分钟30分),因为它会在所有消息上进行迭代。
另一种选择是完全删除标签,然后重新创建它,但这将更改该标签的Gmail GUI设置(颜色等),因此实际上不是一个选择。
问题:如何使用Google Apps脚本在Gmail中有效地从标签中删除所有电子邮件?
答案 0 :(得分:2)
for
循环更快-请参见here 您可以通过将代码修改为
来提高速度function emptyLabel() {
var label = GmailApp.getUserLabelByName("label_name");
var threads = label.getThreads();
threads.forEach(function(thread){
thread.removeLabel(label);
})
}
在enabling中通过Apps脚本编辑器完成后,通常可以结合使用users.messages.list和users.messages.batchModify来加快请求的速度:
function myFunction() {
var messages = Gmail.Users.Messages.list("me", {"labelIds":"label_name"}).messages;
var ids = [];
messages.forEach(function(message){ids.push(message.id)});
Gmail.Users.Messages.batchModify({"ids":ids, "removeLabelIds":["label_name"]}, "me");
}