On Fri, Oct 08, 2010 at 12:50:42PM -0400, Wietse Venema wrote:

> Victor Duchovni:
> > I avoid the need for such empty relay tables, by making all my
> > externally-facing domains (the domains in which users get their
> > primary email addresses) be virtual alias domains. All internal
> > delivery is to "mailbox" domains that are the result of virtual
> > alias rewrites:
> > 
> >     main.cf:
> >     virtual_alias_domains = example.com
> > 
> >     indexed = ${default_database_type}:${config_directory}/
> >     virtual_alias_maps = ${indexed}virtual
> >     transport_maps = ${indexed}transport
> > 
> >     virtual:
> >             u...@example.com        u...@mbox-domain.example.com
> ...
> 
> That is simpler, but I tried to avoid this, because sometimes the
> back-end MTA is configured to accept u...@example.com but not
> u...@server.example.com.

In many business email systems, the back-end store is MSFT Exchange,
in which case, support for non-primary addresses is not difficult,
one just populates the mailbox addresses into

        proxyAddresses: SMTP:joe.u...@example.com
        proxyAddresses: smtp:ju...@exchange.example.com

one also makes the Exchange servers authoritative for the
"exchange.example.com" domain, but forward anything unresolved int the
parent domain (example.com) to the cross-domain mail hub for routing.

This is most useful when multiple mail store environments are present.
(Multiple Exchange installations, and/or other non MSFT mailstores).

Some people find it easier to rewrite mailbox->primary mail in
smtp_generic_maps, so that the backend servers still see the primary
address, but the Postfix queue sees mailbox domains, and thereby avoid
per-user transport lookups, which typically involve much slower
(compared to indexed-file lookups) LDAP or SQL queries and can adversely
impact queue manager performance.

-- 
        Viktor.

Reply via email to