VIRTUAL(5)                                             VIRTUAL(5)

NAME
       virtual - format of Postfix virtual table

SYNOPSIS
       postmap /usr/local/etc/postfix/virtual

DESCRIPTION
       The  optional virtual table specifies address redirections
       for local and non-local recipients or domains.  The  redi-
       rections  are  used by the cleanup(8) daemon. The redirec-
       tions are recursive.

       The virtual redirection is applied only to recipient enve-
       lope  addresses,  and  does  not  affect  message headers.
       Think Sendmail rule set S0, if you like. Use  canonical(5)
       mapping  to  rewrite header and envelope addresses in gen-
       eral.

       Normally, the virtual 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  /usr/local/etc/postfix/virtual  in  order  to  rebuild  the
       indexed file after changing the 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 expres-
       sions.  In  that  case, the lookups are done in a slightly
       different way as described below.

POSTFIX-STYLE VIRTUAL DOMAINS
       With a Postfix-style virtual domain,  the  virtual  domain
       has  its  own  user  name  space. Local (i.e. non-virtual)
       usernames are  not  visible  in  a  Postfix-style  virtual
       domain.  In particular, local aliases(5) and mailing lists
       are not visible as localname@virtual.domain.

       Use a Sendmail-style virtual domain (see below)  if  local
       usernames,  aliases(5)  or mailing lists should be visible
       as localname@virtual.domain.

       Support for a Postfix-style virtual domain looks like:

       /usr/local/etc/postfix/virtual:
           virtual.domain       anything (right-hand content does not matter)
           postmaster@virtual.domain    postmaster
           user1@virtual.domain address1
           user2@virtual.domain address2, address3

       The virtual.domain anything entry is required for a  Post-
       fix-style virtual domain.

       Do  not list a Postfix-style virtual domain in the main.cf
       mydestination configuration parameter.  Such an  entry  is
       required only for a Sendmail-style virtual domain.

       With  a  Postfix-style  virtual  domain,  the Postfix SMTP
       server  accepts  mail  for  known-user@virtual.domain  and
       rejects mail for unknown-user@virtual.domain as undeliver-
       able.

SENDMAIL-STYLE VIRTUAL DOMAINS
       With a Sendmail-style virtual domain,  every  local  (i.e.
       non-virtual) username is visible in the virtual domain. In
       particular, every local alias and mailing list is  visible
       as localname@virtual.domain.

       Use  a  Postfix-style  virtual domain (see above) if local
       usernames, aliases(5) or mailing lists should not be visi-
       ble as localname@virtual.domain.

       Support for a Sendmail-style virtual domain looks like:

       /usr/local/etc/postfix/main.cf:
           mydestination = $myhostname localhost.$mydomain $mydomain
               virtual.domain

       /usr/local/etc/postfix/virtual:
           user1@virtual.domain address1
           user2@virtual.domain address2, address3

       The  main.cf  mydestination  entry is required for a Send-
       mail-style virtual domain.

       Do not specify a virtual.domain anything virtual map entry
       for  a  Sendmail-style  virtual  domain.  Such an entry is
       required only with a Postfix-style virtual domain.

       With a Sendmail-style virtual domain,  the  Postfix  local
       delivery  agent  delivers  mail  for  an unknown user@vir-
       tual.domain to a local (i.e.  non-virtual) user  that  has
       the  same  name;  if no such recipient exists, the Postfix
       local delivery agent bounces the mail to the sender.

TABLE FORMAT
       The format of the virtual table is  as  follows,  mappings
       being tried in the order as listed in this manual page:

       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 logi-
              cal line.

       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@domain address, address, ...
              Mail for  user@domain  is  redirected  to  address.
              This form has the highest precedence.

       user address, address, ...
              Mail  for  user@site  is redirected to address when
              site is equal to $myorigin, when site is listed  in
              $mydestination,   or   when   it   is   listed   in
              $inet_interfaces.

              This functionality overlaps with  functionality  of
              the local alias(5) database. The difference is that
              virtual  mapping  can  be  applied   to   non-local
              addresses.

       @domain address, address, ...
              Mail  for  any  user  in  domain  is  redirected to
              address.  This form has the lowest precedence.

       In all the above forms, when address has the form  @other-
       domain,  the result is the same user in otherdomain.  This
       works for the first address in the expansion only.

ADDRESS EXTENSION
       When a mail address localpart contains the optional recip-
       ient  delimiter  (e.g., user+foo@domain), the lookup order
       becomes: user+foo@domain, user@domain, user+foo, user, and
       @domain.   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 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, 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.

BUGS
       The  table format does not understand quoting conventions.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  topic.  See  the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

       virtual_maps
              List of virtual mapping tables.

       Other parameters of interest:

       inet_interfaces
              The  network  interface  addresses that this system
              receives mail on.

       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
       cleanup(8) canonicalize and enqueue mail
       postmap(1) create mapping table
       pcre_table(5) format of PCRE tables
       regexp_table(5) format of POSIX regular expression tables

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

                                                                1