Viktor Dukhovni:
> On Sun, Oct 23, 2022 at 05:21:05PM +0200, Markus Sch?nhaber wrote:
>
> > while experimenting with ways to temporarily suspend message delivery
> > I set a smtpd_client_restrictions = check_client_access static:HOLD
> > But incoming mail wasn't put on hold but postfix logged a warning
> > instead:
> >
> > > warning: access table static:HOLD: with smtpd_proxy_filter specified,
> > > action HOLD is unavailable
> >
> > I have tried to find the place where this is documented and which other
> > restrictions might collide with smtpd_proxy_filter. But I have failed.
> > Can someone point me in the right direction?
>
> The HOLD action causes messages to be placed in the "hold" rather than
> the "incoming" queue, which naturally at least requires that a queue
> file be involved.
>
> On the other hand, "smtpd_proxy_filter" is pre-queue, instead of writing
> the message to a queue file (via cleanup(8)), it is sent via SMTP to a
> filter service. Naturally nothing that requires a queue file is
> possible.
>
> 1. No HOLD actions
> 2. No milters.
> 3. No receive_override_options (no cleanup)
> ...
>
> If the filter then forwards the message to Postfix smtpd(8) on some
> other port, it is *that* smtpd(8) instance that can request actions
> from cleanup(8) that involve a queue file.
One detail: smtpd_milters are available before "smtpd_proxy_filter",
but none of the milter events and actions that involve message
header or body content, because the Postfix implementation of those
requires a queue file.
Wietse