Андрей Енькин

Full-stack веб-разработчик, менеджер проектов

andrey@enkin.ru

Перенос корпоративной почты в Яндекс.Почту-для-домена. Все подводные камни - и моя новая услуга

Расскажу про один успешный кейс, который может быть полезным для многих компаний.
Исходная диспозиция - небольшая компания, много лет работающая с почтой по старинке: обычный хостинг с почтовым сервисом, рабочие компьютеры забирают сообщения по древнему протоколу POP3 и хранят их локально. Всего за годы накопилось примерно 100 Гб почты, которую необходимо сохранить. Сообщений - около 300 000 штук.
Проблема наступила тогда, когда понадобилось работать с почтой удаленно и с разных устройств - как с локальных компьютеров в офисе, так и с телефонов сотрудников. Плюс антиспам. Плюс веб-интерфейс нужен. Обычный хостинг не справляется ни с тем, ни с другим, да и 100Гб держать на сервере не предлагает.
Но главное - нам понадобилось подключить почту к CRM, увязать переписку с базой клиентов и их заказов за много лет, не утратив из истории переписки ни одного письма.

Очевидный выбор провайдера стоял между Гуглопочтой и Яндекс.Почтой для домена. От Гугла отказались в первую очередь по причинам импортозамещения и рисков блокировок. Итак, Яндекс. Привязываем домен по мануалу, создаем ящики. Все ок, осталось перенести почту на сервер. Вот здесь и начинается интересное. Поменять учетку с протоколом POP на IMAP просто так нельзя - раз созданная с каким-то протоколом, с ним она и остается навечно. Так во всех почтовых программах, которые я видел. К тому же программа у нас уже есть, и многоэтапный импорт между программами крайне нежелателен.

Попытка номер раз. Drag & Drop в почтовой программе - это был The Bat - между локальной учеткой и новой, на Яндексе. Облом. Процесс каждые 5-10 минут прерывается, за один раз пролезает 50-100 писем. Прикидываю что с такими темпами и перетаскиванием максимум по 1000 писем в час, на задачу уйдут какие-то безумные человеко-часы.

Ок, проверяем в чем дело. Выделяем под задачу UNIX-сервер с почтовым ПО. Создаем IMAP-учетку на этом почтовом сервере - собственном, перенаправляем на него MX домена. Ура, Drag & Drop работает. Можно понаделать комбинаций "выделить все в папке" - "перетащить", и уйти спать. Так примерно 500 раз - для каждой папки. Таким образом с локальных машин письма заезжают на сервер. Правда, не на нужный (Яндекс), а на временный. Ненадежный, сконфигурированный по умолчанию, без всяких антиспамов и оптимизации. А проблема стабильного импорта по IMAP именно на стороне Яндекса.

Попытка номер два. Применяем стандартный сервис импорта Яндекса, который умеет соединяться с сервером по IMAP и забирать папки и сообщения к себе. Облом. Яндекс-импортер осиливает максимум 3000 сообщений и останавливается. Повторный запуск начинается с прохода по уже загруженным сообщениям - они не дублируются, но и до новых он не доходит. Как-либо управлять сервисом нельзя. Техподдержка Я.ПДД отсутствует как класс, про все что не касается обычной работы с почтой написать тупо некуда. Конечно, я написал в наиболее похожий раздел, но мне, кажется, даже не ответили.

Попытка номер три. Drag & Drop в почтовой программе между двумя IMAP-учетками. Яндекс опять рвет процесс. То есть очевидно, что проблема именно на стороне Яндекса. Вот тут я делаюсь мрачным и отправляюсь искать помощи у коллег и в гугле. Так я нашел imapsync .

Инструмент imapsync - могучая и очень крутая штука. Отчитываются о переносе миллионов сообщений, скомпилированный .bat может, со слов автора, применяться даже под Windows , стоит каких-то небольших денег, типа 70 евро. Серверная версия устанавливается из репозитория бесплатно, там все просто, строго по мануалу. Отлично, под инструмент я выделяю еще один UNIX-сервер и начинаю эксперименты.

Значит, схема работы тулзы вкратце такова. Она пересчитывает папки и сообщения на первом сервере, затем на втором. Далее последовательно создает недостающие папки и копирует сообщения. Мне удалось увидеть скорость примерно 2.5 сообщений в секунду, что для имевшегося объема было вполне себе приемлимо. И главное - НИ ЕДИНОГО РАЗРЫВА процесса. Запустил, ушел спать, утром поглядываешь через веб-интерфейс Яндекса как прибавляются папки и сообщения на новом месте. Красота:)

Без подводных камней не обошлось. Они связаны, прежде всего с именами папок. Во-первых, в почтовой программе локально не было ограничений ни на длину, ни на символы в именах папок. У Яндекса ограничение на длину есть. А наличие в имени точки немного ломает структуру папок - некоторые папки пришлось переименовать чтобы они загрузились корректно, после чего переименовать обратно. Еще одна проблема нашлась с Отправленными письмами - Яндекс не позволяет создавать папки, вложенные в папку Отправленные, в то время как локально такие папки имелись. Пришлось немного подвигать письма и задать новые правила сортировки, максимально комфортные для сотрудников. И последняя проблема случилась с вложениями - битые файлы, накопившиеся за годы эксплуатации почтового клиента локально, препятствовали корректной загрузки писем. Но, слава богу, по всем расхождениям imapsync дает отчет. Еще были небольшие ухищрения на предмет того, как сделать это все без прерывания рабочих процессов и получения почты, но это уже частный случай конкретного офиса.

Таким образом, все сотни тысяч писем переехали на сервера Я.ПДД. Вручную пришлось перенести только правила сортировки писем, по счастью на всех работников их набралось всего несколько сотен. Дальше рутина - настройки SPF, DKIM, смена MX и несколько дней приглядывания за тем, как сотрудники формируют новые рабочие привычки.

Процедуру, конечно же, можно было упростить. Вместо отдельного сервера использовать .bat версию imapsync на офисных машинах или на офисном же сервере, но я не уверен за бесперебойнойсь синхронизации в этом случае. Можно было попробовать обойтись и почтовым сервером виртуального хостинга как промежуточным сервером, но не везде на хостингах дают за вменяемые деньги положить 100 Гб. Да что там говорить, и VPS с таким дисковым пространством уже других денег стоят. Но слава богу, мне считать копейки и гигабайты не пришлось, и вам не советую.

Может ли повторить процедуру ваш системный инженер, которого вы привыкли называть сисадмином? Да, безусловно.
Сколько времени это у него займет? От рабочего дня полностью до нескольких рабочих дней.
Что ему следует знать помимо технической стороны вопроса? Организацию работы бизнеса с емайл-рассылками, какие провайдеры и серверы задействованы, график почтовых рассылок и привязка оных к бизнес-событиям (распродажи, сезон, работа пиарщиков и т.п.), какие адреса указаны в качестве обратных, и все такое.
Стоит ли рассчитывать на инструмент импорта от Яндекса, если у вас все и так жило на IMAP-учетке? Нет, не стоит, если в вашем ящике больше 2000 писем.

Что делать, если вы хотите перенести корпоративную почту в Яндекс.ПДД, но системного инженера в штате у вас нет? Обращайтесь ко мне. Точная стоимость - после знакомства с вашей почтовой инфраструктурой. Для ориентира - описанный кейс обошелся компании в 25 000 рублей, занял примерно неделю, потребовал удаленного доступа к локальным машинам через TeamViewer и RDP до офисного сервера, потому что работать через Тим выходило исключительно нестабильно. Серверные мощности, использованные для работы, я предоставил свои.

Обращайтесь.

 

Хорошая статья? Поделись в соцсетях!