Как добавить функцию Snooze в Gmail с помощью Google Apps Script
Важно: скрипт запрашивает доступ к вашему аккаунту Google для управления метками и письмами. Перед удалением скрипта удалите метки, чтобы не потерять письма навсегда.
Что такое Gmail Snooze и как это работает
Gmail Snooze — это пользовательский скрипт, который создаёт в вашем Gmail метку “Snooze” и семь подметок для отложенных писем (на 1–7 дней). Когда вы хотите отложить письмо, переместите его в соответствующую подметку (например, “Snooze/Snooze 3 days”). Скрипт запускается по расписанию (раз в сутки) и перемещает письма «вперёд» по цепочке меток. Когда письмо достигает «нулевой» позиции, оно автоматически возвращается в папку Входящие.
Кратко о преимуществах:
- Работает без сторонних расширений и платных сервисов.
- Полный контроль: метки и скрипт в вашем аккаунте.
- Гибкость триггера — вы выбираете время запуска.
Ключевая идея в одну фразу: скрипт использует метки как «ячейки времени», перемещая письмо через них по ночам до возвращения в Входящие.
Быстрый обзор шагов
- Создать таблицу Google и открыть Редактор скриптов.
- Вставить и сохранить скрипт.
- Выполнить функцию Setup для создания меток.
- Создать триггер времени для moveSnoozes (ежедневно ночью).
- Отложить письмо — переместить его в нужную подметку.
Подготовка: создать проект Apps Script
- Откройте Google Диск и создайте новую Таблицу Google.
- В меню выберите Инструменты → Редактор скриптов.
- В окне редактора удалите любой шаблонный код.
Сам скрипт
Вставьте ниже приведённый код в редактор и сохраните файл с понятным именем (например, “Gmail Snooze”). Этот код создаёт метки и выполняет ежедневное перемещение писем.
var MARK_UNREAD = false;
var ADD_UNSNOOZED_LABEL = false;
function getLabelName(i) {
return "Snooze/Snooze " + i + " days";
}
function setup() {
// Создаём основную метку и 7 подметок
GmailApp.createLabel("Snooze");
for (var i = 1; i <= 7; ++i) {
GmailApp.createLabel(getLabelName(i));
}
if (ADD_UNSNOOZED_LABEL) {
GmailApp.createLabel("Unsnoozed");
}
}
function moveSnoozes() {
var oldLabel, newLabel, page;
for (var i = 1; i <= 7; ++i) {
newLabel = oldLabel;
oldLabel = GmailApp.getUserLabelByName(getLabelName(i));
page = null;
// Получаем потоки по 100 шт. за раз
while(!page || page.length == 100) {
page = oldLabel.getThreads(0, 100);
if (page.length > 0) {
if (newLabel) {
// Перемещаем письма в следующую метку
newLabel.addToThreads(page);
} else {
// Если нет следующей метки — возвращаем в Входящие
GmailApp.moveThreadsToInbox(page);
if (MARK_UNREAD) {
GmailApp.markThreadsUnread(page);
}
if (ADD_UNSNOOZED_LABEL) {
GmailApp.getUserLabelByName("Unsnoozed").addToThreads(page);
}
}
// Убираем письма из старой метки
oldLabel.removeFromThreads(page);
}
}
}
}Примечания к коду:
- MARK_UNREAD — если true, вернувшиеся письма будут помечены как непрочитанные.
- ADD_UNSNOOZED_LABEL — если true, скрипт добавит метку “Unsnoozed” для возвращённых писем.
- getLabelName формирует имена меток в виде “Snooze/Snooze N days”.
Запуск функции Setup и авторизация
- Сохраните скрипт (значок дискеты).
- В выпадающем списке “Выбрать функцию” выберите Setup.
- Нажмите кнопку Run (треугольник).
- Разрешите необходимые права, следуя подсказкам Google (разрешить доступ к Gmail и меткам).
После успешного выполнения переключитесь в Gmail и найдите новую метку “Snooze” с семью подметками.
Настройка триггера для автоматического перемещения
- Вернитесь в редактор скриптов.
- В меню выберите Ресурсы → Триггеры текущего проекта (или значок часов в новом редакторе).
- Добавьте новый триггер:
- Run: moveSnoozes
- Event source: Time-driven
- Type of time based trigger: Day timer
- Time of day: Midnight to 1am (полночь–1:00)
Такой интервал логичен, потому что скрипт считает дни целыми сутками. Вы можете выбрать другой интервал, но помните, что логика смещения предполагает один запуск в сутки.
Как использовать Gmail Snooze в повседневной работе
- Выделите письмо или беседу в Входящих.
- Нажмите на меню “Переместить в” (иконка папки).
- Выберите нужную подметку, например “Snooze/Snooze 3 days”.
Письмо исчезнет из Входящих и появится в выбранной подметке. Каждый запуск скрипта сдвинет письмо на одну позицию ближе к возвращению.
Удаление Gmail Snooze и меток
Если вы хотите удалить систему:
- Откройте Редактор скриптов.
- На левой панели выберите проект и выберите File → Delete.
- Это отменит разрешения скрипта и удалит сам скрипт.
Удаление скрипта не удаляет автоматически созданные метки. Чтобы удалить их, в Gmail кликните по метке Snooze → Удалить метку. Удаление метки удалит все подпапки. Внимание: вместе с меткой будут удалены и письма, которые хранятся только в этой метке. Перенесите важные письма в папку Входящие или другую метку, если не хотите их потерять.
Частые проблемы и их решения
Скрипт не запускается по триггеру.
- Проверьте, установлен ли триггер в редакторе скриптов.
- Убедитесь, что аккаунт, в котором создан скрипт, — тот же, что и Gmail.
Письма не возвращаются в Входящие.
- Проверьте порядок подметок. Скрипт ожидает имена в формате “Snooze/Snooze N days”.
- Убедитесь, что у скрипта есть права на управление метками и письмами.
Потеря писем после удаления метки.
- Письма в Gmail могут иметь единственную метку. Если вы удалите метку и не переместите письмо в Входящие, оно будет недоступно. Перед удалением метки перенесите письма.
Альтернативы и когда этот метод не подходит
Когда стоит выбрать альтернативу:
- Если вам нужна точная привязка к времени (например, через часы и минуты), встроенная функция Snooze в Gmail или платный сервис будет удобнее.
- Если вы используете корпоративный G Suite с ограничениями на Apps Script, обсудите с администратором.
- Для совместной работы с командой лучше выбирать сторонние решения с централизованным управлением задачами.
Альтернативные подходы:
- Встроенный Snooze в Gmail (точно на время/дату).
- Расширения для Gmail, которые добавляют дополнительные опции (требуют доверия и доступа к почте).
- Система задач в Google Tasks или сторонние таск-трекеры (Trello, Asana) с пересылкой писем.
Рекомендации по безопасности и конфиденциальности
- Скрипт запрашивает доступ только к Gmail-меткам и потокам писем. Проверьте запросы разрешений при первом запуске.
- Для корпоративных учетных записей уточните политику IT по использованию Apps Script.
- Не публикуйте скрипт в общедоступных репозиториях с доступом к вашему аккаунту.
Критерии приёмки
- Скрипт создал метку “Snooze” и семь подметок.
- Триггер moveSnoozes установлен и активен.
- Письмо, перемещённое в “Snooze/Snooze 1 days”, вернулось в Входящие через один запуск скрипта.
- При включённом MARK_UNREAD возвращённые письма отмечаются как непрочитанные.
Контроль качества и тесты
Тестовые шаги перед массовым использованием:
- Переместите тестовое письмо в “Snooze/Snooze 1 days”.
- Принудительно выполните moveSnoozes в редакторе (Run) и проверьте возврат.
- Измените MARK_UNREAD на true и повторите, проверьте флаг непрочитанности.
- Проверьте удаление метки: переместите важное письмо в Входящие вручную перед удалением метки.
Порядок действий для команды (SOP)
- Назначьте владельца скрипта (обычно личный аккаунт или сервисный аккаунт).
- Создайте проект в аккаунте владельца.
- Настройте и протестируйте скрипт на одном тестовом письме.
- Настройте триггер и мониторинг (лог выполнения в редакторе скриптов).
- Документируйте правила использования: кто может перемещать письма в Snooze и на какие сроки.
Шаблон быстрых проверок перед удалением
- Есть ли в метках Snooze важные письма? Если да — переместите их.
- Отключён ли триггер? Если нет — удалите триггер.
- Удалён ли сам проект Apps Script? Если нет — удалите проект.
Ментальные модели и рекомендации по использованию
- Модель “Ячейки времени”: думайте о каждой подметке как о дате возвращения. Перемещая письмо в “Snooze 5 days”, вы помещаете его в ячейку на 5 дней вперёд.
- Правило двух минут: если на письмо можно ответить за 2 минуты — сделайте это сразу, не откладывайте.
- Правило одной метки: присваивайте письмам максимум одну рабочую метку для упрощения контроля.
Короткая версия для объявления команде (100–200 слов)
Gmail Snooze — лёгкий способ отложить письма без сторонних приложений. С помощью Google Apps Script создаётся метка Snooze и семь подметок для отложенных писем. Перемещайте письмо в нужную подметку, а скрипт автоматически вернёт его в Входящие через заданное число дней. Установка занимает несколько минут: вставьте скрипт в Редактор скриптов, выполните Setup и поставьте ежедневный триггер. Скрипт бесплатен и работает в вашем аккаунте Google. Перед удалением убедитесь, что все важные письма перенесены, иначе они могут быть утрачены вместе с метками.
Короткий FAQ
Q: Нужны ли сторонние приложения? A: Нет, всё работает через Google Apps Script.
Q: Можно ли изменить число дней? A: По умолчанию реализованы 1–7 дней. Можно расширить цикл в коде, добавив дополнительные метки и скорректировав логику.
Q: Что произойдёт с письмами при удалении метки? A: Письма, имеющие только эту метку, будут недоступны. Перенесите важные письма в Входящие до удаления.
Заключение
Этот метод — практичный и бесплатный способ добавить функцию отложенного возврата писем в Gmail, особенно если вы предпочитаете держать контроль в своих руках и не хотите подключать сторонние сервисы. Скрипт можно модифицировать под свои задачи: добавить больше уровней, пометку возвращённых писем или интеграции с задачами. Попробуйте на одном тестовом письме, затем решите, подходит ли подход для вашей личной работы или команды.
Поделитесь в комментариях: попробовали ли вы этот подход? Какие сценарии отложенных писем у вас встречаются чаще всего?
Clock image via Shuttertock
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone