Перенос на другой сервер и несколько серверов
Перенос — это одна кнопка. Несколько серверов — тоже, но с оговоркой про письма, читайте ниже.
Перенос на новый сервер
mailnode export). Получится файл в /root.mailnode import файл.tar.gz.mailnode render и mailnode doctor.Домены, ящики, пароли и ключи перенесутся как есть. Заново ничего настраивать не нужно, 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.Копии писем на втором узле
Настройки на узлы раскатываются сами, а письма копируются отдельной командой:
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, это следующий шаг.