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