POSTMAP(1)                                                          POSTMAP(1)

NAME
       postmap - Postfix lookup table management

SYNOPSIS
       postmap [-Nbfhimnoprsvw] [-c config_dir] [-d key] [-q key]
               [file_type:]file_name ...

DESCRIPTION
       The  postmap(1)  command  creates  or  queries one or more
       Postfix lookup tables, or updates  an  existing  one.  The
       input  and output file formats are expected to be compati‐
       ble with:

           makemap file_type file_name < file_name

       If the result files do not exist they will be created with
       the  same group and other read permissions as their source
       file.

       While the table update is in progress, signal delivery  is
       postponed,  and  an exclusive, advisory, lock is placed on
       the entire table, in order to avoid surprises in spectator
       processes.

INPUT FILE FORMAT
       The format of a lookup table input file is as follows:

       ·      A table entry has the form

                   key whitespace value

       ·      Empty  lines and whitespace-only lines are ignored,
              as are lines whose first  non-whitespace  character
              is a `#'.

       ·      A  logical  line starts with non-whitespace text. A
              line that starts with whitespace continues a  logi‐
              cal line.

       The  key  and  value are processed as is, except that sur‐
       rounding white space is stripped off. Unlike with  Postfix
       alias  databases,  quotes cannot be used to protect lookup
       keys that contain special characters such as `#' or white‐
       space.

       By  default  the lookup key is mapped to lowercase to make
       the lookups case insensitive; as of Postfix 2.3 this  case
       folding  happens  only  with  tables whose lookup keys are
       fixed-case strings such as btree:,  dbm:  or  hash:.  With
       earlier  versions,  the  lookup  key  is  folded even with
       tables where a lookup field can match both upper and lower
       case  text,  such  as  regexp: and pcre:. This resulted in
       loss of information with $number substitutions.

COMMAND-LINE ARGUMENTS
       -b     Enable message body query mode. When reading lookup
              keys  from  standard input with "-q -", process the
              input as if it is an email message in RFC 2822 for‐
              mat.   Each line of body content becomes one lookup
              key.

              By default, the -b option starts generating  lookup
              keys  at  the first non-header line, and stops when
              the end of the message  is  reached.   To  simulate
              body_checks(5) processing, enable MIME parsing with
              -m. With this, the -b  option  generates  no  body-
              style  lookup  keys for attachment MIME headers and
              for attached message/* headers.

              This feature is available in  Postfix  version  2.6
              and later.

       -c config_dir
              Read  the  main.cf  configuration file in the named
              directory  instead  of  the  default  configuration
              directory.

       -d key Search  the  specified  maps for key and remove one
              entry per map.  The exit status is  zero  when  the
              requested information was found.

              If a key value of - is specified, the program reads
              key values from the standard input stream. The exit
              status  is  zero when at least one of the requested
              keys was found.

       -f     Do not fold the lookup key to lower case while cre‐
              ating or querying a table.

              With Postfix version 2.3 and later, this option has
              no effect for  regular  expression  tables.  There,
              case folding is controlled by appending a flag to a
              pattern.

       -h     Enable message  header  query  mode.  When  reading
              lookup  keys  from  standard  input  with  "-q  -",
              process the input as if it is an email  message  in
              RFC  2822 format.  Each logical header line becomes
              one lookup key. A  multi-line  header  becomes  one
              lookup  key with one or more embedded newline char‐
              acters.

              By default, the -h  option  generates  lookup  keys
              until  the  first  non-header  line is reached.  To
              simulate header_checks(5) processing,  enable  MIME
              parsing with -m. With this, the -h option also gen‐
              erates header-style lookup keys for attachment MIME
              headers and for attached message/* headers.

              This  feature  is  available in Postfix version 2.6
              and later.

       -i     Incremental mode. Read entries from standard  input
              and  do  not  truncate  an  existing  database.  By
              default, postmap(1) creates a new database from the
              entries in file_name.

       -m     Enable MIME parsing with "-b" and "-h".

              This  feature  is  available in Postfix version 2.6
              and later.

       -N     Include the terminating null character that  termi‐
              nates   lookup   keys   and   values.  By  default,
              postmap(1) does whatever is  the  default  for  the
              host operating system.

       -n     Don't  include  the terminating null character that
              terminates lookup  keys  and  values.  By  default,
              postmap(1)  does  whatever  is  the default for the
              host operating system.

       -o     Do not release root privileges  when  processing  a
              non-root  input  file. By default, postmap(1) drops
              root privileges and runs as the source  file  owner
              instead.

       -p     Do not inherit the file access permissions from the
              input file when creating a new file.  Instead, cre‐
              ate  a  new  file  with  default access permissions
              (mode 0644).

       -q key Search the specified maps for  key  and  write  the
              first  value  found  to the standard output stream.
              The exit status is zero when the requested informa‐
              tion was found.

              If a key value of - is specified, the program reads
              key values  from  the  standard  input  stream  and
              writes  one  line  of key value output for each key
              that was found. The exit status  is  zero  when  at
              least one of the requested keys was found.

       -r     When  updating  a  table,  do  not  complain  about
              attempts to update existing entries, and make those
              updates anyway.

       -s     Retrieve  all database elements, and write one line
              of key value output for each element. The  elements
              are  printed in database order, which is not neces‐
              sarily the same as the original input order.

              This feature is available in  Postfix  version  2.2
              and  later,  and  is not available for all database
              types.

       -v     Enable verbose logging for debugging purposes. Mul‐
              tiple  -v  options  make  the software increasingly
              verbose.

       -w     When  updating  a  table,  do  not  complain  about
              attempts  to  update  existing  entries, and ignore
              those attempts.

       Arguments:

       file_type
              The database type. To find out what types are  sup‐
              ported, use the "postconf -m" command.

              The postmap(1) command can query any supported file
              type, but it can create  only  the  following  file
              types:

              btree  The  output  file  is  a  btree  file, named
                     file_name.db.  This is available on  systems
                     with support for db databases.

              cdb    The  output  consists  of  one  file,  named
                     file_name.cdb.  This is available on systems
                     with support for cdb databases.

              dbm    The  output  consists  of  two  files, named
                     file_name.pag and  file_name.dir.   This  is
                     available  on  systems  with support for dbm
                     databases.

              hash   The output file  is  a  hashed  file,  named
                     file_name.db.   This is available on systems
                     with support for db databases.

              fail   A table that reliably  fails  all  requests.
                     The  lookup  table  name is used for logging
                     only. This table exists to simplify  Postfix
                     error tests.

              sdbm   The  output  consists  of  two  files, named
                     file_name.pag and  file_name.dir.   This  is
                     available  on  systems with support for sdbm
                     databases.

              When no file_type is specified, the  software  uses
              the  database  type specified via the default_data
              base_type configuration parameter.

       file_name
              The name of  the  lookup  table  source  file  when
              rebuilding a database.

DIAGNOSTICS
       Problems  are  logged  to the standard error stream and to
       syslogd(8).   No  output  means  that  no  problems   were
       detected.  Duplicate  entries  are skipped and are flagged
       with a warning.

       postmap(1) terminates with zero exit  status  in  case  of
       success  (including  successful  "postmap  -q" lookup) and
       terminates with non-zero exit status in case of failure.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to this program.  The text below provides only a parameter
       summary. See postconf(5) for more details including  exam‐
       ples.

       berkeley_db_create_buffer_size (16777216)
              The  per-table  I/O  buffer  size for programs that
              create Berkeley DB hash or btree tables.

       berkeley_db_read_buffer_size (131072)
              The per-table I/O buffer  size  for  programs  that
              read Berkeley DB hash or btree tables.

       config_directory (see 'postconf -d' output)
              The  default  location  of  the Postfix main.cf and
              master.cf configuration files.

       default_database_type (see 'postconf -d' output)
              The default database type for use in newaliases(1),
              postalias(1) and postmap(1) commands.

       syslog_facility (mail)
              The syslog facility of Postfix logging.

       syslog_name (see 'postconf -d' output)
              The  mail  system  name  that  is  prepended to the
              process name in syslog  records,  so  that  "smtpd"
              becomes, for example, "postfix/smtpd".

SEE ALSO
       postalias(1), create/update/query alias database
       postconf(1), supported database types
       postconf(5), configuration parameters
       syslogd(8), system logging

README FILES
       DATABASE_README, Postfix lookup table overview

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

                                                                    POSTMAP(1)