Linux SMTP 服务器上收件人电子邮件地址的负载平衡

Linux SMTP 服务器上收件人电子邮件地址的负载平衡

背景信息:我们是网络托管和电子邮件(以及其他服务)的提供商,我们需要多个负载平衡的 SMTP 服务器来满足所有客户的需求。

问题:客户时不时会尝试向 500-1000 名收件人发送电子邮件,而我们在垃圾邮件过滤器中对此进行了限制,以防止我们的 smtp 服务器被列入黑名单。

我需要知道的是:是否有某种方法可以在 3 个具有独立 IP 的 smtp 服务器之间平衡收件人数量,以防止被列入黑名单。例如:客户有 900 个收件人,300 个发往服务器 A,300 个发往服务器 B,300 个发往服务器 C,这样他们被列入黑名单的可能性就小得多。对于这种情况,邮件服务器的最佳选择是什么?这种负载平衡如何工作?我对任何 MTA 和任何负载平衡解决方案都持开放态度。

答案1

在网络层面上,负载平衡 smtp 并不容易做到,最好留给 smtp 协议本身,配置 MTA 和 DNS。

配置 DNS,使外发 smtp 服务器地址(例如 smtp.example.com)解析为所有 smtp 服务器的 IP 地址。在这种情况下,客户端不会总是选择同一台服务器来发送邮件,但这有点粗糙,而且不太有效。它不会阻止向一台服务器提交数千封电子邮件。

配置 MX 记录,使多个传入 smtp 服务器具有相同的优先级。这有助于防止传入电子邮件由单个服务器处理所有电子邮件。

在您当前情况下,最有效的方法是配置接收外发电子邮件的 smtp 服务器以适当地平衡电子邮件负载。有多种方法可以做到这一点。例如,您可以将其配置为每个客户端每次队列运行仅流出 10 封左右的电子邮件。然后,其余的电子邮件将保留在队列中以供下次运行。

我知道 Exim 的配置非常灵活,可以配置为执行上述操作甚至更多操作。具体如何配置超出了这个问题的范围。

顺便说一句,你应该能够更改自己的垃圾邮件过滤器,允许一次发送几千封电子邮件,至少针对特定发件人。这真的不算过分,我认为没有理由对每个人都进行限制。

如果您需要合理的电子邮件列表处理,请考虑使用诸如 mailman 之类的工具,它可以很好地管理电子邮件列表,而不是用户抄送 1000 个收件人(这从一开始就是不好的网络礼仪)。

相关内容