1
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
2
"http://www.w3.org/TR/html4/loose.dtd">
8
<title>Postfix Address Classes </title>
10
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
16
<h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix Address Classes </h1>
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>
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>
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>
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 method. For example, the local or
57
smtp delivery agent. This helps to keep Postfix configurations
60
<li> <p> The list of valid recipient addresses for that address
61
class. The Postfix SMTP server rejects invalid recipients with
62
"User unknown in <name of address class here> table". This
63
helps to keep the Postfix queue free of undeliverable MAILER-DAEMON
68
<h2><a name="classes">What address classes does Postfix implement?</a></h2>
70
<p> Initially the list of address classes is hard coded, but this
71
is meant to become extensible. The summary below describes the main
72
purpose of each class, and what the relevant configuration parameters
75
<p> The <a name="local_domain_class">local </a> domain class. </p>
79
<li> <p> Purpose: final delivery for traditional UNIX system accounts
80
and traditional Sendmail-style aliases. This is typically used for
81
the <a href="VIRTUAL_README.html#canonical">canonical domains</a> of the machine. For a discussion of the
82
difference between <a href="VIRTUAL_README.html#canonical">canonical domains</a>, <a href="VIRTUAL_README.html#canonical">hosted domains</a> and other
83
domains, see the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
85
<li> <p> Domain names are listed with the <a href="postconf.5.html#mydestination">mydestination</a> parameter.
86
This domain class also includes mail for <i>user@[ipaddress]</i>
87
when the IP address is listed with the <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or
88
<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> parameters. </p>
90
<li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a>
91
parameter, as described in <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a>. The Postfix SMTP
92
server rejects invalid recipients with "User unknown in local
93
recipient table". If the <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> parameter value is
94
empty, then the Postfix SMTP server accepts any address in the
95
<a href="ADDRESS_CLASS_README.html#local_domain_class">local domain</a> class. </p>
97
<li> <p> The mail delivery transport is specified with the
98
<a href="postconf.5.html#local_transport">local_transport</a> parameter. The default value is <b>local:$<a href="postconf.5.html#myhostname">myhostname</a></b>
99
for delivery with the <a href="local.8.html">local(8)</a> delivery agent. </p>
103
<p> The <a name="virtual_alias_class">virtual alias </a> domain
108
<li> <p> Purpose: <a href="VIRTUAL_README.html#canonical">hosted domains</a> where each recipient address is
109
aliased to a local UNIX system account or to a remote address. A
110
<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>
112
<li> <p> Domain names are listed in <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>. The
113
default value is $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> for Postfix 1.1 compatibility.
116
<li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>
117
parameter. The Postfix SMTP server rejects invalid recipients with
118
"User unknown in virtual alias table". The default value is
119
$<a href="postconf.5.html#virtual_maps">virtual_maps</a> for Postfix 1.1 compatibility. </p>
121
<li> <p> There is no mail delivery transport parameter. Every
122
address must be aliased to some other address. </p>
126
<p> The <a name="virtual_mailbox_class">virtual mailbox </a> domain
131
<li> <p> Purpose: final delivery for <a href="VIRTUAL_README.html#canonical">hosted domains</a> where each
132
recipient address can have its own mailbox, and where users do not
133
need to have a UNIX system account. A <a href="VIRTUAL_README.html#virtual_mailbox">virtual mailbox example</a> is
134
given in the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
136
<li> <p> Domain names are listed with the <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>
137
parameter. The default value is $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> for Postfix
138
1.1 compatibility. </p>
140
<li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
141
parameter. The Postfix SMTP server rejects invalid recipients with
142
"User unknown in virtual mailbox table". If this parameter value
143
is empty, the Postfix SMTP server accepts all recipients for domains
144
listed in $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>. </p>
146
<li> <p> The mail delivery transport is specified with the
147
<a href="postconf.5.html#virtual_transport">virtual_transport</a> parameter. The default value is <b>virtual</b>
148
for delivery with the <a href="virtual.8.html">virtual(8)</a> delivery agent. </p>
152
<p> The <a name="relay_domain_class">relay </a> domain class. </p>
156
<li> <p> Purpose: mail forwarding to remote destinations that list
157
your system as primary or backup MX host. For a discussion of the
158
basic configuration details, see the <a href="BASIC_CONFIGURATION_README.html">BASIC_CONFIGURATION_README</a>
159
document. For a discussion of the difference between canonical
160
domains, <a href="VIRTUAL_README.html#canonical">hosted domains</a> and other domains, see the <a href="VIRTUAL_README.html">VIRTUAL_README</a>
163
<li> <p> Domain names are listed with the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter.
166
<li> <p> Valid recipient addresses are listed with the <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a>
167
parameter. The Postfix SMTP server rejects invalid recipients with
168
"User unknown in relay recipient table". If this parameter value
169
is empty, the Postfix SMTP server accepts all recipients for domains
170
listed with the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter. </p>
172
<li> <p> The mail delivery transport is specified with the
173
<a href="postconf.5.html#relay_transport">relay_transport</a> parameter. The default value is <b>relay</b> which
174
is a clone of the <a href="smtp.8.html">smtp(8)</a> delivery agent. </p>
178
<p> The <a name="default_domain_class">default </a> domain class.
183
<li> <p> Purpose: mail forwarding to the Internet on behalf of
184
authorized clients. For a discussion of the basic configuration
185
details, see the <a href="BASIC_CONFIGURATION_README.html">BASIC_CONFIGURATION_README</a> file. For a discussion
186
of the difference between <a href="VIRTUAL_README.html#canonical">canonical domains</a>, <a href="VIRTUAL_README.html#canonical">hosted domains</a> and
187
other domains, see the <a href="VIRTUAL_README.html">VIRTUAL_README</a> file. </p>
189
<li> <p> This class has no destination domain table. </p>
191
<li> <p> This class has no valid recipient address table. </p>
193
<li> <p> The mail delivery transport is specified with the
194
<a href="postconf.5.html#default_transport">default_transport</a> parameter. The default value is <b>smtp</b> for
195
delivery with the <a href="smtp.8.html">smtp(8)</a> delivery agent. </p>
199
<h2><a name="improvements">Improvements compared to Postfix
202
<p> Postfix 2.0 address classes made the following improvements
203
possible over earlier Postfix versions: </p>
207
<li> <p> You no longer need to specify all the <a href="virtual.8.html">virtual(8)</a> mailbox
208
domains in the Postfix transport map. The <a href="virtual.8.html">virtual(8)</a> delivery agent
209
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
<li> <p> On mail gateway systems, address classes provide separation
213
of inbound mail relay traffic ($<a href="postconf.5.html#relay_transport">relay_transport</a>) from outbound
214
traffic ($<a href="postconf.5.html#default_transport">default_transport</a>). This eliminates a problem where
215
inbound mail deliveries could become resource starved in the presence
216
of a high volume of outbound mail. </p>
218
<li> <p> The SMTP server rejects unknown recipients in a more
219
consistent manner than was possible with Postfix version 1. This
220
is needed to keep undeliverable mail (and bounced undeliverable
221
mail) out of the mail queue. This is controlled by the
222
<a href="postconf.5.html#smtpd_reject_unlisted_recipient">smtpd_reject_unlisted_recipient</a> configuration parameter. </p>
224
<li> <p> As of Postfix version 2.1, the SMTP server also rejects
225
unknown sender addresses (i.e. addresses that it would reject as
226
unknown recipient addresses). Sender "egress filtering" can help
227
to slow down an email worm explosion. This is controlled by the
228
<a href="postconf.5.html#smtpd_reject_unlisted_sender">smtpd_reject_unlisted_sender</a> configuration parameter. </p>
232
<h2><a name="incompatibility">Incompatibilities with Postfix 1.1</a></h2>
234
<p> Postfix 2.0 address classes introduce a few incompatible changes
235
in documented behavior. In order to ease the transitions, new
236
parameters have default values that are backwards compatible. </p>
240
<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>
241
(for address lookups) and by <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> (for the names
242
of what were formerly called "Postfix-style virtual domains"). </p>
244
<p> For backwards compatibility with Postfix version 1.1, the new
245
<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
246
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
<li> <p> The <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> parameter now has a companion
250
parameter called <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> (for the names of domains
251
served by the virtual delivery agent). The <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
252
parameter is now used for address lookups only. </p>
254
<p> For backwards compatibility with Postfix version 1.1, the new
255
<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
<li> <p> Introduction of the <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> parameter. The
259
Postfix SMTP server can use this to block mail for relay recipients
260
that don't exist. This list is empty by default, which means accept
263
<li> <p> The <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> feature is now turned on by
264
default. The Postfix SMTP server uses this to reject mail for
265
unknown local recipients. See the <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a> file hints
268
<li> <p> Introduction of the relay delivery transport in master.cf.
269
This helps to avoid mail delivery scheduling problems on inbound
270
mail relays when there is a lot of outbound mail, but may require
271
that you update your "<a href="postconf.5.html#defer_transports">defer_transports</a>" setting. </p>