autoupdate
[postfix-master.git] / postfix-master / ADDRESS_CLASS_README.html
blob92ee9f0f8a7333024a8db9b255b8d749e9e77b4a
1 <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
6 <head>
8 <title>Postfix Address Classes </title>
10 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
12 </head>
14 <body>
16 <h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix Address Classes </h1>
18 <hr>
20 <h2>Introduction</h2>
22 <p> Postfix version 2.0 introduces the concept of address classes.
23 This is a way of grouping recipient addresses by their delivery
24 method. The idea comes from discussions with Victor Duchovni.
25 Although address classes introduced a few incompatibilities they
26 also made it possible to improve the handling of <a href="VIRTUAL_README.html#canonical">hosted domains</a>
27 and of unknown recipients. </p>
29 <p> This document provides information on the following topics: </p>
31 <ul>
33 <li><a href="#wtf">What are address classes good for?</a>
35 <li><a href="#classes">What address classes does Postfix implement?</a>
37 <li><a href="#improvements">Improvements compared to Postfix 1.1</a>
39 <li><a href="#incompatibility">Incompatibilities with Postfix 1.1</a>
41 </ul>
43 <h2><a name="wtf">What are address classes good for?</a></h2>
45 <p> Why should you care about address classes? This is how Postfix
46 decides what mail to accept, and how to deliver it. In other words,
47 address classes are very important for the operation of Postfix. </p>
49 <p> An address class is defined by three items. </p>
51 <ul>
53 <li> <p> The list of domains that are a member of the class: for
54 example, all <a href="ADDRESS_CLASS_README.html#local_domain_class">local domains</a>, or all <a href="ADDRESS_CLASS_README.html#relay_domain_class">relay domains</a>. </p>
56 <li> <p> The default delivery transport. For example, the local,
57 virtual or relay delivery transport (delivery transports are defined
58 in <a href="master.5.html">master.cf</a>). This helps to keep Postfix configurations simple,
59 by avoiding the need for explicit routing information in transport
60 maps. </p>
62 <li> <p> The list of valid recipient addresses for that address
63 class. The Postfix SMTP server rejects invalid recipients with
64 "User unknown in &lt;name of address class here&gt; table". This
65 helps to keep the Postfix queue free of undeliverable MAILER-DAEMON
66 messages. </p>
68 </ul>
70 <h2><a name="classes">What address classes does Postfix implement?</a></h2>
72 <p> Initially the list of address classes is hard coded, but this
73 is meant to become extensible. The summary below describes the main
74 purpose of each class, and what the relevant configuration parameters
75 are. </p>
77 <p> The <a name="local_domain_class">local </a> domain class. </p>
79 <ul>
81 <li> <p> Purpose: final delivery for traditional UNIX system accounts
82 and traditional Sendmail-style aliases. This is typically used for
83 the <a href="VIRTUAL_README.html#canonical">canonical domains</a> of the machine. For a discussion of the
84 difference between <a href="VIRTUAL_README.html#canonical">canonical domains</a>, <a href="VIRTUAL_README.html#canonical">hosted domains</a> and other
85 domains, see the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
87 <li> <p> Domain names are listed with the <a href="postconf.5.html#mydestination">mydestination</a> parameter.
88 This domain class also includes mail for <i>user@[ipaddress]</i>
89 when the IP address is listed with the <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or
90 <a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> parameters. </p>
92 <li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a>
93 parameter, as described in <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a>. The Postfix SMTP
94 server rejects invalid recipients with "User unknown in local
95 recipient table". If the <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> parameter value is
96 empty, then the Postfix SMTP server accepts any address in the
97 <a href="ADDRESS_CLASS_README.html#local_domain_class">local domain</a> class. </p>
99 <li> <p> The mail delivery transport is specified with the
100 <a href="postconf.5.html#local_transport">local_transport</a> parameter. The default value is <b><a href="local.8.html">local</a>:$<a href="postconf.5.html#myhostname">myhostname</a></b>
101 for delivery with the <a href="local.8.html">local(8)</a> delivery agent. </p>
103 </ul>
105 <p> The <a name="virtual_alias_class">virtual alias </a> domain
106 class. </p>
108 <ul>
110 <li> <p> Purpose: <a href="VIRTUAL_README.html#canonical">hosted domains</a> where each recipient address is
111 aliased to a local UNIX system account or to a remote address. A
112 <a href="VIRTUAL_README.html#virtual_alias">virtual alias example</a> is given in the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
114 <li> <p> Domain names are listed in <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>. The
115 default value is $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> for Postfix 1.1 compatibility.
116 </p>
118 <li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>
119 parameter. The Postfix SMTP server rejects invalid recipients with
120 "User unknown in virtual alias table". The default value is
121 $<a href="postconf.5.html#virtual_maps">virtual_maps</a> for Postfix 1.1 compatibility. </p>
123 <li> <p> There is no mail delivery transport parameter. Every
124 address must be aliased to some other address. </p>
126 </ul>
128 <p> The <a name="virtual_mailbox_class">virtual mailbox </a> domain
129 class. </p>
131 <ul>
133 <li> <p> Purpose: final delivery for <a href="VIRTUAL_README.html#canonical">hosted domains</a> where each
134 recipient address can have its own mailbox, and where users do not
135 need to have a UNIX system account. A <a href="VIRTUAL_README.html#virtual_mailbox">virtual mailbox example</a> is
136 given in the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
138 <li> <p> Domain names are listed with the <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>
139 parameter. The default value is $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> for Postfix
140 1.1 compatibility. </p>
142 <li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
143 parameter. The Postfix SMTP server rejects invalid recipients with
144 "User unknown in virtual mailbox table". If this parameter value
145 is empty, the Postfix SMTP server accepts all recipients for domains
146 listed in $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>. </p>
148 <li> <p> The mail delivery transport is specified with the
149 <a href="postconf.5.html#virtual_transport">virtual_transport</a> parameter. The default value is <b>virtual</b>
150 for delivery with the <a href="virtual.8.html">virtual(8)</a> delivery agent. </p>
152 </ul>
154 <p> The <a name="relay_domain_class">relay </a> domain class. </p>
156 <ul>
158 <li> <p> Purpose: mail forwarding to remote destinations that list
159 your system as primary or backup MX host. For a discussion of the
160 basic configuration details, see the <a href="BASIC_CONFIGURATION_README.html">BASIC_CONFIGURATION_README</a>
161 document. For a discussion of the difference between canonical
162 domains, <a href="VIRTUAL_README.html#canonical">hosted domains</a> and other domains, see the <a href="VIRTUAL_README.html">VIRTUAL_README</a>
163 file. </p>
165 <li> <p> Domain names are listed with the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter.
166 </p>
168 <li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a>
169 parameter. The Postfix SMTP server rejects invalid recipients with
170 "User unknown in relay recipient table". If this parameter value
171 is empty, the Postfix SMTP server accepts all recipients for domains
172 listed with the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter. </p>
174 <li> <p> The mail delivery transport is specified with the
175 <a href="postconf.5.html#relay_transport">relay_transport</a> parameter. The default value is <b>relay</b> which
176 is a clone of the <a href="smtp.8.html">smtp(8)</a> delivery agent. </p>
178 </ul>
180 <p> The <a name="default_domain_class">default </a> domain class.
181 </p>
183 <ul>
185 <li> <p> Purpose: mail forwarding to the Internet on behalf of
186 authorized clients. For a discussion of the basic configuration
187 details, see the <a href="BASIC_CONFIGURATION_README.html">BASIC_CONFIGURATION_README</a> file. For a discussion
188 of the difference between <a href="VIRTUAL_README.html#canonical">canonical domains</a>, <a href="VIRTUAL_README.html#canonical">hosted domains</a> and
189 other domains, see the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
191 <li> <p> This class has no destination domain table. </p>
193 <li> <p> This class has no valid recipient address table. </p>
195 <li> <p> The mail delivery transport is specified with the
196 <a href="postconf.5.html#default_transport">default_transport</a> parameter. The default value is <b>smtp</b> for
197 delivery with the <a href="smtp.8.html">smtp(8)</a> delivery agent. </p>
199 </ul>
201 <h2><a name="improvements">Improvements compared to Postfix
202 1.1</a></h2>
204 <p> Postfix 2.0 address classes made the following improvements
205 possible over earlier Postfix versions: </p>
207 <ul>
209 <li> <p> You no longer need to specify all the <a href="virtual.8.html">virtual(8)</a> mailbox
210 domains in the Postfix transport map. The <a href="virtual.8.html">virtual(8)</a> delivery agent
211 has become a first-class citizen just like <a href="local.8.html">local(8)</a> or <a href="smtp.8.html">smtp(8)</a>.
212 </p>
214 <li> <p> On mail gateway systems, address classes provide separation
215 of inbound mail relay traffic ($<a href="postconf.5.html#relay_transport">relay_transport</a>) from outbound
216 traffic ($<a href="postconf.5.html#default_transport">default_transport</a>). This eliminates a problem where
217 inbound mail deliveries could become resource starved in the presence
218 of a high volume of outbound mail. </p>
220 <li> <p> The SMTP server rejects unknown recipients in a more
221 consistent manner than was possible with Postfix version 1. This
222 is needed to keep undeliverable mail (and bounced undeliverable
223 mail) out of the mail queue. This is controlled by the
224 <a href="postconf.5.html#smtpd_reject_unlisted_recipient">smtpd_reject_unlisted_recipient</a> configuration parameter. </p>
226 <li> <p> As of Postfix version 2.1, the SMTP server also rejects
227 unknown sender addresses (i.e. addresses that it would reject as
228 unknown recipient addresses). Sender "egress filtering" can help
229 to slow down an email worm explosion. This is controlled by the
230 <a href="postconf.5.html#smtpd_reject_unlisted_sender">smtpd_reject_unlisted_sender</a> configuration parameter. </p>
232 </ul>
234 <h2><a name="incompatibility">Incompatibilities with Postfix 1.1</a></h2>
236 <p> Postfix 2.0 address classes introduce a few incompatible changes
237 in documented behavior. In order to ease the transitions, new
238 parameters have default values that are backwards compatible. </p>
240 <ul>
242 <li> <p> The <a href="postconf.5.html#virtual_maps">virtual_maps</a> parameter is replaced by <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>
243 (for address lookups) and by <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> (for the names
244 of what were formerly called "Postfix-style virtual domains"). </p>
246 <p> For backwards compatibility with Postfix version 1.1, the new
247 <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> parameter defaults to $<a href="postconf.5.html#virtual_maps">virtual_maps</a>, and the
248 new <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> parameter defaults to $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>.
249 </p>
251 <li> <p> The <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> parameter now has a companion
252 parameter called <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> (for the names of domains
253 served by the virtual delivery agent). The <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
254 parameter is now used for address lookups only. </p>
256 <p> For backwards compatibility with Postfix version 1.1, the new
257 <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> parameter defaults to $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>.
258 </p>
260 <li> <p> Introduction of the <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> parameter. The
261 Postfix SMTP server can use this to block mail for relay recipients
262 that don't exist. This list is empty by default, which means accept
263 any recipient. </p>
265 <li> <p> The <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> feature is now turned on by
266 default. The Postfix SMTP server uses this to reject mail for
267 unknown local recipients. See the <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a> file hints
268 and tips. </p>
270 <li> <p> Introduction of the relay delivery transport in <a href="master.5.html">master.cf</a>.
271 This helps to avoid mail delivery scheduling problems on inbound
272 mail relays when there is a lot of outbound mail, but may require
273 that you update your "<a href="postconf.5.html#defer_transports">defer_transports</a>" setting. </p>
275 </ul>
277 </body>
279 </html>