Provided by: postfix_3.9.1-3_amd64 bug

NAME

       postsuper - Postfix superintendent

SYNOPSIS

       postsuper [-psSv]
               [-c config_dir] [-d queue_id]
               [-e queue_id] [-f queue_id]
               [-h queue_id] [-H queue_id]
               [-r queue_id] [directory ...]

DESCRIPTION

       The postsuper(1) command does maintenance jobs on the Postfix queue. Use of the command is
       restricted to  the  superuser.   See  the  postqueue(1)  command  for  unprivileged  queue
       operations such as listing or flushing the mail queue.

       By default, postsuper(1) performs the operations requested with the -s and -p command-line
       options on all Postfix queue directories - this includes the incoming,  active,  deferred,
       and hold directories with message files and the bounce, defer, trace and flush directories
       with log files.

       Options:

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

       -d queue_id
              Delete  one  message with the named queue ID from the named mail queue(s) (default:
              hold, incoming, active and deferred).

              To delete multiple files, specify the  -d  option  multiple  times,  or  specify  a
              queue_id  of  -  to  read queue IDs from standard input. For example, to delete all
              mail with exactly one recipient user@example.com:

              postqueue -j | jq -r '
                  # See JSON OBJECT FORMAT section in the postqueue(1) manpage
                  select(.recipients[0].address == "user@example.com")
                  | select(.recipients[1].address == null)
                  | .queue_id
               ' | postsuper -d -

              (note the "jq -r" option), or the historical form:

              mailq | tail -n +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" }
                  # $7=sender, $8=recipient1, $9=recipient2
                  { if ($8 == "user@example.com" && $9 == "")
                        print $1 }
               ' | tr -d '*!' | postsuper -d -

              Specify "-d ALL" to remove all messages; for example, specify "-d ALL deferred"  to
              delete  all  mail in the deferred queue.  As a safety measure, the word ALL must be
              specified in upper case.

              Warning: Postfix queue IDs are reused (always with Postfix <= 2.8; and with Postfix
              >=  2.9  when  enable_long_queue_ids=no).   There  is a very small possibility that
              postsuper deletes the wrong message file when it is executed while the Postfix mail
              system is delivering mail.

              The scenario is as follows:

              1)     The  Postfix queue manager deletes the message that postsuper(1) is asked to
                     delete, because Postfix is finished with the message (it is delivered, or it
                     is returned to the sender).

              2)     New  mail  arrives,  and  the  new message is given the same queue ID as the
                     message that postsuper(1)  is  supposed  to  delete.   The  probability  for
                     reusing  a  deleted  queue  ID  is about 1 in 2**15 (the number of different
                     microsecond values that the system clock can distinguish within a second).

              3)     postsuper(1) deletes the new message, instead of the  old  message  that  it
                     should have deleted.

       -e queue_id

       -f queue_id
              Request forced expiration for one message with the named queue ID in the named mail
              queue(s) (default: hold, incoming, active and deferred).

              •      The message will be returned to the sender when the queue  manager  attempts
                     to  deliver  that  message (note that Postfix will never deliver messages in
                     the hold queue).

              •      The -e and -f options both request forced expiration. The difference is that
                     -f  will  also release a message if it is in the hold queue. With -e, such a
                     message would not be returned to the sender until it is released with -f  or
                     -H.

              •      When  a deferred message is force-expired, the return message will state the
                     reason  for  the  delay.  Otherwise,  the  reason  will   be   "message   is
                     administratively expired".

              To  expire multiple files, specify the -e or -f option multiple times, or specify a
              queue_id of - to read queue IDs from standard input (see the -d option above for an
              example, but be sure to replace -d in the example).

              Specify  "-e  ALL" or "-f ALL" to expire all messages; for example, specify "-e ALL
              deferred" to expire all mail in the deferred queue.  As a safety measure, the  word
              ALL must be specified in upper case.

              These features are available in Postfix 3.5 and later.

       -h queue_id
              Put mail "on hold" so that no attempt is made to deliver it.  Move one message with
              the named queue ID from the named mail  queue(s)  (default:  incoming,  active  and
              deferred) to the hold queue.

              To hold multiple files, specify the -h option multiple times, or specify a queue_id
              of - to read queue IDs from standard input.

              Specify "-h ALL" to hold all messages; for example, specify "-h  ALL  deferred"  to
              hold  all  mail  in  the deferred queue.  As a safety measure, the word ALL must be
              specified in upper case.

              Note: while mail is "on hold" it will not expire when its time in the queue exceeds
              the  maximal_queue_lifetime or bounce_queue_lifetime setting. It becomes subject to
              expiration after it is released from "hold".

              This feature is available in Postfix 2.0 and later.

       -H queue_id
              Release mail that was put "on hold".  Move one message with the named queue ID from
              the named mail queue(s) (default: hold) to the deferred queue.

              To  release  multiple  files,  specify  the  -H option multiple times, or specify a
              queue_id of - to read queue IDs from standard input.

              Note: specify "postsuper  -r"  to  release  mail  that  was  kept  on  hold  for  a
              significant  fraction  of  $maximal_queue_lifetime  or  $bounce_queue_lifetime,  or
              longer.

              Specify "-H ALL" to release all mail that is "on hold".  As a safety  measure,  the
              word ALL must be specified in upper case.

              This feature is available in Postfix 2.0 and later.

       -p     Purge old temporary files that are left over after system or software crashes.  The
              -p, -s, and -S operations are done before other operations.

       -r queue_id
              Requeue the message with the named queue ID from the named mail queue(s)  (default:
              hold, incoming, active and deferred).

              To  requeue  multiple  files,  specify  the  -r option multiple times, or specify a
              queue_id of - to read queue IDs from standard input.

              Specify "-r ALL" to requeue all messages. As a safety measure, the word ALL must be
              specified in upper case.

              A  requeued  message is moved to the maildrop queue, from where it is copied by the
              pickup(8) and cleanup(8) daemons to a new queue file. In many respects its handling
              differs from that of a new local submission.

              •      The  message  is  not  subjected  to  the smtpd_milters or non_smtpd_milters
                     settings.  When mail has passed through an  external  content  filter,  this
                     would  produce  incorrect  results  with  Milter applications that depend on
                     original SMTP connection state information.

              •      The message is subjected again to mail address rewriting  and  substitution.
                     This is useful when rewriting rules or virtual mappings have changed.

                     The  address  rewriting  context  (local  or remote) is the same as when the
                     message was received.

              •      The message is subjected to the same content_filter  settings  (if  any)  as
                     used  for  new  local  mail submissions.  This is useful when content_filter
                     settings have changed.

              Warning: Postfix queue IDs are reused (always with Postfix <= 2.8; and with Postfix
              >=  2.9  when  enable_long_queue_ids=no).   There  is a very small possibility that
              postsuper(1) requeues the wrong message file when it is executed while the  Postfix
              mail system is running, but no harm should be done.

              This feature is available in Postfix 1.1 and later.

       -s     Structure  check  and  structure  repair.   This should be done once before Postfix
              startup.  The -p, -s, and -S operations are done before other operations.

              •      Rename files whose name does not match the message file inode  number.  This
                     operation is necessary after restoring a mail queue from a different machine
                     or from backup, when queue files were created with Postfix <=  2.8  or  with
                     "enable_long_queue_ids = no".

              •      Move  queue  files  that are in the wrong place in the file system hierarchy
                     and  remove  subdirectories  that  are  no  longer  needed.   File  position
                     rearrangements  are  necessary after a change in the hash_queue_names and/or
                     hash_queue_depth configuration parameters.

              •      Rename queue files created  with  "enable_long_queue_ids  =  yes"  to  short
                     names, for migration to Postfix <= 2.8.  The procedure is as follows:

                     # postfix stop
                     # postconf enable_long_queue_ids=no
                     # postsuper

                     Run postsuper(1) repeatedly until it stops reporting file name changes.

       -S     A redundant version of -s that requires that long file names also match the message
              file inode number. This option exists for testing purposes, and is  available  with
              Postfix  2.9  and  later.   The  -p,  -s,  and  -S operations are done before other
              operations.

       -v     Enable verbose logging  for  debugging  purposes.  Multiple  -v  options  make  the
              software increasingly verbose.

DIAGNOSTICS

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

       postsuper(1)  reports  the  number  of  messages  deleted  with -d, the number of messages
       expired with -e, the number of messages  expired  or  released  with  -f,  the  number  of
       messages  held or released with -h or -H, the number of messages requeued with -r, and the
       number of messages whose queue file name was fixed with -s. The report is written  to  the
       standard error stream and to syslogd(8) or postlogd(8).

ENVIRONMENT

       MAIL_CONFIG
              Directory with the main.cf file.

BUGS

       Mail  that  is not sanitized by Postfix (i.e. mail in the maildrop queue) cannot be placed
       "on hold".

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.

       config_directory (see 'postconf -d' output)
              The default location of the Postfix main.cf and master.cf configuration files.

       hash_queue_depth (1)
              The   number   of  subdirectory  levels  for  queue  directories  listed  with  the
              hash_queue_names parameter.

       hash_queue_names (deferred, defer)
              The names of queue directories that are split across multiple subdirectory levels.

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

       Available in Postfix version 2.9 and later:

       enable_long_queue_ids (no)
              Enable long, non-repeating, queue IDs (queue file names).

SEE ALSO

       sendmail(1), Sendmail-compatible user interface
       postqueue(1), unprivileged queue operations
       postlogd(8), Postfix logging
       syslogd(8), system logging

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

                                                                                     POSTSUPER(1)