1 P
\bPo
\bos
\bst
\btf
\bfi
\bix
\bx A
\bAd
\bdd
\bdr
\bre
\bes
\bss
\bs C
\bCl
\bla
\bas
\bss
\bse
\bes
\bs
3 -------------------------------------------------------------------------------
5 I
\bIn
\bnt
\btr
\bro
\bod
\bdu
\buc
\bct
\bti
\bio
\bon
\bn
7 Postfix version 2.0 introduces the concept of address classes. This is a way of
8 grouping recipient addresses by their delivery method. The idea comes from
9 discussions with Victor Duchovni. Although address classes introduced a few
10 incompatibilities they also made it possible to improve the handling of hosted
11 domains and of unknown recipients.
13 This document provides information on the following topics:
15 * What are address classes good for?
16 * What address classes does Postfix implement?
17 * Improvements compared to Postfix 1.1
18 * Incompatibilities with Postfix 1.1
20 W
\bWh
\bha
\bat
\bt a
\bar
\bre
\be a
\bad
\bdd
\bdr
\bre
\bes
\bss
\bs c
\bcl
\bla
\bas
\bss
\bse
\bes
\bs g
\bgo
\boo
\bod
\bd f
\bfo
\bor
\br?
\b?
22 Why should you care about address classes? This is how Postfix decides what
23 mail to accept, and how to deliver it. In other words, address classes are very
24 important for the operation of Postfix.
26 An address class is defined by three items.
28 * The list of domains that are a member of the class: for example, all local
29 domains, or all relay domains.
31 * The default delivery transport. For example, the local, virtual or relay
32 delivery transport (delivery transports are defined in master.cf). This
33 helps to keep Postfix configurations simple, by avoiding the need for
34 explicit routing information in transport maps.
36 * The list of valid recipient addresses for that address class. The Postfix
37 SMTP server rejects invalid recipients with "User unknown in <name of
38 address class here> table". This helps to keep the Postfix queue free of
39 undeliverable MAILER-DAEMON messages.
41 W
\bWh
\bha
\bat
\bt a
\bad
\bdd
\bdr
\bre
\bes
\bss
\bs c
\bcl
\bla
\bas
\bss
\bse
\bes
\bs d
\bdo
\boe
\bes
\bs P
\bPo
\bos
\bst
\btf
\bfi
\bix
\bx i
\bim
\bmp
\bpl
\ble
\bem
\bme
\ben
\bnt
\bt?
\b?
43 Initially the list of address classes is hard coded, but this is meant to
44 become extensible. The summary below describes the main purpose of each class,
45 and what the relevant configuration parameters are.
47 The local domain class.
49 * Purpose: final delivery for traditional UNIX system accounts and
50 traditional Sendmail-style aliases. This is typically used for the
51 canonical domains of the machine. For a discussion of the difference
52 between canonical domains, hosted domains and other domains, see the
55 * Domain names are listed with the mydestination parameter. This domain class
56 also includes mail for user@[ipaddress] when the IP address is listed with
57 the inet_interfaces or proxy_interfaces parameters.
59 * Valid recipient addresses are listed with the local_recipient_maps
60 parameter, as described in LOCAL_RECIPIENT_README. The Postfix SMTP server
61 rejects invalid recipients with "User unknown in local recipient table". If
62 the local_recipient_maps parameter value is empty, then the Postfix SMTP
63 server accepts any address in the local domain class.
65 * The mail delivery transport is specified with the local_transport
66 parameter. The default value is l
\blo
\boc
\bca
\bal
\bl:
\b:$
\b$m
\bmy
\byh
\bho
\bos
\bst
\btn
\bna
\bam
\bme
\be for delivery with the
67 local(8) delivery agent.
69 The virtual alias domain class.
71 * Purpose: hosted domains where each recipient address is aliased to a local
72 UNIX system account or to a remote address. A virtual alias example is
73 given in the VIRTUAL_README file.
75 * Domain names are listed in virtual_alias_domains. The default value is
76 $virtual_alias_maps for Postfix 1.1 compatibility.
78 * Valid recipient addresses are listed with the virtual_alias_maps parameter.
79 The Postfix SMTP server rejects invalid recipients with "User unknown in
80 virtual alias table". The default value is $virtual_maps for Postfix 1.1
83 * There is no mail delivery transport parameter. Every address must be
84 aliased to some other address.
86 The virtual mailbox domain class.
88 * Purpose: final delivery for hosted domains where each recipient address can
89 have its own mailbox, and where users do not need to have a UNIX system
90 account. A virtual mailbox example is given in the VIRTUAL_README file.
92 * Domain names are listed with the virtual_mailbox_domains parameter. The
93 default value is $virtual_mailbox_maps for Postfix 1.1 compatibility.
95 * Valid recipient addresses are listed with the virtual_mailbox_maps
96 parameter. The Postfix SMTP server rejects invalid recipients with "User
97 unknown in virtual mailbox table". If this parameter value is empty, the
98 Postfix SMTP server accepts all recipients for domains listed in
99 $virtual_mailbox_domains.
101 * The mail delivery transport is specified with the virtual_transport
102 parameter. The default value is v
\bvi
\bir
\brt
\btu
\bua
\bal
\bl for delivery with the virtual(8)
105 The relay domain class.
107 * Purpose: mail forwarding to remote destinations that list your system as
108 primary or backup MX host. For a discussion of the basic configuration
109 details, see the BASIC_CONFIGURATION_README document. For a discussion of
110 the difference between canonical domains, hosted domains and other domains,
111 see the VIRTUAL_README file.
113 * Domain names are listed with the relay_domains parameter.
115 * Valid recipient addresses are listed with the relay_recipient_maps
116 parameter. The Postfix SMTP server rejects invalid recipients with "User
117 unknown in relay recipient table". If this parameter value is empty, the
118 Postfix SMTP server accepts all recipients for domains listed with the
119 relay_domains parameter.
121 * The mail delivery transport is specified with the relay_transport
122 parameter. The default value is r
\bre
\bel
\bla
\bay
\by which is a clone of the smtp(8)
125 The default domain class.
127 * Purpose: mail forwarding to the Internet on behalf of authorized clients.
128 For a discussion of the basic configuration details, see the
129 BASIC_CONFIGURATION_README file. For a discussion of the difference between
130 canonical domains, hosted domains and other domains, see the VIRTUAL_README
133 * This class has no destination domain table.
135 * This class has no valid recipient address table.
137 * The mail delivery transport is specified with the default_transport
138 parameter. The default value is s
\bsm
\bmt
\btp
\bp for delivery with the smtp(8) delivery
141 I
\bIm
\bmp
\bpr
\bro
\bov
\bve
\bem
\bme
\ben
\bnt
\bts
\bs c
\bco
\bom
\bmp
\bpa
\bar
\bre
\bed
\bd t
\bto
\bo P
\bPo
\bos
\bst
\btf
\bfi
\bix
\bx 1
\b1.
\b.1
\b1
143 Postfix 2.0 address classes made the following improvements possible over
144 earlier Postfix versions:
146 * You no longer need to specify all the virtual(8) mailbox domains in the
147 Postfix transport map. The virtual(8) delivery agent has become a first-
148 class citizen just like local(8) or smtp(8).
150 * On mail gateway systems, address classes provide separation of inbound mail
151 relay traffic ($relay_transport) from outbound traffic
152 ($default_transport). This eliminates a problem where inbound mail
153 deliveries could become resource starved in the presence of a high volume
156 * The SMTP server rejects unknown recipients in a more consistent manner than
157 was possible with Postfix version 1. This is needed to keep undeliverable
158 mail (and bounced undeliverable mail) out of the mail queue. This is
159 controlled by the smtpd_reject_unlisted_recipient configuration parameter.
161 * As of Postfix version 2.1, the SMTP server also rejects unknown sender
162 addresses (i.e. addresses that it would reject as unknown recipient
163 addresses). Sender "egress filtering" can help to slow down an email worm
164 explosion. This is controlled by the smtpd_reject_unlisted_sender
165 configuration parameter.
167 I
\bIn
\bnc
\bco
\bom
\bmp
\bpa
\bat
\bti
\bib
\bbi
\bil
\bli
\bit
\bti
\bie
\bes
\bs w
\bwi
\bit
\bth
\bh P
\bPo
\bos
\bst
\btf
\bfi
\bix
\bx 1
\b1.
\b.1
\b1
169 Postfix 2.0 address classes introduce a few incompatible changes in documented
170 behavior. In order to ease the transitions, new parameters have default values
171 that are backwards compatible.
173 * The virtual_maps parameter is replaced by virtual_alias_maps (for address
174 lookups) and by virtual_alias_domains (for the names of what were formerly
175 called "Postfix-style virtual domains").
177 For backwards compatibility with Postfix version 1.1, the new
178 virtual_alias_maps parameter defaults to $virtual_maps, and the new
179 virtual_alias_domains parameter defaults to $virtual_alias_maps.
181 * The virtual_mailbox_maps parameter now has a companion parameter called
182 virtual_mailbox_domains (for the names of domains served by the virtual
183 delivery agent). The virtual_mailbox_maps parameter is now used for address
186 For backwards compatibility with Postfix version 1.1, the new
187 virtual_mailbox_domains parameter defaults to $virtual_mailbox_maps.
189 * Introduction of the relay_recipient_maps parameter. The Postfix SMTP server
190 can use this to block mail for relay recipients that don't exist. This list
191 is empty by default, which means accept any recipient.
193 * The local_recipient_maps feature is now turned on by default. The Postfix
194 SMTP server uses this to reject mail for unknown local recipients. See the
195 LOCAL_RECIPIENT_README file hints and tips.
197 * Introduction of the relay delivery transport in master.cf. This helps to
198 avoid mail delivery scheduling problems on inbound mail relays when there
199 is a lot of outbound mail, but may require that you update your
200 "defer_transports" setting.