使用Google Apps脚本,是否可以删除空的(未使用的)Gmail标签?Google Apps脚本:如何删除空的Gmail标签?
0
A
回答
1
当然,首先使用GmailApp.getUserLabels()检索所有标签,然后遍历它们并使用getThreads()确定给定标签是否为空,最后使用deleteLabel()删除空标签。
参见:
https://developers.google.com/apps-script/reference/gmail/gmail-app
https://developers.google.com/apps-script/reference/gmail/gmail-label
1
GmailApp.getUserLabels(),getThreads()和deleteLabel()是去了,但照顾,如果没有一个要删除的空标签的方式它的子标签不是!
1
根据上面的答案,这里是一个Google Apps脚本,用于删除空标签(使用嵌套标签检查)。 JavaScript是粗糙的,但它的工作原理! “测试”变量确定它是否仅记录或实际删除标签。
可以调试,运行在https://script.google.com
//
// Set to 'false' if you want to actually delete labels
// otherwise it will log them but not delete them.
//
var testing = true;
//
// Deletes labels with no email threads
//
function deleteEmptyLabels() {
Logger.log("Starting label cleanup");
var allLabels = GmailApp.getUserLabels();
var emptyLabels = allLabels.filter(function(label){ return isTreeEmpty(label, allLabels); });
for (var i = 0; i < emptyLabels.length; i++){
Logger.log('Deleting empty label ' + emptyLabels[i].getName());
if (!testing){
emptyLabels[i].deleteLabel();
}
}
Logger.log("Finished label cleanup");
}
//
// Finds labels below a parent
//
function getNestedLabels(parent, allLabels) {
var name = parent.getName() + '/';
return allLabels.filter(function(label) {
return label.getName().slice(0, name.length) == name;
});
}
//
// Tests a single label for 'emptiness'
//
function isLabelEmpty(label){
return label.getThreads(0, 1) == 0;
}
//
// Tests a label, and nested labels for 'emptiness'
//
function isTreeEmpty(label, allLabels){
if (!isLabelEmpty(label))
return false;
var nested = getNestedLabels(label, allLabels);
for(var j = 0; j < nested.length; j++){
if (!isTreeEmpty(nested[j], allLabels))
return false;
}
return true;
}
相关问题
- 1. 用于删除Gmail的Google Apps脚本
- 2. Google Apps脚本 - Gmail,永久删除具有特定标签的垃圾邮件
- 3. 删除google-apps脚本
- 4. 删除Google Apps脚本中的标签面板
- 5. Gmail和Google Apps脚本:了解应用标签的日期
- 6. 删除Google Apps脚本面板
- 7. Google Apps脚本 - 使用.replace方法删除空格
- 8. Google Apps脚本 - 使用Gmail签名发送电子邮件
- 9. 使用Google Apps脚本在X天后从Gmail电子邮件中删除标签
- 10. 基于某些标题值删除列Google Apps脚本
- 11. Gmail的Apps脚本,将收件箱标签分配给线程
- 12. Google Apps脚本 - 如何获取onEdit脚本或onDelete中已删除的行?
- 13. Google Apps脚本:如何从数组中删除散布的标题行?
- 14. 删除脚本标签
- 15. 使用Google Apps脚本删除Google表格中的行
- 16. 如何使用Google Apps脚本清除Google表格中的列?
- 17. Gmail删除标签例如<audio>
- 18. Google Apps引擎,Google Apps脚本和Javascript
- 19. Google Apps脚本CoffeeScript
- 20. Google Apps脚本DockPanel
- 21. Google Apps脚本[createServerClickHandler]
- 22. 从Google Apps脚本
- 23. Google Site Apps脚本
- 24. 清空日期框值 - Google Apps脚本
- 25. Google Apps脚本空闲时间
- 26. 如何备份Google Apps脚本的scriptdb
- 27. 删除Google Apps脚本ScriptDB中的重复项
- 28. 删除Google Apps脚本文档服务中的内容
- 29. Google Apps脚本:向发送的电子邮件添加标签
- 30. 使用Google Apps脚本清除文档
谷歌Apps脚本我创建的脚本在谷歌电子表格为大家创造一个副本。获取脚本[这里](https://docs.google.com/spreadsheets/d/1Pl89ClWMGkSaykD3QvuPdRdMeVHHUng6HF2m--7OeXU/edit?usp=sharing)。 – orschiro