Phoenix Mailдокументация

Переезд с mailcow

Из mailcow можно забрать домены, ящики, алиасы и пароли без сброса: он хранит пароли в формате BLF-CRYPT, который Dovecot понимает напрямую.

Что переносится

ЧтоКак
Доменыиз таблицы domain
Ящики и квотыиз таблицы mailbox, пароль переносится как есть
Алиасыиз таблицы alias
Письмапо IMAP командой migrate или копированием каталога

Не переносятся: фильтры Sieve (их надо пересоздать), настройки rspamd, DKIM-ключи mailcow (у нас будут свои — DNS-запись DKIM нужно будет обновить).

Шаг 1. Импорт базы

Запускать на новом узле, где уже стоит Phoenix Mail. Доступ к базе mailcow — либо через docker на самом сервере mailcow, либо по сети.

# на сервере mailcow
mailnode import-mailcow --docker --db-password 'пароль из mailcow.conf'

# или по сети, с любого узла
mailnode import-mailcow --host 10.0.0.5 --user root --password 'root-пароль' --db-name mailcow

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

Пароль root базы В mailcow он лежит в mailcow.conf в переменной DBROOT. В чат и в переписку его не выкладывайте.

Шаг 2. Письма

По каждому ящику:

mailnode migrate --source mail.старый-домен.ru --user ivan@example.ru \
    --password 'пароль' --to ivan@example.ru --ssl

Если ящиков много, список можно прогнать циклом в скрипте. Папки и флаги сохраняются, квоты проверяются.

Шаг 3. Переключение

  1. Проверьте, что ящики и письма на месте: mailnode mailbox ls, вход по IMAP.
  2. Поменяйте MX у домена на новый сервер.
  3. Обновите DKIM-запись: mailnode dkim show домен и вставьте TXT.
  4. Старый сервер не выключайте сутки: письма могли идти на него.

Если что-то пошло не так

СимптомПричина
«нет таблицы domain»не та база: проверьте --db-name
пароли не подходятв mailcow включена внешняя авторизация (LDAP), паролей в базе нет
алиасы не появилисьв mailcow они привязаны к ящику иначе; перенесите вручную в панели