Проверка переноса почты: как убедиться, что перенесены все письма, папки и отметки
«Вроде всё перенеслось» — самая дорогая фраза в истории переездов. Через месяц выясняется, что не всё. Перенос из облака на свой сервер имеет смысл только если перенесено всё — и это нужно доказать цифрами, а не ощущениями. Проверка переноса почты делается в три шага: сравнить число писем и объём по папкам на старом и новом сервере командой imapsync с опцией --justfoldersizes, убедиться, что в логе каждого ящика стоит Detected 0 errors, и выборочно проверить письма с вложениями и отметки «прочитано» и «флажок». Сверку делают сразу после финального прохода, пока сотрудники не начали работать в новых ящиках, и повторяют через 2–4 недели перед отключением старой почты. Ниже — команды и примеры вывода с нашего стенда и шаблон таблицы сверки для приёмки работ.
Своя почта вместо облака: варианты решения
Облачная почта — это ваша переписка на чужом сервере: когда у провайдера авария, вы ждёте вместе со всеми. Собственный почтовый сервер возвращает компании контроль. Основные варианты:
Почта, антиспам и веб-почта SOGo с календарями в контейнерах Docker; обновление одной командой.
Наследник Zimbra: привычный веб-клиент с календарями и адресными книгами, как в облаке.
Postfix, Dovecot, антиспам и веб-почта на обычном Linux-сервере; от 4 ГБ памяти.
Современный сервер «всё в одном»: IMAP, SMTP, CalDAV, CardDAV; скромные требования.
Carbonio CE или mailcow на наших серверах в ЦОД МТС, антиспам и ежедневные бэкапы — от 150 ₽/мес за ящик.
Забрать из облака — значит забрать всё
Переезд из облака на свой сервер ценен только тогда, когда на вашем сервере вся переписка, до последнего письма. Иначе часть истории компании так и останется у провайдера — и пропадёт при его следующей аварии или после отключения старых ящиков.
Сверка — это доказательство, что переписка теперь целиком принадлежит компании.
Без сверки вы не знаете, что потеряли
Письмо от налоговой, договор с ключевым клиентом, переписка по спорной поставке — всё это может остаться в непереехавшей папке, и вы узнаете об этом только тогда, когда оно срочно понадобится. В облаке вы бы даже не смогли проверить, что всё на месте: провайдер показывает то, что показывает.
На своём сервере у вас есть цифры: сколько писем в каждой папке было и сколько стало, сколько прочитанных, отмеченных, отвеченных. Сверка превращает «вроде» в «точно». Это последний шаг переезда, который отделяет профессиональную работу от лотереи.
Зачем сверять перенос отдельно
Перенос почты считается законченным не тогда, когда утилита завершилась без ошибок на экране, а когда можно показать: в каждом ящике на новом сервере столько же писем, сколько было на старом, папки на месте, отметки сохранены. Это нужно не для отчёта ради отчёта. Через месяц сотрудник скажет, что не может найти письмо, и без сверки не будет способа понять, потерялось ли оно при переносе или было удалено раньше.
Сверка состоит из трёх уровней: количество писем и объём по папкам, ошибки в логах переноса и выборочная проверка содержимого. Первые два делаются автоматически для всех ящиков, третий — вручную на нескольких. Все три уровня занимают от нескольких минут до часа на ящик. Это окупается.
Ниже — как проводить каждый уровень, с командами, проверенными на нашем стенде (два сервера Dovecot 2.4.5 и imapsync 2.326). Как переносить — в инструкции по imapsync.
Есть и практическая польза для самого переноса: сверка сразу показывает ящики, где что-то пошло не так, пока старая почта ещё доступна и всё можно исправить повторным проходом. После отключения старых ящиков исправлять будет нечем.
Уровень 1. Количество и объём по папкам
imapsync с опцией --justfoldersizes подключается к обоим серверам и выводит для каждой папки число писем и размер, ничего не копируя. Это основной инструмент сверки:
docker run --rm -v "$PWD":/var/tmp gilleslamiral/imapsync imapsync \
--host1 imap.yandex.ru --ssl1 --user1 anna@company.ru --passfile1 /var/tmp/pass_old \
--host2 mail.company.ru --ssl2 --user2 anna@company.ru --passfile2 /var/tmp/pass_new \
--justfoldersizesВ конце вывода — итоговые строки по обоим серверам. На стенде после переноса тестового ящика они выглядели так:
Host1 Nb messages: 755 messages
Host2 Nb messages: 755 messages
Host1 Total size: 21737007 bytes (20.730 MiB)
Host2 Total size: 21737007 bytes (20.730 MiB)Совпадение и числа писем, и размера в байтах — хороший признак. Но смотрите и на папки по отдельности: итог может совпасть, даже если письма легли не в те папки. В начале того же вывода imapsync перечисляет папки обоих серверов с числом писем в каждой.
Совет: запускайте сверку с той же машины и с теми же файлами паролей, что и перенос. Тогда результат воспроизводим, и если через месяц понадобится повторить сверку для одного ящика, команда уже есть в истории проекта.
Почему числа могут честно не совпадать
Несовпадение не всегда означает потерю. Типичные законные причины.
| Причина | Как выглядит | Что сделать |
|---|---|---|
| После переноса в старый ящик пришли новые письма | на старом сервере больше | финальный проход с --maxage и повторная сверка |
| Сотрудник уже удалил что-то в новом ящике | на новом меньше | сравнивать сразу после переноса, до начала работы |
Папки исключены опцией --exclude | на новом меньше на размер этих папок | учитывать исключения при сверке |
Папки переименованы или сопоставлены --automap | числа по папкам разнесены по другим именам | сверять по сопоставлению, а не по именам |
| Дубли на исходном сервере | imapsync сообщает о дублях, на новом может быть меньше | смотреть строку о дублях в логе |
| Разный подсчёт размера | число писем совпадает, байты нет | допустимо, если письма открываются |
Поэтому сверку делают в определённый момент: сразу после финального прохода, пока сотрудники не начали работать в новом ящике, — и фиксируют результат.
Если найдена недостача: порядок разбора
Первое — определить, в какой папке недостача: сравните числа по папкам, а не только итог. Второе — посмотреть лог переноса этого ящика: были ли ошибки, исключения, сообщения о дублях. Третье — запустить повторный проход imapsync для этого ящика: если причина была временной (обрыв, таймаут), он докачает недостающее.
Если после повторного прохода недостача осталась, проверьте лимиты нового сервера (размер письма, квота ящика) и права на папку. Если и это не помогло, сравните письма в проблемной папке выборочно: какие именно не перенеслись, есть ли у них что-то общее — размер, дата, необычные заголовки.
Для писем без заголовка Message-Id, которые imapsync не может надёжно опознать, в документации есть опция --addheader: она добавляет такой заголовок при переносе. Применяйте её осознанно и проверяйте результат на тестовом ящике.
Уровень 2. Ошибки в логах переноса
Каждый запуск imapsync заканчивается сводкой. Её стоит проверять для каждого ящика:
Folders synced : 11/11 synced
Messages transferred : 755
Messages skipped : 0
Messages found in host1 not in host2 : 0 messages
Detected 0 errorsКлючевые строки: Detected 0 errors — ошибок нет; Messages found in host1 not in host2: 0 — на приёмнике нет недостающих писем; Folders synced — все папки обработаны. Если ошибки есть, imapsync перечисляет их в конце лога: обычно это письма, которые приёмник отказался принять по размеру, или превышение квоты ящика.
Когда ящиков много, логи удобно проверять автоматически. Скрипт, который мы использовали на стенде для резервной копии, считает ящики без строки Detected 0 errors:
for f in logs/*.log; do grep -q "Detected 0 errors" "$f" || echo "ОШИБКИ: $f"; doneЯщики из этого списка разбираются по одному: читается конец лога, устраняется причина (например, увеличивается лимит размера письма на новом сервере), и выполняется повторный проход. Повторный проход докачает только недостающее.
Письма, которые не переносятся: лимиты размера и квоты
Самая частая причина ошибок при переносе — лимиты нового сервера. Если на старом сервисе можно было получить письмо с вложением на несколько десятков мегабайт, а на новом сервере максимальный размер письма меньше, такие письма приёмник отвергнет. imapsync сообщит о них в конце лога, а сверка покажет недостачу.
Решение — до переноса выставить на новом сервере лимит размера письма не меньше, чем у старого, и квоты ящиков с запасом. Если по политике компании большие письма не нужны, их можно сознательно пропустить опцией --maxsize и зафиксировать это в таблице сверки — тогда недостача будет объяснимой.
Как настраивается лимит размера в разных системах, мы разбирали в статьях «Postfix message_size_limit» и «Zimbra: лимит размера письма».
Уровень 3. Отметки писем: прочитано, флажок, отвечено
Число писем не говорит, сохранились ли отметки. Сотрудник, у которого после переезда все письма стали непрочитанными, сочтёт перенос неудачным, хотя письма на месте.
imapsync переносит флаги и синхронизирует их при каждом проходе. Чтобы проверить, мы на стенде сравнили по каждой папке четыре числа через стандартный IMAP-поиск: всего писем, прочитанных (SEEN), помеченных флажком (FLAGGED) и отвеченных (ANSWERED). Результат для тестового ящика:
папка источник приёмник
INBOX (305, 221, 26, 15) (305, 221, 26, 15)
Проекты/2025 (80, 61, 4, 4) (80, 61, 4, 4)
Архив & старое (150, 106, 9, 11) (150, 106, 9, 11)Такую проверку легко сделать небольшим скриптом на Python со стандартной библиотекой imaplib: подключиться к обоим серверам, для каждой папки выполнить SEARCH ALL, SEEN, FLAGGED, ANSWERED и сравнить числа. Её стоит запустить хотя бы для нескольких ящиков, а лучше — для всех.
На стенде мы заодно увидели, как --automap сопоставляет папки: «Отправленные» и «Черновики» на старом сервере оказались в системных папках Sent и Drafts на новом. При сверке по именам это выглядело бы как недостача, при сверке по сопоставлению — всё совпадает.
Если переносите в облачный сервис
При переезде в облако сверка устроена так же, если новый сервис даёт доступ по IMAP: imapsync с --justfoldersizes подключается к нему как к любому IMAP-серверу. Если перенос делает встроенный мастер импорта сервиса, после его окончания всё равно имеет смысл сверить объёмы imapsync-ом — мастер не всегда показывает подробный отчёт.
Учтите, что облачный сервис может по-своему считать размер ящика (например, с учётом служебных данных) — для сверки опирайтесь в первую очередь на число писем по папкам.
Уровень 4. Выборочная проверка глазами
Автоматическая сверка не заменяет взгляд человека. Для нескольких ящиков — руководителя, бухгалтерии, самого большого ящика — проверьте вручную:
Откройте несколько старых писем с вложениями и убедитесь, что вложения открываются. Найдите письмо поиском по теме или отправителю — так проверяется и перенос, и индексация на новом сервере. Откройте вложенные папки и папки с кириллицей в названии. Проверьте папку «Отправленные»: в ней должны быть письма, отправленные до переезда.
Попросите самого сотрудника посмотреть свой ящик: он быстрее заметит, что не хватает «той самой папки с договорами».
Выберите для этой проверки письма разного возраста: свежие, годовой давности и самые старые в ящике. Проблемы с кодировками и вложениями чаще всего встречаются именно в старых письмах.
Поиск на новом сервере: проверить отдельно
Письма могут быть на месте, но не находиться поиском, — для сотрудника это выглядит так же, как потеря. На новом сервере поиск работает по своему индексу, который строится после загрузки писем; на больших ящиках это занимает время.
Поэтому в ручную проверку включите поиск: найдите несколько писем по отправителю, по теме, по слову из текста. Если поиск не находит письмо, которое видно в папке, это вопрос к индексу нового сервера, а не к переносу. В mailcow, например, за полнотекстовый поиск отвечает отдельный компонент, его настройку мы описывали в статье «Flatcurve в mailcow».
Проверку поиска лучше делать не сразу после загрузки, а через несколько часов, когда индекс построится.
Сверка для общих ящиков, контактов и календарей
Общие ящики сверяются так же, как личные, но с учётом прав: проверьте, что на новом сервере у сотрудников есть доступ к общему ящику с теми же правами, что были.
Контакты и календари imapsync не переносит, их сверяют отдельно: число контактов в адресной книге и событий в календаре до и после. На стенде мы делали это запросами REPORT по CardDAV и CalDAV на обоих серверах. Подробно — в статье о переносе контактов и календарей.
Алиасы, рассылки и правила проверяются тестовыми письмами: письмо на алиас приходит нужному сотруднику, письмо на рассылку — всем участникам.
Автоматизация сверки для десятков ящиков
Когда ящиков много, сверка должна быть скриптом, а не ручной работой. Минимальный вариант: цикл по списку ящиков, для каждого — imapsync с --justfoldersizes, извлечение итоговых строк Host1 Nb messages и Host2 Nb messages из вывода и запись в CSV. Затем таблица сортируется по разнице, и ящики с несовпадением разбираются в первую очередь.
Второй скрипт — сверка флагов через IMAP-поиск для каждой папки. Он медленнее, поэтому его можно запускать для выборки ящиков, а для остальных ограничиться сверкой количества.
Результаты скриптов сохраняются вместе с логами переноса. Если сверка повторяется (например, контрольная через 2–4 недели), удобно сравнить две таблицы: где появились новые письма и сколько.
Как оформить результат сверки
Результат удобно свести в таблицу по ящикам: адрес, число писем и размер на старом и новом сервере, наличие ошибок в логе, кто проверил вручную, дата. Для компании это документ, который подтверждает, что перенос выполнен полностью; для подрядчика — критерий приёмки работы.
| Ящик | Писем: было / стало | Размер: было / стало | Ошибки в логе | Проверено вручную |
|---|---|---|---|---|
| anna@ | 755 / 755 | 20,7 / 20,7 МиБ | нет | да |
| info@ | 600 / 600 | 16,4 / 16,4 МиБ | нет | — |
В таблице — данные нашего стенда. Если переезд делает подрядчик, такую таблицу стоит прописать в договоре как обязательный результат.
Если в каком-то ящике сознательно не переносили часть данных — например, папку со спамом или письма больше определённого размера, — укажите это в таблице отдельной колонкой «Исключения». Через полгода никто не вспомнит, почему в ящике на 200 писем меньше, а запись в таблице ответит на вопрос сразу.
Контрольная сверка через несколько недель
После переключения старые ящики ещё какое-то время получают письма от отправителей с закэшированными MX-записями. Поэтому через 2–4 недели, перед отключением старой почты, делается контрольный проход imapsync без ограничения по возрасту писем и повторная сверка.
Если в старых ящиках появились новые письма, проход их перенесёт. Если ничего не появилось — это подтверждение, что старую почту можно отключать.
Перед отключением сохраните итоговую таблицу сверки и логи переноса вместе с документацией проекта.
Если контрольный проход показал, что в старые ящики продолжают приходить письма спустя месяц, проверьте, не осталось ли где-то старой MX-записи: в зоне поддомена, у второго DNS-провайдера или в настройках отправителя, который шлёт почту напрямую на старый сервер.
Типичные ошибки при сверке
Сверяют только итог по ящику, а не по папкам: недостача в одной папке маскируется лишними письмами в другой. Сверяют после того, как сотрудники начали работать в новых ящиках: числа уже не могут совпасть, и непонятно, что считать нормой. Не учитывают сопоставление папок --automap: «Отправленные» на старом сервере ищут под тем же именем на новом и не находят.
И самая частая ошибка — не сохраняют результат. Сверка, которую нельзя показать через месяц, почти ничего не стоит.
Чек-лист сверки
Для каждого ящика.
- сверка --justfoldersizes сразу после финального прохода: число писем и размер совпадают
- в логе переноса Detected 0 errors и 0 писем, отсутствующих на приёмнике
- числа по папкам совпадают с учётом сопоставления --automap и исключений
- отметки прочитано, флажок, отвечено совпадают (выборочно или скриптом)
- несколько старых писем с вложениями открываются, поиск находит письма
- общие ящики, контакты и календари сверены отдельно
- результат записан в таблицу сверки
- через 2–4 недели — контрольный проход и повторная сверка перед отключением старой почты
Частые вопросы
Как проверить, что все письма перенесены?
Сравнить число писем и размер на обоих серверах командой imapsync --justfoldersizes и убедиться, что в логе переноса Detected 0 errors и 0 писем, отсутствующих на приёмнике.
Почему число писем не совпадает?
Частые причины: новые письма после переноса, исключённые папки, сопоставление папок --automap, дубли на исходном сервере. Сверку делают сразу после финального прохода.
Переносятся ли отметки «прочитано» и «флажок»?
Да, imapsync переносит флаги и синхронизирует их при каждом проходе. На стенде числа прочитанных, помеченных и отвеченных совпали во всех папках.
Что делать, если в логе есть ошибки?
Прочитать конец лога: обычно это письма больше лимита размера или превышение квоты. Устранить причину и повторить проход — он докачает только недостающее.
Когда можно отключать старую почту?
После контрольного прохода imapsync и повторной сверки через 2–4 недели после переключения, когда в старые ящики перестали приходить письма.
Нужна ли таблица сверки, если переносит подрядчик?
Да, это лучший критерий приёмки: число писем и размер на обоих серверах, ошибки в логе и ручная проверка по каждому ящику.
Миграция почты с Яндекса под ключ от АйТи Фреш
Возьмём на себя весь переезд: проверим текущую почту и домен, поможем выбрать вариант, перенесём письма, папки, календари и контакты, переключим MX, SPF, DKIM и DMARC, проверим доставляемость и поддержим сотрудников после переезда.
Куда переносим: в облако на российской площадке, на ваш собственный сервер, в гибридную схему или как резервный контур рядом с текущей почтой.
- Аудит текущей почты и домена — 1–2 рабочих дня
- План миграции и фиксированная смета — 1 рабочий день
- Настройка сервера, DNS и перенос ящиков — 3–5 рабочих дней
- Сопровождение сотрудников и проверка доставляемости — 5 рабочих дней
| Работа | Стоимость |
|---|---|
| Перенос почты, календарей и контактов до 50 ящиков | от 12 000 ₽ разово |
| Корпоративная почта под ключ: сервер, домен, SPF/DKIM/DMARC, до 15 ящиков | от 25 000 ₽ разово |
| Ящики на нашей инфраструктуре (Carbonio CE или mailcow, ЦОД МТС) | от 150 ₽/мес за ящик |
| Обслуживание почтового сервера | от 7 000 ₽/мес |
Опыт: перенесли 617 ящиков гостиничной группы за 3 дня. Точный срок и смету фиксируем после аудита; простой при переключении зависит от схемы и оговаривается в договоре. Подробнее — на странице услуги «Корпоративная почта для бизнеса».



















