SCROLL
Среднее время на прочтение: 2 мин.

Установка 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-] = [Календарь/праздники Россия]
Данные обозначения могут отличаться у вас в зависимости от языка Exchange Online. Если у вас Eng. версия то необходимо вносить коррективы, в логе можно найти всю эту информацию как называются папки на вашем Exchange Online.
Так же хочу заметить что в некоторых случаях пользователи именую свои папки со спец символами (прим. используют скобки — ") и из за этого на другой стороне может не корректно воспринято такое название папки и она будет в итоге проигнорирована в синхронизации, т.к. не будет создана на конечной стороне из за спец символов в имени. Чтобы этого избежать нужно использовать правило замены таких символов в именовании папок --regextrans2.

Полное описание можно найти на оф. репозитарии пакета — https://github.com/imapsync/imapsync

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.