Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm creating a bounce email system where emails can reply to messages on my site.

However when the emails are sent to the user containing the previous message, the Reply-To field contains an email something like this notification-message-988742@mysite.com (which contains the ID at the end).

If the user replies, the reply message will be sent back to notification-message-988742@mysite.com which of course, doesn't have its own mailbox, except the notification@mysite.com.

How would I redirect all incoming messages coming from a specific wildcard notification-message-*@mysite.com to notification@mysite.com? I did some research, but no solid part worked, including the luser_relay = notification@mysite.com and putting notification-message-* in the postfix aliases table, the notification@ has a Maildir, so the emails would go into it.

A concept diagram:

enter image description here

I am using Ubuntu 11.04.

share|improve this question
    
Use pcre serverfault.com/questions/313050/… –  Eric DANNIELOU Oct 9 '12 at 2:41
add comment

3 Answers 3

up vote 1 down vote accepted

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. notification+message-988742@mysite.com (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.

share|improve this answer
add comment

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.

share|improve this answer
    
Do you have an example of how I can do this? –  Burning the Codeigniter Oct 7 '12 at 14:29
    
Just use virtual_alias_maps with a regexp_table /notification-message-[0-9]*@mysite.com/ notification@mysite.com –  mschuett Oct 8 '12 at 14:45
add comment

As have said mschuett, you can use regexp

First check that postfix supports regexp:

root @ mail / # postconf-m | grep regexp
regexp
root @ mail / #

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/ notification@example.net
root @ mail / #

Run postmap and check whether it works:

root @ mail / # postmap /etc/postfix/aliases-regexp
root @ mail / # postmap -q notification-message-123123@example.net regexp:/etc/postfix/aliases-regexp
notification@example.net
root @ mail / #

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
root @ mail / #

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
root @ mail / #

Do not forget to restart postfix.

Good luck!

share|improve this answer
add comment

Your Answer

 
discard

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.