23.10.22, 18:18 +0200, Wietse Venema:

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.

Thanks for the explanations, Wietse and Victor!

--
Regards
  mks


Reply via email to