Инструменты

imapsync без командной строки

Скажем сразу: мы не писали свой движок переноса. Под капотом imapsync — тот самый, которому два десятка лет и который перенёс больше почты, чем любая коммерческая альтернатива. Мы сделали ему интерфейс.

Почему imapsync и почему это неудобно

imapsync решает ровно одну задачу и решает её хорошо: синхронизирует два IMAP-ящика, сверяя, что уже есть на приёмнике, и копируя только недостающее. Отсюда его главное свойство — повторный запуск не создаёт дублей и стоит дёшево.

Неудобство начинается с установки. Это скрипт на Perl с десятками зависимостей; под Linux он ставится пакетным менеджером, под macOS уже с оговорками, а под Windows у него исторически всё плохо: официальной сборки нет, а те, что есть, собраны кем-то и неизвестно из чего.

Вторая часть неудобства — сама команда. Ключей у imapsync больше сотни, и типичный перенос — это строка на восемь переносов, в которой легко перепутать источник с приёмником.

Обычная команда imapsync
imapsync \
  --host1 imap.old.com --port1 993 --ssl1 \
  --user1 anna@old.com --passfile1 /run/secrets/p1 \
  --host2 imap.new.com --port2 993 --ssl2 \
  --user2 anna@new.com --passfile2 /run/secrets/p2 \
  --exclude "^\[Gmail\]/All Mail$" --automap --skipcrossduplicates

Что даёт интерфейс

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

Чего интерфейс не меняет

Скорость. Она определяется лимитами провайдеров, и никакая обёртка их не обходит.

Возможности протокола. Если IMAP чего-то не умеет — например, переносить календари и контакты, — не умеет и imapsync, и мы.

Ответственность за исключения. Решение, переносить ли «Всю почту» Gmail, остаётся за человеком: инструмент может подсказать, но не может знать, нужен вам архив или структура.

Локально или онлайн

Локальный клиент — это тот же imapsync и интерфейс к нему на вашей машине. Ни письма, ни пароли никуда не уходят, ограничений по объёму нет. Это вариант по умолчанию для корпоративной почты и для ящиков на десятки гигабайт.

Онлайн-перенос имеет смысл, когда ставить что-то на рабочую машину нельзя или не хочется. Тогда почта идёт через наш сервер, и это осознанный размен удобства на доверие — поэтому мы прямо пишем, что с учётными данными происходит.

FAQ

Частые вопросы

Это правда тот же imapsync?

Да. Мы не переписывали движок и не делаем вид, что написали свой: это обёртка с интерфейсом, проверками и понятными ошибками.

Нужен ли Perl под Windows?

Нет. Клиент под Windows — самостоятельный исполняемый файл, зависимости в него уже включены.

Можно ли увидеть команду, которая выполняется?

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

Переносятся ли календари и контакты?

Нет. IMAP — протокол про почту; календари и контакты живут в CalDAV и CardDAV и переносятся отдельными инструментами.

Куда дальше

Перенести почту в MoveMailbox

Другие записи

Узнайте объём своего ящика. Это ничего не стоит.

Подключите два сервера, посмотрите размер и решайте. Или заберите клиент и держите всё у себя.

Код на GitHub · на базе imapsync · без регистрации