我在向某些域/服务器(如 yahoo 或次要网络提供商)发送时事通讯时遇到问题。就像我用连接向他们的服务器发送垃圾邮件,他们告诉我过一会儿就停止。我确实收到了一堆电子邮件,但是在重新打开连接之前,我会在一段时间(一个小时左右)内遇到如下消息:
状态=延迟(交付暂时暂停:失去与 mx-eu.mail.am0.yahoodns.net 的连接 [188.125.69.79]
我对通过连接向他们的服务器发送垃圾邮件不感兴趣,并尝试了各种不同的参数来调整 postfix 以满足我的需求。简而言之,到目前为止我已经尝试过:
- 全局减少并发连接
- 全局插入 1 秒的延迟
- 将进程数减少到 2 个
- 为相关域创建特定策略(来源:http ://steam.io/2013/04/01/postfix-rate-limiting )
你们中有人有这方面的经验吗?是否可以为这些特定的接收服务器(例如雅虎)创建策略?
配置示例将不胜感激。
Postfix 并不是特别激进。它试图根据 SMTP 和各种最佳实践来传递邮件。
这是雅虎的错。
雅虎对来自单个发件人的消息的同时接收人的限制极低。我看到这发生在一个只有几十个雅虎地址的 500 名成员列表中。
这个特定列表的内容对时间非常敏感;如果消息在两分钟内没有被接收、阅读和采取行动,它就会失去大部分价值。
我的“解决方案”是警告 Yahoo Mail 用户,Yahoo 可能会延迟收到他们的邮件,并且他们可能希望考虑使用不同的提供商。这可能适合您,也可能不适合您。由于 Postfix 很快重试剩余的收件人,这通常不是一个严重的问题。
其他一些可能的解决方案是:
VERP。这使得每条消息都是独一无二的,并且恰好可以绕过雅虎可笑的低限制,但它会减慢传递速度并显着增加带宽使用,因为必须为每个收件人重复传输消息正文。您可能想要运行测试并确定交付时间的差异是否可以接受。对于像我上面提到的列表这样的时间敏感的东西,VERP 是不可能的。
更改后缀
smtp_destination_recipient_limit
设置。默认情况下,这是 50,这意味着 Postfix 将尝试向其与另一个 SMTP 服务器建立的每个连接发送最多 50 个收件人。由于雅虎似乎一次只接受大约 10 个,因此将其更改为 10 会有所帮助。但是,这会影响到所有目的地的递送,甚至那些不一定需要以这种方式人为限制的目的地,并减慢所有邮件递送。由于 50 似乎是全行业的最佳实践,我仍然不会推荐这个。最后,您链接的文章中列出的配置似乎很好。有可能你在实现它时遗漏了一些东西,或者雅虎认为它真的不喜欢你。