Назад | Перейти на главную страницу

Постепенно переходите с одного SMTP-сервера на другой

У меня есть приложение, которое ежедневно рассылает тонны электронной почты. Вскоре для этого нам придется перейти на другой SMTP-сервер, у которого есть IP-адрес, не имеющий репутации в отношении доставки электронной почты. Поэтому вместо того, чтобы просто переключать переключатель, я хотел бы начать с отправки небольшого процента всей почты через новый сервер, а затем постепенно увеличивать этот процент, пока не достигнем 100%.

Реализовать что-то в самом приложении не составит большого труда, но я хотел бы знать, есть ли для этого более простое и надежное готовое решение.

Моя первая мысль заключалась в том, чтобы использовать для этого циклический DNS, но серверы требуют разных учетных данных, используют разные протоколы (один использует SASL, другой нет) и даже разные номера портов, поэтому я думаю, что это исключает решение на основе DNS. .

Есть ли способ, например, настроить Postfix для отправки одного из x сообщений электронной почты на узел ретрансляции A, а остальные - на узел B? Или, может быть, другой MTA?

Я бы установил балансировщик нагрузки перед вашим старым и новым почтовыми серверами. Используйте взвешенный алгоритм балансировки с циклическим перебором и отправьте 1% вашей электронной почты на новый сервер, чтобы подогреть IP-адреса. Я использовал этот метод раньше, и он отлично работает.

Cronjob, который меняет конфигурации ?, использовать новый сервер в качестве почтового ретранслятора на 10 минут каждый час

/etc/postfix/switch_to_new.sh

#!/bin/bash
#Switch to new mail relay for a bitty...
postconf -e relayhost=[mail.mynewserver.com]:587
postfix reload

/etc/postfix/switch_back.sh

#!/bin/bash
#delete relayhost
postconf -e relayhost=
postfix reload

затем просто используйте cron между ними по мере необходимости ... когда вы настроены на 100%, переключите свое приложение на новый сервер.