POSTQUEUE(1) | General Commands Manual | POSTQUEUE(1)

# NAME

postqueue - Postfix queue control

# SYNOPSIS

    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

# DESCRIPTION

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 LINES format, based on output from the showq(8) daemon. 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. With Postfix >= 3.11, the output may also show bounced recipients that are pending the creation of a non-delivery status notification message that will be returned to the sender.

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

  This option implements the traditional "sendmail -qR site" 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.

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

queue_name
  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.
queue_id
  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.
arrival_time
  The number of seconds since the start of the UNIX epoch.
message_size
  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.
forced_expire (Postfix >= 3.5)
  The message is forced to expire (true or false). See the postsuper(1) options -e or -f.
sender
  The envelope sender address.
recipients
  An array containing zero or more objects with members:

address
  One recipient address.
orig_address (Postfix >= 3.11)
  One original recipient address.
delay_reason
  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.
bounce_reason (Postfix >= 3.11)
  If present, the reason why this recipient was bounced. The recipient is still pending the creation of a non-delivery status notification message that will be returned to the sender.

# SECURITY

This program is designed to run with set-group ID privileges, so that it can connect to Postfix daemon processes.

# STANDARDS

    RFC 7159 (JSON notation)

# DIAGNOSTICS

Problems are logged to syslogd(8) or postlogd(8), and to the standard error stream.

# ENVIRONMENT

MAIL_CONFIG
  Directory with the main.cf file. In order to avoid exploitation of set-group ID privileges, a non-default directory is allowed only if:

- The name is listed in the default main.cf file with the alternate_config_directories or multi_instance_directories configuration parameter.
- The command is invoked by the super-user.

# CONFIGURATION PARAMETERS

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

# FILES

    /var/spool/postfix, mail queue

# SEE ALSO

    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

# README FILES

Use "postconf readme_directory" or "postconf html_directory" to locate this information.

    ETRN_README, Postfix ETRN howto

# LICENSE

The Secure Mailer license must be distributed with this software.

# HISTORY

The postqueue command was introduced with Postfix version 1.1.

# 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