Установка Imapsync на Ubuntu 20.04 & Debian 10 Buster
Imapsync — инструмент командной строки, который позволяет инкрементную и рекурсивную передачу данных IMAP из одного почтового ящика в другой, где бы они ни находились в интернете или в локальной сети.
Устанавливаем необходимые пакеты зависимостей.
apt install libauthen-ntlm-perl libcgi-pm-perl libcrypt-openssl-rsa-perl libdata-uniqid-perl libencode-imaputf7-perl libfile-copy-recursive-perl libfile-tail-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-tee-perl libhtml-parser-perl libjson-webtoken-perl libmail-imapclient-perl libparse-recdescent-perl libmodule-scandeps-perl libreadonly-perl libregexp-common-perl libsys-meminfo-perl libterm-readkey-perl libtest-mockobject-perl libtest-pod-perl libunicode-string-perl liburi-perl libwww-perl libtest-nowarnings-perl libtest-deep-perl libtest-warn-perl libdist-checkconflicts-perl libpar-packer-perl libtest-fatal-perl libtest-modern-perl libtest-requires-perl libtest-mock-guard-perl libproc-processtable-perl make time cpanminus git -y
apt-get install apt-file -y
apt-file update
Скачиваем исходник пакета Imapsync.
cd /opt/
git clone https://github.com/imapsync/imapsync.git
cd imapsync/
Собираем и устанавливаем пакет — Imapsync.
make
make testp
make install
Можно проверить работоспособность установленного пакета командой.
imapsync --testslive
Пример использования Imapsync
Перед миграцией убедитесь, что на обеих учетных записях запущен IMAP и они доступны из вашей системы. После этого используйте следующий синтаксис команды:
imapsync \
--host1 imap.source.example.com \
--user1 user@example.com \
--password1 S0urcePassw0rd \
--ssl1 \
--host2 imap.dest.example.com \
--user2 user@example.com \
--password2 Dest1nat10NPassw0rd \
--ssl2
Пример миграции Exchange Online на Zimbra
Перед тем как выполнять перенос почтовых ящиков с Exchange Online на Zimbra, рекомендую предварительно на стороне Zimbra увеличить значение максимального вложения до 100Mb
, т.к. по-умолчанию Exchange Online имеет такое значение и во избежание конфликтов и ошибок в ходе миграции выставляем значение аналогичное.
sudo su - zimbra -c "zmprov modifyConfig zimbraMtaMaxMessageSize 102400000"
sudo su - zimbra -c "postfix reload"
Для того чтобы мигрировать все почтовые ящики с Exchange Online на Zimbra, необходимо на обоих почтовых серверах создать спец. учетную запись которая будет иметь возможность читать почту ЛЮБОГО ящика находящегося на обоих почтовых серверах. Это нужно для того чтобы не просить у пользователей пароль от их аккаунтов и чтобы для них все было максимально не заметно и прозрачно. Обозначается в команде это все ключами authuser1
и authuser2
.
imapsync \
--host1 outlook.office365.com \
--user1 user@example.com \
--authuser1 admin@example.com \
--password1 Passw0rd \
--host2 10.0.13.104 \
--user2 user@example.com \
--authuser2 admin@example.com \
--password2 Passw0rd \
--automap \
--addheader \
--useheader "Message-ID" \
--skipsize \
--syncinternaldates \
--nosyncacls \
--usecache \
--nofoldersizes \
--regextrans2 's,\",,g' \
--exclude '&BBYEQwRABD0EMAQ7-|&BBYEQwRABD0EMAQ7- &BDEENQRBBDUENA-|&BBcEMAQ0BDAERwQ4-|&BBcEMAQ8BDUEQgQ6BDg-|&BBgEQQRFBD4ENARPBEkEOAQ1-|&BBoEMAQ7BDUEPQQ0BDAEQARM-|&BBoEMAQ7BDUEPQQ0BDAEQARM-/&BBQEPQQ4- &BEAEPgQ2BDQENQQ9BDgETw-|&BBoEMAQ7BDUEPQQ0BDAEQARM-/&BD8EQAQwBDcENAQ9BDgEOgQ4- &BCAEPgRBBEEEOARP-|&BBoEPgQ9BEIEMAQ6BEIESw-|Calendar|Contacts|Conversation History|Journal|Notes|Tasks'
Так же из важного я хочу отметить что я указываю исключающие из миграции такие папки как:
[&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-] = [Нежелательная почта]
[&BB4ESAQ4BDEEOgQ4- &BEEEOAQ9BEUEQAQ+BD0EOAQ3BDAERgQ4BDg-] = [Ошибки синхронизации]
[&BB4ESAQ4BDEEOgQ4- &BEEEOAQ9BEUEQAQ+BD0EOAQ3BDAERgQ4BDg-/&BB4ESAQ4BDEEOgQ4- &BEEENQRABDIENQRABDA-] = [Ошибки синхронизации/Ошибки сервера]
[&BB4ESAQ4BDEEOgQ4- &BEEEOAQ9BEUEQAQ+BD0EOAQ3BDAERgQ4BDg-/&BBoEPgQ9BEQEOwQ4BDoEQgRL-] = [Ошибки синхронизации/Конфликты]
[&BB4ESAQ4BDEEOgQ4- &BEEEOAQ9BEUEQAQ+BD0EOAQ3BDAERgQ4BDg-/&BBsEPgQ6BDAEOwRMBD0ESwQ1- &BD4ESAQ4BDEEOgQ4-] = [Ошибки синхронизации/Локальные ошибки]
[&BBAEQARFBDgEMg-] = [Архив]
[&BBYEQwRABD0EMAQ7-] = [Журнал]
[&BBYEQwRABD0EMAQ7- &BDEENQRBBDUENA-] = [Журнал бесед]
[&BBcEMAQ0BDAERwQ4-] = [Задачи]
[&BBcEMAQ8BDUEQgQ6BDg-] = [Заметки]
[&BBoEMAQ7BDUEPQQ0BDAEQARM-] = [Календарь]
[&BBoEMAQ7BDUEPQQ0BDAEQARM-/&BBQEPQQ4- &BEAEPgQ2BDQENQQ9BDgETw-] = [Календарь/Дни рождения]
[&BBoEMAQ7BDUEPQQ0BDAEQARM-/&BD8EQAQwBDcENAQ9BDgEOgQ4- &BCAEPgRBBEEEOARP-] = [Календарь/праздники Россия]
"
) и из за этого на другой стороне может не корректно воспринято такое название папки и она будет в итоге проигнорирована в синхронизации, т.к. не будет создана на конечной стороне из за спец символов в имени. Чтобы этого избежать нужно использовать правило замены таких символов в именовании папок --regextrans2
.Полное описание можно найти на оф. репозитарии пакета — https://github.com/imapsync/imapsync
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.