Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022

postfix (1)


postfix - Postfix control program


postfix [-Dv] [-c config_dir] command


POSTFIX(1)                  General Commands Manual                 POSTFIX(1)

       postfix - Postfix control program

       postfix [-Dv] [-c config_dir] command

       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

       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.

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

              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

              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.

       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

       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

       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
              descendant 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
              options make the software increasingly verbose.

   Service Management
       The  postfix  service  is  managed  by the service management facility,
       smf(7), under the service identifier:


       Administrative actions on this service, such as enabling, disabling, or
       requesting  restart,  can  be  performed using svcadm(8). The service's
       status can be queried using the svcs(1) command.

       Postfix uses NIS but not  LDAP  in  its  default  set  of  methods  for
       aliases.   If  the  service  property  config/automatic  is set to true
       (which is the  default  value),  then  upon  service  start,  the  con-
       fig/aliases  property  of  the  svc:/system/name-service/switch:default
       service will be consulted, and NIS will be disabled if needed to  match
       the value of that property; likewise, LDAP will be enabled if needed to
       match the property value.  Note for LDAP this  will  create  /etc/post-
       fix/ldap-aliases.cf   with   result_attribute  =  mgrpRFC822MailMember.
       Adjust as needed to match your local schema.

       The postfix(1) command  exports  the  following  environment  variables
       before executing the postfix-script file:

              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.

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

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

       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:

       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-

       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 parameters that a Postfix  process  will
              import from a non-Postfix parent process.

       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
              parameter 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.

       Prior  to Postfix version 2.6, all of the following files were in $con-
       fig_directory. Some files are now in $daemon_directory 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-files, file/directory permissions
       $daemon_directory/postfix-script, administrative commands
       $daemon_directory/post-install, post-installation configuration
       $daemon_directory/dynamicmaps.cf, plug-in database clients

       See attributes(7) for descriptions of the following attributes:

       |ATTRIBUTE TYPE |       ATTRIBUTE VALUE        |
       |Availability   | service/network/smtp/postfix |
       |Stability      | Volatile                     |

       postalias(1), create/update/query alias database
       postcat(1), examine Postfix queue file
       postconf(1), Postfix configuration 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 alias database
       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
       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 black/whitelist 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
       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

       syslogd(8), system logging

       Use "postconf readme_directory" or "postconf html_directory" to  locate
       this information.
       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

       The Secure Mailer license must be distributed with this software.

       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.

       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

       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from  https://archive.mgm51.com/mirrors/postfix-

       Further information about this software can be found on the open source
       community website at http://www.postfix.org.