Публикация была переведена автоматически. Исходный язык: Русский
История
У моих знакомых была одна и та же проблема: их почтовые ящики на Mail.ru постоянно переполнялись письмами. Годами накапливалась старая переписка, уведомления, рассылки… В итоге почта начинала тормозить, и свободного места не хватало для новых писем. Они попросили помочь удалить письма, которым больше трёх месяцев. Проанализировав их почту, я понял, что оптимальным порогом для очистки будет один год.
Удалять тысячи писем вручную — занятие далеко не приятное. Тем более что веб-интерфейс Mail.ru не слишком удобен для массовой очистки, особенно когда речь идёт о письмах за несколько лет.
Поэтому я решил написать простой инструмент, который делает это автоматически
Что получилось
Создал программу Mail Cleaner, которая:
- Подключается к почте Mail.ru по протоколу IMAP
- Находит все письма старше заданного количества дней (по умолчанию 365 дней)
- Удаляет их безвозвратно
- Логирует весь процесс в файл
- Работает как обычная .exe программа на Windows
- у друзей на компьютере настроил Планировщик, который запускает раз в месяц
Как это работает
Выбрал Node.js - быстро, просто, есть отличные библиотеки для работы с почтой:
1. ImapFlow - современная библиотека для работы с IMAP, поддерживает асинхронность
2. DayJS - легковесная библиотека для работы с датами
3. pkg- позволяет упаковать Node.js скрипт в исполняемый .exe файл
Программа делает следующее:
Читает конфигурацию из файла config.json
{
"email": "your_email@mail.ru",
"password": "your_password_here",
"days": 365,
"host": "imap.mail.ru",
"port": 993
}
- Подключается к почте через защищённое IMAP-соединение (порт 993, SSL).
- Открывает папку INBOX и ищет письма старше N дней.
- Удаляет письма пакетами по 100 штук для ускорения процесса.
- Логирует каждый шаг — весь процесс записывается в файл с временной меткой.
Несколько важных моментов:
- Поддержка паролей приложений для тех, у кого включена двухфакторная аутентификация.
- Локальное хранение — все данные (логин, пароль) хранятся только в config.json, никуда не отправляются.
- SSL-соединение — подключение к почте идёт через защищённый IMAP.
- Логи — все действия фиксируются, и всегда можно посмотреть, что было удалено.
В будущем можно добавить:
- фильтрацию по папкам (не только INBOX),
- фильтры по отправителю,
- режим «dry run» — показать, что будет удалено, без фактического удаления,
- планировщик задач,
- поддержку других почтовых сервисов (Gmail, Yandex),
- GUI-интерфейс.
Создание такого инструмента заняло всего несколько часов, но значительно упростило жизнь знакомым. Это отличный пример того, как небольшая автоматизация решает реальную проблему.
Главное:
- Простота использования — скачал .exe, настроил config, запустил.
- Надёжность — подробные логи и обработка ошибок.
- Скорость — пакетное удаление писем.
- Безопасность — локальное хранение данных и SSL.
Если у вас похожая проблема с переполненной почтой — можете сделать нечто подобное. Node.js и IMAP-библиотеки отлично подходят для таких задач.
P.S. Перед использованием обязательно протестируйте на тестовом аккаунте или выставьте большое число дней (например, 1000). Удалённые письма нельзя восстановить.
История
У моих знакомых была одна и та же проблема: их почтовые ящики на Mail.ru постоянно переполнялись письмами. Годами накапливалась старая переписка, уведомления, рассылки… В итоге почта начинала тормозить, и свободного места не хватало для новых писем. Они попросили помочь удалить письма, которым больше трёх месяцев. Проанализировав их почту, я понял, что оптимальным порогом для очистки будет один год.
Удалять тысячи писем вручную — занятие далеко не приятное. Тем более что веб-интерфейс Mail.ru не слишком удобен для массовой очистки, особенно когда речь идёт о письмах за несколько лет.
Поэтому я решил написать простой инструмент, который делает это автоматически
Что получилось
Создал программу Mail Cleaner, которая:
- Подключается к почте Mail.ru по протоколу IMAP
- Находит все письма старше заданного количества дней (по умолчанию 365 дней)
- Удаляет их безвозвратно
- Логирует весь процесс в файл
- Работает как обычная .exe программа на Windows
- у друзей на компьютере настроил Планировщик, который запускает раз в месяц
Как это работает
Выбрал Node.js - быстро, просто, есть отличные библиотеки для работы с почтой:
1. ImapFlow - современная библиотека для работы с IMAP, поддерживает асинхронность
2. DayJS - легковесная библиотека для работы с датами
3. pkg- позволяет упаковать Node.js скрипт в исполняемый .exe файл
Программа делает следующее:
Читает конфигурацию из файла config.json
{
"email": "your_email@mail.ru",
"password": "your_password_here",
"days": 365,
"host": "imap.mail.ru",
"port": 993
}
- Подключается к почте через защищённое IMAP-соединение (порт 993, SSL).
- Открывает папку INBOX и ищет письма старше N дней.
- Удаляет письма пакетами по 100 штук для ускорения процесса.
- Логирует каждый шаг — весь процесс записывается в файл с временной меткой.
Несколько важных моментов:
- Поддержка паролей приложений для тех, у кого включена двухфакторная аутентификация.
- Локальное хранение — все данные (логин, пароль) хранятся только в config.json, никуда не отправляются.
- SSL-соединение — подключение к почте идёт через защищённый IMAP.
- Логи — все действия фиксируются, и всегда можно посмотреть, что было удалено.
В будущем можно добавить:
- фильтрацию по папкам (не только INBOX),
- фильтры по отправителю,
- режим «dry run» — показать, что будет удалено, без фактического удаления,
- планировщик задач,
- поддержку других почтовых сервисов (Gmail, Yandex),
- GUI-интерфейс.
Создание такого инструмента заняло всего несколько часов, но значительно упростило жизнь знакомым. Это отличный пример того, как небольшая автоматизация решает реальную проблему.
Главное:
- Простота использования — скачал .exe, настроил config, запустил.
- Надёжность — подробные логи и обработка ошибок.
- Скорость — пакетное удаление писем.
- Безопасность — локальное хранение данных и SSL.
Если у вас похожая проблема с переполненной почтой — можете сделать нечто подобное. Node.js и IMAP-библиотеки отлично подходят для таких задач.
P.S. Перед использованием обязательно протестируйте на тестовом аккаунте или выставьте большое число дней (например, 1000). Удалённые письма нельзя восстановить.