qmgr.8.html   [plain text]


<html> <head> </head> <body> <pre>
QMGR(8)                                                   QMGR(8)

<b>NAME</b>
       qmgr - Postfix queue manager

<b>SYNOPSIS</b>
       <b>qmgr</b> [generic Postfix daemon options]

<b>DESCRIPTION</b>
       The  <b>qmgr</b>  daemon  awaits the arrival of incoming mail and
       arranges for its delivery via Postfix delivery  processes.
       The actual mail routing strategy is delegated to the <a href="trivial-rewrite.8.html"><b>triv-</b></a>
       <a href="trivial-rewrite.8.html"><b>ial-rewrite</b>(8)</a> daemon.  This program  expects  to  be  run
       from the <a href="master.8.html"><b>master</b>(8)</a> process manager.

       Mail  addressed  to  the  local  <b>double-bounce</b>  address is
       silently discarded.  This stops potential loops caused  by
       undeliverable bounce notifications.

<b>MAIL</b> <b>QUEUES</b>
       The <b>qmgr</b> daemon maintains the following queues:

       <b>incoming</b>
              Inbound mail from the network, or mail picked up by
              the local <b>pickup</b> agent from the <b>maildrop</b> directory.

       <b>active</b> Messages  that  the  queue  manager  has opened for
              delivery. Only a  limited  number  of  messages  is
              allowed  to  enter  the  <b>active</b> queue (leaky bucket
              strategy, for a fixed delivery rate).

       <b>deferred</b>
              Mail that could not be  delivered  upon  the  first
              attempt.  The  queue manager implements exponential
              backoff  by  doubling  the  time  between  delivery
              attempts.

       <b>corrupt</b>
              Unreadable  or  damaged  queue files are moved here
              for inspection.

       <b>hold</b>   Messages that are kept  "on  hold"  are  kept  here
              until someone sets them free.

<b>DELIVERY</b> <b>STATUS</b> <b>REPORTS</b>
       The  <b>qmgr</b> daemon keeps an eye on per-message delivery sta-
       tus reports in  the  following  directories.  Each  status
       report file has the same name as the corresponding message
       file:

       <b>bounce</b> Per-recipient status information about why mail  is
              bounced.    These   files  are  maintained  by  the
              <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon.

       <b>defer</b>  Per-recipient status information about why mail  is
              delayed.    These   files  are  maintained  by  the
              <a href="defer.8.html"><b>defer</b>(8)</a> daemon.

       The <b>qmgr</b> daemon is responsible for asking the <a href="bounce.8.html"><b>bounce</b>(8)</a> or
       <a href="defer.8.html"><b>defer</b>(8)</a> daemons to send non-delivery reports.

<b>STRATEGIES</b>
       The  queue  manager implements a variety of strategies for
       either opening queue files (input) or for message delivery
       (output).

       <b>leaky</b> <b>bucket</b>
              This  strategy limits the number of messages in the
              <b>active</b> queue and prevents the  queue  manager  from
              running out of memory under heavy load.

       <b>fairness</b>
              When  the  <b>active</b> queue has room, the queue manager
              takes one message from the <b>incoming</b> queue  and  one
              from the <b>deferred</b> queue. This prevents a large mail
              backlog from blocking the delivery of new mail.

       <b>slow</b> <b>start</b>
              This strategy eliminates "thundering herd" problems
              by slowly adjusting the number of parallel deliver-
              ies to the same destination.

       <b>round</b> <b>robin</b>
              The queue manager sorts delivery requests by desti-
              nation.   Round-robin selection prevents one desti-
              nation from dominating deliveries to other destina-
              tions.

       <b>exponential</b> <b>backoff</b>
              Mail  that  cannot  be  delivered  upon  the  first
              attempt is deferred.   The  time  interval  between
              delivery attempts is doubled after each attempt.

       <b>destination</b> <b>status</b> <b>cache</b>
              The   queue  manager  avoids  unnecessary  delivery
              attempts by  maintaining  a  short-term,  in-memory
              list of unreachable destinations.

<b>TRIGGERS</b>
       On an idle system, the queue manager waits for the arrival
       of trigger events, or it waits for a timer to  go  off.  A
       trigger  is  a one-byte message.  Depending on the message
       received, the queue manager performs one of the  following
       actions  (the message is followed by the symbolic constant
       used internally by the software):

       <b>D</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>DEFERRED)</b>
              Start a deferred queue scan.  If a  deferred  queue
              scan  is  already  in  progress,  that scan will be
              restarted as soon as it finishes.

       <b>I</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>INCOMING)</b>
              Start an incoming queue scan. If an incoming  queue
              scan  is  already  in  progress,  that scan will be
              restarted as soon as it finishes.

       <b>A</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>ALL)</b>
              Ignore deferred queue file time stamps. The request
              affects the next deferred queue scan.

       <b>F</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>FLUSH</b><i>_</i><b>DEAD)</b>
              Purge  all  information  about  dead transports and
              destinations.

       <b>W</b> <b>(TRIGGER</b><i>_</i><b>REQ</b><i>_</i><b>WAKEUP)</b>
              Wakeup call, This is used by the master  server  to
              instantiate  servers  that  should not go away for-
              ever. The action is  to  start  an  incoming  queue
              scan.

       The  <b>qmgr</b> daemon reads an entire buffer worth of triggers.
       Multiple identical trigger  requests  are  collapsed  into
       one,  and trigger requests are sorted so that <b>A</b> and <b>F</b> pre-
       cede <b>D</b> and <b>I</b>. Thus, in order to  force  a  deferred  queue
       run, one would request <b>A</b> <b>F</b> <b>D</b>; in order to notify the queue
       manager of the arrival of new mail one would request <b>I</b>.

<b>STANDARDS</b>
       None. The <b>qmgr</b> daemon does not interact with  the  outside
       world.

<b>SECURITY</b>
       The  <b>qmgr</b>  daemon is not security sensitive. It reads sin-
       gle-character messages from  untrusted  local  users,  and
       thus  may be susceptible to denial of service attacks. The
       <b>qmgr</b> daemon does not talk to the outside world, and it can
       be run at fixed low privilege in a chrooted environment.

<b>DIAGNOSTICS</b>
       Problems and transactions are logged to the syslog daemon.
       Corrupted message files are saved to the <b>corrupt</b> queue for
       further inspection.

       Depending  on the setting of the <b>notify</b><i>_</i><b>classes</b> parameter,
       the postmaster is notified of bounces and of  other  trou-
       ble.

<b>BUGS</b>
       A  single  queue  manager  process has to compete for disk
       access with multiple front-end processes such as <b>smtpd</b>.  A
       sudden  burst  of  inbound mail can negatively impact out-
       bound delivery rates.

<b>CONFIGURATION</b> <b>PARAMETERS</b>
       The following <b>main.cf</b> parameters are  especially  relevant
       to  this  program. See the Postfix <b>main.cf</b> file for syntax
       details and for default values.  Use  the  <b>postfix</b>  <b>reload</b>
       command after a configuration change.

<b>Miscellaneous</b>
       <b>allow</b><i>_</i><b>min</b><i>_</i><b>user</b>
              Do  not  bounce recipient addresses that begin with
              '-'.

       <b>queue</b><i>_</i><b>directory</b>
              Top-level directory of the Postfix queue.

<b>Active</b> <b>queue</b> <b>controls</b>
       <b>qmgr</b><i>_</i><b>clog</b><i>_</i><b>warn</b><i>_</i><b>time</b>
              Minimal delay between warnings that a specific des-
              tination is clogging up the active queue. Specify 0
              to disable.

       <b>qmgr</b><i>_</i><b>message</b><i>_</i><b>active</b><i>_</i><b>limit</b>
              Limit the number of messages in the active queue.

       <b>qmgr</b><i>_</i><b>message</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
              Limit the number of in-memory recipients.

              This parameter also limits the size of  the  short-
              term, in-memory destination cache.

<b>Timing</b> <b>controls</b>
       <b>minimal</b><i>_</i><b>backoff</b><i>_</i><b>time</b>
              Minimal  time  in seconds between delivery attempts
              of a deferred message.

              This parameter also limits the time an  unreachable
              destination  is  kept  in the short-term, in-memory
              destination status cache.

       <b>maximal</b><i>_</i><b>backoff</b><i>_</i><b>time</b>
              Maximal time in seconds between  delivery  attempts
              of a deferred message.

       <b>maximal</b><i>_</i><b>queue</b><i>_</i><b>lifetime</b>
              Maximal  time in days a message is queued before it
              is sent back as undeliverable.

       <b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b>
              Time in seconds between deferred queue scans. Queue
              scans do not overlap.

       <b>transport</b><i>_</i><b>retry</b><i>_</i><b>time</b>
              Time  in seconds between attempts to contact a bro-
              ken delivery transport.

<b>Concurrency</b> <b>controls</b>
       In the text below, <i>transport</i> is the first field in a  <b>mas-</b>
       <b>ter.cf</b> entry.

       <b>qmgr</b><i>_</i><b>fudge</b><i>_</i><b>factor</b> (valid range: 10..100)
              The  percentage  of  delivery resources that a busy
              mail system will use up for  delivery  of  a  large
              mailing  list  message.  With 100%, delivery of one
              message does not begin before the previous  message
              has  been  delivered.  This results in good perfor-
              mance for large mailing lists, but results in  poor
              response  time for one-to-one mail.  With less than
              100%, response time for one-to-one  mail  improves,
              but  large  mailing  list delivery performance suf-
              fers. In the worst case, recipients near the begin-
              ning  of  a  large list receive a burst of messages
              immediately, while recipients near the end of  that
              list  receive  that  same burst of messages a whole
              day later.

       <b>initial</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b>
              Initial per-destination concurrency level for  par-
              allel delivery to the same destination.

       <b>default</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
              Default  limit on the number of parallel deliveries
              to the same destination.

       <i>transport_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
              Limit on the number of parallel deliveries  to  the
              same  destination,  for delivery via the named mes-
              sage <i>transport</i>.

<b>Recipient</b> <b>controls</b>
       <b>default</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
              Default limit on the number of recipients per  mes-
              sage transfer.

       <i>transport_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
              Limit  on  the  number  of  recipients  per message
              transfer, for the named message <i>transport</i>.

<b>SEE</b> <b>ALSO</b>
       <a href="master.8.html">master(8)</a>, process manager
       syslogd(8) system logging
       <a href="trivial-rewrite.8.html">trivial-rewrite(8)</a>, address routing

<b>LICENSE</b>
       The Secure Mailer license must be  distributed  with  this
       software.

<b>AUTHOR(S)</b>
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA

                                                          QMGR(8)
</pre> </body> </html>