Postfix,安排批量发送电子邮件

Postfix,安排批量发送电子邮件

是否可以让 Postfix 限制一次发送的电子邮件数量,并且当电子邮件数量超过 x 封时,按定时批次发送(等待 5 分钟,再发送 50 封,诸如此类)?

我遇到一个问题,我将我的 SMTP 中继设置为 Google Apps,这会限制每小时的登录次数,由于 Postfix 尝试一次发送所有电子邮件(队列一次可能会超过 1000 封),它会超时并出现此错误:

(delivery temporarily suspended: SASL authentication failed; server smtp.gmail.com[74.125.25.108] said: 454 4.7.0 Too many login attempts, please try again later. y2sm3513004pas.45 - gsmtp)

然后我必须在一天内手动刷新队列大约 15 次才能发送所有电子邮件。

答案1

在我之前的评论中,我对transport_destination_rate_delay行为的看法是错误的。

您可以通过 transport_destination_rate_delay 设置在到同一目的地的各个交付之间插入的延迟量

这里的“同一目的地”的意思是

  • 如果 transport_destination_rate_delay > 1,则为同一域/下一跳
  • 如果 transport_destination_rate_delay = 1,则为同一接收者

此主题本文档页面

在您的例子中,您已将 GApps 服务器配置为relayhost。这意味着 postfix 将把中继主机视为您的下一跳。因此,default_destination_rate_delay尽管您要发送多个域,但您可以申请延迟向一个 GApps 发送尝试。

假设您希望每 5 分钟发送 50 封电子邮件,那么您可以配置 postfix 以提供(5 * 60)/ 50 = 6 秒每次交付延迟。

#main.cf
default_destination_rate_delay = 6s

相关内容