Postfix: How to make aliases work for virtual domains?
I'm trying to set up a local mailserver. I run Mac OS X Server 10.6 Snow Leopard, and it uses Postfix as server. I set the server up using the GUI and I'm doing all virtual settings via the terminal.
The situation: the server is on a domain, let's call it "domain.com". I have multiple virtual aliases, for now let's say "alias.com". I have a user "postmaster" on the server.
My goal: I'd like to setup some aliases (postmaster, root, mailer-daemon, etc.) that work for all domains/aliases without having to set it up every time I add an alias domain.
Summary/to the point question: how can I set up aliases that work automatically for all virtual domains?
Current progress: using the current configuration, I receive all messages to [email protected], [email protected], [email protected]. But when I send a message to [email protected] (or [email protected]), the message is returned.
Error message:
Aug 17 23:53:54 home postfix/smtpd[11903]: connect from SERVER[IP]
Aug 17 23:53:54 home postfix/smtpd[11903]: NOQUEUE: reject: RCPT from SERVER[IP]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in virtual alias table; from=<FROM> to=<[email protected]> proto=ESMTP helo=<SERVER>
Aug 17 23:53:55 home postfix/smtpd[11903]: disconnect from SERVER[IP]
My configuration:
bash-3.2# postconf -n
virtual_alias_domains = $virtual_alias_maps hash:/etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual_users
Contents of /etc/postfix/virtual_domains:
alias.com allow
Contents of /etc/postfix/virtual_users:
[email protected] jonathan
[email protected] jonathan
[email protected] jonathan
Contents of /etc/aliases:
root: postmaster
MAILER-DAEMON: postmaster
bin: root
daemon: root
named: root
nobody: root
uucp: root
www: root
ftp-bugs: root
postfix: root
manager: root
dumper: root
operator: root
abuse: postmaster
decode: root
I've googled a lot, but I can't find real solutions. I hope you guys come up with some genius plan :-)
Thanks! Jonathan
I got this awesome link from a tweep and it worked perfectly! If you are looking for the answer, here is my solution. (You need to combine this with the /etc/aliases from my first post, this snippet is only for the virtual domain aliases.)
Configuration
virtual_alias_maps = regexp:/etc/postfix/virtual_users_global hash:/etc/postfix/virtual_users
/etc/postfix/virtual_users_global
# Short version:
/^(postmaster|root|MAILER-DAEMON|abuse)@/ postmaster
/^(bin|daemon|named|nobody|uucp|www|ftp-bugs|postfix|manager|dumper|operator|decode)@/ root
# Or the long version:
/^postmaster@/ postmaster
/^root@/ postmaster
/^MAILER-DAEMON@/ postmaster
/^bin@/ root
/^daemon@/ root
/^named@/ root
/^nobody@/ root
/^uucp@/ root
/^www@/ root
/^ftp-bugs@/ root
/^postfix@/ root
/^manager@/ root
/^dumper@/ root
/^operator@/ root
/^abuse@/ postmaster
/^decode@/ root