On Thu, Jan 03, 2019 at 02:57:34PM -0500, Viktor Dukhovni wrote: > Postfix fragments the queue by (nexthop, recipient) rather > than just the nexthop. You're looking for a feature that ignores > both the nexthop and the recipient aggregates all nexthops into a > single unified transport-wide queue. No code for that exists.
If you're willing run your own franken-postfix, hard coded to run one queue per transport whenever the recipient limit > 1, you could test the below. I have no time to create a documented configurable (mis)feature along these lines. --- src/qmgr/qmgr_message.c +++ src/qmgr/qmgr_message.c @@ -1259,7 +1259,7 @@ static void qmgr_message_resolve(QMGR_MESSAGE *message) * to decouple the per-destination recipient limit from the * per-destination concurrency. */ - vstring_strcpy(queue_name, STR(reply.nexthop)); + vstring_strcpy(queue_name, "global_queue"); if (strcmp(transport->name, MAIL_SERVICE_ERROR) != 0 && strcmp(transport->name, MAIL_SERVICE_RETRY) != 0 && transport->recipient_limit == 1) { Note that with this, connection failures to any single destination, will throttle all destinations. Since you in any case want rate delays, see the note about http://www.postfix.org/postconf.5.html#transport_destination_concurrency_failed_cohort_limit mentioned in: http://www.postfix.org/postconf.5.html#default_destination_rate_delay Therefore: smtp_destination_rate_delay = 1s default_destination_concurrency_failed_cohort_limit = 10 And yet, this is all still a bad idea. -- Viktor.