When all deliveries to a site fail (a colhort of delivery agent
processes reports the destination is unavailable) the Postfix
scheduler puts the destination on a temporary 'dead destination'
list, to avoid spending resources on that destination.
Of course this design is not optimized for bursts of DNS outages
and DNS resource records with short TTL values. Such sites will
need special configuration.
To eliminate this dead list feature selectively, route mail for
this site to a dedicated SMTP transport:
/etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
smtp-without-deadlist_destination_concurrency_failed_cohort_limit = 0
smtp-without-deadlist_destination_concurrency_negative_feedback = 0
/etc/postfix/transport:
example.com smtp-without-deadlist:
/etc/postfix/master.cf:
smtp-without-deadlist unix - - n - -
smtp
Below is some theory from the postconf(5) manpages.
Wietse
default_destination_concurrency_failed_cohort_limit (default: 1)
How many pseudo-cohorts must suffer connection or handshake failure be-
fore a specific destination is considered unavailable (and further de-
livery is suspended). Specify zero to disable this feature. A destina-
tion's pseudo-cohort failure count is reset each time a delivery com-
pletes without connection or handshake failure for that specific desti-
nation.
A pseudo-cohort is the number of deliveries equal to a destination's
delivery concurrency.
Use transport_destination_concurrency_failed_cohort_limit to specify a
transport-specific override, where transport is the master.cf name of
the message delivery transport.
This feature is available in Postfix 2.5. The default setting is com-
patible with earlier Postfix versions.
default_destination_concurrency_negative_feedback (default: 1)
...
As of Postfix version 2.5, negative feedback cannot reduce delivery
concurrency to zero. Instead, a destination is marked dead (further
delivery suspended) after the failed pseudo-cohort count reaches $de-
fault_destination_concurrency_failed_cohort_limit (or $transport_desti-
nation_concurrency_failed_cohort_limit). To make the scheduler com-
pletely immune to connection or handshake failures, specify a zero
feedback value and a zero failed pseudo-cohort limit.