Экспорт всех писем из Яндекс.Почты в файлы .eml без доступа по
IMAP и без платной подписки Яндекс 360 — и перенос их на любой
другой почтовый хостинг по обычному IMAP. Подходит, когда нужно
выгрузить почтовый ящик на своём домене, сделать резервную копию
(бэкап) переписки или полностью переехать с Яндекса на другой сервер.
Контекст: с 29 июня 2026 Яндекс закрыл доступ по IMAP/SMTP для
бесплатных почтовых ящиков на собственных доменах — протоколы теперь
требуют платной подписки Яндекс 360. Веб-интерфейс (mail.yandex.ru)
при этом продолжает работать бесплатно — и этот проект выгружает
письма через него, тем же внутренним веб-API, которым пользуется
браузер.
- Яндекс отключил IMAP, а вам нужно скачать все письма из ящика — почтовый клиент (Thunderbird, Outlook, Apple Mail) больше не может подключиться и забрать архив.
- Переезд с Яндекс.Почты на другой почтовый хостинг (Beget, Timeweb, reg.ru, Mail.ru / VK WorkMail, Fastmail, свой сервер на Dovecot) с сохранением папок, дат и флагов прочитанности.
- Не хочется платить за Яндекс 360 только ради разового включения IMAP для выгрузки писем.
- Резервная копия почты: полный дамп ящика в открытом формате
.eml— читается любым почтовым клиентом, ничем не зашифрован, не привязан ни к какому сервису.
Два независимых скрипта, между которыми — обычные файлы .eml на
диске, никакой магии и скрытого состояния:
yandex-dump— выгружает все письма из Яндекс.Почты в.eml, используя внутренний веб-API вместо IMAP (тот же API, которым пользуется браузерный интерфейсmail.yandex.ru).imap-upload— заливает эти.emlна новый сервер по стандартному IMAP (APPEND), с сохранением папок, флага прочитанности и дат. Работает с любым IMAP-провайдером — таблица проверенных хостов в imap-upload/README.md.
Если нужен только бэкап без переезда — достаточно первого скрипта.
- Python 3.8+ и модуль
venv(в Debian/Ubuntu:apt install python3-venv). - Внешняя зависимость одна —
requests, и нужна она толькоyandex-dump; обёрткаdump.shпри первом запуске сама создаст виртуальное окружение.venvи поставит её туда.imap-uploadработает на чистой стандартной библиотеке. - Как поставить окружение вручную (для запуска
yandex_dump.pyбез обёртки) — см. yandex-dump/README.md.
git clone https://github.com/leksuss/yandex-mail-export.git
cd yandex-mail-export
cd yandex-dump
./dump.sh # подробно объяснит, что делать дальше
cd ../imap-upload
./upload.sh ../yandex-dump/dump box@ваш-новый-домен.ру
# адрес IMAP-сервера назначения скрипт спросит сам; можно задать сразу:
IMAP_HOST=imap.beget.com ./upload.sh ../yandex-dump/dump box@ваш-новый-домен.руАдрес IMAP-сервера вашего хостинга смотрите в его панели управления; таблица типовых хостов (Beget, Timeweb, reg.ru, Mail.ru и др.) — в imap-upload/README.md.
Подробные инструкции, все флаги и разбор проблем — в README каждого подпроекта: yandex-dump/README.md, imap-upload/README.md.
yandex-dump никогда не спрашивает и не видит ваш пароль от
Яндекса. Вместо автоматического логина вы вручную копируете cookies
уже открытой в браузере сессии — это осознанное решение, а не
недоработка:
- так скрипт физически не может ни украсть, ни случайно залогировать пароль — его просто нет ни на одном этапе;
- так же честнее по отношению к антибот-защите Яндекса, чем автоматизированный логин с эмуляцией браузера.
Скрипт обращается только к mail.yandex.ru — это единственная
константа BASE в начале yandex_dump.py, можно проверить исходники
сами. Тем не менее файл с cookies по силе равен паролю (без второго
фактора) — не публикуйте его, не коммитьте в git, удаляйте после
использования.
imap-upload тоже не хранит и никуда не передаёт пароль от нового
ящика, кроме самого IMAP-сервера, к которому вы подключаетесь; ввод —
через getpass (не отображается на экране) или переменную окружения.
Официального способа выгрузить письма без IMAP/SMTP и без оплаты
подписки Яндекс не предоставляет. Внутренний веб-API, который
использует yandex-dump, не документирован и может измениться в
любой момент — отсюда набор защитных механизмов в коде (автоопределение
структуры ответов, ретраи, подстраиваемые параметры) и подробный
раздел troubleshooting в README yandex-dump. Используйте на свой
страх и риск и не забывайте о разумных паузах между запросами, чтобы
не создавать нагрузку на чужой сервис.
Запустить yandex-dump: он выгрузит весь ящик в
.eml-файлы через веб-интерфейс, без IMAP и без подписки. Нужны
только cookies открытой в браузере сессии.
Да — именно для этого проект и написан. Платная подписка нужна только для протоколов IMAP/SMTP; веб-интерфейс бесплатен, и выгрузка идёт через него.
Сначала yandex-dump (выгрузка в .eml), затем
imap-upload — он зальёт письма на новый сервер по
IMAP с сохранением структуры папок, дат и прочитанности. Список
проверенных провайдеров и адреса их IMAP-серверов — в
imap-upload/README.md.
Стандартный .eml (RFC 822) — его открывает любой почтовый клиент
(Thunderbird, Outlook, Apple Mail) двойным кликом, плюс рядом лежит
manifest.jsonl с метаданными (папка, дата, прочитанность). Никакого
собственного формата и привязки к этим скриптам нет.
Нет. Оба скрипта резюмируемые: повторный запуск той же команды
продолжает с места остановки (по manifest.jsonl у выгрузки и
uploaded_*.txt у заливки), уже обработанные письма не трогаются.
Основной сценарий — ящики на собственных доменах, которым отключили IMAP. Но выгрузка работает через веб-интерфейс, одинаковый для всех ящиков, так что и для @yandex.ru это рабочий способ сделать полный дамп почты.
Export all emails from Yandex Mail without IMAP (which Yandex has
put behind the paid Yandex 360 subscription for custom-domain
mailboxes since June 2026), and migrate them to any other IMAP mail
server. Two scripts: yandex-dump downloads every message as standard
.eml files through the same internal web API the browser UI uses
(cookie-based, your password is never seen or asked for);
imap-upload uploads those .eml files to any IMAP server via
APPEND, preserving folders, read flags and original dates. Both are
resumable. Useful for Yandex Mail backup, mailbox export and mail
hosting migration when IMAP access is disabled or paywalled.
yandex-mail-export/
├── yandex-dump/ # выгрузка (экспорт) писем из Яндекс.Почты в .eml
│ ├── yandex_dump.py
│ ├── dump.sh
│ └── README.md
├── imap-upload/ # заливка .eml на новый IMAP-сервер
│ ├── imap_upload.py
│ ├── upload.sh
│ └── README.md
└── inspect_debug.py # диагностика JSON-ответов API (без утечки содержимого писем)
MIT — см. LICENSE.