В этой статье вы узнаете как установить imapsync и перенести с помощью этой утилиты почту с вашего старого почтового сервера на сервер с Zimbra.
Данная статья так же подойдет для переноса между другими почтовыми серверами по протоколу imap. Для начала установим программу imapsync.
Установка imapsync в Centos 7
Пакет imapsync доступен в репозитории пакетов EPEL, поэтому сначала убедитесь, что вы добавили EPEL в свою систему и установите его, если еще не сделали этого.
yum install epel-release
Теперь установите пакет imapsync, используя следующую команду.
yum install imapsync
Установка imapsync в Centos 8 Stream
Imapsync не доступен из репозитория в Centos 8, поэтому его нужно собрать руками и запускать как скрипт ./imapsync [аргументы]
dnf install wget perl-App-cpanminus gcc perl-libwww-perl perl-IO-Socket-INET6
cpanm lazy Test::MockObject
wget https://imapsync.lamiral.info/imapsync
perl -Mlazy imapsync
chmod +x imapsync
Установка imapsync в Ubuntu
При использовании ОС Ubuntu установка imapsync происходит из исходников. Для начала установим необходимые зависимости для утилиты.
sudo apt-get install git rcs make makepasswd cpanminus
sudo apt-get install libauthen-ntlm-perl libclass-load-perl libcrypt-ssleay-perl liburi-perl libdata-uniqid-perl libdigest-hmac-perl libdist-checkconflicts-perl libfile-copy-recursive-perl libio-compress-perl libio-socket-inet6-per libio-socket-ssl-perl libio-tee-perl libmail-imapclient-perl libmodule-scandeps-perl libnet-ssleay-perl libpar-packer-perl libreadonly-perl libsys-meminfo-perl libterm-readkey-perl libtest-fatal-perl libtest-mock-guard-perl libtest-pod-perl libtest-requires-perl libtest-simple-perl libunicode-string-perl
sudo cpanm Mail::IMAPClient JSON::WebToken Test::MockObject
sudo cpanm Unicode::String Data::Uniqid
Теперь скачаем исходный код пакета и скомпилируем его.
git clone github.com/imapsync/imapsync.git
cd imapsync
mkdir -p dist
sudo make install
Как перенести почту на Zimbra
Для начала миграции мы подготовим сервер Zimbra и увеличим лимит на размер почтовых сообщений. Мы повысили лимит размера почтового сообщения до 100 Мб.
sudo su - zimbra -c "zmprov modifyConfig zimbraMtaMaxMessageSize 102400000"
sudo su - zimbra -c "postfix reload"
Теперь создадим файл скрипта для удобства, чтобы не запускать синхронизацию для каждого аккаунта отдельно.
nano import.sh
Вставим в него следующее содержимое, пароли лучше указывать в ‘апострофах’.
#!/bin/bash
imapsync --nosyncacls --subscribe --syncinternaldates --fast \
--host1 mail.source-srv.ru --user1 yourAccount@domain-src.com --password1 'ВашПароль' --ssl1 \
--host2 mail.destination-srv.ru --user2 yourZimbraAccount@domain-dst.com --password2 'ВашПарольЗимбра' --ssl2
#повторяем эту команду для каждого пользователя
Сделаем файл исполняемым и запустим его.
chmod +x import.sh && ./import.sh
Небольшое пояснение по опциям утилиты imapsync.
—host1 — это исходный сервер
—host2 — это сервер назначения (Zimbra)
—user1 — аккаунт на исходном сервере
—user2 — аккаунт на сервере назначения (Zimbra)
—password1 и —password2 — пароли от аккаунтов
—ssl1 или —tls1 — включение поддержки ssl или tls
—port1 — можно указать при использовании нестандартных портов
Установим ограничение на размер сообщений в 20 Мб.
sudo su - zimbra -c "zmprov modifyConfig zimbraMtaMaxMessageSize 20480000"
sudo su - zimbra -c "postfix reload"
Не забудьте удалить файл скрипта после импорта!
Узнайте как массово создать аккаунты на сервере Zimbra.
Источник wiki.zimbra.com