Redirecting wildcard email to one email with postfix
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!
Solution 3
Alias maps (virtual, local, ...) will work in combination with the regexp_table format. But if you have compiled in PCRE, then you can also use the pcre_table format.
Otherwise you should search for "Postfix catch-all" which is a bit more greedy.
Related videos on Youtube
MacMac
Updated on September 18, 2022Comments
-
MacMac almost 2 years
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 theluser_relay = [email protected]
and puttingnotification-message-*
in the postfix aliases table, thenotification@
has a Maildir, so the mail would go into it.A concept diagram:
I am using Ubuntu 11.04.
-
Admin over 11 yearsUse pcre serverfault.com/questions/313050/…
-
-
MacMac over 11 yearsDo you have an example of how I can do this?
-
user2902302 over 11 yearsJust use virtual_alias_maps with a regexp_table
/notification-message-[0-9]*@mysite.com/ [email protected]
-
gitaarik over 9 yearsIs it possible to store the regex aliases in a database like MySQL or sqlite3, like you do with the
mysql:
lookup table? -
Nick Merrill over 9 years@rednaw Yes, definitely possible (and preferable IMO)! Just modify the
query
used in themysql-virtual-aliases.cf
file to something likequery = SELECT destination FROM virtual_aliases WHERE is_regexp=0 AND source='%s' OR is_regexp=1 AND '%s' REGEXP CONCAT('^',source,'$')
as described in this question. This way, you can use both regexp aliases and non-regexp aliases in the same table with a simple database flag (is_regexp
). Pretty sweet. -
adopilot almost 6 years@NickMerrill plase considered adding your comment as an answer.
-
Morty over 3 years
postconf-m
misses a white space. Unfortunately I don't have enough rep to fix it. :( ( meta.stackexchange.com/questions/77233 )