Imapsync — это утилита для переноса писем и метаданных (флаги, даты) между двумя IMAP-серверами. Она поддерживает инкрементальную синхронизацию, рекурсивное копирование папок и дедупликацию сообщений. Инструмент полезен для миграции почтовых ящиков между провайдерами, резервного копирования и переноса данных на новый сервер.
Установка в разные дистрибутивы Linux
Debian/Ubuntu
Установите зависимости:
sudo apt update && apt upgrade && apt install \
libauthen-ntlm-perl \
libclass-load-perl \
libcrypt-openssl-rsa-perl \
libcrypt-ssleay-perl \
libdata-uniqid-perl \
libdigest-hmac-perl \
libdist-checkconflicts-perl \
libencode-imaputf7-perl \
libfile-copy-recursive-perl \
libfile-tail-perl \
libio-compress-perl \
libio-socket-inet6-perl \
libio-socket-ssl-perl \
libio-tee-perl \
libjson-webtoken-perl \
libmail-imapclient-perl \
libmodule-scandeps-perl \
libnet-dbus-perl \
libnet-ssleay-perl \
libpar-packer-perl \
libproc-processtable-perl \
libreadonly-perl \
libregexp-common-perl \
libsys-meminfo-perl \
libterm-readkey-perl \
libtest-fatal-perl \
libtest-mock-guard-perl \
libtest-mockobject-perl \
libtest-pod-perl \
libtest-requires-perl \
libtest-simple-perl \
libunicode-string-perl \
liburi-perl \
libtest-nowarnings-perl \
libtest-deep-perl \
libtest-warn-perl \
make \
time \
cpanminusСкачайте и установите Imapsync:
wget -N https://raw.githubusercontent.com/imapsync/imapsync/master/imapsync
chmod +x imapsync
mv imapsync /usr/bin/Для проверки версии выполните imapsync -v
CentOS/RHEL/Fedora
Добавьте репозиторий EPEL:
sudo yum install epel-releaseУстановите Imapsync:
sudo yum install imapsync В CentOS 8 можно использовать dnf вместо yum.
Arch Linux
Установите пакет через pacman:
sudo pacman -S imapsyncПакет доступен в репозитории extra.
Примеры использования
Базовый синтаксис для переноса писем:
imapsync \
--host1 imap.source.example.com \
--user1 user@example.com \
--password1 "SourcePassw0rd" \
--ssl1 \
--host2 imap.dest.example.com \
--user2 user@example.com \
--password2 "Dest1nat10NPassw0rd" \
--ssl2Параметры с индексом 1 относятся к исходному серверу (host1, user1, password1), с индексом 2 — к целевому (host2, user2, password2).
Некоторые опции:
--exclude 'регулярное_выражение'— исключение папок из синхронизации. Например,--exclude 'Spam|Trash'пропустит папки «Спам» и «Корзина».--f1f2 Outbox=Sent— явно указывает соответствие папок: содержимое папкиOutboxна исходном сервере будет помещено в папкуSentна целевом.--maxage 365— перенос писем не старше 365 дней.--minage 365— перенос писем старше 1 года.--delete1— удаление сообщений с исходного сервера после успешной копии на целевой. Опция подразумевает--expunge1, то есть удаление помеченных как удалённые сообщений.--useheader 'Message-Id' --useheader 'Date' --useheader 'Subject'— более строгая дедупликация по указанным заголовкам.
Проверка конфигурации без переноса данных:
imapsync --justconnectЭта команда подключится к обоим серверам и выведет информацию о них.
Тестирование с реальными серверами:
imapsync --testsliveВыполнит синхронизацию между тестовыми ящиками на сервере test.lamiral.info.
Важные замечания
- Imapsync не поддерживает локальное резервное копирование или двустороннюю синхронизацию (для этого подойдут
offlineimapилиmbsync). - Утилита не работает с групповыми функциями (календари, контакты, задачи).
- При использовании самоподписанных сертификатов может потребоваться их добавление в доверенные на сервере.
- Для Gmail при миграции может понадобиться создать «пароль приложения» вместо обычного пароля аккаунта.
Подробнее о возможностях и опциях Imapsync можно узнать в официальной документации на сайте проекта.