1POSTFIX(1) General Commands Manual POSTFIX(1)
2
3
4
6 postfix - Postfix control program
7
9 postfix [-Dv] [-c config_dir] command
10
12 This command is reserved for the superuser. To submit mail, use the
13 Postfix sendmail(1) command.
14
15 The postfix(1) command controls the operation of the Postfix mail sys‐
16 tem: start or stop the master(8) daemon, do a health check, and other
17 maintenance.
18
19 By default, the postfix(1) command sets up a standardized environment
20 and runs the postfix-script shell script to do the actual work.
21
22 However, when support for multiple Postfix instances is configured,
23 postfix(1) executes the command specified with the multi_instance_wrap‐
24 per configuration parameter. This command will execute the command for
25 each applicable Postfix instance.
26
27 The following commands are implemented:
28
29 check Warn about bad directory/file ownership or permissions, and cre‐
30 ate missing directories.
31
32 start Start the Postfix mail system. This also runs the configuration
33 check described above.
34
35 start-fg
36 Like start, but keep the master(8) daemon running in the fore‐
37 ground, and enable master(8) "init" mode when running as PID 1.
38 This command requires that multi-instance support is disabled
39 (i.e. the multi_instance_directories parameter value must be
40 empty).
41
42 When running Postfix inside a container, see MAILLOG_README for
43 logging to stdout. Postfix logs to syslog by default, which re‐
44 quires a) running a syslogd process inside the container, or b)
45 mounting the container host's /dev/log socket inside the con‐
46 tainer (example: "docker run -v /dev/log:/dev/log ..."), and c)
47 a distinct Postfix "syslog_name" prefix that identifies logging
48 from the Postfix instance.
49
50 stop Stop the Postfix mail system in an orderly fashion. If possible,
51 running processes are allowed to terminate at their earliest
52 convenience.
53
54 Note: in order to refresh the Postfix mail system after a con‐
55 figuration change, do not use the start and stop commands in
56 succession. Use the reload command instead.
57
58 abort Stop the Postfix mail system abruptly. Running processes are
59 signaled to stop immediately.
60
61 flush Force delivery: attempt to deliver every message in the deferred
62 mail queue. Normally, attempts to deliver delayed mail happen at
63 regular intervals, the interval doubling after each failed at‐
64 tempt.
65
66 Warning: flushing undeliverable mail frequently will result in
67 poor delivery performance of all other mail.
68
69 reload Re-read configuration files. Running processes terminate at
70 their earliest convenience.
71
72 status Indicate if the Postfix mail system is currently running.
73
74 set-permissions [name=value ...]
75 Set the ownership and permissions of Postfix related files and
76 directories, as specified in the postfix-files file.
77
78 Specify name=value to override and update specific main.cf con‐
79 figuration parameters. Use this, for example, to change the
80 mail_owner or setgid_group setting for an already installed
81 Postfix system.
82
83 This feature is available in Postfix 2.1 and later. With Post‐
84 fix 2.0 and earlier, use "$config_directory/post-install
85 set-permissions".
86
87 logrotate
88 Rotate the logfile specified with $maillog_file, by appending a
89 time-stamp suffix that is formatted according to $mail‐
90 log_file_rotate_suffix, and by compressing the file with the
91 command specified with $maillog_file_compressor. This will not
92 rotate /dev/* files.
93
94 This feature is available in Postfix 3.4 and later.
95
96 tls subcommand
97 Enable opportunistic TLS in the Postfix SMTP client or server,
98 and manage Postfix SMTP server TLS private keys and certifi‐
99 cates. See postfix-tls(1) for documentation.
100
101 This feature is available in Postfix 3.1 and later.
102
103 upgrade-configuration [name=value ...]
104 Update the main.cf and master.cf files with information that
105 Postfix needs in order to run: add or update services, and add
106 or update configuration parameter settings.
107
108 Specify name=value to override and update specific main.cf con‐
109 figuration parameters.
110
111 This feature is available in Postfix 2.1 and later. With Post‐
112 fix 2.0 and earlier, use "$config_directory/post-install up‐
113 grade-configuration".
114
115 The following options are implemented:
116
117 -c config_dir
118 Read the main.cf and master.cf configuration files in the named
119 directory instead of the default configuration directory. Use
120 this to distinguish between multiple Postfix instances on the
121 same host.
122
123 With Postfix 2.6 and later, this option forces the postfix(1)
124 command to operate on the specified Postfix instance only. This
125 behavior is inherited by postfix(1) commands that run as a de‐
126 scendant of the current process.
127
128 -D (with postfix start only)
129 Run each Postfix daemon under control of a debugger as specified
130 via the debugger_command configuration parameter.
131
132 -v Enable verbose logging for debugging purposes. Multiple -v op‐
133 tions make the software increasingly verbose.
134
136 The postfix(1) command exports the following environment variables be‐
137 fore executing the postfix-script file:
138
139 MAIL_CONFIG
140 This is set when the -c command-line option is present.
141
142 With Postfix 2.6 and later, this environment variable forces the
143 postfix(1) command to operate on the specified Postfix instance
144 only. This behavior is inherited by postfix(1) commands that
145 run as a descendant of the current process.
146
147 MAIL_VERBOSE
148 This is set when the -v command-line option is present.
149
150 MAIL_DEBUG
151 This is set when the -D command-line option is present.
152
153 When the internal logging service is enabled (by setting a non-empty
154 maillog_file parameter value) the postfix(1) command exports settings
155 that are used by child processes before they have processed main.cf or
156 command-line settings.
157
158 POSTLOG_SERVICE
159 The name of the public postlog service endpoint.
160
161 POSTLOG_HOSTNAME
162 The hostname to prepend to internal logging.
163
165 The following main.cf configuration parameters are exported as environ‐
166 ment variables with the same names:
167
168 config_directory (see 'postconf -d' output)
169 The default location of the Postfix main.cf and master.cf con‐
170 figuration files.
171
172 command_directory (see 'postconf -d' output)
173 The location of all postfix administrative commands.
174
175 daemon_directory (see 'postconf -d' output)
176 The directory with Postfix support programs and daemon programs.
177
178 html_directory (see 'postconf -d' output)
179 The location of Postfix HTML files that describe how to build,
180 configure or operate a specific Postfix subsystem or feature.
181
182 mail_owner (postfix)
183 The UNIX system account that owns the Postfix queue and most
184 Postfix daemon processes.
185
186 mailq_path (see 'postconf -d' output)
187 Sendmail compatibility feature that specifies where the Postfix
188 mailq(1) command is installed.
189
190 manpage_directory (see 'postconf -d' output)
191 Where the Postfix manual pages are installed.
192
193 newaliases_path (see 'postconf -d' output)
194 Sendmail compatibility feature that specifies the location of
195 the newaliases(1) command.
196
197 queue_directory (see 'postconf -d' output)
198 The location of the Postfix top-level queue directory.
199
200 readme_directory (see 'postconf -d' output)
201 The location of Postfix README files that describe how to build,
202 configure or operate a specific Postfix subsystem or feature.
203
204 sendmail_path (see 'postconf -d' output)
205 A Sendmail compatibility feature that specifies the location of
206 the Postfix sendmail(1) command.
207
208 setgid_group (postdrop)
209 The group ownership of set-gid Postfix commands and of
210 group-writable Postfix directories.
211
212 Available in Postfix version 2.5 and later:
213
214 data_directory (see 'postconf -d' output)
215 The directory with Postfix-writable data files (for example:
216 caches, pseudo-random numbers).
217
218 Available in Postfix version 3.0 and later:
219
220 compatibility_level (0)
221 A safety net that causes Postfix to run with backwards-compati‐
222 ble default settings after an upgrade to a newer Postfix ver‐
223 sion.
224
225 meta_directory (see 'postconf -d' output)
226 The location of non-executable files that are shared among mul‐
227 tiple Postfix instances, such as postfix-files, dynamicmaps.cf,
228 and the multi-instance template files main.cf.proto and mas‐
229 ter.cf.proto.
230
231 shlib_directory (see 'postconf -d' output)
232 The location of Postfix dynamically-linked libraries (libpost‐
233 fix-*.so), and the default location of Postfix database plugins
234 (postfix-*.so) that have a relative pathname in the dynam‐
235 icmaps.cf file.
236
237 Available in Postfix version 3.1 and later:
238
239 openssl_path (openssl)
240 The location of the OpenSSL command line program openssl(1).
241
242 Other configuration parameters:
243
244 import_environment (see 'postconf -d' output)
245 The list of environment variables that a privileged Postfix
246 process will import from a non-Postfix parent process, or
247 name=value environment overrides.
248
249 syslog_facility (mail)
250 The syslog facility of Postfix logging.
251
252 syslog_name (see 'postconf -d' output)
253 A prefix that is prepended to the process name in syslog
254 records, so that, for example, "smtpd" becomes "prefix/smtpd".
255
256 Available in Postfix version 2.6 and later:
257
258 multi_instance_directories (empty)
259 An optional list of non-default Postfix configuration directo‐
260 ries; these directories belong to additional Postfix instances
261 that share the Postfix executable files and documentation with
262 the default Postfix instance, and that are started, stopped,
263 etc., together with the default Postfix instance.
264
265 multi_instance_wrapper (empty)
266 The pathname of a multi-instance manager command that the post‐
267 fix(1) command invokes when the multi_instance_directories pa‐
268 rameter value is non-empty.
269
270 multi_instance_group (empty)
271 The optional instance group name of this Postfix instance.
272
273 multi_instance_name (empty)
274 The optional instance name of this Postfix instance.
275
276 multi_instance_enable (no)
277 Allow this Postfix instance to be started, stopped, etc., by a
278 multi-instance manager.
279
280 Available in Postfix version 3.4 and later:
281
282 maillog_file (empty)
283 The name of an optional logfile that is written by the Postfix
284 postlogd(8) service.
285
286 maillog_file_compressor (gzip)
287 The program to run after rotating $maillog_file with "postfix
288 logrotate".
289
290 maillog_file_prefixes (/var, /dev/stdout)
291 A list of allowed prefixes for a maillog_file value.
292
293 maillog_file_rotate_suffix (%Y%m%d-%H%M%S)
294 The format of the suffix to append to $maillog_file while rotat‐
295 ing the file with "postfix logrotate".
296
297 postlog_service_name (postlog)
298 The name of the postlogd(8) service entry in master.cf.
299
301 Prior to Postfix version 2.6, all of the following files were in $con‐
302 fig_directory. Some files are now in $daemon_directory or $meta_direc‐
303 tory so that they can be shared among multiple instances that run the
304 same Postfix version.
305
306 Use the command "postconf config_directory" or "postconf daemon_direc‐
307 tory" to expand the names into their actual values.
308
309 $config_directory/main.cf, Postfix configuration parameters
310 $config_directory/master.cf, Postfix daemon processes
311 $daemon_directory/postfix-script, administrative commands
312 $daemon_directory/post-install, post-installation configuration
313 $meta_directory/dynamicmaps.cf, plug-in database clients
314 $meta_directory/postfix-files, file/directory permissions
315
317 Commands:
318 postalias(1), create/update/query alias database
319 postcat(1), examine Postfix queue file
320 postconf(1), Postfix configuration utility
321 postdrop(1), Postfix mail posting utility
322 postfix(1), Postfix control program
323 postfix-tls(1), Postfix TLS management
324 postkick(1), trigger Postfix daemon
325 postlock(1), Postfix-compatible locking
326 postlog(1), Postfix-compatible logging
327 postmap(1), Postfix lookup table manager
328 postmulti(1), Postfix multi-instance manager
329 postqueue(1), Postfix mail queue control
330 postsuper(1), Postfix housekeeping
331 mailq(1), Sendmail compatibility interface
332 newaliases(1), Sendmail compatibility interface
333 sendmail(1), Sendmail compatibility interface
334
335 Postfix configuration:
336 bounce(5), Postfix bounce message templates
337 master(5), Postfix master.cf file syntax
338 postconf(5), Postfix main.cf file syntax
339 postfix-wrapper(5), Postfix multi-instance API
340
341 Table-driven mechanisms:
342 access(5), Postfix SMTP access control table
343 aliases(5), Postfix alias database
344 canonical(5), Postfix input address rewriting
345 generic(5), Postfix output address rewriting
346 header_checks(5), body_checks(5), Postfix content inspection
347 relocated(5), Users that have moved
348 transport(5), Postfix routing table
349 virtual(5), Postfix virtual aliasing
350
351 Table lookup mechanisms:
352 cidr_table(5), Associate CIDR pattern with value
353 ldap_table(5), Postfix LDAP client
354 lmdb_table(5), Postfix LMDB database driver
355 memcache_table(5), Postfix memcache client
356 mysql_table(5), Postfix MYSQL client
357 nisplus_table(5), Postfix NIS+ client
358 pcre_table(5), Associate PCRE pattern with value
359 pgsql_table(5), Postfix PostgreSQL client
360 regexp_table(5), Associate POSIX regexp pattern with value
361 socketmap_table(5), Postfix socketmap client
362 sqlite_table(5), Postfix SQLite database driver
363 tcp_table(5), Postfix client-server table lookup
364
365 Daemon processes:
366 anvil(8), Postfix connection/rate limiting
367 bounce(8), defer(8), trace(8), Delivery status reports
368 cleanup(8), canonicalize and enqueue message
369 discard(8), Postfix discard delivery agent
370 dnsblog(8), DNS allow/denylist logger
371 error(8), Postfix error delivery agent
372 flush(8), Postfix fast ETRN service
373 local(8), Postfix local delivery agent
374 master(8), Postfix master daemon
375 oqmgr(8), old Postfix queue manager
376 pickup(8), Postfix local mail pickup
377 pipe(8), deliver mail to non-Postfix command
378 postlogd(8), Postfix internal logging service
379 postscreen(8), Postfix zombie blocker
380 proxymap(8), Postfix lookup table proxy server
381 qmgr(8), Postfix queue manager
382 qmqpd(8), Postfix QMQP server
383 scache(8), Postfix connection cache manager
384 showq(8), list Postfix mail queue
385 smtp(8), lmtp(8), Postfix SMTP+LMTP client
386 smtpd(8), Postfix SMTP server
387 spawn(8), run non-Postfix server
388 tlsmgr(8), Postfix TLS cache and randomness manager
389 tlsproxy(8), Postfix TLS proxy server
390 trivial-rewrite(8), Postfix address rewriting
391 verify(8), Postfix address verification
392 virtual(8), Postfix virtual delivery agent
393
394 Other:
395 syslogd(8), system logging
396
398 Use "postconf readme_directory" or "postconf html_directory" to locate
399 this information.
400 OVERVIEW, overview of Postfix commands and processes
401 BASIC_CONFIGURATION_README, Postfix basic configuration
402 ADDRESS_REWRITING_README, Postfix address rewriting
403 SMTPD_ACCESS_README, SMTP relay/access control
404 CONTENT_INSPECTION_README, Postfix content inspection
405 QSHAPE_README, Postfix queue analysis
406
408 The Secure Mailer license must be distributed with this software.
409
411 Wietse Venema
412 IBM T.J. Watson Research
413 P.O. Box 704
414 Yorktown Heights, NY 10598, USA
415
416 Wietse Venema
417 Google, Inc.
418 111 8th Avenue
419 New York, NY 10011, USA
420
421 TLS support by:
422 Lutz Jaenicke
423 Brandenburg University of Technology
424 Cottbus, Germany
425
426 Victor Duchovni
427 Morgan Stanley
428
429 SASL support originally by:
430 Till Franke
431 SuSE Rhein/Main AG
432 65760 Eschborn, Germany
433
434 LMTP support originally by:
435 Philip A. Prindeville
436 Mirapoint, Inc.
437 USA.
438
439 Amos Gouaux
440 University of Texas at Dallas
441 P.O. Box 830688, MC34
442 Richardson, TX 75083, USA
443
444 IPv6 support originally by:
445 Mark Huizer, Eindhoven University, The Netherlands
446 Jun-ichiro 'itojun' Hagino, KAME project, Japan
447 The Linux PLD project
448 Dean Strik, Eindhoven University, The Netherlands
449
450
451
452 POSTFIX(1)