    POSTFIX(1)                  General Commands Manual                 POSTFIX(1)

    NAME
           postfix - Postfix control program

    SYNOPSIS
           postfix [-Dv] [-c config_dir] command

    DESCRIPTION
           This  command  is  reserved  for the superuser. To submit mail, use the
           Postfix sendmail(1) command.

           The postfix(1) command controls the operation of the Postfix mail  sys‐
           tem:  start  or stop the master(8) daemon, do a health check, and other
           maintenance.

           By default, the postfix(1) command sets up a  standardized  environment
           and runs the postfix-script shell script to do the actual work.

           However,  when  support  for  multiple Postfix instances is configured,
           postfix(1) executes the command specified with the multi_instance_wrap‐
           per configuration parameter.  This command will execute the command for
           each applicable Postfix instance.

           The following commands are implemented:

           check  Warn about bad directory/file ownership or permissions, and cre‐
                  ate missing directories.

           start  Start the Postfix mail system. This also runs the  configuration
                  check described above.

           start-fg
                  Like  start,  but keep the master(8) daemon running in the fore‐
                  ground, and enable master(8) "init" mode when running as PID  1.
                  This  command  requires  that multi-instance support is disabled
                  (i.e. the multi_instance_directories  parameter  value  must  be
                  empty).

                  When  running Postfix inside a container, see MAILLOG_README for
                  logging to stdout. Postfix logs to syslog by default, which  re‐
                  quires  a) running a syslogd process inside the container, or b)
                  mounting the container host's /dev/log socket  inside  the  con‐
                  tainer  (example: "docker run -v /dev/log:/dev/log ..."), and c)
                  a distinct Postfix "syslog_name" prefix that identifies  logging
                  from the Postfix instance.

           stop   Stop the Postfix mail system in an orderly fashion. If possible,
                  running  processes  are  allowed  to terminate at their earliest
                  convenience.

                  Note: in order to refresh the Postfix mail system after  a  con‐
                  figuration  change,  do  not  use the start and stop commands in
                  succession. Use the reload command instead.

           abort  Stop the Postfix mail system  abruptly.  Running  processes  are
                  signaled to stop immediately.

           flush  Force delivery: attempt to deliver every message in the deferred
                  mail queue. Normally, attempts to deliver delayed mail happen at
                  regular  intervals,  the interval doubling after each failed at‐
                  tempt.

                  Warning: flushing undeliverable mail frequently will  result  in
                  poor delivery performance of all other mail.

           reload Re-read  configuration  files.  Running  processes  terminate at
                  their earliest convenience.

           status Indicate if the Postfix mail system is currently  running  (zero
                  exit status) or stopped (non-zero exit status).

           set-permissions [name=value ...]
                  Set  the  ownership and permissions of Postfix related files and
                  directories, as specified in the postfix-files file.

                  Specify name=value to override and update specific main.cf  con‐
                  figuration  parameters.  Use  this,  for  example, to change the
                  mail_owner or setgid_group  setting  for  an  already  installed
                  Postfix system.

                  This  feature is available in Postfix 2.1 and later.  With Post‐
                  fix  2.0  and   earlier,   use   "$config_directory/post-install
                  set-permissions".

           logrotate
                  Rotate  the logfile specified with $maillog_file, by appending a
                  time-stamp  suffix  that  is  formatted  according   to   $mail‐
                  log_file_rotate_suffix,  and  by  compressing  the file with the
                  command specified with $maillog_file_compressor.  This will  not
                  rotate /dev/* files.

                  This feature is available in Postfix 3.4 and later.

           chroot [-n] [-SXc] [on|y|off|n|query|q] (Debian-specific)
                  Control  chroot  column  settings in master.cf file for services
                  known to be able to work in postfix chroot jail.  on  or  y  en‐
                  ables  chroot,  off  or n disables chroot, and query or q (or no
                  argument) shows the current status, which might be on,  off,  or
                  mixed (if some services are chrooted while some are not).

                  With -n, show what would be done instead of applying changes.
                  With  -S, omit safe/simple services, for which either no or very
                  minor chroot setup is  necessary  (usually  just  /etc/localtime
                  and/or /etc/hosts is needed in the chroot jail).
                  With  -X,  omit  more  complex services, which might requre more
                  complex chroot setup (lmtp(8), smtp(8), smtpd(8)).
                  With -c, also include custom (unknown,  unrecognized)  services,
                  which are normally skipped.

                  Please  note:  this command only modifies master.cf, it does not
                  prepare/update the actual chroot jail.

           tls subcommand
                  Enable opportunistic TLS in the Postfix SMTP client  or  server,
                  and  manage  Postfix  SMTP  server TLS private keys and certifi‐
                  cates.  See postfix-tls(1) for documentation.

                  This feature is available in Postfix 3.1 and later.

           upgrade-configuration [name=value ...]
                  Update the main.cf and master.cf  files  with  information  that
                  Postfix  needs  in order to run: add or update services, and add
                  or update configuration parameter settings.

                  Specify name=value to override and update specific main.cf  con‐
                  figuration parameters.

                  This  feature is available in Postfix 2.1 and later.  With Post‐
                  fix 2.0 and  earlier,  use  "$config_directory/post-install  up‐
                  grade-configuration".

           The following options are implemented:

           -c config_dir
                  Read  the main.cf and master.cf configuration files in the named
                  directory instead of the default configuration  directory.   Use
                  this  to  distinguish  between multiple Postfix instances on the
                  same host.

                  With Postfix 2.6 and later, this option  forces  the  postfix(1)
                  command to operate on the specified Postfix instance only.  This
                  behavior  is  inherited by postfix(1) commands that run as a de‐
                  scendant of the current process.

           -D (with postfix start only)
                  Run each Postfix daemon under control of a debugger as specified
                  via the debugger_command configuration parameter.

           -v     Enable verbose logging for debugging purposes. Multiple  -v  op‐
                  tions make the software increasingly verbose.

    ENVIRONMENT
           The  postfix(1) command exports the following environment variables be‐
           fore executing the postfix-script file:

           MAIL_CONFIG
                  This is set when the -c command-line option is present.

                  With Postfix 2.6 and later, this environment variable forces the
                  postfix(1) command to operate on the specified Postfix  instance
                  only.   This  behavior  is inherited by postfix(1) commands that
                  run as a descendant of the current process.

           MAIL_VERBOSE
                  This is set when the -v command-line option is present.

           MAIL_DEBUG
                  This is set when the -D command-line option is present.

           When the internal logging service is enabled (by  setting  a  non-empty
           maillog_file  parameter  value) the postfix(1) command exports settings
           that are used by child processes before they have processed main.cf  or
           command-line settings.

           POSTLOG_SERVICE
                  The name of the public postlog service endpoint.

           POSTLOG_HOSTNAME
                  The hostname to prepend to internal logging.

    CONFIGURATION PARAMETERS
           The following main.cf configuration parameters are exported as environ‐
           ment variables with the same names:

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

           command_directory (see 'postconf -d' output)
                  The location of all postfix administrative commands.

           daemon_directory (see 'postconf -d' output)
                  The directory with Postfix support programs and daemon programs.

           html_directory (see 'postconf -d' output)
                  The location of Postfix HTML files that describe how  to  build,
                  configure or operate a specific Postfix subsystem or feature.

           mail_owner (postfix)
                  The  UNIX  system  account  that owns the Postfix queue and most
                  Postfix daemon processes.

           mailq_path (see 'postconf -d' output)
                  Sendmail compatibility feature that specifies where the  Postfix
                  mailq(1) command is installed.

           manpage_directory (see 'postconf -d' output)
                  Where the Postfix manual pages are installed.

           newaliases_path (see 'postconf -d' output)
                  Sendmail  compatibility  feature  that specifies the location of
                  the newaliases(1) command.

           queue_directory (see 'postconf -d' output)
                  The location of the Postfix top-level queue directory.

           readme_directory (see 'postconf -d' output)
                  The location of Postfix README files that describe how to build,
                  configure or operate a specific Postfix subsystem or feature.

           sendmail_path (see 'postconf -d' output)
                  A Sendmail compatibility feature that specifies the location  of
                  the Postfix sendmail(1) command.

           setgid_group (postdrop)
                  The   group   ownership  of  set-gid  Postfix  commands  and  of
                  group-writable Postfix directories.

           Available in Postfix version 2.5 and later:

           data_directory (see 'postconf -d' output)
                  The directory with Postfix-writable  data  files  (for  example:
                  caches, pseudo-random numbers).

           Available in Postfix version 3.0 and later:

           compatibility_level (0)
                  A  safety net that causes Postfix to run with backwards-compati‐
                  ble default settings after an upgrade to a  newer  Postfix  ver‐
                  sion.

           meta_directory (see 'postconf -d' output)
                  The  location of non-executable files that are shared among mul‐
                  tiple Postfix instances, such as postfix-files,  dynamicmaps.cf,
                  and  the  multi-instance  template  files main.cf.proto and mas‐
                  ter.cf.proto.

           shlib_directory (see 'postconf -d' output)
                  The location of Postfix dynamically-linked  libraries  (libpost‐
                  fix-*.so),  and the default location of Postfix database plugins
                  (postfix-*.so) that have  a  relative  pathname  in  the  dynam‐
                  icmaps.cf file.

           Available in Postfix version 3.1 and later:

           openssl_path (openssl)
                  The location of the OpenSSL command line program openssl(1).

           Other configuration parameters:

           import_environment (see 'postconf -d' output)
                  The  list  of  environment  variables  that a privileged Postfix
                  process will  import  from  a  non-Postfix  parent  process,  or
                  name=value environment overrides.

           syslog_facility (mail)
                  The syslog facility of Postfix logging.

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

           Available in Postfix version 2.6 and later:

           multi_instance_directories (empty)
                  An optional list of non-default Postfix  configuration  directo‐
                  ries;  these  directories belong to additional Postfix instances
                  that share the Postfix executable files and  documentation  with
                  the  default  Postfix  instance,  and that are started, stopped,
                  etc., together with the default Postfix instance.

           multi_instance_wrapper (empty)
                  The pathname of a multi-instance manager command that the  post‐
                  fix(1) command invokes when the multi_instance_directories para‐
                  meter value is non-empty.

           multi_instance_group (empty)
                  The optional instance group name of this Postfix instance.

           multi_instance_name (empty)
                  The optional instance name of this Postfix instance.

           multi_instance_enable (no)
                  Allow  this  Postfix instance to be started, stopped, etc., by a
                  multi-instance manager.

           Available in Postfix version 3.4 and later:

           maillog_file (empty)
                  The name of an optional logfile that is written by  the  Postfix
                  postlogd(8) service.

           maillog_file_compressor (gzip)
                  The  program  to  run after rotating $maillog_file with "postfix
                  logrotate".

           maillog_file_prefixes (/var, /dev/stdout)
                  A list of allowed prefixes for a maillog_file value.

           maillog_file_rotate_suffix (%Y%m%d-%H%M%S)
                  The format of the suffix to append to $maillog_file while rotat‐
                  ing the file with "postfix logrotate".

           postlog_service_name (postlog)
                  The name of the postlogd(8) service entry in master.cf.

    FILES
           Prior to Postfix version 2.6, all of the following files were in  $con‐
           fig_directory.  Some files are now in $daemon_directory or $meta_direc‐
           tory so that they can be shared among multiple instances that  run  the
           same Postfix version.

           Use  the command "postconf config_directory" or "postconf daemon_direc‐
           tory" to expand the names into their actual values.

           $config_directory/main.cf, Postfix configuration parameters
           $config_directory/master.cf, Postfix daemon processes
           $daemon_directory/postfix-script, administrative commands
           $daemon_directory/post-install, post-installation configuration
           $meta_directory/dynamicmaps.cf, plug-in database clients
           $meta_directory/postfix-files, file/directory permissions

    SEE ALSO
           Commands:
           postalias(1), create/update/query alias database
           postcat(1), examine Postfix queue file
           postconf(1), Postfix configuration utility
           postdrop(1), Postfix mail posting utility
           postfix(1), Postfix control program
           postfix-tls(1), Postfix TLS management
           postkick(1), trigger Postfix daemon
           postlock(1), Postfix-compatible locking
           postlog(1), Postfix-compatible logging
           postmap(1), Postfix lookup table manager
           postmulti(1), Postfix multi-instance manager
           postqueue(1), Postfix mail queue control
           postsuper(1), Postfix housekeeping
           mailq(1), Sendmail compatibility interface
           newaliases(1), Sendmail compatibility interface
           sendmail(1), Sendmail compatibility interface

           Postfix configuration:
           bounce(5), Postfix bounce message templates
           master(5), Postfix master.cf file syntax
           postconf(5), Postfix main.cf file syntax
           postfix-wrapper(5), Postfix multi-instance API

           Table-driven mechanisms:
           access(5), Postfix SMTP access control table
           aliases(5), Postfix local aliasing
           canonical(5), Postfix input address rewriting
           generic(5), Postfix output address rewriting
           header_checks(5), body_checks(5), Postfix content inspection
           relocated(5), Users that have moved
           transport(5), Postfix routing table
           virtual(5), Postfix virtual aliasing

           Table lookup mechanisms:
           cidr_table(5), Associate CIDR pattern with value
           ldap_table(5), Postfix LDAP client
           lmdb_table(5), Postfix LMDB database driver
           memcache_table(5), Postfix memcache client
           mongodb_table(5), Postfix MongoDB client
           mysql_table(5), Postfix MYSQL client
           nisplus_table(5), Postfix NIS+ client
           pcre_table(5), Associate PCRE pattern with value
           pgsql_table(5), Postfix PostgreSQL client
           regexp_table(5), Associate POSIX regexp pattern with value
           socketmap_table(5), Postfix socketmap client
           sqlite_table(5), Postfix SQLite database driver
           tcp_table(5), Postfix client-server table lookup

           Daemon processes:
           anvil(8), Postfix connection/rate limiting
           bounce(8), defer(8), trace(8), Delivery status reports
           cleanup(8), canonicalize and enqueue message
           discard(8), Postfix discard delivery agent
           dnsblog(8), DNS allow/denylist logger
           error(8), Postfix error delivery agent
           flush(8), Postfix fast ETRN service
           local(8), Postfix local delivery agent
           master(8), Postfix master daemon
           oqmgr(8), old Postfix queue manager
           pickup(8), Postfix local mail pickup
           pipe(8), deliver mail to non-Postfix command
           postlogd(8), Postfix internal logging service
           postscreen(8), Postfix zombie blocker
           proxymap(8), Postfix lookup table proxy server
           qmgr(8), Postfix queue manager
           qmqpd(8), Postfix QMQP server
           scache(8), Postfix connection cache manager
           showq(8), list Postfix mail queue
           smtp(8), lmtp(8), Postfix SMTP+LMTP client
           smtpd(8), Postfix SMTP server
           spawn(8), run non-Postfix server
           tlsmgr(8), Postfix TLS cache and randomness manager
           tlsproxy(8), Postfix TLS proxy server
           trivial-rewrite(8), Postfix address rewriting
           verify(8), Postfix address verification
           virtual(8), Postfix virtual delivery agent

           Other:
           syslogd(8), system logging

    README FILES
           OVERVIEW, overview of Postfix commands and processes
           BASIC_CONFIGURATION_README, Postfix basic configuration
           ADDRESS_REWRITING_README, Postfix address rewriting
           SMTPD_ACCESS_README, SMTP relay/access control
           CONTENT_INSPECTION_README, Postfix content inspection
           QSHAPE_README, Postfix queue analysis

    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

           Wietse Venema
           Google, Inc.
           111 8th Avenue
           New York, NY 10011, USA

           TLS support by:
           Lutz Jaenicke
           Brandenburg University of Technology
           Cottbus, Germany

           Victor Duchovni
           Morgan Stanley

           SASL support originally by:
           Till Franke
           SuSE Rhein/Main AG
           65760 Eschborn, Germany

           LMTP support originally by:
           Philip A. Prindeville
           Mirapoint, Inc.
           USA.

           Amos Gouaux
           University of Texas at Dallas
           P.O. Box 830688, MC34
           Richardson, TX 75083, USA

           IPv6 support originally by:
           Mark Huizer, Eindhoven University, The Netherlands
           Jun-ichiro 'itojun' Hagino, KAME project, Japan
           The Linux PLD project
           Dean Strik, Eindhoven University, The Netherlands

                                                                        POSTFIX(1)