Redirecting wildcard email to one email with postfix
I'm creating a bounce email system where addressees can reply to messages on my site.
However when the email are sent to the user containing the previous message, the Reply-To
field contains an address like this [email protected]
(which contains the ID at the end).
If the user replies, the reply message will be sent back to [email protected]
which of course, doesn't have its own mailbox, except the [email protected]
.
How would I redirect all incoming messages coming from a specific wildcard notification-message-*@mysite.com
to [email protected]
? I did some research, but no solid part worked, including the luser_relay = [email protected]
and putting notification-message-*
in the postfix aliases table, the notification@
has a Maildir, so the mail would go into it.
A concept diagram:
I am using Ubuntu 11.04.
Solution 1:
I'd be inclined to solve this using recipient_delimiter
.
If you don't mind using slightly different Reply-To
addresses, you can set:
recipient_delimiter = +
in your config, and then mail to e.g. [email protected]
(note the +
) will be delivered to the notification
user (assuming there are no more-specific rules/users matching notification+message-988742
).
You could try setting recipient_delimiter = -
(so that you could use the Reply-To
headers as they are in the question) but I'm not sure how that would work with multiple instances of the delimiter on the left-hand side, and I don't have a Postfix to hand to check.
Solution 2:
As have said mschuett, you can use regexp
First check that postfix supports regexp:
root @ mail / # postconf -m | grep regexp
regexp
Create the file /etc/postfix/aliases-regexp and add to it your regexp
root @ mail / # cat /etc/postfix/aliases-regexp
/notification-message-[0-9]+@example\.net/ [email protected]
Run postmap and check whether it works:
root @ mail / # postmap /etc/postfix/aliases-regexp
root @ mail / # postmap -q [email protected] regexp:/etc/postfix/aliases-regexp
[email protected]
If everything is OK, add this file to your alias database
Example:
root @ mail / # cat /etc/postfix/main.cf | grep ^alias_maps
alias_maps = hash:/etc/aliases regexp:/etc/postfix/aliases-regexp
If you are using virtual domains, add this file to your virtual_alias_maps
Example:
root @ mail / # cat /etc/postfix/main.cf | grep ^virtual_alias_maps
virtual_alias_maps = mysql:/etc/postfix/mysql/alias.conf regexp:/etc/postfix/aliases-regexp
Do not forget to restart postfix.
Good luck!