我有一个设置,其中电子邮件的排序很重要(将提交消息传递给 Fediverse 客户端,后者将其转换为 Markdown 并发布)。
在发送方,我有自己的sendmail
设置来保留顺序:
define(`confQUEUE_SORT_ORDER', `time')dnl
这导致……
O QueueSortOrder=time
…在结果sendmail.cf
文件中。
现在接收方是 Debian 上的 Postfix,然后使用脚本python3-mastodon
来发布,触发方式如下/etc/aliases
:
foouser: |/usr/local/libexec/fooscript
但是,收到的邮件并非foouser
按照收到的顺序投递(发送邮件会批量发送消息,并每隔几分钟发送一次,因此当foouser
在同一个 SMTP 连接中发送两封(或更多)电子邮件时就会出现此问题。
我如何配置 Postfix 以尽可能保留消息传递的顺序?(我主要是用户sendmail
,所以我不知道。)
答案1
即使是“新”后缀队列管理器(在单个目标内)也记录为按预期顺序交付:
也就是说,除非涉及抢占,否则都是先进先出——调度程序自述文件
您需要查看这些设置以全局禁用默认并发(多线程)和抢占(无序)机制:
default_destination_concurrency_limit = 1
default_delivery_slot_cost = 0
记住man 5 postconf
按传输方式配置这些。如果该服务器还处理其他邮件,则全局关闭这两项操作会很浪费。