Откат переноса почты с Яндекса: как сохранить письма
АйТи Фреш
IT-аутсорсинг и бизнес

Перенос почты сорвался: возвращаю Яндекс и собираю письма

Автор: , директор ООО «АйТи-Фреш» · · ~15 мин чтения
Два лотка с письмами: маршрут возвращён, остаток почты отдельно собирают для сверки после отката.
Вернуть маршрут мало: письма надо собрать.

Чтобы откатить перенос почты с Яндекса, я останавливаю задания миграции, сохраняю обе системы, проверяю старые ящики и возвращаю прежние MX. Затем собираю недостающие письма и проверяю доставку. Одна правка DNS этого не делает: отправители могут пользоваться закэшированными записями, а уже принятая почта остаётся на новом сервере.

Когда я останавливаю перенос и выбираю откат

Сначала я отделяю сбой доставки от сбоя доступа. Если сотрудник не может открыть новый ящик, это ещё не значит, что входящие письма исчезают. Если сервер отвечает отправителям отказом, работающий веб-интерфейс тоже ничего не доказывает. При подготовке корпоративной почты для офиса я заранее описываю контрольные проверки: входящее письмо извне, ответ наружу, вход в рабочий ящик, доступ к общей переписке. Для каждой проверки нужны ожидаемый результат и ответственный. Тогда решение об остановке опирается на наблюдаемый отказ, а не на громкость сообщений в рабочем чате.

В SMTP я смотрю полный ответ и этап отказа. По RFC 5321 коды 4xx обозначают временную ошибку: отправляющая система должна повторять попытки по своей политике очереди. Коды 5xx обозначают постоянный отказ для этой попытки; рассчитывать, что такое же письмо само отправится после исправления, нельзя. Недоступное соединение тоже не доказывает утрату: письмо может оставаться у отправителя. Поэтому я сохраняю отчёт о недоставке целиком, адрес получателя и время, а не только фразу «почта сломалась». Письмо, которое новая система уже приняла, ищу в её журналах, очередях и ящиках. Письмо, которое отклонили окончательно, после устранения причины прошу отправить повторно.

Порог отката я согласую до переключения: какие рабочие операции критичны, какой простой допустим и кто вправе остановить перенос. Универсального правила «прошёл час — возвращаем всё» здесь нет. В учебном бюро основанием считаю подтверждённый отказ входящей доставки на рабочие адреса при исправном старом сервисе. Ошибка пароля в одном клиенте требует другого решения. При массовом попадании в спам проверяю заголовки и настройки отправки, прежде чем менять маршрут входящих. Если старая площадка тоже недоступна, возвращать на неё MX бессмысленно: нужен другой сценарий восстановления. Кнопка «назад» полезна, когда за ней действительно есть работающая система.

Задержка, окончательный отказ и уже принятое письмо требуют разных действий. Сначала определите, что произошло.
Дерево решений при откате почты: временный отказ, постоянный отказ и уже принятое сообщение.
Состояние письма определяет действие.

Что я фиксирую до возврата MX

Я назначаю одного руководителя отката и отдельно записываю исполнителей: кто управляет DNS, кто проверяет ящики, кто сообщает сотрудникам рабочий адрес веб-почты. В небольшом офисе роли может совмещать один специалист, но доступы должны быть проверены заранее. План действий держу доступным независимо от переносимой почты. Общий план Б для почты описывает и другие отказы; здесь задача уже: остановить конкретный перенос и вернуть рабочий маршрут. Решение, причину и время записываю в журнал инцидента. Устное «кажется, мы уже откатились» потом невозможно сопоставить с журналами доставки.

До правки DNS я останавливаю именно задания копирования и автоматические действия, которые меняют или удаляют данные. Фиксирую, какие задания завершились, какие прерваны и какой результат они оставили. Приём почты и сами серверы без отдельной причины не выключаю. Сохраняю текущие настройки обеих площадок, исходный набор DNS-записей, журналы переноса и доступную информацию об очередях. Отдельно отмечаю время переключения, решения об откате и последующих изменений с часовым поясом. Это границы поиска, а не волшебный фильтр: старое по заголовку письмо могло попасть на сервер уже во время аварии. Поэтому позже проверяю и журналы фактического приёма.

Резервную копию готовлю перед переносом и проверяю восстановление на пробном ящике. У Яндекс ID есть заказ архива данных выбранного сервиса; его подготовка и получение — отдельная процедура. Такой архив нельзя заранее считать готовой резервной копией всей почты организации и настроек. Если копии нет, в аварии я сохраняю то, что доступно, и прямо отмечаю непроверенные данные. Обещание «сейчас мгновенно снимем всё на сервере» для внешнего почтового сервиса ничем не обеспечено. Рабочее место с открытым почтовым клиентом тоже не равно проверенному архиву. До окончания сверки я сохраняю старые учётные записи, доступ к новой площадке и возможность выгрузить данные. Бэкап, который никто не пробовал открыть, пока остаётся заявлением о намерениях.

Не удаляйте домен, ящики и новую площадку во время отката: на ней могут оставаться единственные экземпляры принятых писем.

Как я сохраняю письма аварийного периода

Я разделяю сообщения по фактическому состоянию: уже лежат в старом ящике, уже приняты новой системой, ожидают в доступной очереди или получили окончательный отказ. Для каждого состояния нужен свой способ восстановления. В учебном сценарии бюро я не приравниваю 28 рабочих мест к 28 ящикам: отдельно составляю перечень личных и общих адресов, псевдонимов и групп. В таблице отмечаю обе площадки и найденные расхождения. Если новая система недоступна, сначала восстанавливаю доступ или обращаюсь в её поддержку. Включение сборщика на старой площадке не извлечёт письмо из недоступного хранилища. А сообщение, которое новый сервер не принял, надо искать у отправителя, а не импортировать из пустого ящика.

Для уже сохранённой почты я выбираю контролируемое копирование с новой площадки обратно в старую и сначала проверяю его на пробном ящике. В справке Яндекса сборщик описан как получение писем из другого ящика; скорость зависит от исходного сервера. Это не резервный SMTP-приёмник и не гарантия непрерывной доставки. Вариант с отдельной папкой сверки допустим, если выбранный инструмент его поддерживает. У сборщика Яндекса при работе по IMAP нельзя назначить одну общую папку назначения: он копирует структуру исходных папок. Поэтому я не обещаю универсальную кнопку, которая сложит всю аварийную переписку в нужное место. Возможности импорта проверяю на конкретной площадке до массового запуска.

Для повторного копирования между доступными IMAP-ящиками подходит imapsync: он поддерживает перенос недостающих сообщений при следующих запусках. Я заранее проверяю направление, сопоставление папок и отсутствие удаления на обеих сторонах. Автоматически разворачивать прежнее задание «наоборот» опасно: старые правила обработки могут оказаться неуместны. Постоянную двустороннюю синхронизацию двух рабочих ящиков я этим инструментом не строю; автор отдельно предупреждает об ограничении. Временная пересылка в переходный период требует самостоятельной проверки маршрута: встречные правила могут образовать петлю. Я оставляю одно понятное направление, сохраняю оригиналы и проверяю результат на тестовом письме. Две стрелки навстречу друг другу ещё не означают отказоустойчивость.

Остановка копирования не останавливает входящую доставку. Новая площадка может получать письма и после возврата MX.
Мы в «АйТи-Фреш» проверим обе площадки и подготовим порядок обратного копирования, чтобы у вашей команды был проверенный способ собрать аварийную переписку. Обсудить задачу
Потоки при возврате MX: отправители используют разные ответы DNS, недостающую почту копируют обратно.
Оба приёмника сохраняют до сверки.

В каком порядке я возвращаю старую доставку

Перед возвратом я убеждаюсь, что старый сервис по-прежнему обслуживает домен: рабочие адреса созданы, доступ разрешён, квота не исчерпана, приём и отправка проверены. Затем восстанавливаю сохранённый набор MX у действующего DNS-провайдера с прежними приоритетами. Если во время миграции переносили ещё и управление зоной, сначала выясняю, какие серверы сейчас публикуют её записи. Правка в старой панели управления не поможет, если домен уже использует другую зону. Проверяю ответ авторитетных DNS-серверов и результаты запросов через независимые резолверы. Это подтверждает внесение изменения и показывает часть внешней картины, но не доказывает обновление всех отправителей.

У MX есть TTL — срок кэширования DNS-записи. Снижение TTL надо делать заранее, дав кэшам прежнего значения время обновиться. Уменьшение числа в панели в момент аварии не сокращает срок уже полученной записи у чужого резолвера. Этот механизм описан в RFC 9199: удалить чужие DNS-кэши удалённо нельзя. Поэтому я сохраняю доступность обеих принимающих площадок, насколько это возможно, и наблюдаю фактические поступления на новую сторону. Ни «скрипт поменял MX за пять минут», ни «прошли сутки» не являются доказательством завершённого отката. Быстро отредактировать запись и быстро вернуть всю переписку — разные работы. Очередь у отправителя тоже живёт по собственному расписанию повторов.

Возврат входящих я проверяю отдельно от исходящих. Сотрудникам сообщаю, в какой системе теперь работать; при необходимости возвращаю проверенные настройки почтовых клиентов и служебных отправителей. MX не перенастраивает SMTP в приложениях и не меняет выбранный сотрудником ящик. Для SPF у одного имени домена допускается одна соответствующая запись; несколько отдельных записей SPF дают результат permerror по RFC 7208. Если в переходный период отправляют обе площадки, их разрешения согласую внутри одной записи. Не добавляю вторую «на всякий случай» и не ослабляю почтовую политику наугад. Ключи подписи, которые ещё нужны работающему отправителю, тоже не удаляю в спешке. После изменений проверяю внешнюю доставку и заголовки контрольного письма.

Возврат MX меняет маршрут будущих доставок после обновления DNS у отправителей. Уже принятые письма он назад не переносит.

Как я проверяю, что письма собраны

После восстановления работы я проверяю весь согласованный перечень ящиков и общих адресов. Сравниваю папки и число сообщений, но одинаковые счётчики считаю только начальной проверкой: один пропуск может скрываться за одним дублем. Для расхождений сопоставляю идентификаторы сообщений, отправителей, получателей, даты и содержимое. Один идентификатор тоже не заменяет проверку всего письма. Дату в заголовке не использую как единственную границу аварии: доставка могла задержаться. Отдельно проверяю исходящие и сохранённые пользователем сообщения на новой стороне. Порядок сверки после переноса почты пригодится и при возврате: нужен список проверенных данных и исключений, а не фраза «вроде всё на месте».

С очередями я работаю по журналам доставки. Сообщение, ожидающее передачи следующему серверу, нельзя просто объявить файлом в ящике и вручную скопировать вместе с остальными. Сначала выясняю, какой узел его принял, где оно хранится и чем закончилась следующая попытка. После исправления маршрута проверяю результат повторной доставки штатным способом для этой системы. При окончательном отказе связываюсь с отправителем по известному каналу и прошу повторить отправку. Никакого общего срока «уведомления старше суток не отправляются» у переноса почты нет. У каждого сервера свои ограничения очереди, поэтому я проверяю фактическое состояние и настройки, а неподтверждённые сообщения оставляю в списке разбора.

В учебном бюро итог оформляю по проверяемым признакам: сотрудники работают в старой системе, контрольная переписка проходит, доступные сообщения новой площадки скопированы, очереди разобраны, исключения перечислены. Отдельно проверяю общие ящики, группы получателей и автоматические отправки из рабочих приложений. Перенос писем по IMAP сам по себе не возвращает контакты, календари и настройки сервиса; для них нужны отдельные проверки. Сотрудники подтверждают доступ к рабочей переписке, руководитель получает перечень оставшихся вопросов и порядок их решения. Обновлённые настройки DNS без этого перечня — слишком скромный результат для слова «восстановлено». Обещание «ни одного письма не потеряно» я оставляю только для случая, когда это подтверждают данные.

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

Что я меняю перед повторной миграцией

Повторный перенос я назначаю после разбора причины. Если новый сервер отклонял существующих получателей, исправляю перечень адресов и проверяю их приём. Если ошибалась отправка из приложения, тестирую его учётную запись и внешний маршрут. Если копирование пропустило папки, проверяю сопоставление и отчёт инструмента на выбранном ящике. Между попытками не совмещаю перенос с обновлением всей почтовой системы и заменой остальных настроек: иначе будет трудно понять, какое изменение помогло. Результат разбора — конкретная причина, исправление и воспроизводимая проверка. «DNS долго расходилась» без сохранённых ответов и сведений о TTL объясняет примерно столько же, сколько «вчера всё работало».

В учебном сценарии я провожу репетицию на пробных адресах: копирование, проверка доставки, остановка задания и обратный перенос недостающих сообщений. Проверяю также восстановление из подготовленной копии и доступ к обеим панелям управления. Тестовая среда полезна для порядка действий, но не воспроизводит все чужие DNS-кэши, фильтры и поведение отправителей. Поэтому до рабочего переключения нужны контрольные отправки извне и проверка именно тех клиентов и приложений, которыми пользуется офис. Для бюро с 28 рабочими местами объём работ определяет перечень ящиков и данных, а не само число компьютеров. Срок восстановления я оцениваю по фактической скорости пробного копирования и найденным ограничениям.

В обновлённом плане оставляю критерии остановки, исходные DNS-записи, ответственных, способ сохранения новых писем и условия закрытия старой площадки. Перед переключением заранее снижаю TTL, завершаю основной перенос и делаю повторное копирование доступных новых сообщений. Доступ к прежней системе сохраняю до сверки и согласованного завершения перехода. Бюро получает инструкцию, где работать во время отката, а администратор — порядок действий и проверок. Я не ставлю срок «к утру» без измерения объёма данных и проверки доступов. Сначала возвращаю людям возможность принимать и отправлять письма; затем закрываю расхождения в архиве. Это отдельные результаты, и в отчёте у каждого должно быть своё подтверждение.

План отката проверяйте перед переносом и после изменений, которые затрагивают его шаги. Календарное напоминание само по себе готовность не подтверждает.

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

Как быстро можно откатить перенос почты с Яндекса?

Я отдельно оцениваю возврат рабочей доставки и сверку архива. Срок зависит от доступности площадок, DNS-кэшей, очередей и объёма недостающей почты. Одно изменение MX не означает, что откат завершён.

Вернутся ли новые письма после возврата MX?

Уже принятые новой системой сообщения остаются там. Я копирую их обратно после проверки направления и папок. Письма с окончательным отказом может потребоваться запросить у отправителей заново.

Спасёт ли сборщик, если новый сервер недоступен?

Нет. Для получения писем сборщику нужен доступ к исходному ящику. Сначала я восстанавливаю этот доступ или получаю данные через поддержку площадки; затем проверяю копирование.

Нужно ли сразу выключать новый сервер?

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

Можно ли гарантировать откат без потери писем?

Я подтверждаю результат журналами и сверкой. Резервные копии, сохранённые площадки и контролируемое копирование снижают риск, но не восстанавливают автоматически письмо, которое получило окончательный отказ.

Нужно ли менять адреса и уведомлять всех партнёров?

При возврате почтовой площадки домен и адреса могут остаться прежними. Сотрудникам я сообщаю, где работать. С отправителями связываюсь адресно, если требуется повторить конкретное недоставленное письмо.

Столкнулись с похожей задачей? Обращайтесь — решим

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

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

Источники

© ООО «АйТи-Фреш» · Москва · Все статьи