On Thu, Oct 06, 2016 at 08:23:42PM +0000, Todd C. Olson wrote:

> I wish to set up a multi instance filter-before-queue incoming edge relay
> postfix 3.1.* configuration. I've been studying the MULTI_INSTANCE_README
> which describes only the filter-after-queue multi setup and the
> SMTPD_PROXY_README which describes the filter-before-queue non-multi setup.
> I've not been able to deduce the answer to the following from this and
> the other postfix documentation.
> 
> QUESTION: what is the interaction between smtpd_proxy_filter and the various 
> transport settings?

    There is no interaction.  When a proxy filter is enabled, mail
    does not enter the Postfix queue (and is not seen by either
    the cleanup service or the queue manager) until it has first
    been handed off to the proxy filter.

    Therefore, transport settings have no effect on the proxy
    filter, which is used unconditionally.  After the proxy filter
    mail is processed as it would had it arrived at the back-end
    SMTP service directly.

> SPECULATION: In the postfix-recv instance (that receives email from the
> internet and conveys it to the filter) setting
> smtpd_proxy_filter=127.0.0.1:10025 will make that instance ignore any
> values set for the various transports, such as relay_transport,
> fallback_relay, virtual_transport, default_transport, transport_maps, etc.

Mail will be sent to the proxy filter unconditionally, but transport
decisions are not "attached" to the message, they are made just in
time each time a message enters the active queue (perhaps more than
once if deferred).  This happens downstream of the proxy filter.

> This implies that a transport table can not be used to discard email to
> select recipients.

This conclusion does not follow.

> Further the instance will ignore several of the actions
> in an access(5) table, such as FILTER, HOLD, and REDIRECT.

The FILTER, HOLD and REDIRECT actions are not available upstream
of a proxy filter, because these are "attached" to a queue file,
and so can only happen south of the proxy filter.

> It is possible that BCC and DISCARD do work.

Likewise, these have no effect upstream of a proxy filter, and must
be implemented downstream.

> And the other actions should work.  However
> there is no PROXY_FILTER action to allow one to selectively do
> filter-before-queue while defaulting to filter-after-queue.

The proxy filter is unconditional.  It can decide to hand off
the message downstream unmodified as and when applicable.

--- 
        Viktor.

Reply via email to