我正在寻找一种解决scheme,以小时为单位限制发送给特定电子邮件运营商(几个顶级域名,我所知道的所有这些域名)的电子邮件的速率。 我还需要一些方法来控制每封邮件的速度,以便在每个小时内允许由postfix发送更多的电子邮件。 此操作员维护的所有地址的限制是全局的,重置每个整小时。
我使用后缀after_queue自定义filter,寻找我们的自定义标题指示优先。 filter接受的邮件数量保存在PostgreSQL数据库的脚本之外。 符合当前时间范围配额的邮件将作为接受传递给后缀,超出配额的邮件将使用tempfail返回码延迟。
用于向此特定运营商发送电子邮件的SMTP中继是单独的虚拟机,仅用于有限的电子邮件和运营商的popup。 根据要求定制filter效率是足够好的。
基本上有两个问题:
从队列后自定义filter,而不是将消息返回到后缀队列,只需使用其他工具直接发送到目标SMTP并完全跳过后缀。 我不知道在Linux上是否有任何准备使用的smtp客户端来实现这样的任务。 另外,我们需要同步处理反弹消息(作为SMTP通信中的响应)和asynchronous(作为发送到返回path地址的状态电子邮件)。 我们还需要控制这种工具的Return-Path指向服务器发送的电子邮件。
作为最后的机会解决scheme,想法是推出自己的SMTP服务器,或者修改sendmail / postfix源码来满足我们的需求。 这是矫枉过正,直到没有其他选项可用。
什么Linux工具可以立即(不排队)中继电子邮件到收件人的SMTP服务器,并提供有效的退回消息? 或者,如果这个问题有更好的解决方法,我应该看什么工具?
题
什么Linux工具可以立即(不排队)中继电子邮件到收件人的SMTP服务器,并提供有效的退回消息? 或者,如果这个问题有更好的解决方法,我应该看什么工具?
后缀本身具有MULTIPLE INSTANCEfunction。 它可以让你定义具有自己的队列和configuration文件的单独的postfix实例。 您可以将此实例用作SMTP处理的最后一个链。 是的,因为它有单独的队列,这个特殊的实例可以发送你的电子邮件,而无需等待和修改另一个队列。
看看后缀的策略守护进程。 这个配额按照你描述的方式工作。
https://www.policyd.org/content/features
要确定给定邮件消息的传送优先级,您可以定期grep延迟队列中的项目来读取您的自定义标头,并构build一个现在需要传送的消息列表。 对于该列表中的每个待处理邮件,请运行以下命令。
postqueue -i queueid
这应该会导致postfix尝试传递给定的queueid的邮件。
根据邮件的数量和系统的性能,这可能也可能不实际。 但是,您需要考虑系统的增长并testing系统需要处理的最大吞吐量。
注意。 在Centos上,延迟的邮件内容存储在以下目录下。
在/ var /线轴/后缀/延期