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.