Переезд с 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. Переключение
- Проверьте, что ящики и письма на месте:
mailnode mailbox ls, вход по IMAP. - Поменяйте MX у домена на новый сервер.
- Обновите DKIM-запись:
mailnode dkim show домени вставьте TXT. - Старый сервер не выключайте сутки: письма могли идти на него.
Если что-то пошло не так
| Симптом | Причина |
|---|---|
| «нет таблицы domain» | не та база: проверьте --db-name |
| пароли не подходят | в mailcow включена внешняя авторизация (LDAP), паролей в базе нет |
| алиасы не появились | в mailcow они привязаны к ящику иначе; перенесите вручную в панели |