Перенос на другой сервер и несколько серверов
Перенос — это одна кнопка. Несколько серверов — тоже, но с оговоркой про письма, читайте ниже.
Перенос на новый сервер
- На старом сервере: выполните в консоли
mailnode export. Получится файл в/root. - Поставьте mailnode на новый сервер по инструкции установки.
- Скопируйте файл на новый сервер и выполните
mailnode import файл.tar.gz. - Выполните
mailnode renderиmailnode doctor. - Переключите DNS-записи на новый адрес. Старый сервер не выключайте сутки.
Домены, ящики, пароли и ключи перенесутся как есть. Заново ничего настраивать не нужно, DKIM-записи в DNS остаются правильными.
Бандл переносит настройки и ключи, но не сами письма. Если нужны письма, дополнительно перенесите каталог /var/mail с того же бэкапа.
Автоматическая настройка в Thunderbird и Outlook
Клиенту достаточно адреса и пароля, если сервер отвечает на запрос автоконфигурации. Для этого добавьте у регистратора запись:
CNAME autoconfig.example.ru -> mail.example.ru.
После этого Thunderbird сам подставит IMAP 993 и SMTP 465. Проверить ответ можно в браузере:
https://mail.example.ru/mail/config-v1.1.xml?emailaddress=ivan@example.ru
Несколько серверов
- Вкладка Узлы. Введите имя (например
mx2) и адрес видаroot@10.0.0.2. - Нажмите Добавить.
- Нажмите Раскатать настройки на все узлы. Настройки уедут на все узлы.
- Пропишите в DNS несколько MX-записей с разными приоритетами: 10 на основной, 20 на второй.
Копии писем на втором узле
Настройки на узлы раскатываются сами, а письма копируются отдельной командой:
mailnode replicate # на первый узел из списка
mailnode replicate --target root@10.0.0.2 # на конкретный
mailnode replicate --dry-run # только показать, что будет
Команда проходит по всем ящикам и синхронизирует их через doveadm sync по ssh. На втором узле должна быть установлена та же почта и настроен доступ root по ключу — тогда письма лягут в свои ящики.
Автоматически раз в час:
cat > /etc/systemd/system/mailnode-replicate.service <<'U'
[Unit]
Description=mailnode — копирование ящиков на второй узел
[Service]
Type=oneshot
ExecStart=/usr/local/bin/mailnode replicate
U
cat > /etc/systemd/system/mailnode-replicate.timer <<'U'
[Unit]
Description=mailnode — репликация раз в час
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
U
systemctl daemon-reload && systemctl enable --now mailnode-replicate.timer
В панели это кнопка «Скопировать письма» на вкладке «Узлы».
На Dovecot 2.4 глобальное правило раскладки спама в Junk ломает синхронизацию: dsync падает с ошибкой атрибутов. Если нужна репликация между узлами, отключите глобальный фильтр командой mailnode config set spam_to_junk 0 и пересоберите конфиги. Спам при этом всё равно помечается заголовком, а раскладку можно сделать правилом в веб-почте.
Копия идёт в одну сторону: главный узел — источник, второй получает письма. Если оба узла принимают почту по MX, письма, пришедшие на второй, назад не вернутся. Для полного обмена нужна двусторонняя репликация Dovecot, это следующий шаг.