How can I route some emails to a script in Postfix?
Solution 1:
Okay. And now a different approach.
Put a new transport in master.cf
:
coolscript unix - n n - 50 pipe
flags=R user=vmail argv=/path/to/script -o SENDER=${sender} -m USER=${user} EXTENSION=${extension}
you can extend/modify the parameters as you like.
Then (to eliminate pcre) you can use regexp to do the "catch-thing" in main.cf
:
transport_maps = regexp:/etc/postfix/redirect.regexp
And in /etc/postfix/redirect.regexp
you put:
/^user-.*@example\.com/ coolscript:
Reload Postfix with postfix reload
.
Solution 2:
First check if you have pcre compiled into Posfix with postconf -m
. Then you can set in main.cf
:
virtual_alias_maps = pcre:/etc/postfix/redirect.pcre
and in /etc/postfix/redirect.pcre
you put:
/^user-.*@example\.com$/ somelocalalias
and in /etc/aliases
you add
somelocalalias: |"/path/to/script"
Don't forget to postalias /etc/aliases
and afterwards reload Postfix with postfix reload
.