Wietse Venema: > 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.
Edited for clarity, and one additional suggestion: > Use milter_header_checks to trigger a FILTER action. > > 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. Perhaps better, Milter D defers the message immrediately, and Postfix retries a few minutes later, until the necessary data is available. You may need to tweak queue_run_delay, minimal_backoff_time and maximal_backoff_time. Wietse