Back to main site | Back to man page index

GENERIC(5)                                       File Formats Manual                                       GENERIC(5)



NAME
       generic - Postfix generic table format

SYNOPSIS
       postmap /etc/postfix/generic

       postmap -q "string" /etc/postfix/generic

       postmap -q - /etc/postfix/generic <inputfile

DESCRIPTION
       The  optional  generic(5)  table specifies an address mapping that applies when mail is delivered. This is the
       opposite of canonical(5) mapping, which applies when mail is received.

       Typically, one would use the generic(5) table on a system that does not have a valid Internet domain name  and
       that  uses  something like localdomain.local instead.  The generic(5) table is then used by the smtp(8) client
       to transform local mail addresses into valid Internet mail addresses when mail  has  to  be  sent  across  the
       Internet.  See the EXAMPLE section at the end of this document.

       The  generic(5) mapping affects both message header addresses (i.e. addresses that appear inside messages) and
       message envelope addresses (for example, the addresses that are used in SMTP protocol commands).

       Normally, the generic(5) 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/generic" to rebuild an indexed file after changing the corresponding text file.

       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
       expressions, or lookups can be directed to TCP-based server. In those case, the lookups are done in a slightly
       different way as described below under "REGULAR EXPRESSION TABLES" or "TCP-BASED TABLES".

CASE FOLDING
       The  search  string is folded to lowercase before database lookup. As of Postfix 2.3, the search string is not
       case folded with database types such as regexp: or pcre: whose lookup fields can match both  upper  and  lower
       case.

TABLE FORMAT
       The input format for the postmap(1) command is as follows:

       pattern result
              When pattern matches a mail address, replace it by 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  logical
              line.

TABLE SEARCH ORDER
       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:


       ·      When the result has the form @otherdomain, the result becomes the same user in otherdomain.

       ·      When "append_at_myorigin=yes", append "@$myorigin" to addresses without "@domain".

       ·      When "append_dot_mydomain=yes", append ".$mydomain" to addresses without ".domain".

ADDRESS EXTENSION
       When  a  mail  address localpart contains the optional recipient delimiter (e.g., user+foo@domain), the lookup
       order becomes: user+foo@domain, user@domain, user+foo, user, and @domain.

       The propagate_unmatched_extensions parameter controls whether an unmatched address extension (+foo) is  propa‐
       gated to the result of table lookup.

REGULAR EXPRESSION TABLES
       This  section  describes  how  the table lookups change when the table is given in the form of regular expres‐
       sions. 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,  user@domain
       mail addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into
       user and foo.

       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
       description  of  the TCP client/server lookup protocol, see tcp_table(5).  This feature is not available up to
       and including Postfix version 2.4.

       Each lookup operation uses the entire address once.  Thus, user@domain mail addresses are not broken  up  into
       their user and @domain constituent parts, nor is user+foo broken up into user and foo.

       Results are the same as with indexed file lookups.

EXAMPLE
       The following shows a generic mapping with an indexed file.  When mail is sent to a remote host via SMTP, this
       replaces [email protected] by his ISP  mail  address,  replaces  [email protected]  by  her  ISP  mail
       address,  and  replaces  other  local  addresses by his ISP account, with an address extension of +local (this
       example assumes that the ISP supports "+" style address extensions).

       /etc/postfix/main.cf:
           smtp_generic_maps = hash:/etc/postfix/generic

       /etc/postfix/generic:
           [email protected]   [email protected]
           [email protected]   [email protected]
           @localdomain.local      [email protected]

       Execute the command "postmap /etc/postfix/generic" whenever the table is changed.  Instead of hash, some  sys‐
       tems use dbm database files. To find out what tables your system supports use the command "postconf -m".
       propagate_unmatched_extensions
              A list of address rewriting or forwarding mechanisms that propagate an address extension from the orig‐
              inal address to the result.  Specify zero or more of canonical, virtual, alias,  forward,  include,  or
              generic.

       Other parameters of interest:

       inet_interfaces
              The  network interface addresses that this system receives mail on.  You need to stop and start Postfix
              when this parameter changes.

       proxy_interfaces
              Other interfaces that this machine receives mail on by way of a proxy agent or network address transla‐
              tor.

       mydestination
              List of domains that this mail system considers local.

       myorigin
              The domain that is appended to locally-posted mail.

       owner_request_special
              Give special treatment to owner-xxx and xxx-request addresses.

SEE ALSO
       postmap(1), Postfix lookup table manager
       postconf(5), configuration parameters
       smtp(8), Postfix SMTP client

README FILES
       Use "postconf readme_directory" or "postconf html_directory" to locate this information.
       ADDRESS_REWRITING_README, address rewriting guide
       DATABASE_README, Postfix lookup table overview
       STANDARD_CONFIGURATION_README, configuration examples

LICENSE
       The Secure Mailer license must be distributed with this software.

HISTORY
       A genericstable feature appears in the Sendmail MTA.

       This feature is available in Postfix 2.2 and later.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA



                                                                                                           GENERIC(5)