Перенос почты с imapsync - UnixHost Blog

Перенос почты с imapsync - UnixHost Blog

При смене почтового сервера первый вопрос который возникает — каким образом можно сохранить все письма и перенести их на новый сервер? В решении данной задачи вам поможет утилита imapsync .

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

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

Обновим все доступные пакеты

Установим необходимы пакеты для работы утилиты

Скачиваем файл утилиты и устанавливаем утилите права на запуск

Запустим и проверим установлены ли все зависимости

Для удобства использования утилиты перенесем ее в директорию /usr/local/bin

В случаи если вам будет необходимо использовать OAuth 2.0 необходимо будет установить XOAUTH2

Устанавливаем необходимые пакеты для работы утилиты

Если получаем следующий текст, значит все установлено верно

Для проверки правильности установки выполняем команду

Для проверки установки выполняем команду

Для синхронизации нам потребуется два сервера сервера, старый сервер, с которого мы будет переносить почту и новый сервер, на который мы будем эту почту переносить.

Для демонстрации работы утилиты я создал два тестовых сервера, почтовый аккаунт старого сервера у нас будет называться server1, а почтовый аккаунт сервера на который мы будем переносить будет server2.

Для того чтобы синхронизировать почту выполняем следующую команду

Подробнее разберем данную команду:

Для того чтобы не передавать в терминал пароли от почтовых ящиком, вместо —password1 и —passwo rd2 можно использовать —passfile1 и —passfile2 в таком случаи вместо пароля необходимо указать путь к файлу в котором будет находится пароль.

В imapsync доступны дополнительные параметры

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

Для того чтобы упростить работу с утилитой, разработчик сделал простой и понятный веб интерфейс. Для того чтобы вебинтерфейс заработал, необходимо скопировать утилиту в папку cgi-bin и убедиться, что пользователь веб-сервера имеет доступ к данному файлу. Если же вы копировали файл от root пользователя то перейдите в папку в которую вы произвели копирование и выполните следующую команду

admin — имя пользователя и группа от которого запускается веб-интерфейс

Если вы используете панель управления HestiaCP то папка cgi-bin будет находится у вас в папке с доменным именем, рядом с папкой public_html .

Мы будем переносить почту с сервера server1 на server 2. В данный момент папка входящей почты на server1 вы глядит следующим образом.

А папка входящей почты server2 вот так

Для переноса воспользуемся вебинтерфейсом утилиты. В поле IMAP source Mailbox введем данные server1, а в IMAP destination Mailbox данные от сервера на который мы будем переносить, в нашем случаи это server2. Пример заполнения вы можете увидеть на фото ниже.

Для запуска переноса нажимаем на Sync or resync!

После успешной синхронизации папка входящих сообщений на server2 будет выглядеть также как и на server1

Recommended articles