Гид по технологиям

Как мигрировать почтовые ящики между IMAP‑серверами с помощью imapcopy

• 4 min read • Почта • Обновлено 22 Nov 2025
Миграция IMAP-почты с imapcopy
Миграция IMAP-почты с imapcopy

Версия 1.0
Автор: Falko Timme
Подпишитесь в Twitter

Введение

В этом руководстве показано, как мигрировать почтовые ящики между IMAP‑серверами с помощью imapcopy. imapcopy рекурсивно копирует все сообщения и папки из одной IMAP‑учётной записи в другую. Поддерживаются протоколы imap и imaps.

Важно: это инструкция общего характера — никаких гарантий успешности в вашей среде здесь не даётся.

Предварительное замечание

В примере используются два сервера под Debian/Ubuntu (в других дистрибутивах процедура аналогична, только способ установки Java может отличаться):

  • server1.example.com (источник)
  • server2.example.com (назначение)

Мы переносим почтовый ящик sales@example.com (имя пользователя: sales@example.com, пароль: secret) с server1.example.com на server2.example.com (логин и пароль остаются теми же).

Примечание для пользователей Ubuntu: все команды здесь должны выполняться с правами root. Либо добавляйте sudo перед каждой командой, либо станьте root командой:

sudo su

Перед началом

Откройте оба почтовых ящика в почтовом клиенте (например, Outlook, Thunderbird или веб‑интерфейс типа SquirrelMail), чтобы оценить текущее содержимое.

server1.example.com:

Скриншот почтового интерфейса на сервере server1.example.com с тремя тестовыми сообщениями

server2.example.com до миграции:

Скриншот пустого или исходного состояния почтового интерфейса на сервере server2.example.com

После удачной миграции три сообщения с server1.example.com должны появиться на server2.example.com.

Установка imapcopy

imapcopy требует Java. В примере мы устанавливаем openjdk‑6‑jre и unzip (проверьте современную версию Java в вашей системе — если доступен openjdk‑8 или выше, используйте её):

apt-get install openjdk-6-jre unzip

Далее скачиваем и распаковываем пакет imapcopy в /usr/local/imapcopy/:

cd /usr/local/
 mkdir imapcopy
 cd imapcopy
 wget http://imapcopy.googlecode.com/files/imapCopy0.3.1.zip
 unzip imapCopy0.3.1.zip

Сделаем скрипт исполняемым:

chmod +x /usr/local/imapcopy/imapCopy.sh

Примечание: если у вас другой дистрибутив, используйте соответствующую команду пакетного менеджера и путь установки.

Выполнение миграции

Синтаксис imapcopy:

/usr/local/imapcopy/imapCopy.sh protocol://user[:password]@server[:port] protocol://user[:password]@server[:port]

Протоколы: imap или imaps.

Если имя пользователя содержит символ @ (например, email), замените его на %40 в строке подключения. Пример команды для копирования с server1 на server2:

/usr/local/imapcopy/imapCopy.sh imap://sales%40example.com:[email protected] imap://sales%40example.com:[email protected]

Типичный вывод в консоли (усечённый пример):

root@server1:/usr/local/imapcopy# /usr/local/imapcopy/imapCopy.sh imap://sales%40example.com:[email protected] imap://sales%40example.com:[email protected]
 2011-09-30 13:28:27,751  INFO ImapCopier - Starting
 2011-09-30 13:28:27,751 DEBUG ImapCopier - Parameters length:2
 2011-09-30 13:28:27,751 DEBUG ImapCopier - opening conections
 2011-09-30 13:28:27,751 DEBUG ImapCopier - opening imap conection to server1.example.com
 2011-09-30 13:28:28,737 DEBUG ImapCopier - opening imap conection to server2.example.com
 2011-09-30 13:28:28,998 DEBUG ImapCopier - Creating target Folder: Drafts
 2011-09-30 13:28:29,030 DEBUG ImapCopier - Copying 0 messages from Drafts Folder
 2011-09-30 13:28:29,033 DEBUG ImapCopier - Creating target Folder: Junk
 2011-09-30 13:28:29,058 DEBUG ImapCopier - Copying 0 messages from Junk Folder
 2011-09-30 13:28:29,059 DEBUG ImapCopier - Creating target Folder: Trash
 2011-09-30 13:28:29,061 DEBUG ImapCopier - Copying 0 messages from Trash Folder
 2011-09-30 13:28:29,061 DEBUG ImapCopier - Creating target Folder: Sent
 2011-09-30 13:28:29,120 DEBUG ImapCopier - Copying 0 messages from Sent Folder
 2011-09-30 13:28:29,527 DEBUG ImapCopier - Copying 3 messages from INBOX Folder
 root@server1:/usr/local/imapcopy#

На целевом сервере (server2.example.com) вы увидите скопированные сообщения:

Скриншот списка писем на сервере server2.example.com после выполнения миграции

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

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

Если что‑то не скопировалось, см. раздел «Отладка и откат» ниже.

Отладка и откат

Важно: выполните эти шаги до массовой миграции, сначала протестируйте на одном почтовом ящике.

Частые причины ошибок и их решения:

  • Ошибка аутентификации: проверьте логин/пароль, попробуйте подключиться по IMAP из почтового клиента.
  • Проблемы с SSL: используйте imaps вместо imap и укажите порт 993, если требуется.
  • Ограничения на стороне сервера (лимиты на количество операций): уменьшите нагрузку, мигрируйте партиями.
  • Разные корневые префиксы папок (Inbox namespace): возможно, потребуется откалибровать маппинг папок вручную.

Простой план отката (rollback):

  1. Если вы создавали новые папки на целевом сервере, удалите их (или очистите).
  2. Если миграция завершилась частично — повторите копирование; imapcopy обычно пропускает дубликаты сообщений.
  3. При серьёзных проблемах восстановите почту из резервной копии целевого сервера.

Чеклист перед массовой миграцией

  • Тестовая миграция на одном аккаунте выполнена и проверена.
  • Есть актуальные резервные копии исходных и целевых почтовых данных.
  • Проверены лимиты IMAP на исходном и целевом серверах.
  • Уточнено, используется ли SSL/TLS и какие порты открыты.
  • Пользователи предупреждены о возможных кратковременных задержках.

Альтернативные подходы

  • Использовать offline‑экспорт/импорт через mbox/mbox2imap при большом объёме и доступе к файловой системе почтового хранилища.
  • Использовать dovecot‑sync или dsync (для серверов Dovecot) — быстрее и с учётом UID/flags.
  • Для корпоративных переносов рассмотреть специализированные инструменты миграции (коммерческие решения с поддержкой логов и отчётности).

Когда этот метод не подходит

  • Если у вас ограниченный IMAP‑доступ (только веб‑интерфейс), imapcopy не применим.
  • Если нужно сохранить серверные UID/интерфейсы, используйте инструменты, работающие на уровне хранилища.
  • При огромных объёмах (миллионы писем) потребуется планирование ресурсов и, возможно, другой инструмент.

Короткий глоссарий

  • IMAP: протокол доступа к электронной почте.
  • imapcopy: утилита на Java для копирования содержимого IMAP‑ящика в другой IMAP‑ящик.
  • imaps: IMAP поверх SSL/TLS.

Итог

imapcopy — простой и быстрый инструмент для одноразовой миграции почтовых ящиков между IMAP‑серверами. Перед массовой миграцией обязательно проверьте процесс на одном тестовом аккаунте, убедитесь в наличии резервных копий и продумайте откат.

Полезные ссылки

Краткая проверочная памятка для администратора

  • Тест: выполните полную миграцию одного тестового ящика и проверьте сообщения/вложения.
  • План: мигрируйте партиями, не нагружая сервер.
  • Отслеживание: сохраняйте вывод imapcopy для последующего анализа.

Примечание: команды в примере содержат явные пароли — в реальной практике используйте защищённые способы передачи учётных данных или временные пароли и сразу их меняйте.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро