Introduction ============ Postfix version 2.0 introduces the concept of address classes. This is a way of grouping recipient addresses by their delivery method. The idea comes from discussions with Victor Duchovni. Benefits of address classes are: - You no longer need to specify all the virtual(8) mailbox domains in the Postfix transport map. The virtual(8) delivery agent has become a first-class citizen just like local(8) or smtp(8). - On mail gateway systems, separation of inbound mail relay traffic from outbound traffic. This eliminates a problem where inbound mail deliveries could become resource starved in the presence of a high volume of outbound mail. - The SMTP server rejects unknown recipients in a more consistent manner than was possible with previous Postfix versions. The list with "bad news" is at the end of this file :-) What address classes does Postfix implement? ============================================ Initially the list of address classes is hard coded, but this is meant to become extensible: ------------------------------------------------------------------- Class Description ------------------------------------------------------------------- local For UNIX accounts and for traditional /etc/aliases Domain names are listed in $mydestination (or match the IP address listed with $inet_interfaces) Known recipients are listed in $local_recipient_maps (this information is currently used by the Postfix SMTP server only; if $local_recipient_maps is empty, the Postfix SMTP server accepts all recipients) Default delivery agent: local virtual For hosted domains that are aliased to mailboxes in other alias domains Known recipients are listed in $virtual_alias_maps (default is $virtual_maps for Postfix 1.1 compatibility) Domain names are listed in $virtual_alias_domains (default is $virtual_alias_maps for Postfix 1.1 compatibility) virtual For hosted domains with their own mailboxes mailbox Known recipients are listed in $virtual_mailbox_maps (if this parameter is empty, the Postfix SMTP server accepts all recipients for domains listed in $virtual_mailbox_domains) Domain names are listed in $virtual_mailbox_domains (default is $virtual_mailbox_maps for Postfix 1.1 compatibility) Default delivery agent: virtual relay For remote destinations that list your system as MX host Domain names are listed in $relay_domains Known recipients are listed in $relay_recipient_maps (if this parameter is empty, the Postfix SMTP server accepts all recipients for domains listed in $relay_domains) Default delivery agent: relay (clone of default smtp agent) other Restricted to mail from authorized clients Default delivery agent: smtp No domain table No recipient table ------------------------------------------------------------------- Incompatibilities with Postfix 1.1 ================================== - virtual_maps is replaced by virtual_alias_maps (for address lookups) and virtual_alias_domains (for the names of what were formerly called "Postfix-style virtual domains"). For backwards compatibility with Postfix version 1.1, the new virtual_alias_maps parameter defaults to $virtual_maps, and the new virtual_alias_domains parameter defaults to $virtual_alias_maps. - virtual_mailbox_maps now has a companion parameter called virtual_mailbox_domains (for the names of domains served by the virtual delivery agent). virtual_mailbox_maps is now used for address lookups only. For backwards compatibility with Postfix version 1.1,, the new virtual_mailbox_domains parameter defaults to $virtual_mailbox_maps. - Introduction of relay_recipient_maps, so that the Postfix SMTP server can block mail for relay recipients that don't exist. This list is empty by default. - The local_recipient_maps feature is now turned on by default, so that the Postfix SMTP server rejects mail for unknown local recipients. This is enabled by default. See the LOCAL_RECIPIENT_README file hints and tips. - Introduction of relay delivery transport in master.cf. This helps to avoid mail delivery scheduling problems on inbound mail relays, but may require that you update your "defer_transports" setting.