Wed, Jan 21, 2009 at 07:59:46PM +0100, mouss wrote:
> > All is working as I want. But some of my users needs to be forwarded
> > to other machine (running postfix+dspam to) to avoid NFS mount, so I would
> > like to filter their mail only on destination machine. Filter is
> > triggered depend on client info/envelope from etc., so even when mail
> > needs to be forwarded it goes to dspam first.
> >
> > Is there a possibility to trigger content filters _after_ expanding aliases
> > (virtual/local)?
Hello again,
I've played a little with various combinations and I've found following
solution,
but it's pretty complicated, I think :)
I'm launching filter through smtpd_recipient_restrictions:
smtpd_recipient_restrictions =
permit_sasl_authenticated
permit_mynetworks
[...]
check_recipient_access pcre:/usr/local/etc/postfix/filter_dspam
To make it work as I wish I have to:
1) provide virtual aliases to get correct destination user for dspam:
user.alias user1
user.second.alias user1
2) set a filter:
/user1/ REDIRECT us...@second-server
/./ FILTER lmtp:unix:/var/run/dspam/sock
3) Maintain local aliases too:
user.alias: user1
user1: us...@second-server
Now, when I'm getting mail for user.al...@first-server it's beeing
forwarded to us...@second-server without any filtering. Other mail is
filtered, local mail is bypassed too.
Is there really no way to fire up the filter only after knowing mail final
destination?
> if you want filtering per recipient, then you can do this in dspam
> (optin...). otherwise, you need multiple postfix instances (run postfix
> twice) in which case you can use transport_maps for filtering (instead
> of content_filter and FILTER).
So I need one instance to forward some users to other server or
transport to dspam filter and the second for filtering and local
delivery? I would like to avoid surplus solutions ;)
--
Marcin Rzepecki
m.rzepecki(at)iem.pw.edu.pl