我维护一个应用程序,它每天发送大量电子邮件。很快,我们将不得不为此迁移到另一个 SMTP 服务器,该服务器的 IP 地址在电子邮件传递方面没有声誉。因此,我不想只是简单地切换,而是希望先通过新服务器发送一小部分邮件,然后逐渐增加该百分比,直到达到 100%。
在应用程序本身中实现某些功能并不是很困难,但我想知道是否有更简单、更可靠的开箱即用型解决方案。
我的第一个想法是为此使用循环 DNS,但是服务器需要不同的凭据,使用不同的协议(一个使用 SASL,另一个不使用)甚至不同的端口号,所以我认为排除了基于 DNS 的解决方案。
例如,有没有办法配置 Postfix,将 x 封电子邮件中的 1 封发送到中继主机 A,其余的发送到中继主机 B?或者可能是不同的 MTA?
答案1
我会在你的新旧邮件服务器前设置一个负载平衡器。使用加权轮询平衡算法,将 1% 的电子邮件发送到新服务器以预热 IP。我过去曾使用过这种方法,效果很好。
答案2
更改配置的 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% 中继时,将您的应用程序切换到新服务器。