Section: User Commands (1)
Postfix queue control
To flush the mail queue:
postqueue [-v] [-c config_dir] -f
postqueue [-v] [-c config_dir] -i queue_id
postqueue [-v] [-c config_dir] -s site
To list the mail queue:
postqueue [-v] [-c config_dir] -j
postqueue [-v] [-c config_dir] -p
(1) command implements the Postfix user interface
for queue management. It implements operations that are
traditionally available via the sendmail
See the postsuper
(1) command for queue operations
that require super-user privileges such as deleting a message
from the queue or changing the status of a message.
The following options are recognized:
- -c config_dir
The main.cf configuration file is in the named directory
instead of the default configuration directory. See also the
MAIL_CONFIG environment setting below.
Flush the queue: attempt to deliver all queued mail.
This option implements the traditional "sendmail -q" command,
by contacting the Postfix qmgr(8) daemon.
Warning: flushing undeliverable mail frequently will result in
poor delivery performance of all other mail.
- -i queue_id
Schedule immediate delivery of deferred mail with the
specified queue ID.
This option implements the traditional sendmail -qI
command, by contacting the flush(8) server.
This feature is available with Postfix version 2.4 and later.
Produce a queue listing in JSON format, based on output
from the showq(8) daemon. The result is a stream of zero
or more JSON objects, one per queue file. Each object is
followed by a newline character to support simple streaming
parsers. See "JSON OBJECT FORMAT" below for details.
This feature is available in Postfix 3.1 and later.
Produce a traditional sendmail-style queue listing.
This option implements the traditional mailq command,
by contacting the Postfix showq(8) daemon.
Each queue entry shows the queue file ID, message
size, arrival time, sender, and the recipients that still need to
be delivered. If mail could not be delivered upon the last attempt,
the reason for failure is shown. The queue ID string
is followed by an optional status character:
The message is in the active queue, i.e. the message is
selected for delivery.
The message is in the hold queue, i.e. no further delivery
attempt will be made until the mail is taken off hold.
The message is forced to expire. See the postsuper(1)
options -e or -f.
This feature is available in Postfix 3.5 and later.
- -s site
Schedule immediate delivery of all mail that is queued for the named
site. A numerical site must be specified as a valid RFC 5321
address literal enclosed in , just like in email addresses.
The site must be eligible for the "fast flush" service.
See flush(8) for more information about the "fast flush"
This option implements the traditional "sendmail -qRsite"
command, by contacting the Postfix flush(8) daemon.
Enable verbose logging for debugging purposes. Multiple -v
options make the software increasingly verbose. As of Postfix 2.3,
this option is available for the super-user only.
JSON OBJECT FORMAT
Each JSON object represents one queue file; it is emitted
as a single text line followed by a newline character.
Object members have string values unless indicated otherwise.
Programs should ignore object members that are not listed
here; the list of members is expected to grow over time.
The name of the queue where the message was found. Note
that the contents of the mail queue may change while it is
being listed; some messages may appear more than once, and
some messages may be missed.
The queue file name. The queue_id may be reused within a
Postfix instance unless "enable_long_queue_ids = true" and
time is monotonic. Even then, the queue_id is not expected
to be unique between different Postfix instances. Management
tools that require a unique name should combine the queue_id
with the myhostname setting of the Postfix instance.
The number of seconds since the start of the UNIX epoch.
The number of bytes in the message header and body. This
number does not include message envelope information. It
is approximately equal to the number of bytes that would
be transmitted via SMTP including the <CR><LF> line endings.
The message is forced to expire (true or false).
See the postsuper(1) options -e or -f.
This feature is available in Postfix 3.5 and later.
The envelope sender address.
An array containing zero or more objects with members:
One recipient address.
If present, the reason for delayed delivery. Delayed
recipients may have no delay reason, for example, while
delivery is in progress, or after the system was stopped
before it could record the reason.
This program is designed to run with set-group ID privileges, so
that it can connect to Postfix daemon processes.
RFC 7159 (JSON notation)
Problems are logged to syslogd
(8) or postlogd
and to the standard error stream.
Directory with the main.cf file. In order to avoid exploitation
of set-group ID privileges, a non-standard directory is allowed only
The name is listed in the standard main.cf file with the
alternate_config_directories configuration parameter.
The command is invoked by the super-user.
The following main.cf
parameters are especially relevant to
The text below provides only a parameter summary. See
(5) for more details including examples.
- alternate_config_directories (empty)
A list of non-default Postfix configuration directories that may
be specified with "-c config_directory" on the command line (in the
case of sendmail(1), with the "-C" option), or via the MAIL_CONFIG
- config_directory (see 'postconf -d' output)
The default location of the Postfix main.cf and master.cf
- command_directory (see 'postconf -d' output)
The location of all postfix administrative commands.
- fast_flush_domains ($relay_domains)
Optional list of destinations that are eligible for per-destination
logfiles with mail that is queued to those destinations.
- import_environment (see 'postconf -d' output)
The list of environment parameters that a privileged Postfix
process will import from a non-Postfix parent process, or name=value
- queue_directory (see 'postconf -d' output)
The location of the Postfix top-level queue directory.
- 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".
- trigger_timeout (10s)
The time limit for sending a trigger to a Postfix daemon (for
example, the pickup(8) or qmgr(8) daemon).
Available in Postfix version 2.2 and later:
- authorized_flush_users (static:anyone)
List of users who are authorized to flush the queue.
- authorized_mailq_users (static:anyone)
List of users who are authorized to view the queue.
/var/spool/postfix, mail queue
qmgr(8), queue manager
showq(8), list mail queue
flush(8), fast flush service
sendmail(1), Sendmail-compatible user interface
postsuper(1), privileged queue operations
postlogd(8), Postfix logging
syslogd(8), system logging
Use "postconf readme_directory
" to locate this information.
ETRN_README, Postfix ETRN howto
The Secure Mailer license must be distributed with this software.
The postqueue command was introduced with Postfix version 1.1.
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
111 8th Avenue
New York, NY 10011, USA