Wednesday, January 26, 2011

Postfix: How to make aliases work for virtual domains?

Hi guys,

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 root@domain.com, postmaster@domain.com, etc...@domain.com. But when I send a message to root@alias.com (or postmaster@alias.com), 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 <postmaster@alias.com>: Recipient address rejected: User unknown in virtual alias table; from=<FROM> to=<postmaster@alias.com> 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:

jonathan@alias.com    jonathan
info@alias.com        jonathan
support@alias.com     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
    

0 comments:

Post a Comment