# TRANSPORT(5) TRANSPORT(5) # # NAME # transport - format of Postfix transport table # # SYNOPSIS # postmap /etc/postfix/transport # # postmap -q "string" /etc/postfix/transport # # postmap -q - /etc/postfix/transport <inputfile # # DESCRIPTION # The optional transport table specifies a mapping from # email addresses to message delivery transports and/or # relay hosts. The mapping is used by the trivial-rewrite(8) # daemon. # # This mapping overrides the default routing that is built # into Postfix: # # mydestination # A list of domains that is by default delivered via # $local_transport. This also includes domains that # match $inet_interfaces or $proxy_interfaces. # # virtual_mailbox_domains # A list of domains that is by default delivered via # $virtual_transport. # # relay_domains # A list of domains that is by default delivered via # $relay_transport. # # any other destination # Mail for any other destination is by default deliv- # ered via $default_transport. # # Normally, the transport table is specified as a text file # that serves as input to the postmap(1) command. The # result, an indexed file in dbm or db format, is used for # fast searching by the mail system. Execute the command # postmap /etc/postfix/transport in order to rebuild the # indexed file after changing the transport table. # # When the table is provided via other means such as NIS, # LDAP or SQL, the same lookups are done as for ordinary # indexed files. # # Alternatively, the table can be provided as a regular- # expression map where patterns are given as regular expres- # sions, or lookups can be directed to TCP-based server. In # that case, the lookups are done in a slightly different # way as described below under "REGULAR EXPRESSION TABLES" # and "TCP-BASED TABLES". # # TABLE FORMAT # The input format for the postmap(1) command is as follows: # # pattern result # When pattern matches the recipient address or # domain, use the corresponding result. # # blank lines and comments # Empty lines and whitespace-only lines are ignored, # as are lines whose first non-whitespace character # is a `#'. # # multi-line text # A logical line starts with non-whitespace text. A # line that starts with whitespace continues a logi- # cal line. # # The pattern specifies an email address, a domain name, or # a domain name hierarchy, as described in section "TABLE # LOOKUP". # # The result is of the form transport:nexthop and specifies # how or where to deliver mail. This is described in section # "RESULT FORMAT". # # TABLE LOOKUP # With lookups from indexed files such as DB or DBM, or from # networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user+extension@domain transport:nexthop # Mail for user+extension@domain is delivered through # transport to nexthop. # # user@domain transport:nexthop # Mail for user@domain is delivered through transport # to nexthop. # # domain transport:nexthop # Mail for domain is delivered through transport to # nexthop. # # .domain transport:nexthop # Mail for any subdomain of domain is delivered # through transport to nexthop. This applies only # when the string transport_maps is not listed in the # parent_domain_matches_subdomains configuration set- # ting. Otherwise, a domain name matches itself and # its subdomains. # # Note 1: the special pattern * represents any address (i.e. # it functions as the wild-card pattern). # # Note 2: the null recipient address is looked up as # $empty_address_recipient@$myhostname (default: mailer-dae- # mon@hostname). # # RESULT FORMAT # The lookup result is of the form transport:nexthop. The # transport field specifies a mail delivery transport such # as smtp or local. The nexthop field specifies where and # how to deliver mail. # # The transport field specifies the name of a mail delivery # transport (the first name of a mail delivery service entry # in the Postfix master.cf file). # # The interpretation of the nexthop field is transport # dependent. In the case of SMTP, specify a service on a # non-default port as host:service, and disable MX (mail # exchanger) DNS lookups with [host] or [host]:port. The [] # form is required when you specify an IP address instead of # a hostname. # # A null transport and null nexthop result means "do not # change": use the delivery transport and nexthop informa- # tion that would be used when the entire transport table # did not exist. # # A non-null transport field with a null nexthop field # resets the nexthop information to the recipient domain. # # A null transport field with non-null nexthop field does # not modify the transport information. # # EXAMPLES # In order to deliver internal mail directly, while using a # mail relay for all other mail, specify a null entry for # internal destinations (do not change the delivery trans- # port or the nexthop information) and specify a wildcard # for all other destinations. # # my.domain : # .my.domain : # * smtp:outbound-relay.my.domain # # In order to send mail for example.com and its subdomains # via the uucp transport to the UUCP host named example: # # example.com uucp:example # .example.com uucp:example # # When no nexthop host name is specified, the destination # domain name is used instead. For example, the following # directs mail for user@example.com via the slow transport # to a mail exchanger for example.com. The slow transport # could be configured to run at most one delivery process at # a time: # # example.com slow: # # When no transport is specified, Postfix uses the transport # that matches the address domain class (see DESCRIPTION # above). The following sends all mail for example.com and # its subdomains to host gateway.example.com: # # example.com :[gateway.example.com] # .example.com :[gateway.example.com] # # In the above example, the [] suppress MX lookups. This # prevents mail routing loops when your machine is primary # MX host for example.com. # # In the case of delivery via SMTP, one may specify host- # name:service instead of just a host: # # example.com smtp:bar.example:2025 # # This directs mail for user@example.com to host bar.example # port 2025. Instead of a numerical port a symbolic name may # be used. Specify [] around the hostname if MX lookups must # be disabled. # # The error mailer can be used to bounce mail: # # .example.com error:mail for *.example.com is not # deliverable # # This causes all mail for user@anything.example.com to be # bounced. # # REGULAR EXPRESSION TABLES # This section describes how the table lookups change when # the table is given in the form of regular expressions. For # a description of regular expression lookup table syntax, # see regexp_table(5) or pcre_table(5). # # Each pattern is a regular expression that is applied to # the entire address being looked up. Thus, # some.domain.hierarchy is not looked up via its parent # domains, nor is user+foo@domain looked up as user@domain. # # Patterns are applied in the order as specified in the # table, until a pattern is found that matches the search # string. # # Results are the same as with indexed file lookups, with # the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES # This section describes how the table lookups change when # lookups are directed to a TCP-based server. For a descrip- # tion of the TCP client/server lookup protocol, see # tcp_table(5). This feature is not available in Postfix # version 2.1. # # Each lookup operation uses the entire recipient address # once. Thus, some.domain.hierarchy is not looked up via # its parent domains, nor is user+foo@domain looked up as # user@domain. # # Results are the same as with indexed file lookups. # # CONFIGURATION PARAMETERS # The following main.cf parameters are especially relevant. # The text below provides only a parameter summary. See # postconf(5) for more details including examples. # # empty_address_recipient # The address that is looked up instead of the null # sender address. # # parent_domain_matches_subdomains # List of Postfix features that use domain.tld pat- # terns to match sub.domain.tld (as opposed to # requiring .domain.tld patterns). # # transport_maps # List of transport lookup tables. # # SEE ALSO # trivial-rewrite(8), rewrite and resolve addresses # postconf(5), configuration parameters # postmap(1), Postfix lookup table manager # # README FILES # Use "postconf readme_directory" or "postconf html_direc- # tory" to locate this information. # DATABASE_README, Postfix lookup table overview # FILTER_README, external content filter # # LICENSE # The Secure Mailer license must be distributed with this # software. # # AUTHOR(S) # Wietse Venema # IBM T.J. Watson Research # P.O. Box 704 # Yorktown Heights, NY 10598, USA # # TRANSPORT(5)