С помощью Google Apps Script можно удалить пустые (неиспользованные) метки Gmail?Сценарий Google Apps: как удалить пустые метки Gmail?
ответ
Конечно, сначала используйте GmailApp.getUserLabels(), чтобы получить все метки, затем прокрутите их и используйте getThreads(), чтобы определить, является ли данный ярлык пустым и, наконец, используйте deleteLabel() для удаления пустых.
См:
https://developers.google.com/apps-script/reference/gmail/gmail-app
https://developers.google.com/apps-script/reference/gmail/gmail-label
GmailApp.getUserLabels(), getThreads() и deleteLabel() является путь, но будьте осторожны, чтобы не удалить пустые ярлыки, если один из его суб-ярлыки нет!
Основываясь на ответах выше, здесь используется скрипт Google Apps для удаления пустых меток (с проверкой вложенных меток). Javascript является грубым, но он работает! Переменная 'testing' определяет, будет ли она просто регистрировать или фактически удалять метки.
Вы можете отлаживать, запускать приложения Google Сценарии на 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. Как удалить метку GMail - скрипт Google Apps
- 3. Сценарий Google Apps: как удалить ссылку из документа
- 4. Сценарий Google Apps Script ToggleButton
- 5. Сценарий приложения Google Apps CUrl
- 6. Сценарий Flash и Google Apps
- 7. Скрипт Google Apps для Gmail Deletion
- 8. Сценарий Google Apps: getCursor(); ошибка
- 9. Сценарий Google Apps .add Рекурсивно?
- 10. Сценарий Google Apps: изменение трека
- 11. Неожиданная ошибка Сценарий Google Apps
- 12. Скрипт Google Apps, GMail, электронные таблицы
- 13. Google Gmail время сценарий автоответ
- 14. Удалить скрипт google-apps
- 15. Сценарий Google Apps - обмениваться виджетами между функциями
- 16. Сценарий Google Apps Удалите папку с диска
- 17. Использование «отправленной» метки в переменной для скрипта Google Apps
- 18. Сводка сбоев скрипта Google Apps: Gmail планировщиком
- 19. Расширение Gmail - возможности. Gmail или скрипт Google Apps
- 20. Сценарий Google Apps: как изменить цвет текста ярлыка при наведении?
- 21. Сценарий Google Apps для удаления всех файлов с Google Drive?
- 22. Как добавить гиперссылки на пользователя Google Forms Сценарий Google Apps
- 23. Сценарий триггера для скриптов Google Apps
- 24. Сценарий Google Apps - создание событий календаря
- 25. Сценарий Google Apps - ContactsApp - Поиск в каталоге
- 26. Изменить адрес получателя Сценарий Google Apps
- 27. Сценарий Google Apps не позволяет отправлять исходящие сообщения электронной почты
- 28. Сценарий Google Apps добавляет папки для пользователей
- 29. google apps сценарий календарь авторизация необходимый цикл
- 30. Сценарий Google Apps - превысило максимальное время выполнения
Я создал сценарий в электронной таблице Google для всех, чтобы создать копию. Получите скрипт [здесь] (https://docs.google.com/spreadsheets/d/1Pl89ClWMGkSaykD3QvuPdRdMeVHHUng6HF2m--7OeXU/edit?usp=sharing). – orschiro