Порядок переноса почты через imapsync без потери писем
imapsync хорош тем, что его можно запускать многократно: каждый повторный прогон докачивает только новые письма. Это превращает разовый перенос в безопасный процесс без единого окна простоя для почты, в отличие от ручного перетаскивания в почтовом клиенте.
- Создайте ящики на новом сервере с теми же логинами, но новыми паролями.
- Запустите первый прогон
imapsync— он перенесёт основной объём писем, пока MX ещё указывает на старый сервер. - Прогоните
imapsyncещё раз перед самым переключением MX — он докопирует письма, пришедшие за время первого прогона. - Переключите MX-запись на новый сервер.
- Запустите
imapsyncфинальный раз через сутки после переключения — заберёт письма, которые пришли на старый сервер из-за не обновившегося у части провайдеров DNS-кэша.
Установка imapsync
# Ubuntu/Debian
apt install imapsync -y
# Проверка версии
imapsync --version
Базовый перенос почтового ящика
imapsync --host1 mail.oldserver.com --user1 user@oldserver.com --password1 "old_pass" --host2 mail.newserver.com --user2 user@newserver.com --password2 "new_pass" --ssl1 --ssl2 --exclude "Trash" --nofoldersizes
Пакетный перенос нескольких ящиков
#!/bin/bash
# accounts.txt: user1@old.com:pass1:user1@new.com:pass2
while IFS=: read -r user1 pass1 user2 pass2; do
imapsync --host1 mail.old.com --user1 "$user1" --password1 "$pass1" --host2 mail.new.com --user2 "$user2" --password2 "$pass2" --ssl1 --ssl2 --nofoldersizes &
done < accounts.txt
wait
Знак & в конце команды запускает перенос ящика в фоне, а wait дожидается завершения всех фоновых процессов — так десятки ящиков переносятся параллельно, а не по очереди.
Сравнение режимов запуска
| Режим | Скорость | Когда использовать |
|---|---|---|
| Один ящик, последовательно | низкая | 1–5 ящиков, тестовый прогон |
| Пакетный запуск с & и wait | высокая, ограничена сетью | десятки и сотни ящиков |
| С флагом --maxbytesaftersync | средняя, точный контроль | ограниченный канал, нужен дозированный перенос |
Полезные флаги для реального переноса
| Флаг | Что делает |
|---|---|
| --dry | Показывает, что будет перенесено, без реальной записи писем |
| --delete2duplicates | Убирает дубликаты на приёмнике перед повторным прогоном |
| --useuid | Сохраняет исходные UID писем вместо генерации новых |
| --log | Пишет подробный лог переноса в файл для разбора ошибок |
Перед первым реальным прогоном на проде стоит один раз выполнить перенос с флагом --dry — он покажет, сколько писем и папок будет скопировано, без единой реальной записи на новом сервере. Это позволяет заранее оценить время полного переноса по количеству писем в выводе.
Проверка до переключения MX
Подключите новый ящик в почтовом клиенте как отдельный аккаунт напрямую по адресу нового сервера, минуя MX-запись домена:
# Ручное подключение к новому серверу для проверки
Сервер: mail.newserver.com
Порт: 993 (IMAP/SSL)
Логин: user@oldserver.com
Сравните число писем и структуру папок с оригинальным ящиком — они должны совпадать после каждого прогона imapsync.
Типичные ошибки
| Ошибка | Решение |
|---|---|
| SSL certificate error | Добавьте --nossl1 или --tls1 |
| AUTHENTICATE failed | Проверьте пароль, включите IMAP в настройках |
| Connection timeout | Добавьте --timeout 60 |
| Folder not found | Используйте --f1f2 для маппинга папок |
Откат при проблемах
- Не удаляйте ящики на старом сервере минимум неделю после переключения MX.
- Если новый сервер работает нестабильно, верните старую MX-запись.
- После возврата запустите
imapsyncв обратном направлении, чтобы забрать письма, пришедшие на новый сервер.
Когда imapsync не подходит
Для переноса в Microsoft 365 или Google Workspace лучше использовать встроенные инструменты миграции этих платформ — они учитывают квоты и лимиты API конкретного провайдера, которые обычный IMAP-клиент не видит. imapsync хорошо работает между обычными IMAP-серверами, но не заменяет нативную миграцию в корпоративные почтовые платформы.
Проверка результата
- Сравните число писем в папке «Входящие» и «Отправленные» старого и нового ящика.
- Проверьте, что вложения открываются, а не повреждены при переносе.
- Отправьте тестовое письмо на новый ящик снаружи и убедитесь, что оно попадает не в спам.
⚠️ Не переключайте MX-записи до завершения переноса. Запускайте imapsync финальный раз после смены MX для синхронизации последних писем. Общий порядок смены MX без простоя — в статье перенос email-почты на новый хостинг, а безопасная смена самой DNS-зоны — в статье миграция DNS без простоя.