Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / README_FILES / ADDRESS_REWRITING_README
blob63786eb89752acce78db61779b1ce6529b370ff7
1 P\bPo\bos\bst\btf\bfi\bix\bx A\bAd\bdd\bdr\bre\bes\bss\bs R\bRe\bew\bwr\bri\bit\bti\bin\bng\bg
3 -------------------------------------------------------------------------------
5 P\bPo\bos\bst\btf\bfi\bix\bx a\bad\bdd\bdr\bre\bes\bss\bs r\bre\bew\bwr\bri\bit\bti\bin\bng\bg p\bpu\bur\brp\bpo\bos\bse\be
7 Address rewriting is at the heart of the Postfix mail system. Postfix rewrites
8 addresses for many different purposes. Some are merely cosmetic, and some are
9 necessary to deliver correctly formatted mail to the correct destination.
10 Examples of address rewriting in Postfix are:
12   * Transform an incomplete address into a complete address. For example,
13     transform "username" into "username@example.com", or transform
14     "username@hostname" into "username@hostname.example.com".
16   * Replace an address by an equivalent address. For example, replace
17     "username@example.com" by "firstname.lastname@example.com" when sending
18     mail, and do the reverse transformation when receiving mail.
20   * Replace an internal address by an external address. For example, replace
21     "username@localdomain.local" by "isp-account@isp.example" when sending mail
22     from a home computer to the Internet.
24   * Replace an address by multiple addresses. For example, replace the address
25     of an alias by the addresses listed under that alias.
27   * Determine how and where to deliver mail for a specific address. For
28     example, deliver mail for "username@example.com" with the smtp(8) delivery
29     agent, to the hosts that are listed in the DNS as the mail servers for the
30     domain "example.com".
32 Although Postfix currently has no address rewriting language, it can do
33 surprisingly powerful address manipulation via table lookup. Postfix typically
34 uses lookup tables with fixed strings to map one address to one or multiple
35 addresses, and typically uses regular expressions to map multiple addresses to
36 one or multiple addresses. Fixed-string lookup tables may be in the form of
37 local files, or in the form of NIS, LDAP or SQL databases. The DATABASE_README
38 document gives an introduction to Postfix lookup tables.
40 Topics covered in this document:
42   * To rewrite message headers or not, or to label as invalid
43   * Postfix address rewriting overview
44   * Address rewriting when mail is received
46       o Rewrite addresses to standard form
47       o Canonical address mapping
48       o Address masquerading
49       o Automatic BCC recipients
50       o Virtual aliasing
52   * Address rewriting when mail is delivered
54       o Resolve address to destination
55       o Mail transport switch
56       o Relocated users table
58   * Address rewriting with remote delivery
60       o Generic mapping for outgoing SMTP mail
62   * Address rewriting with local delivery
64       o Local alias database
65       o Local per-user .forward files
66       o Local catch-all address
68   * Debugging your address manipulations
70 T\bTo\bo r\bre\bew\bwr\bri\bit\bte\be m\bme\bes\bss\bsa\bag\bge\be h\bhe\bea\bad\bde\ber\brs\bs o\bor\br n\bno\bot\bt,\b, o\bor\br t\bto\bo l\bla\bab\bbe\bel\bl a\bas\bs i\bin\bnv\bva\bal\bli\bid\bd
72 Postfix versions 2.1 and earlier always rewrite message header addresses, and
73 append Postfix's own domain information to addresses that Postfix considers
74 incomplete. While rewriting message header addresses is OK for mail with a
75 local origin, it is undesirable for remote mail:
77   * Message header address rewriting is frowned upon by mail standards,
78   * Appending Postfix's own domain produces incorrect results with some
79     incomplete addresses,
80   * Appending Postfix's own domain sometimes creates the appearance that spam
81     is sent by local users.
83 Postfix versions 2.2 give you the option to either not rewrite message headers
84 from remote SMTP clients at all, or to label incomplete addresses in such
85 message headers as invalid. Here is how it works:
87   * Postfix always rewrites message headers from local SMTP clients and from
88     the Postfix sendmail command, and appends its own domain to incomplete
89     addresses. The local_header_rewrite_clients parameter controls what SMTP
90     clients Postfix considers local (by default, only local network interface
91     addresses).
92   * Postfix never rewrites message header addresses from remote SMTP clients
93     when the remote_header_rewrite_domain parameter value is empty (the default
94     setting).
95   * Otherwise, Postfix rewrites message headers from remote SMTP clients, and
96     appends the remote_header_rewrite_domain value to incomplete addresses.
97     This feature can be used to append a reserved domain such as
98     "domain.invalid", so that incomplete addresses cannot be mistaken for local
99     addresses.
101 P\bPo\bos\bst\btf\bfi\bix\bx a\bad\bdd\bdr\bre\bes\bss\bs r\bre\bew\bwr\bri\bit\bti\bin\bng\bg o\bov\bve\ber\brv\bvi\bie\bew\bw
103 The figure below zooms in on those parts of Postfix that are most involved with
104 address rewriting activity. See the OVERVIEW document for an overview of the
105 complete Postfix architecture. Names followed by a number are Postfix daemon
106 programs, while unnumbered names represent Postfix queues or internal sources
107 of mail messages.
109                   trivial-                              trivial-
110                  rewrite(8)                            rewrite(8)
111                  (std form)                            (resolve)
113                       ^ |                                   ^ |
114                       | v                                   | v
116     smtpd(8)                                                         smtp(8)
118     qmqpd(8)  >- cleanup(8) -> incoming ->  active  ->   qmgr(8)  -< lmtp(8)
120     pickup(8)                                                        local(8)
122                        ^                      ^ |
123                        |                      | v
125                   bounces
126                  forwarding                deferred
127                   notices
129 The table below summarizes all Postfix address manipulations. If you're reading
130 this document for the first time, skip forward to "Address rewriting when mail
131 is received". Once you've finished reading the remainder of this document, the
132 table will help you to quickly find what you need.
134      _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b 
135     |A\bAd\bdd\bdr\bre\bes\bss\bs     |S\bSc\bco\bop\bpe\be   |D\bDa\bae\bem\bmo\bon\bn  |G\bGl\blo\bob\bba\bal\bl t\btu\bur\brn\bn-\b-o\bon\bn      |S\bSe\bel\ble\bec\bct\bti\biv\bve\be t\btu\bur\brn\bn-\b-o\bof\bff\bf c\bco\bon\bnt\btr\bro\bol\bl   |
136     |m\bma\ban\bni\bip\bpu\bul\bla\bat\bti\bio\bon\bn|        |        |c\bco\bon\bnt\btr\bro\bol\bl             |                             |
137     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
138     |Rewrite     |        |trivial-|append_at_myorigin, |                             |
139     |addresses to|all mail|rewrite |append_dot_mydomain,|local_header_rewrite_clients,|
140     |standard    |        |(8)     |swap_bangpath,      |remote_header_rewrite_domain |
141     |form        |        |        |allow_percent_hack  |                             |
142     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
143     |Canonical   |        |cleanup |                    |receive_override_options,    |
144     |address     |all mail|(8)     |canonical_maps      |local_header_rewrite_clients,|
145     |mapping     |        |        |                    |remote_header_rewrite_domain |
146     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
147     |Address     |        |cleanup |                    |receive_override_options,    |
148     |masquerading|all mail|(8)     |masquerade_domains  |local_header_rewrite_clients,|
149     |            |        |        |                    |remote_header_rewrite_domain |
150     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
151     |Automatic   |        |cleanup |always_bcc,         |                             |
152     |BCC         |new mail|(8)     |sender_bcc_maps,    |receive_override_options     |
153     |recipients  |        |        |recipient_bcc_maps  |                             |
154     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
155     |Virtual     |all mail|cleanup |virtual_alias_maps  |receive_override_options     |
156     |aliasing    |        |(8)     |                    |                             |
157     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
158     |Resolve     |        |trivial-|                    |                             |
159     |address to  |all mail|rewrite |none                |none                         |
160     |destination |        |(8)     |                    |                             |
161     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
162     |Mail        |        |trivial-|                    |                             |
163     |transport   |all mail|rewrite |transport_maps      |none                         |
164     |switch      |        |(8)     |                    |                             |
165     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
166     |Relocated   |        |trivial-|                    |                             |
167     |users table |all mail|rewrite |relocated_maps      |none                         |
168     |            |        |(8)     |                    |                             |
169     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
170     |Generic     |outgoing|        |                    |                             |
171     |mapping     |SMTP    |smtp(8) |smtp_generic_maps   |none                         |
172     |table       |mail    |        |                    |                             |
173     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
174     |Local alias |local   |        |                    |                             |
175     |database    |mail    |local(8)|alias_maps          |none                         |
176     |            |only    |        |                    |                             |
177     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
178     |Local per-  |local   |        |                    |                             |
179     |user        |mail    |local(8)|forward_path        |none                         |
180     |.forward    |only    |        |                    |                             |
181     |files       |        |        |                    |                             |
182     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
183     |Local catch-|local   |        |                    |                             |
184     |all address |mail    |local(8)|luser_relay         |none                         |
185     |            |only    |        |                    |                             |
186     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
188 A\bAd\bdd\bdr\bre\bes\bss\bs r\bre\bew\bwr\bri\bit\bti\bin\bng\bg w\bwh\bhe\ben\bn m\bma\bai\bil\bl i\bis\bs r\bre\bec\bce\bei\biv\bve\bed\bd
190 The cleanup(8) server receives mail from outside of Postfix as well as mail
191 from internal sources such as forwarded mail, undeliverable mail that is
192 bounced to the sender, and postmaster notifications about problems with the
193 mail system.
195 The cleanup(8) server transforms the sender, recipients and message content
196 into a standard form before writing it to an incoming queue file. The server
197 cleans up sender and recipient addresses in message headers and in the
198 envelope, adds missing message headers such as From: or Date: that are required
199 by mail standards, and removes message headers such as Bcc: that should not be
200 present. The cleanup(8) server delegates the more complex address manipulations
201 to the trivial-rewrite(8) server as described later in this document.
203 Address manipulations at this stage are:
205   * Rewrite addresses to standard form
206   * Canonical address mapping
207   * Address masquerading
208   * Automatic BCC recipients
209   * Virtual aliasing
211 R\bRe\bew\bwr\bri\bit\bte\be a\bad\bdd\bdr\bre\bes\bss\bse\bes\bs t\bto\bo s\bst\bta\ban\bnd\bda\bar\brd\bd f\bfo\bor\brm\bm
213 Before the cleanup(8) daemon runs an address through any address mapping lookup
214 table, it first rewrites the address to the standard
215 "user@fully.qualified.domain" form, by sending the address to the trivial-
216 rewrite(8) daemon. The purpose of rewriting to standard form is to reduce the
217 number of entries needed in lookup tables.
219 The Postfix trivial-rewrite(8) daemon implements the following hard-coded
220 address manipulations:
222     Rewrite "@hosta,@hostb:user@site" to "user@site"
223         In case you wonder what this is, the address form above is called a
224         route address, and specifies that mail for "user@site" be delivered via
225         "hosta" and "hostb". Usage of this form has been deprecated for a long
226         time. Postfix has no ability to handle route addresses, other than to
227         strip off the route part.
229         NOTE: Postfix versions 2.2 and later rewrite message headers from
230         remote SMTP clients only if the client matches the
231         local_header_rewrite_clients parameter, or if the
232         remote_header_rewrite_domain configuration parameter specifies a non-
233         empty value. To get the behavior before Postfix 2.2, specify
234         "local_header_rewrite_clients = static:all".
236     Rewrite "site!user" to "user@site"
237         This feature is controlled by the boolean swap_bangpath parameter
238         (default: yes). The purpose is to rewrite UUCP-style addresses to
239         domain style. This is useful only when you receive mail via UUCP, but
240         it probably does not hurt otherwise.
242         NOTE: Postfix versions 2.2 and later rewrite message headers from
243         remote SMTP clients only if the client matches the
244         local_header_rewrite_clients parameter, or if the
245         remote_header_rewrite_domain configuration parameter specifies a non-
246         empty value. To get the behavior before Postfix 2.2, specify
247         "local_header_rewrite_clients = static:all".
249     Rewrite "user%domain" to "user@domain"
250         This feature is controlled by the boolean allow_percent_hack parameter
251         (default: yes). Typically, this is used in order to deal with
252         monstrosities such as "user%domain@otherdomain".
254         NOTE: Postfix versions 2.2 and later rewrite message headers from
255         remote SMTP clients only if the client matches the
256         local_header_rewrite_clients parameter, or if the
257         remote_header_rewrite_domain configuration parameter specifies a non-
258         empty value. To get the behavior before Postfix 2.2, specify
259         "local_header_rewrite_clients = static:all".
261     Rewrite "user" to "user@$myorigin"
262         This feature is controlled by the boolean append_at_myorigin parameter
263         (default: yes). You should never turn off this feature, because a lot
264         of Postfix components expect that all addresses have the form
265         "user@domain".
267         NOTE: Postfix versions 2.2 and later rewrite message headers from
268         remote SMTP clients only if the client matches the
269         local_header_rewrite_clients parameter; otherwise they append the
270         domain name specified with the remote_header_rewrite_domain
271         configuration parameter, if one is specified. To get the behavior
272         before Postfix 2.2, specify "local_header_rewrite_clients = static:
273         all".
275         If your machine is not the main machine for $myorigin and you wish to
276         have some users delivered locally without going via that main machine,
277         make an entry in the virtual alias table that redirects
278         "user@$myorigin" to "user@$myhostname". See also the "delivering some
279         users locally" section in the STANDARD_CONFIGURATION_README document.
281     Rewrite "user@host" to "user@host.$mydomain"
282         This feature is controlled by the boolean append_dot_mydomain parameter
283         (default: yes). The purpose is to get consistent treatment of different
284         forms of the same hostname.
286         NOTE: Postfix versions 2.2 and later rewrite message headers from
287         remote SMTP clients only if the client matches the
288         local_header_rewrite_clients parameter; otherwise they append the
289         domain name specified with the remote_header_rewrite_domain
290         configuration parameter, if one is specified. To get the behavior
291         before Postfix 2.2, specify "local_header_rewrite_clients = static:
292         all".
294         Some will argue that rewriting "host" to "host.domain" is bad. That is
295         why it can be turned off. Others like the convenience of having
296         Postfix's own domain appended automatically.
298     Rewrite "user@site." to "user@site" (without the trailing dot).
299         A single trailing dot is silently removed. However, an address that
300         ends in multiple dots will be rejected as an invalid address.
302         NOTE: Postfix versions 2.2 and later rewrite message headers from
303         remote SMTP clients only if the client matches the
304         local_header_rewrite_clients parameter, or if the
305         remote_header_rewrite_domain configuration parameter specifies a non-
306         empty value. To get the behavior before Postfix 2.2, specify
307         "local_header_rewrite_clients = static:all".
309 C\bCa\ban\bno\bon\bni\bic\bca\bal\bl a\bad\bdd\bdr\bre\bes\bss\bs m\bma\bap\bpp\bpi\bin\bng\bg
311 The cleanup(8) daemon uses the canonical(5) tables to rewrite addresses in
312 message envelopes and in message headers. By default all header and envelope
313 addresses are rewritten; this is controlled with the canonical_classes
314 configuration parameter.
316 NOTE: Postfix versions 2.2 and later rewrite message headers from remote SMTP
317 clients only if the client matches the local_header_rewrite_clients parameter,
318 or if the remote_header_rewrite_domain configuration parameter specifies a non-
319 empty value. To get the behavior before Postfix 2.2, specify
320 "local_header_rewrite_clients = static:all".
322 Address rewriting is done for local and remote addresses. The mapping is useful
323 to replace login names by "Firstname.Lastname" style addresses, or to clean up
324 invalid domains in mail addresses produced by legacy mail systems.
326 Canonical mapping is disabled by default. To enable, edit the canonical_maps
327 parameter in the main.cf file and specify one or more lookup tables, separated
328 by whitespace or commas.
330 Example:
332     /etc/postfix/main.cf:
333         canonical_maps = hash:/etc/postfix/canonical
335     /etc/postfix/canonical:
336         wietse        Wietse.Venema
338 For static mappings as shown above, lookup tables such as hash:, ldap:, mysql:
339 or pgsql: are sufficient. For dynamic mappings you can use regular expression
340 tables. This requires that you become intimately familiar with the ideas
341 expressed in regexp_table(5), pcre_table(5) and canonical(5).
343 In addition to the canonical maps which are applied to both sender and
344 recipient addresses, you can specify canonical maps that are applied only to
345 sender addresses or to recipient addresses.
347 Example:
349     /etc/postfix/main.cf:
350         sender_canonical_maps = hash:/etc/postfix/sender_canonical
351         recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
353 The sender and recipient canonical maps are applied before the common canonical
354 maps. The sender_canonical_classes and recipient_canonical_classes parameters
355 control what addresses are subject to sender_canonical_maps and
356 recipient_canonical_maps mappings, respectively.
358 Sender-specific rewriting is useful when you want to rewrite ugly sender
359 addresses to pretty ones, and still want to be able to send mail to the those
360 ugly address without creating a mailer loop.
362 Canonical mapping can be turned off selectively for mail received by smtpd(8),
363 qmqpd(8), or pickup(8), by overriding main.cf settings in the master.cf file.
364 This feature is available in Postfix version 2.1 and later.
366 Example:
368     /etc/postfix/master.cf:
369         :10026      inet  n       -       n       -       -       smtpd
370             -o receive_override_options=no_address_mappings
372 Note: do not specify whitespace around the "=" here.
374 A\bAd\bdd\bdr\bre\bes\bss\bs m\bma\bas\bsq\bqu\bue\ber\bra\bad\bdi\bin\bng\bg
376 Address masquerading is a method to hide hosts inside a domain behind their
377 mail gateway, and to make it appear as if the mail comes from the gateway
378 itself, instead of from individual machines.
380 NOTE: Postfix versions 2.2 and later rewrite message headers from remote SMTP
381 clients only if the client matches the local_header_rewrite_clients parameter,
382 or if the remote_header_rewrite_domain configuration parameter specifies a non-
383 empty value. To get the behavior before Postfix 2.2, specify
384 "local_header_rewrite_clients = static:all".
386 Address masquerading is disabled by default, and is implemented by the cleanup
387 (8) server. To enable, edit the masquerade_domains parameter in the main.cf
388 file and specify one or more domain names separated by whitespace or commas.
389 When Postfix tries to masquerade a domain, it processes the list from left to
390 right, and processing stops at the first match.
392 Example:
394     /etc/postfix/main.cf:
395         masquerade_domains = foo.example.com example.com
397 strips "any.thing.foo.example.com" to "foo.example.com", but strips
398 "any.thing.else.example.com" to "example.com".
400 A domain name prefixed with "!" means do not masquerade this domain or its
401 subdomains:
403     /etc/postfix/main.cf:
404         masquerade_domains = !foo.example.com example.com
406 does not change "any.thing.foo.example.com" and "foo.example.com", but strips
407 "any.thing.else.example.com" to "example.com".
409 The masquerade_exceptions configuration parameter specifies what user names
410 should not be subjected to address masquerading. Specify one or more user names
411 separated by whitespace or commas.
413 Example:
415     /etc/postfix/main.cf:
416         masquerade_exceptions = root
418 By default, Postfix makes no exceptions.
420 Subtle point: by default, address masquerading is applied only to message
421 headers and to envelope sender addresses, but not to envelope recipients. This
422 allows you to use address masquerading on a mail gateway machine, while still
423 being able to forward mail from outside to users on individual machines.
425 In order to subject envelope recipient addresses to masquerading, too, specify
426 (Postfix version 1.1 and later):
428     /etc/postfix/main.cf:
429         masquerade_classes = envelope_sender, envelope_recipient,
430             header_sender, header_recipient
432 If you rewrite the envelope recipient like this, Postfix will no longer be able
433 to send mail to individual machines.
435 Address masquerading can be turned off selectively for mail received by smtpd
436 (8), qmqpd(8), or pickup(8), by overriding main.cf settings in the master.cf
437 file. This feature is available in Postfix version 2.1 and later.
439 Example:
441     /etc/postfix/master.cf:
442         :10026      inet  n       -       n       -       -       smtpd
443             -o receive_override_options=no_address_mappings
445 Note: do not specify whitespace around the "=" here.
447 A\bAu\but\bto\bom\bma\bat\bti\bic\bc B\bBC\bCC\bC r\bre\bec\bci\bip\bpi\bie\ben\bnt\bts\bs
449 After applying the canonical and masquerade mappings, the cleanup(8) daemon can
450 generate optional BCC (blind carbon-copy) recipients. Postfix provides three
451 mechanisms:
453     always_bcc = address
454         Deliver a copy of all mail to the specified address. In Postfix
455         versions before 2.1, this feature is implemented by smtpd(8), qmqpd(8),
456         or pickup(8).
457     sender_bcc_maps = type:table
458         Search the specified "type:table" lookup table with the envelope sender
459         address for an automatic BCC address. This feature is available in
460         Postfix 2.1 and later.
461     recipient_bcc_maps = type:table
462         Search the specified "type:table" lookup table with the envelope
463         recipient address for an automatic BCC address. This feature is
464         available in Postfix 2.1 and later.
466 Note: automatic BCC recipients are produced only for new mail. To avoid mailer
467 loops, automatic BCC recipients are not generated for mail that Postfix
468 forwards internally, nor for mail that Postfix generates itself.
470 Automatic BCC recipients (including always_bcc) can be turned off selectively
471 for mail received by smtpd(8), qmqpd(8), or pickup(8), by overriding main.cf
472 settings in the master.cf file. This feature is available in Postfix version
473 2.1 and later.
475 Example:
477     /etc/postfix/master.cf:
478         :10026      inet  n       -       n       -       -       smtpd
479             -o receive_override_options=no_address_mappings
481 Note: do not specify whitespace around the "=" here.
483 V\bVi\bir\brt\btu\bua\bal\bl a\bal\bli\bia\bas\bsi\bin\bng\bg
485 Before writing the recipients to the queue file, the cleanup(8) daemon uses the
486 optional virtual(5) alias tables to redirect mail for recipients. The mapping
487 affects only envelope recipient addresses; it has no effect on message headers
488 or envelope sender addresses. Virtual alias lookups are useful to redirect mail
489 for virtual alias domains to real user mailboxes, and to redirect mail for
490 domains that no longer exist. Virtual alias lookups can also be used to
491 transform " Firstname.Lastname " back into UNIX login names, although it seems
492 that local aliases may be a more appropriate vehicle. See the VIRTUAL_README
493 document for an overview of methods to host virtual domains with Postfix.
495 Virtual aliasing is disabled by default. To enable, edit the virtual_alias_maps
496 parameter in the main.cf file and specify one or more lookup tables, separated
497 by whitespace or commas.
499 Example:
501     /etc/postfix/main.cf:
502         virtual_alias_maps = hash:/etc/postfix/virtual
504     /etc/postfix/virtual:
505         Wietse.Venema        wietse
507 Addresses found in virtual alias maps are subjected to another iteration of
508 virtual aliasing, but are not subjected to canonical mapping, in order to avoid
509 loops.
511 For static mappings as shown above, lookup tables such as hash:, ldap:, mysql:
512 or pgsql: are sufficient. For dynamic mappings you can use regular expression
513 tables. This requires that you become intimately familiar with the ideas
514 expressed in regexp_table(5), pcre_table(5) and virtual(5).
516 Virtual aliasing can be turned off selectively for mail received by smtpd(8),
517 qmqpd(8), or pickup(8), by overriding main.cf settings in the master.cf file.
518 This feature is available in Postfix version 2.1 and later.
520 Example:
522     /etc/postfix/master.cf:
523         :10026      inet  n       -       n       -       -       smtpd
524             -o receive_override_options=no_address_mappings
526 Note: do not specify whitespace around the "=" here.
528 At this point the message is ready to be stored into the Postfix incoming
529 queue.
531 A\bAd\bdd\bdr\bre\bes\bss\bs r\bre\bew\bwr\bri\bit\bti\bin\bng\bg w\bwh\bhe\ben\bn m\bma\bai\bil\bl i\bis\bs d\bde\bel\bli\biv\bve\ber\bre\bed\bd
533 The Postfix queue manager sorts mail according to its destination and gives it
534 to Postfix delivery agents such as local(8), smtp(8), or lmtp(8). Just like the
535 cleanup(8) server, the Postfix queue manager delegates the more complex address
536 manipulations to the trivial-rewrite(8) server.
538 Address manipulations at this stage are:
540   * Resolve address to destination
541   * Mail transport switch
542   * Relocated users table
544 Each Postfix delivery agent tries to deliver the mail to its destination, while
545 encapsulating the sender, recipients, and message content according to the
546 rules of the SMTP, LMTP, etc. protocol. When mail cannot be delivered, it is
547 either returned to the sender or moved to the deferred queue and tried again
548 later.
550 Address manipulations when mail is delivered via the smtp(8) delivery agent:
552   * Generic mapping for outgoing SMTP mail
554 Address manipulations when mail is delivered via the local(8) delivery agent:
556   * Local alias database
557   * Local per-user .forward files
558   * Local catch-all address
560 The remainder of this document presents each address manipulation step in more
561 detail, with specific examples or with pointers to documentation with examples.
563 R\bRe\bes\bso\bol\blv\bve\be a\bad\bdd\bdr\bre\bes\bss\bs t\bto\bo d\bde\bes\bst\bti\bin\bna\bat\bti\bio\bon\bn
565 The Postfix qmgr(8) queue manager selects new mail from the incoming queue or
566 old mail from the deferred queue, and asks the trivial-rewrite(8) address
567 rewriting and resolving daemon where it should be delivered.
569 As of version 2.0, Postfix distinguishes four major address classes. Each class
570 has its own list of domain names, and each class has its own default delivery
571 method, as shown in the table below. See the ADDRESS_CLASS_README document for
572 the fine details. Postfix versions before 2.0 only distinguish between local
573 delivery and everything else.
575      _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b 
576     |D\bDe\bes\bst\bti\bin\bna\bat\bti\bio\bon\bn d\bdo\bom\bma\bai\bin\bn l\bli\bis\bst\bt          |D\bDe\bef\bfa\bau\bul\blt\bt d\bde\bel\bli\biv\bve\ber\bry\by m\bme\bet\bth\bho\bod\bd|A\bAv\bva\bai\bil\bla\bab\bbi\bil\bli\bit\bty\by|
577     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
578     |$mydestination, $inet_interfaces,|$local_transport       |Postfix 1.0 |
579     |$proxy_interfaces                |                       |            |
580     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
581     |$virtual_mailbox_domains         |$virtual_transport     |Postfix 2.0 |
582     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
583     |$relay_domains                   |$relay_transport       |Postfix 2.0 |
584     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
585     |none                             |$default_transport     |Postfix 1.0 |
586     |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
588 M\bMa\bai\bil\bl t\btr\bra\ban\bns\bsp\bpo\bor\brt\bt s\bsw\bwi\bit\btc\bch\bh
590 Once the trivial-rewrite(8) daemon has determined a default delivery method it
591 searches the optional transport(5) table for information that overrides the
592 message destination and/or delivery method. Typical use of the transport(5)
593 table is to send mail to a system that is not connected to the Internet, or to
594 use a special SMTP client configuration for destinations that have special
595 requirements. See, for example, the STANDARD_CONFIGURATION_README and
596 UUCP_README documents, and the examples in the transport(5) manual page.
598 Transport table lookups are disabled by default. To enable, edit the
599 transport_maps parameter in the main.cf file and specify one or more lookup
600 tables, separated by whitespace or commas.
602 Example:
604     /etc/postfix/main.cf:
605         transport_maps = hash:/etc/postfix/transport
607 R\bRe\bel\blo\boc\bca\bat\bte\bed\bd u\bus\bse\ber\brs\bs t\bta\bab\bbl\ble\be
609 Next, the trivial-rewrite(8) address rewriting and resolving daemon runs each
610 recipient through the relocated(5) database. This table provides information on
611 how to reach users that no longer have an account, or what to do with mail for
612 entire domains that no longer exist. When mail is sent to an address that is
613 listed in this table, the message is returned to the sender with an informative
614 message.
616 The relocated(5) database is searched after transport(5) table lookups, in
617 anticipation of transport(5) tables that can replace one recipient address by a
618 different one.
620 Lookups of relocated users are disabled by default. To enable, edit the
621 relocated_maps parameter in the main.cf file and specify one or more lookup
622 tables, separated by whitespace or commas.
624 Example:
626     /etc/postfix/main.cf:
627         relocated_maps = hash:/etc/postfix/relocated
629     /etc/postfix/relocated:
630         username@example.com      otheruser@elsewhere.tld
632 As of Postfix version 2, mail for a relocated user will be rejected by the SMTP
633 server with the reason "user has moved to otheruser@elsewhere.tld". Older
634 Postfix versions will receive the mail first, and then return it to the sender
635 as undeliverable, with the same reason.
637 G\bGe\ben\bne\ber\bri\bic\bc m\bma\bap\bpp\bpi\bin\bng\bg f\bfo\bor\br o\bou\but\btg\bgo\boi\bin\bng\bg S\bSM\bMT\bTP\bP m\bma\bai\bil\bl
639 Some hosts have no valid Internet domain name, and instead use a name such as
640 localdomain.local. This can be a problem when you want to send mail over the
641 Internet, because many mail servers reject mail addresses with invalid domain
642 names.
644 With the smtp_generic_maps parameter you can specify generic(5) lookup tables
645 that replace local mail addresses by valid Internet addresses when mail leaves
646 the machine via SMTP. The generic(5) mapping replaces envelope and header
647 addresses, and is non-recursive. It does not happen when you send mail between
648 addresses on the local machine.
650 This feature is available in Postfix version 2.2 and later.
652 Example:
654     /etc/postfix/main.cf:
655         smtp_generic_maps = hash:/etc/postfix/generic
657     /etc/postfix/generic:
658         his@localdomain.local           hisaccount@hisisp.example
659         her@localdomain.local           heraccount@herisp.example
660         @localdomain.local                      hisaccount+local@hisisp.example
662 When mail is sent to a remote host via SMTP, this replaces
663 his@localdomain.local by his ISP mail address, replaces her@localdomain.local
664 by her ISP mail address, and replaces other local addresses by his ISP account,
665 with an address extension of +local (this example assumes that the ISP supports
666 "+" style address extensions).
668 L\bLo\boc\bca\bal\bl a\bal\bli\bia\bas\bs d\bda\bat\bta\bab\bba\bas\bse\be
670 When mail is to be delivered locally, the local(8) delivery agent runs each
671 local recipient name through the aliases(5) database. The mapping does not
672 affect addresses in message headers. Local aliases are typically used to
673 implement distribution lists, or to direct mail for standard aliases such as
674 postmaster to real people. The table can also be used to map
675 "Firstname.Lastname" addresses to login names.
677 Alias lookups are enabled by default. The default configuration depends on the
678 operating system environment, but it is typically one of the following:
680     /etc/postfix/main.cf:
681         alias_maps = hash:/etc/aliases
682         alias_maps = dbm:/etc/aliases, nis:mail.aliases
684 The pathname of the alias database file is controlled with the alias_database
685 configuration parameter. The value is system dependent. Usually it is one of
686 the following:
688     /etc/postfix/main.cf:
689         alias_database = hash:/etc/aliases (4.4BSD, LINUX)
690         alias_database = dbm:/etc/aliases (4.3BSD, SYSV<4)
691         alias_database = dbm:/etc/mail/aliases (SYSV4)
693 An aliases(5) file can specify that mail should be delivered to a local file,
694 or to a command that receives the message in the standard input stream. For
695 security reasons, deliveries to command and file destinations are performed
696 with the rights of the alias database owner. A default userid, default_privs,
697 is used for deliveries to commands or files in "root"-owned aliases.
699 L\bLo\boc\bca\bal\bl p\bpe\ber\br-\b-u\bus\bse\ber\br .\b.f\bfo\bor\brw\bwa\bar\brd\bd f\bfi\bil\ble\bes\bs
701 With delivery via the local(8) deliver agent, users can control their own mail
702 delivery by specifying destinations in a file called .forward in their home
703 directories. The syntax of these files is the same as with the local aliases(5)
704 file, except that the left-hand side of the alias (lookup key and colon) are
705 not present.
707 L\bLo\boc\bca\bal\bl c\bca\bat\btc\bch\bh-\b-a\bal\bll\bl a\bad\bdd\bdr\bre\bes\bss\bs
709 When the local(8) delivery agent finds that a message recipient does not exist,
710 the message is normally returned to the sender ("user unknown"). Sometimes it
711 is desirable to forward mail for non-existing recipients to another machine.
712 For this purpose you can specify an alternative destination with the
713 luser_relay configuration parameter.
715 Alternatively, mail for non-existent recipients can be delegated to an entirely
716 different message transport, as specified with the fallback_transport
717 configuration parameter. For details, see the local(8) delivery agent
718 documentation.
720 Note: if you use the luser_relay feature in order to receive mail for non-UNIX
721 accounts, then you must specify:
723     /etc/postfix/main.cf:
724         local_recipient_maps =
726 (i.e. empty) in the main.cf file, otherwise the Postfix SMTP server will reject
727 mail for non-UNIX accounts with "User unknown in local recipient table". See
728 the LOCAL_RECIPIENT_README file for more information on this.
730 luser_relay can specify one address. It is subjected to "$name" expansions.
731 Examples:
733     $user@other.host
734         The bare username, without address extension, is prepended to
735         "@other.host". For example, mail for "username+foo" is sent to
736         "username@other.host".
738     $local@other.host
739         The entire original recipient localpart, including address extension,
740         is prepended to "@other.host". For example, mail for "username+foo" is
741         sent to "username+foo@other.host".
743     sysadmin+$user
744         The bare username, without address extension, is appended to
745         "sysadmin". For example, mail for "username+foo" is sent to
746         "sysadmin+username".
748     sysadmin+$local
749         The entire original recipient localpart, including address extension,
750         is appended to "sysadmin". For example, mail for "username+foo" is sent
751         to "sysadmin+username+foo".
753 D\bDe\beb\bbu\bug\bgg\bgi\bin\bng\bg y\byo\bou\bur\br a\bad\bdd\bdr\bre\bes\bss\bs m\bma\ban\bni\bip\bpu\bul\bla\bat\bti\bio\bon\bns\bs
755 Postfix version 2.1 and later can produce mail delivery reports for debugging
756 purposes. These reports not only show sender/recipient addresses after address
757 rewriting and alias expansion or forwarding, they also show information about
758 delivery to mailbox, delivery to non-Postfix command, responses from remote
759 SMTP servers, and so on.
761 Postfix can produce two types of mail delivery reports for debugging:
763   * What-if: report what would happen, but do not actually deliver mail. This
764     mode of operation is requested with:
766     $ /\b/u\bus\bsr\br/\b/s\bsb\bbi\bin\bn/\b/s\bse\ben\bnd\bdm\bma\bai\bil\bl -\b-b\bbv\bv a\bad\bdd\bdr\bre\bes\bss\bs.\b..\b..\b.
767     Mail Delivery Status Report will be mailed to <your login name>.
769   * What happened: deliver mail and report successes and/or failures, including
770     replies from remote SMTP servers. This mode of operation is requested with:
772     $ /\b/u\bus\bsr\br/\b/s\bsb\bbi\bin\bn/\b/s\bse\ben\bnd\bdm\bma\bai\bil\bl -\b-v\bv a\bad\bdd\bdr\bre\bes\bss\bs.\b..\b..\b.
773     Mail Delivery Status Report will be mailed to <your login name>.
775 These reports contain information that is generated by Postfix delivery agents.
776 Since these run as daemon processes and do not interact with users directly,
777 the result is sent as mail to the sender of the test message. The format of
778 these reports is practically identical to that of ordinary non-delivery
779 notifications.
781 As an example, below is the delivery report that is produced with the command
782 "sendmail -bv postfix-users@postfix.org". The first part of the report contains
783 human-readable text. In this case, mail would be delivered via mail.cloud9.net,
784 and the SMTP server replies with "250 Ok". Other reports may show delivery to
785 mailbox, or delivery to non-Postfix command.
787     Content-Description: Notification
788     Content-Type: text/plain
790     This is the mail system at host spike.porcupine.org.
792     Enclosed is the mail delivery report that you requested.
794                             The mail system
796     <postfix-users@postfix.org>: delivery via mail.cloud9.net[168.100.1.4]: 250
797     2.1.5 Ok
799 The second part of the report is in machine-readable form, and includes the
800 following information:
802   * The envelope sender address (wietse@porcupine.org).
803   * The envelope recipient address (postfix-users@postfix.org). If the
804     recipient address was changed by Postfix then Postfix also includes the
805     original recipient address.
806   * The delivery status.
808 Some details depend on Postfix version. The example below is for Postfix
809 version 2.3 and later.
811     Content-Description: Delivery report
812     Content-Type: message/delivery-status
814     Reporting-MTA: dns; spike.porcupine.org
815     X-Postfix-Queue-ID: 84863BC0E5
816     X-Postfix-Sender: rfc822; wietse@porcupine.org
817     Arrival-Date: Sun, 26 Nov 2006 17:01:01 -0500 (EST)
819     Final-Recipient: rfc822; postfix-users@postfix.org
820     Action: deliverable
821     Status: 2.1.5
822     Remote-MTA: dns; mail.cloud9.net
823     Diagnostic-Code: smtp; 250 2.1.5 Ok
825 The third part of the report contains the message that Postfix would have
826 delivered, including From: and To: message headers, so that you can see any
827 effects of address rewriting on those. Mail submitted with "sendmail -bv" has
828 no body content so none is shown in the example below.
830     Content-Description: Message
831     Content-Type: message/rfc822
833     Received: by spike.porcupine.org (Postfix, from userid 1001)
834             id 84863BC0E5; Sun, 26 Nov 2006 17:01:01 -0500 (EST)
835     Subject: probe
836     To: postfix-users@postfix.org
837     Message-Id: <20061126220101.84863BC0E5@spike.porcupine.org>
838     Date: Sun, 26 Nov 2006 17:01:01 -0500 (EST)
839     From: wietse@porcupine.org (Wietse Venema)