Ralph Seichter:
> * Wietse Venema:
>
> > What problem are you trying to solve?
>
> Milters A, B and C in my example scenario can trigger asynchronous
> actions in backend systems, the results of which become available only
> after a delay caused by processing, which takes about 3 minutes. These
> results are required by milter D, and it is not feasible to have Postfix
> hold the original sender's session in an active state for this amount of
> time.
Use milter_header_checks to trigger a FILTER action. This will divery
a message to a content_filter that upon re-injection into
Postfix
internet -> smtpd(with milters A-C) -> cleanup -> queue
If the message has no magical headeer, it is delivered as usual.
queue -> smtp -> network
queue -> local -> mailbox
Otherwise it is sent though a content filter than can be empty
queoe -> smtp(with large timeout) ->
smtpd(with milter D, with large milter timeout) -> cleanup -> queue
and then it is delivered as usual.
This requires that Milter D blocks until the nedessary info is available.
Wietse