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