Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How do I route all emails directed to user-* (i.e. to a pipe command in Postfix? The idea is to create craigslist-style anonymization by assigning dynamic email aliases to each user. I can't seem to find relevant information in the documentation, however.

share|improve this question
up vote 4 down vote accepted

Okay. And now a different approach.

Put a new transport in

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

transport_maps = regexp:/etc/postfix/redirect.regexp

And in /etc/postfix/redirect.regexp you put:

/^user-.*@example\.com/   coolscript:

Reload Postfix with postfix reload.

share|improve this answer
if I put / it'll work and my data gets recorded, if I put /^user-.* it'll get a relay access denied, any idea why? I already have relay_domains=$mydestination, $transport_maps but apparently that doesnt solve the problem – Christopher Thomas May 22 '14 at 12:56

First check if you have pcre compiled into Posfix with postconf -m. Then you can set in

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.

share|improve this answer
Is there a reason you're suggesting pcre over regexp? Also, shouldn't I be specifying the pipe in – Nick Colgan Oct 18 '11 at 19:15
@If you know the answer why ask? Sure there are more ways to achieve the same. If you prefer regexp then go for it. Even transports in can do it if you watch out for chroot pitfalls. – mailq Oct 18 '11 at 19:23
This was the magic I needed to make my script work. Transport wasn't working for some reason, this worked first time. – ImmortalFirefly Oct 26 '15 at 23:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.