К основному содержимому

Перенос почты с imapsync: IMAP → IMAP без потерь

Миграция · 02.02.2025 · 4 мин чтения
Иллюстрация к статье «Перенос почты с imapsync: IMAP → IMAP без потерь»

Порядок переноса почты через imapsync без потери писем

imapsync хорош тем, что его можно запускать многократно: каждый повторный прогон докачивает только новые письма. Это превращает разовый перенос в безопасный процесс без единого окна простоя для почты, в отличие от ручного перетаскивания в почтовом клиенте.

  1. Создайте ящики на новом сервере с теми же логинами, но новыми паролями.
  2. Запустите первый прогон imapsync — он перенесёт основной объём писем, пока MX ещё указывает на старый сервер.
  3. Прогоните imapsync ещё раз перед самым переключением MX — он докопирует письма, пришедшие за время первого прогона.
  4. Переключите MX-запись на новый сервер.
  5. Запустите 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
💡 imapsync можно запустить несколько раз — повторная синхронизация перенесёт только новые письма. Идеально для zero-downtime миграции.

Пакетный перенос нескольких ящиков

#!/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 для маппинга папок

Откат при проблемах

  1. Не удаляйте ящики на старом сервере минимум неделю после переключения MX.
  2. Если новый сервер работает нестабильно, верните старую MX-запись.
  3. После возврата запустите imapsync в обратном направлении, чтобы забрать письма, пришедшие на новый сервер.

Когда imapsync не подходит

Для переноса в Microsoft 365 или Google Workspace лучше использовать встроенные инструменты миграции этих платформ — они учитывают квоты и лимиты API конкретного провайдера, которые обычный IMAP-клиент не видит. imapsync хорошо работает между обычными IMAP-серверами, но не заменяет нативную миграцию в корпоративные почтовые платформы.

Проверка результата

  • Сравните число писем в папке «Входящие» и «Отправленные» старого и нового ящика.
  • Проверьте, что вложения открываются, а не повреждены при переносе.
  • Отправьте тестовое письмо на новый ящик снаружи и убедитесь, что оно попадает не в спам.

⚠️ Не переключайте MX-записи до завершения переноса. Запускайте imapsync финальный раз после смены MX для синхронизации последних писем. Общий порядок смены MX без простоя — в статье перенос email-почты на новый хостинг, а безопасная смена самой DNS-зоны — в статье миграция DNS без простоя.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке