Миграция почты: как без проблем съехать с одного сервера и отправиться на другой

Тема, указанная в заголовке, может выглядеть неактуальной для уважаемых хабровчан, но иногда поднять её просто необходимо. Дело в том, что я работаю уже много лет админом в научном институте гуманитарной направленности, где у сотрудников такая квалификация в области современных информационных технологий, что пресловутая бухгалтерия из анекдотов про айтишника на этом фоне кажется собранием философов, посвящённых во все тайны бытия. Уважаемые учёные ухитряются вводить имена серверов почты русскими буквами, вместо знака «@» писать в скобках «собачка» (а потом говорить, что так было написано в присланном им почтовом адресе), пытаться отправить почту на WhatsApp с помощью The Bat! и сделать ещё кучу странных вещей, зачастую в одном и том же сообщении. Учить их бесполезно, бороться с ними невозможно; остаётся принять свою судьбу и предельно автоматизировать все операции, связанные с исправлением их ошибок.

Одной из самых зловещих и опасных операций в моей практике оказалась миграция Web почты с сервера на сервер. Дело в том, что у сотрудников института аж три служебных почты: одна включает в себя внутренний Exchange сервер, другая работает на Mail.ru, а третья — на Gmail. Нет, это не я идиот, и даже не они. Это — распоряжение дирекции, связанное с какими-то ведомственными играми. Что-то должно оставаться внутри института на «корпоративном» сервере, что-то, связанное с заявками и грантами, непременно должно идти через русскую почту, а почта Gmail связана у моих уважаемых коллег с такими, безусловно, необходимыми вещами, как документы и таблицы Google, бэкап на диск и т.д. Беда только в том, что у семи нянек, как известно, дитя без глазу — то есть, в данном случае, между трёх серверов почты коллеги мои самым недвусмысленным образом ухитряются потерять самые важные письма!

Есть и ещё одна проблема, часто вызывающая необходимость в миграции почты. Современные почтовые сервисы часто позволяют автоматическую ретрансляцию сообщений с одного сервера на другой, то есть сбор почты. И пользователь, привыкший к тому, что его сообщения на сервере, скажем, Mail.ru, автоматически копируются на почту Яндекс, иногда забывает в итоге, что таким способом он получает доступ не ко всем сообщениям, а только к тем, которые были получены после настройки сбора почты. Поэтому у него может возникнуть естественное желание выполнить полную миграцию почты со старого сервера на новый, чаще используемый, а к кому он пойдёт с этим своим желанием? Правильно: к ближайшему сисадмину!

Думаю, похожая ситуация возникает и у любого, кто так или иначе вынужден иметь несколько почтовых аккаунтов, тем паче — администрировать их, или же просто хочет переехать с сервера на сервер без потери важной информации. Разумеется, IT-зубры с лёгкостью решат эту задачу в два щелчка мышкой, но вот если вы малоопытны в таких делах, то миграция электронной почты может вылиться для вас в сложную задачу. Поэтому я решил вкратце поделиться опытом, как без проблем выполнить экспорт писем почты в какое-нибудь хранилище и последующий импорт почты на другой сервер. Быть может, кому-то эта операция поможет избавиться от мелких неприятностей или просто облегчит жизнь!

Экспорт писем: немного теории, немного практики

В принципе, почтовые серверы работают с клиентскими программами по одному из двух протоколов: POP3 или IMAP. Если эти названия вам вдруг ничего не говорят (так ещё бывает?), попробую объяснить простыми словами: протокол POP3 скачивает письма с сервера на ваш компьютер, а протокол IMAP обрабатывает их прямо на сервере. Старые почтовые клиенты по умолчанию работали (и продолжают работать) с протоколом POP3, выгружая почтовые сообщения в специально выделенную для клиента папку (обычно она находится где-то в каталоге пользователя, среди скрытых по умолчанию папок с данными приложений). Протокол IMAP более современный, и с его помощью тоже можно выполнить импорт писем в локальное или сетевое хранилище. Так что вопрос в основном не в том, как скачать нужные письма, а в том, как переслать их на нужный сервер для выполнения миграции почты. Самый простой вариант — использовать протокол IMAP, копировать по нему все письма в какое-нибудь хранилище в формате EML, а потом залить их в другую папку на другом аккаунте, пользуясь тем, что формат файлов писем в общем случае совершенно одинаковый.

Как это сделать?

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

  • Импорт почты из папки на сервере в какое-нибудь хранилище в формате EML.
  • Экспорт писем почты в какую-нибудь другую папку на другом сервере по IMAP.

При этом программа миграции почты с точки зрения обоих серверов ведёт себя как обычный IMAP-клиент. (Кстати, большинство почтовых серверов потребует от вас разрешения использовать указанную программу в качестве почтового клиента, так что перед выполнением миграции почты с какой-нибудь утилитой обязательно зайдите в ваш почтовый аккаунт и разрешите серверу использовать эту утилиту в списке доступных клиентов по протоколу IMAP). Такие программы обычно требуют минимума ручной работы для предварительной настройки миграции электронной почты. Обычно вы можете настроить даже расписание для регулярной автоматической миграции почты с сервера на сервер, если это вам зачем-то надо. Лично я для экспорта писем почты пользуюсь программой Handy Backup, благо она стоит у нас почти на всех машинах и требует минимума настроек, к тому же централизованно осуществляемых с администраторской машины — не надо никуда ходить ногами. Но, по большому счёту, используемое программное обеспечение неважно, лишь бы оно умело осуществлять экспорт и импорт почты прямо на Web-сервера, и поддерживало единый формат для писем на обоих серверах.

А Microsoft-то как обычно…

Отдельная головная боль — миграция электронной почты Exchange или Outlook (я имею в виду не сервер почты Outlook.com, а клиент), ведь Microsoft, как обычно, идёт по нестандартному пути. Хорошо, если в этой ситуации у вас есть под рукой специализированная софтина для экспорта писем почты Outlook или серверов Exchange — тогда задача упрощается до чтения инструкции по миграции писем почты под управлением соответствующей программы. Хорошо, что таких программ довольно много, как и специализированных плагинов для соответствующего программного обеспечения, ориентированных на продукты Microsoft.

Миграция электронной почты по протоколу POP3

Некоторые любят извращения, но в общем случае это не так. Поэтому не надо переносить почту с сервера на сервер по протоколу POP3, это старо и некрасиво. Перейдите на IMAP на обоих серверах (как это сделать, есть подробнейшие инструкции практически у каждого провайдера), а потом сделайте всё, как описано выше (или хотя бы воспользуйтесь инструментом миграции, встроенным в почтовый сервис — иногда такие инструменты есть, хотя их удобство и логика работы обычно оставляют желать лучшего). Можно также попробовать дедовский ручной метод: с помощью программы-клиента перенести письма из папки в папку, или просто выделить их и отправить на новый сервер. Когда-то, когда мы были маленькими, мы все поступали именно так, и нам это не казалось неприличным, поэтому в безысходной ситуации можно попробовать снова заняться подобной ручной работой…

В целом же, миграция электронной почты с сервера на сервер методом последовательного импорта почты в хранилище, а затем экспорта писем почты на новый сервер по протоколу IMAP удовлетворяет всем основным критериям удобства работы с программами. Эти критерии — понятная логика, безопасность, автоматизация и наличие большого количества готовых доступных инструментов, которые могут выполнить для вас эту работу. Так что, надеюсь, эта моя заметка окажется кому-то полезной и упростит жизнь в тех случаях, когда бухгалтерия или плановый отдел вдруг срочно требуют перевести их с Яндекса на Mail.ru, с Гугла на Yahoo! или ещё куда-нибудь, куда прикажет внезапно озаботившийся дислокацией почты начальник. Не давайте себя утомить, коллеги!

Источник: habr.com