Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / man / man5 / canonical.5
blobade8cce5b8de55aa8fefa86bc9efa22097ce4796
1 .\"     $NetBSD$
2 .\"
3 .TH CANONICAL 5 
4 .ad
5 .fi
6 .SH NAME
7 canonical
8 \-
9 Postfix canonical table format
10 .SH "SYNOPSIS"
11 .na
12 .nf
13 \fBpostmap /etc/postfix/canonical\fR
15 \fBpostmap -q "\fIstring\fB" /etc/postfix/canonical\fR
17 \fBpostmap -q - /etc/postfix/canonical <\fIinputfile\fR
18 .SH DESCRIPTION
19 .ad
20 .fi
21 The optional \fBcanonical\fR(5) table specifies an address mapping for
22 local and non-local addresses. The mapping is used by the
23 \fBcleanup\fR(8) daemon, before mail is stored into the
24 queue.  The address mapping is recursive.
26 Normally, the \fBcanonical\fR(5) table is specified as a text file
27 that serves as input to the \fBpostmap\fR(1) command.
28 The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
29 is used for fast searching by the mail system. Execute the command
30 "\fBpostmap /etc/postfix/canonical\fR" to rebuild an indexed
31 file after changing the corresponding text file.
33 When the table is provided via other means such as NIS, LDAP
34 or SQL, the same lookups are done as for ordinary indexed files.
36 Alternatively, the table can be provided as a regular-expression
37 map where patterns are given as regular expressions, or lookups
38 can be directed to TCP-based server. In those cases, the lookups
39 are done in a slightly different way as described below under
40 "REGULAR EXPRESSION TABLES" or "TCP-BASED TABLES".
42 By default the \fBcanonical\fR(5) mapping affects both message
43 header addresses (i.e. addresses that appear inside messages)
44 and message envelope addresses (for example, the addresses
45 that are used in SMTP protocol commands). This is controlled with
46 the \fBcanonical_classes\fR parameter.
48 NOTE: Postfix versions 2.2 and later rewrite message headers
49 from remote SMTP clients only if the client matches the
50 local_header_rewrite_clients parameter, or if the
51 remote_header_rewrite_domain configuration parameter specifies
52 a non-empty value. To get the behavior before Postfix 2.2,
53 specify "local_header_rewrite_clients = static:all".
55 Typically, one would use the \fBcanonical\fR(5) table to replace login
56 names by \fIFirstname.Lastname\fR, or to clean up addresses produced
57 by legacy mail systems.
59 The \fBcanonical\fR(5) mapping is not to be confused with \fIvirtual
60 alias\fR support or with local aliasing. To change the destination
61 but not the headers, use the \fBvirtual\fR(5) or \fBaliases\fR(5)
62 map instead.
63 .SH "CASE FOLDING"
64 .na
65 .nf
66 .ad
67 .fi
68 The search string is folded to lowercase before database
69 lookup. As of Postfix 2.3, the search string is not case
70 folded with database types such as regexp: or pcre: whose
71 lookup fields can match both upper and lower case.
72 .SH "TABLE FORMAT"
73 .na
74 .nf
75 .ad
76 .fi
77 The input format for the \fBpostmap\fR(1) command is as follows:
78 .IP "\fIpattern result\fR"
79 When \fIpattern\fR matches a mail address, replace it by the
80 corresponding \fIresult\fR.
81 .IP "blank lines and comments"
82 Empty lines and whitespace-only lines are ignored, as
83 are lines whose first non-whitespace character is a `#'.
84 .IP "multi-line text"
85 A logical line starts with non-whitespace text. A line that
86 starts with whitespace continues a logical line.
87 .SH "TABLE SEARCH ORDER"
88 .na
89 .nf
90 .ad
91 .fi
92 With lookups from indexed files such as DB or DBM, or from networked
93 tables such as NIS, LDAP or SQL, patterns are tried in the order as
94 listed below:
95 .IP "\fIuser\fR@\fIdomain address\fR"
96 Replace \fIuser\fR@\fIdomain\fR by \fIaddress\fR. This form
97 has the highest precedence.
98 .sp
99 This is useful to clean up addresses produced by legacy mail systems.
100 It can also be used to produce \fIFirstname.Lastname\fR style
101 addresses, but see below for a simpler solution.
102 .IP "\fIuser address\fR"
103 Replace \fIuser\fR@\fIsite\fR by \fIaddress\fR when \fIsite\fR is
104 equal to $\fBmyorigin\fR, when \fIsite\fR is listed in
105 $\fBmydestination\fR, or when it is listed in $\fBinet_interfaces\fR
106 or $\fBproxy_interfaces\fR.
108 This form is useful for replacing login names by
109 \fIFirstname.Lastname\fR.
110 .IP "@\fIdomain address\fR"
111 Replace other addresses in \fIdomain\fR by \fIaddress\fR.
112 This form has the lowest precedence.
114 Note: @\fIdomain\fR is a wild-card. When this form is applied
115 to recipient addresses, the Postfix SMTP server accepts
116 mail for any recipient in \fIdomain\fR, regardless of whether
117 that recipient exists.  This may turn your mail system into
118 a backscatter source: Postfix first accepts mail for
119 non-existent recipients and then tries to return that mail
120 as "undeliverable" to the often forged sender address.
121 .SH "RESULT ADDRESS REWRITING"
126 The lookup result is subject to address rewriting:
127 .IP \(bu
128 When the result has the form @\fIotherdomain\fR, the
129 result becomes the same \fIuser\fR in \fIotherdomain\fR.
130 .IP \(bu
131 When "\fBappend_at_myorigin=yes\fR", append "\fB@$myorigin\fR"
132 to addresses without "@domain".
133 .IP \(bu
134 When "\fBappend_dot_mydomain=yes\fR", append
135 "\fB.$mydomain\fR" to addresses without ".domain".
136 .SH "ADDRESS EXTENSION"
141 When a mail address localpart contains the optional recipient delimiter
142 (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
143 \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIuser+foo\fR,
144 \fIuser\fR, and @\fIdomain\fR.
146 The \fBpropagate_unmatched_extensions\fR parameter controls whether
147 an unmatched address extension (\fI+foo\fR) is propagated to the
148 result of table lookup.
149 .SH "REGULAR EXPRESSION TABLES"
154 This section describes how the table lookups change when the table
155 is given in the form of regular expressions. For a description of
156 regular expression lookup table syntax, see \fBregexp_table\fR(5)
157 or \fBpcre_table\fR(5).
159 Each pattern is a regular expression that is applied to the entire
160 address being looked up. Thus, \fIuser@domain\fR mail addresses are not
161 broken up into their \fIuser\fR and \fI@domain\fR constituent parts,
162 nor is \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR.
164 Patterns are applied in the order as specified in the table, until a
165 pattern is found that matches the search string.
167 Results are the same as with indexed file lookups, with
168 the additional feature that parenthesized substrings from the
169 pattern can be interpolated as \fB$1\fR, \fB$2\fR and so on.
170 .SH "TCP-BASED TABLES"
175 This section describes how the table lookups change when lookups
176 are directed to a TCP-based server. For a description of the TCP
177 client/server lookup protocol, see \fBtcp_table\fR(5).
178 This feature is not available up to and including Postfix version 2.4.
180 Each lookup operation uses the entire address once.  Thus,
181 \fIuser@domain\fR mail addresses are not broken up into their
182 \fIuser\fR and \fI@domain\fR constituent parts, nor is
183 \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR.
185 Results are the same as with indexed file lookups.
186 .SH BUGS
189 The table format does not understand quoting conventions.
190 .SH "CONFIGURATION PARAMETERS"
195 The following \fBmain.cf\fR parameters are especially relevant.
196 The text below provides only a parameter summary. See
197 \fBpostconf\fR(5) for more details including examples.
198 .IP \fBcanonical_classes\fR
199 What addresses are subject to canonical address mapping.
200 .IP \fBcanonical_maps\fR
201 List of canonical mapping tables.
202 .IP \fBrecipient_canonical_maps\fR
203 Address mapping lookup table for envelope and header recipient
204 addresses.
205 .IP \fBsender_canonical_maps\fR
206 Address mapping lookup table for envelope and header sender
207 addresses.
208 .IP \fBpropagate_unmatched_extensions\fR
209 A list of address rewriting or forwarding mechanisms that propagate
210 an address extension from the original address to the result.
211 Specify zero or more of \fBcanonical\fR, \fBvirtual\fR, \fBalias\fR,
212 \fBforward\fR, \fBinclude\fR, or \fBgeneric\fR.
214 Other parameters of interest:
215 .IP \fBinet_interfaces\fR
216 The network interface addresses that this system receives mail on.
217 You need to stop and start Postfix when this parameter changes.
218 .IP \fBlocal_header_rewrite_clients\fR
219 Rewrite message header addresses in mail from these clients
220 and update incomplete addresses with the domain name in
221 $myorigin or $mydomain; either don't rewrite message headers
222 from other clients at all, or rewrite message headers and
223 update incomplete addresses with the domain specified in
224 the remote_header_rewrite_domain parameter.
225 .IP \fBproxy_interfaces\fR
226 Other interfaces that this machine receives mail on by way of a
227 proxy agent or network address translator.
228 .IP \fBmasquerade_classes\fR
229 List of address classes subject to masquerading: zero or more of
230 \fBenvelope_sender\fR, \fBenvelope_recipient\fR, \fBheader_sender\fR,
231 \fBheader_recipient\fR.
232 .IP \fBmasquerade_domains\fR
233 List of domains that hide their subdomain structure.
234 .IP \fBmasquerade_exceptions\fR
235 List of user names that are not subject to address masquerading.
236 .IP \fBmydestination\fR
237 List of domains that this mail system considers local.
238 .IP \fBmyorigin\fR
239 The domain that is appended to locally-posted mail.
240 .IP \fBowner_request_special\fR
241 Give special treatment to \fBowner-\fIxxx\fR and \fIxxx\fB-request\fR
242 addresses.
243 .IP \fBremote_header_rewrite_domain\fR
244 Don't rewrite message headers from remote clients at all
245 when this parameter is empty; otherwise, rewrite message
246 headers and append the specified domain name to incomplete
247 addresses.
248 .SH "SEE ALSO"
251 cleanup(8), canonicalize and enqueue mail
252 postmap(1), Postfix lookup table manager
253 postconf(5), configuration parameters
254 virtual(5), virtual aliasing
255 .SH "README FILES"
260 Use "\fBpostconf readme_directory\fR" or
261 "\fBpostconf html_directory\fR" to locate this information.
264 DATABASE_README, Postfix lookup table overview
265 ADDRESS_REWRITING_README, address rewriting guide
266 .SH "LICENSE"
271 The Secure Mailer license must be distributed with this software.
272 .SH "AUTHOR(S)"
275 Wietse Venema
276 IBM T.J. Watson Research
277 P.O. Box 704
278 Yorktown Heights, NY 10598, USA