transport.5.html revision 1.1.1.9 1 1.1 tron <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
2 1.1.1.8 christos "https://www.w3.org/TR/html4/loose.dtd">
3 1.1 tron <html> <head>
4 1.1.1.6 christos <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 1.1.1.7 christos <link rel='stylesheet' type='text/css' href='postfix-doc.css'>
6 1.1 tron <title> Postfix manual - transport(5) </title>
7 1.1 tron </head> <body> <pre>
8 1.1 tron TRANSPORT(5) TRANSPORT(5)
9 1.1 tron
10 1.1.1.8 christos <b><a name="name">NAME</a></b>
11 1.1 tron transport - Postfix transport table format
12 1.1 tron
13 1.1.1.8 christos <b><a name="synopsis">SYNOPSIS</a></b>
14 1.1 tron <b>postmap /etc/postfix/transport</b>
15 1.1 tron
16 1.1 tron <b>postmap -q "</b><i>string</i><b>" /etc/postfix/transport</b>
17 1.1 tron
18 1.1 tron <b>postmap -q - /etc/postfix/transport</b> <<i>inputfile</i>
19 1.1 tron
20 1.1.1.8 christos <b><a name="description">DESCRIPTION</a></b>
21 1.1.1.3 tron The optional <a href="transport.5.html"><b>transport</b>(5)</a> table specifies a mapping from email
22 1.1.1.3 tron addresses to message delivery transports and next-hop destinations.
23 1.1.1.3 tron Message delivery transports such as <b>local</b> or <b>smtp</b> are defined in the
24 1.1.1.3 tron <a href="master.5.html"><b>master.cf</b></a> file, and next-hop destinations are typically hosts or domain
25 1.1.1.3 tron names. The table is searched by the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> daemon.
26 1.1 tron
27 1.1.1.3 tron This mapping overrides the default <i>transport</i>:<i>nexthop</i> selection that is
28 1.1.1.3 tron built into Postfix:
29 1.1 tron
30 1.1 tron <b><a href="postconf.5.html#local_transport">local_transport</a> (default: <a href="local.8.html">local</a>:$<a href="postconf.5.html#myhostname">myhostname</a>)</b>
31 1.1.1.3 tron This is the default for final delivery to domains listed with
32 1.1.1.3 tron <b><a href="postconf.5.html#mydestination">mydestination</a></b>, and for [<i>ipaddress</i>] destinations that match
33 1.1.1.9 christos <b>$<a href="postconf.5.html#inet_interfaces">inet_interfaces</a></b> or <b>$<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a></b>.
34 1.1.1.9 christos
35 1.1.1.9 christos In order of decreasing precedence, the <i>nexthop</i> destination is
36 1.1.1.9 christos taken from <b><a href="postconf.5.html#transport_maps">transport_maps</a></b>, <b><a href="postconf.5.html#local_transport">local_transport</a></b>, or from the recipi-
37 1.1.1.9 christos ent domain.
38 1.1 tron
39 1.1 tron <b><a href="postconf.5.html#virtual_transport">virtual_transport</a> (default: <a href="virtual.8.html">virtual</a>:)</b>
40 1.1.1.9 christos This is the default for final delivery to domains listed with
41 1.1.1.9 christos <b><a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a></b>.
42 1.1.1.9 christos
43 1.1.1.9 christos In order of decreasing precedence, the <i>nexthop</i> destination is
44 1.1.1.9 christos taken from <b><a href="postconf.5.html#transport_maps">transport_maps</a></b>, <b><a href="postconf.5.html#virtual_transport">virtual_transport</a></b>, or from the recip-
45 1.1.1.9 christos ient domain.
46 1.1 tron
47 1.1 tron <b><a href="postconf.5.html#relay_transport">relay_transport</a> (default: relay:)</b>
48 1.1.1.3 tron This is the default for remote delivery to domains listed with
49 1.1.1.9 christos <b><a href="postconf.5.html#relay_domains">relay_domains</a></b>.
50 1.1.1.9 christos
51 1.1.1.9 christos In order of decreasing precedence, the <i>nexthop</i> destination is
52 1.1.1.9 christos taken from <b><a href="postconf.5.html#transport_maps">transport_maps</a></b>, <b><a href="postconf.5.html#relay_transport">relay_transport</a></b>, <b><a href="postconf.5.html#sender_dependent_relayhost_maps">sender_depen</a>-</b>
53 1.1.1.3 tron <b><a href="postconf.5.html#sender_dependent_relayhost_maps">dent_relayhost_maps</a></b>, <b><a href="postconf.5.html#relayhost">relayhost</a></b>, or from the recipient domain.
54 1.1 tron
55 1.1 tron <b><a href="postconf.5.html#default_transport">default_transport</a> (default: <a href="smtp.8.html">smtp</a>:)</b>
56 1.1.1.9 christos This is the default for remote delivery to other destinations.
57 1.1.1.3 tron
58 1.1.1.9 christos In order of decreasing precedence, the <i>nexthop</i> destination is
59 1.1.1.9 christos taken from <b><a href="postconf.5.html#transport_maps">transport_maps</a></b>, <b><a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_trans</a>-</b>
60 1.1.1.9 christos <b><a href="postconf.5.html#sender_dependent_default_transport_maps">port_maps</a>, <a href="postconf.5.html#default_transport">default_transport</a></b>, <b><a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a></b>,
61 1.1.1.9 christos <b><a href="postconf.5.html#relayhost">relayhost</a></b>, or from the recipient domain.
62 1.1.1.9 christos
63 1.1.1.9 christos Normally, the <a href="transport.5.html"><b>transport</b>(5)</a> table is specified as a text file that
64 1.1.1.9 christos serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command to create an indexed file for
65 1.1.1.9 christos fast lookup.
66 1.1.1.9 christos
67 1.1.1.9 christos Execute the command "<b>postmap /etc/postfix/transport</b>" to rebuild a
68 1.1.1.9 christos default-type indexed file after changing the text file, or execute
69 1.1.1.9 christos "<b>postmap</b> <i>type</i><b>:/etc/postfix/transport</b>" to specify an explicit type.
70 1.1.1.9 christos
71 1.1.1.9 christos The default indexed file type is configured with the <a href="postconf.5.html#default_database_type">default_data</a>-
72 1.1.1.9 christos <a href="postconf.5.html#default_database_type">base_type</a> parameter. Depending on the platform this may be one of
73 1.1.1.9 christos <a href="lmdb_table.5.html">lmdb</a>:, <a href="CDB_README.html">cdb</a>:, <a href="DATABASE_README.html#types">hash</a>:, or <a href="DATABASE_README.html#types">dbm</a>: (without the trailing ':').
74 1.1.1.9 christos
75 1.1.1.9 christos When the table is provided via other means such as NIS, LDAP or SQL,
76 1.1.1.9 christos the same lookups are done as for ordinary indexed files. Managing such
77 1.1.1.9 christos databases is outside the scope of Postfix.
78 1.1.1.3 tron
79 1.1.1.3 tron Alternatively, the table can be provided as a regular-expression map
80 1.1.1.3 tron where patterns are given as regular expressions, or lookups can be
81 1.1.1.6 christos directed to a TCP-based server. In those case, the lookups are done in
82 1.1.1.6 christos a slightly different way as described below under "REGULAR EXPRESSION
83 1.1.1.3 tron TABLES" or "TCP-BASED TABLES".
84 1.1 tron
85 1.1.1.8 christos <b><a name="case_folding">CASE FOLDING</a></b>
86 1.1.1.3 tron The search string is folded to lowercase before database lookup. As of
87 1.1.1.3 tron Postfix 2.3, the search string is not case folded with database types
88 1.1.1.3 tron such as <a href="regexp_table.5.html">regexp</a>: or <a href="pcre_table.5.html">pcre</a>: whose lookup fields can match both upper and
89 1.1.1.3 tron lower case.
90 1.1 tron
91 1.1.1.8 christos <b><a name="table_format">TABLE FORMAT</a></b>
92 1.1 tron The input format for the <a href="postmap.1.html"><b>postmap</b>(1)</a> command is as follows:
93 1.1 tron
94 1.1 tron <i>pattern result</i>
95 1.1.1.3 tron When <i>pattern</i> matches the recipient address or domain, use the
96 1.1.1.3 tron corresponding <i>result</i>.
97 1.1 tron
98 1.1 tron blank lines and comments
99 1.1.1.3 tron Empty lines and whitespace-only lines are ignored, as are lines
100 1.1.1.3 tron whose first non-whitespace character is a `#'.
101 1.1 tron
102 1.1 tron multi-line text
103 1.1.1.3 tron A logical line starts with non-whitespace text. A line that
104 1.1.1.3 tron starts with whitespace continues a logical line.
105 1.1.1.3 tron
106 1.1.1.3 tron The <i>pattern</i> specifies an email address, a domain name, or a domain name
107 1.1.1.6 christos hierarchy, as described in section "TABLE SEARCH ORDER".
108 1.1.1.3 tron
109 1.1.1.3 tron The <i>result</i> is of the form <i>transport:nexthop</i> and specifies how or where
110 1.1.1.3 tron to deliver mail. This is described in section "RESULT FORMAT".
111 1.1 tron
112 1.1.1.8 christos <b><a name="table_search_order">TABLE SEARCH ORDER</a></b>
113 1.1.1.3 tron With lookups from indexed files such as DB or DBM, or from networked
114 1.1.1.3 tron tables such as NIS, LDAP or SQL, patterns are tried in the order as
115 1.1.1.3 tron listed below:
116 1.1 tron
117 1.1 tron <i>user+extension@domain transport</i>:<i>nexthop</i>
118 1.1.1.3 tron Deliver mail for <i>user+extension@domain</i> through <i>transport</i> to <i>nex-</i>
119 1.1.1.3 tron <i>thop</i>.
120 1.1 tron
121 1.1 tron <i>user@domain transport</i>:<i>nexthop</i>
122 1.1.1.3 tron Deliver mail for <i>user@domain</i> through <i>transport</i> to <i>nexthop</i>.
123 1.1 tron
124 1.1 tron <i>domain transport</i>:<i>nexthop</i>
125 1.1.1.3 tron Deliver mail for <i>domain</i> through <i>transport</i> to <i>nexthop</i>.
126 1.1 tron
127 1.1 tron <i>.domain transport</i>:<i>nexthop</i>
128 1.1.1.3 tron Deliver mail for any subdomain of <i>domain</i> through <i>transport</i> to
129 1.1.1.3 tron <i>nexthop</i>. This applies only when the string <b><a href="postconf.5.html#transport_maps">transport_maps</a></b> is not
130 1.1.1.3 tron listed in the <b><a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a></b> configuration
131 1.1.1.3 tron setting. Otherwise, a domain name matches itself and its subdo-
132 1.1.1.3 tron mains.
133 1.1 tron
134 1.1 tron <b>*</b> <i>transport</i>:<i>nexthop</i>
135 1.1.1.3 tron The special pattern <b>*</b> represents any address (i.e. it functions
136 1.1.1.3 tron as the wild-card pattern, and is unique to Postfix transport
137 1.1.1.3 tron tables).
138 1.1.1.3 tron
139 1.1.1.3 tron Note 1: the null recipient address is looked up as
140 1.1.1.3 tron <b>$<a href="postconf.5.html#empty_address_recipient">empty_address_recipient</a></b>@<b>$<a href="postconf.5.html#myhostname">myhostname</a></b> (default: mailer-daemon@hostname).
141 1.1 tron
142 1.1.1.3 tron Note 2: <i>user@domain</i> or <i>user+extension@domain</i> lookup is available in
143 1.1.1.3 tron Postfix 2.0 and later.
144 1.1 tron
145 1.1.1.8 christos <b><a name="result_format">RESULT FORMAT</a></b>
146 1.1.1.3 tron The lookup result is of the form <i>transport</i><b>:</b><i>nexthop</i>. The <i>transport</i>
147 1.1.1.3 tron field specifies a mail delivery transport such as <b>smtp</b> or <b>local</b>. The
148 1.1.1.3 tron <i>nexthop</i> field specifies where and how to deliver mail.
149 1.1.1.3 tron
150 1.1.1.3 tron The transport field specifies the name of a mail delivery transport
151 1.1.1.3 tron (the first name of a mail delivery service entry in the Postfix <a href="master.5.html"><b>mas-</b>
152 1.1.1.3 tron <b>ter.cf</b></a> file).
153 1.1.1.3 tron
154 1.1.1.5 christos The nexthop field usually specifies one recipient domain or hostname.
155 1.1.1.5 christos In the case of the Postfix SMTP/LMTP client, the nexthop field may con-
156 1.1.1.5 christos tain a list of nexthop destinations separated by comma or whitespace
157 1.1.1.5 christos (Postfix 3.5 and later).
158 1.1.1.5 christos
159 1.1.1.5 christos The syntax of a nexthop destination is transport dependent. With SMTP,
160 1.1.1.5 christos specify a service on a non-default port as <i>host</i>:<i>service</i>, and disable MX
161 1.1.1.5 christos (mail exchanger) DNS lookups with [<i>host</i>] or [<i>host</i>]:<i>port</i>. The [] form is
162 1.1.1.5 christos required when you specify an IP address instead of a hostname.
163 1.1.1.3 tron
164 1.1.1.5 christos A null <i>transport</i> and null <i>nexthop</i> field means "do not change": use the
165 1.1.1.3 tron delivery transport and nexthop information that would be used when the
166 1.1.1.3 tron entire transport table did not exist.
167 1.1 tron
168 1.1.1.3 tron A non-null <i>transport</i> field with a null <i>nexthop</i> field resets the nexthop
169 1.1.1.3 tron information to the recipient domain.
170 1.1 tron
171 1.1.1.3 tron A null <i>transport</i> field with non-null <i>nexthop</i> field does not modify the
172 1.1.1.3 tron transport information.
173 1.1 tron
174 1.1.1.8 christos <b><a name="examples">EXAMPLES</a></b>
175 1.1.1.3 tron In order to deliver internal mail directly, while using a mail relay
176 1.1.1.3 tron for all other mail, specify a null entry for internal destinations (do
177 1.1.1.3 tron not change the delivery transport or the nexthop information) and spec-
178 1.1.1.3 tron ify a wildcard for all other destinations.
179 1.1 tron
180 1.1 tron <b>my.domain :</b>
181 1.1 tron <b>.my.domain :</b>
182 1.1 tron <b>* <a href="smtp.8.html">smtp</a>:outbound-relay.my.domain</b>
183 1.1 tron
184 1.1.1.3 tron In order to send mail for <b>example.com</b> and its subdomains via the <b>uucp</b>
185 1.1.1.3 tron transport to the UUCP host named <b>example</b>:
186 1.1 tron
187 1.1 tron <b>example.com uucp:example</b>
188 1.1 tron <b>.example.com uucp:example</b>
189 1.1 tron
190 1.1.1.9 christos When no nexthop destination is specified, Postfix uses (from low to
191 1.1.1.9 christos high precedence): the recipient domain, the nexthop specified with
192 1.1.1.9 christos <a href="postconf.5.html#relayhost">relayhost</a>, with <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> (for remote deliveries
193 1.1.1.9 christos only), with the transport for the address domain class (see DESCRIPTION
194 1.1.1.9 christos above), or with <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> (for remote
195 1.1.1.9 christos deliveries only). For example, the following directs mail for
196 1.1.1.9 christos <i>user</i>@<b>example.com</b> via the <b>slow</b> transport to a mail exchanger for <b>exam-</b>
197 1.1.1.9 christos <b>ple.com</b>. The <b>slow</b> transport could be configured to run at most one
198 1.1.1.9 christos delivery process at a time:
199 1.1 tron
200 1.1 tron <b>example.com slow:</b>
201 1.1 tron
202 1.1.1.3 tron When no transport is specified, Postfix uses the transport that matches
203 1.1.1.9 christos the address domain class (see DESCRIPTION above), or the transport
204 1.1.1.9 christos specified with <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> (for remote
205 1.1.1.9 christos deliveries only). The following sends all mail for <b>example.com</b> and its
206 1.1.1.9 christos subdomains to host <b>gateway.example.com</b>:
207 1.1 tron
208 1.1 tron <b>example.com :[gateway.example.com]</b>
209 1.1 tron <b>.example.com :[gateway.example.com]</b>
210 1.1 tron
211 1.1.1.9 christos In the above example, the [] suppress MX lookups. This prevents mail
212 1.1.1.3 tron routing loops when your machine is primary MX host for <b>example.com</b>.
213 1.1 tron
214 1.1.1.9 christos In the case of delivery via SMTP or LMTP, one may specify <i>host</i>:<i>service</i>
215 1.1.1.3 tron instead of just a host:
216 1.1 tron
217 1.1 tron <b>example.com <a href="smtp.8.html">smtp</a>:bar.example:2025</b>
218 1.1 tron
219 1.1.1.9 christos This directs mail for <i>user</i>@<b>example.com</b> to host <b>bar.example</b> port <b>2025</b>.
220 1.1.1.9 christos Instead of a numerical port a symbolic name may be used. Specify []
221 1.1.1.3 tron around the hostname if MX lookups must be disabled.
222 1.1 tron
223 1.1.1.9 christos Deliveries via SMTP or LMTP support multiple destinations (Postfix >=
224 1.1.1.5 christos 3.5):
225 1.1.1.5 christos
226 1.1.1.5 christos <b>example.com <a href="smtp.8.html">smtp</a>:bar.example, foo.example</b>
227 1.1.1.5 christos
228 1.1.1.9 christos This tries to deliver to <b>bar.example</b> before trying to deliver to
229 1.1.1.5 christos <b>foo.example</b>.
230 1.1.1.5 christos
231 1.1 tron The error mailer can be used to bounce mail:
232 1.1 tron
233 1.1 tron <b>.example.com <a href="error.8.html">error</a>:mail for *.example.com is not deliverable</b>
234 1.1 tron
235 1.1.1.3 tron This causes all mail for <i>user</i>@<i>anything</i><b>.example.com</b> to be bounced.
236 1.1 tron
237 1.1.1.8 christos <b><a name="regular_expression_tables">REGULAR EXPRESSION TABLES</a></b>
238 1.1.1.9 christos This section describes how the table lookups change when the table is
239 1.1.1.9 christos given in the form of regular expressions. For a description of regular
240 1.1.1.3 tron expression lookup table syntax, see <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
241 1.1.1.3 tron
242 1.1.1.9 christos Each pattern is a regular expression that is applied to the entire
243 1.1.1.9 christos address being looked up. Thus, <i>some.domain.hierarchy</i> is not looked up
244 1.1.1.9 christos via its parent domains, nor is <i>user+foo@domain</i> looked up as
245 1.1.1.3 tron <i>user@domain</i>.
246 1.1.1.3 tron
247 1.1.1.9 christos Patterns are applied in the order as specified in the table, until a
248 1.1.1.3 tron pattern is found that matches the search string.
249 1.1.1.3 tron
250 1.1.1.3 tron The <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> server disallows regular expression substitution
251 1.1.1.3 tron of $1 etc. in regular expression lookup tables, because that could open
252 1.1.1.3 tron a security hole (Postfix version 2.3 and later).
253 1.1 tron
254 1.1.1.8 christos <b><a name="tcp-based_tables">TCP-BASED TABLES</a></b>
255 1.1.1.9 christos This section describes how the table lookups change when lookups are
256 1.1.1.9 christos directed to a TCP-based server. For a description of the TCP
257 1.1.1.9 christos client/server lookup protocol, see <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>. This feature is not
258 1.1.1.3 tron available up to and including Postfix version 2.4.
259 1.1.1.3 tron
260 1.1.1.9 christos Each lookup operation uses the entire recipient address once. Thus,
261 1.1.1.9 christos <i>some.domain.hierarchy</i> is not looked up via its parent domains, nor is
262 1.1.1.3 tron <i>user+foo@domain</i> looked up as <i>user@domain</i>.
263 1.1 tron
264 1.1 tron Results are the same as with indexed file lookups.
265 1.1 tron
266 1.1.1.8 christos <b><a name="configuration_parameters">CONFIGURATION PARAMETERS</a></b>
267 1.1.1.9 christos The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant. The text
268 1.1.1.9 christos below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for more
269 1.1.1.3 tron details including examples.
270 1.1 tron
271 1.1.1.5 christos <b><a href="postconf.5.html#empty_address_recipient">empty_address_recipient</a> (MAILER-DAEMON)</b>
272 1.1.1.5 christos The recipient of mail addressed to the null address.
273 1.1 tron
274 1.1.1.5 christos <b><a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> (see 'postconf -d' output)</b>
275 1.1.1.9 christos A list of Postfix features where the pattern "example.com" also
276 1.1.1.9 christos matches subdomains of example.com, instead of requiring an
277 1.1.1.5 christos explicit ".example.com" pattern.
278 1.1.1.5 christos
279 1.1.1.5 christos <b><a href="postconf.5.html#transport_maps">transport_maps</a> (empty)</b>
280 1.1.1.9 christos Optional lookup tables with mappings from recipient address to
281 1.1.1.5 christos (message delivery transport, next-hop destination).
282 1.1 tron
283 1.1.1.8 christos <b><a name="see_also">SEE ALSO</a></b>
284 1.1 tron <a href="trivial-rewrite.8.html">trivial-rewrite(8)</a>, rewrite and resolve addresses
285 1.1 tron <a href="master.5.html">master(5)</a>, <a href="master.5.html">master.cf</a> file format
286 1.1 tron <a href="postconf.5.html">postconf(5)</a>, configuration parameters
287 1.1 tron <a href="postmap.1.html">postmap(1)</a>, Postfix lookup table manager
288 1.1 tron
289 1.1.1.8 christos <b><a name="readme_files">README FILES</a></b>
290 1.1 tron <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a>, address rewriting guide
291 1.1 tron <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
292 1.1 tron <a href="FILTER_README.html">FILTER_README</a>, external content filter
293 1.1 tron
294 1.1.1.8 christos <b><a name="license">LICENSE</a></b>
295 1.1.1.3 tron The Secure Mailer license must be distributed with this software.
296 1.1 tron
297 1.1 tron <b>AUTHOR(S)</b>
298 1.1 tron Wietse Venema
299 1.1 tron IBM T.J. Watson Research
300 1.1 tron P.O. Box 704
301 1.1 tron Yorktown Heights, NY 10598, USA
302 1.1 tron
303 1.1.1.4 christos Wietse Venema
304 1.1.1.4 christos Google, Inc.
305 1.1.1.4 christos 111 8th Avenue
306 1.1.1.4 christos New York, NY 10011, USA
307 1.1.1.4 christos
308 1.1 tron TRANSPORT(5)
309 1.1 tron </pre> </body> </html>
310