Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

POSTQUEUE(1)                General Commands Manual               POSTQUEUE(1)

       postqueue - 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

       The postqueue(1) command implements the Postfix user interface for
       queue management. It implements operations that are traditionally
       available via the sendmail(1) command.  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.

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

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

       -p     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

              #      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" service.

              This option implements the traditional "sendmail -qRsite"
              command, by contacting the Postfix flush(8) daemon.

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

       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.

       sender 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(8), 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 if:

              ⊕      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 this
       program.  The text below provides only a parameter summary. See
       postconf(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 environment parameter.

       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.

       fast_flush_domains ($relay_domains)
              Optional list of destinations that are eligible for
              per-destination logfiles with mail that is queued to those

       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.

       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" or "postconf html_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.

       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