Mailing Lists in Postfix with Virtual Domains
5th May 2006, 11:07:15
The 'official' way of creating mailing lists with postfix doesn't work with virtual domains, here's the trick...
Normally, you'd just create an /etc/aliases file like this:
allstaff: lister1@domain.com lister2@example.com lister3@blah.blah allstaff-request: stocksy@stocksy.co.uk owner-allstaff: stocksy@stocksy.co.uk
My mailing list is called 'allstaff'. It doesn't work with virtual domains with no local mail, because it results in postfix trying to deliver the message back to itself:
May 5 08:37:45 localhost postfix/smtp[3196]: 7C2143F427: to=<allstaff@smtp.toastputer.net>, relay=none, delay=1, status=bounced (mail for smtp.toastputer.net loops back to myself)
I needed to create some virtual aliases to specify that the list was really on this server:
allstaff: allstaff@localhost owner-allstaff: owner-allstaff@localhost allstaff-request: allstaff-request@localhost
I store my aliases in a mysql database. If you need them in a flat file, put them in /etc/postfix/virtual and edit /etc/postfix/main.cf:
virtual_alias_maps = hash:/etc/postfix/virtual
Now, you can create the aliases in /etc/aliases:
allstaff: lister1@domain.com lister2@example.com lister3@blah.blah allstaff-request: stocksy@stocksy.co.uk owner-allstaff: stocksy@stocksy.co.uk
Now run newaliases
. If you have a lot of recipients, it's not that great having to have them all on one line in /etc/aliases. If you like, you could create /etc/postfix/allstaff, put all the addresses on one per line, and replace the allstaff: line in /etc/aliases with:
allstaff: :include:/etc/postfix/allstaff