DragonFly On-Line Manual Pages
POSTFIX(1) DragonFly 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
system: 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_wrapper 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
create 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
foreground, 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
requires a) running a syslogd process inside the container, or
b) mounting the container host's /dev/log socket inside the
container (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
configuration 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
attempt.
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
configuration 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
Postfix 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
$maillog_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.
tls subcommand
Enable opportunistic TLS in the Postfix SMTP client or server,
and manage Postfix SMTP server TLS private keys and
certificates. 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
configuration parameters.
This feature is available in Postfix 2.1 and later. With
Postfix 2.0 and earlier, use "$config_directory/post-install
upgrade-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
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.
ENVIRONMENT
The postfix(1) command exports the following environment variables
before 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
environment variables with the same names:
config_directory (see 'postconf -d' output)
The default location of the Postfix main.cf and master.cf
configuration 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-compatible default settings after an upgrade to a
newer Postfix version.
meta_directory (see 'postconf -d' output)
The location of non-executable files that are shared among
multiple Postfix instances, such as postfix-files,
dynamicmaps.cf, and the multi-instance template files
main.cf.proto and master.cf.proto.
shlib_directory (see 'postconf -d' output)
The location of Postfix dynamically-linked libraries
(libpostfix-*.so), and the default location of Postfix database
plugins (postfix-*.so) that have a relative pathname in the
dynamicmaps.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
directories; 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
postfix(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.
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
rotating 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
$config_directory. Some files are now in $daemon_directory or
$meta_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_directory" 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 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 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
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
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)