Резервный почтовый сервер, или Backup MX

Есть организация с внутренним почтовым сервером на exchange.
Который штатно работает себе и работает.
Но бывают случаи, когда может отвалиться интернет, или сервер упал на время, или у вас плановые работы и нужно на какое то время отключить почтовый сервер.
Но потерять всю входящую почту для 100 человек не очень хочется.
Учитывая, что клиенты будут видеть сообщение о том, что не удалось доставить письмо.

Для того, что бы такая ситуация не произошла нам нужен резервный почтовый сервер/пересыльщик.

И так, что нужно:

Покупаем VPS в минимальной конфигурации у любого хостера, что захотим )

Ну как минимальной достаточно будет:

CPU: 1 core
RAM: 512 mb
DISK: 5 GB

Учитывая, что это будет просто пересыльщик на всякий случай, особой производительности или слишком большого диска нам не надо.

Далее устанавливаем postfix.

# yum install postfix

Хотя может он уже и используется по умолчанию.

Как это было у меня.

Далее конфигурируем

vi /etc/postfix/main.cf

На самом деле все, что нужно это указать вот эти опции:

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
relay_domains = $mydestination, example.com

следующую опцию ставляем пустой, что бы принимать почту для всей зоны не проверяя наличие ящиков.

relay_recipient_maps =

Все остальное можно использовать из дефолтного конфига.

ВНИМАНЕИЕ !!
НЕ нужно указывать опции
mydestination
virtual_alias_domains
virtual_mailbox_domains

После конфигурирования ребутаем демона:

# systemctl restart postfix

Вот весь мой конфиг:

[root@backup-mx postfix]# cat main.cf
# backup mx
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
relay_domains = example.com
relay_recipient_maps =
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
smtpd_recipient_restrictions =
permit_sasl_authenticated
permit_mynetworks
reject_unauth_destination

Проверить работу можно в логах:

# tail -f /var/log/maillog

если все настроено верно, увидите сообщения вроде этих:
Jun 6 18:29:16 mail postfix/smtp[17746]: AF814144146: to=<someuser@example.com>, relay=mx2.example.com[1.2.3.5], delay=1, status=sent (250 2.0.0 Ok: queued as DCA5A1BF40F)