On Thu, Nov 29, 2012 at 05:31:29PM +0200, Geoff Shang wrote:

> Right now, the company itself is using a particular domain for its
> Email, lets call it example.com.  But, in a classic case of not
> thinking far enough ahead, it's been decided that the example.com
> domain will now be used for our Email service for customers, and
> that corporate mail will be moved to a new domain, lets call it
> example2.com.

In my experience, public facing email domains for organizations
with complex email requirements are almost almost best implemented
as virtual alias domains. This adds a layer of indirection between
the outside view of an email domain (everyone is just u...@example.com)
and the inside view (rewrite to u...@users-mailbox-domain.example.net).

With this there is no crisis as managent changes requirements,
acquires a new division, ... Just add more rewrites and a transport
entry if necessary if any of the underlying mailbox domains need
non-trivial routing.

        default_database_type = cdb
        indexed = ${default_database_type}:${config_directory}/

        relay_domains = 
        virtual_alias_domains = example.com
        # Feel free to use LDAP, ...
        virtual_alias_maps = ${indexed}virtual
        # Stick to indexed files, and keep it simple:
        transport_maps = ${indexed}transport

You don't list the users twice and set relay_domains empty.

        virtual:
                u...@example.com        u...@imap.example.com
                custo...@example.com    custo...@custimap.example.com

        transport:
                # Add [] if destination is by design an A not an MX RRset.
                imap.example.com        relay:imap.example.com
                custimap.example.com    relay:custimap.example.com

The "relay" transport is chosen so it does not compete for process slots
with outbound mail and is often tuned with more appropriate timeouts, ...
for internal delivery.

-- 
        Viktor.

Reply via email to