399 lines
14 KiB
HTML
399 lines
14 KiB
HTML
<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>
|
|
<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.
|
|
|
|
Mail addressed to a user listed in the optional <b>relocated</b>
|
|
database is bounced with a "user has moved to <i>new_loca-</i>
|
|
<i>tion</i>" message. See <a href="relocated.5.html"><b>relocated</b>(5)</a> for a precise description.
|
|
|
|
<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>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
|
|
|
|
|
|
|
|
1
|
|
|
|
|
|
|
|
|
|
|
|
QMGR(8) QMGR(8)
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
|
|
QMGR(8) QMGR(8)
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
|
|
|
QMGR(8) QMGR(8)
|
|
|
|
|
|
<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>relocated</b><i>_</i><b>maps</b>
|
|
Tables with contact information for users, hosts or
|
|
domains that no longer exist. See <a href="relocated.5.html"><b>relocated</b>(5)</a>.
|
|
|
|
<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>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>min</b><i>_</i><b>backoff</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>max</b><i>_</i><b>backoff</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.
|
|
|
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
|
|
|
|
|
QMGR(8) QMGR(8)
|
|
|
|
|
|
<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>qmgr</b><i>_</i><b>site</b><i>_</i><b>hog</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 to a single
|
|
site. With 100%, mail is delivered in first-in,
|
|
first-out order, so that a burst of mail for one
|
|
site can block mail for other destinations. With
|
|
less than 100%, the excess mail is deferred. The
|
|
deferred mail is delivered in little bursts, the
|
|
remainder of the backlog being deferred again, with
|
|
a lot of I/O activity happening as Postfix searches
|
|
the deferred queue for deliverable mail.
|
|
|
|
<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>.
|
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
|
|
|
|
|
QMGR(8) QMGR(8)
|
|
|
|
|
|
<b>SEE</b> <b>ALSO</b>
|
|
<a href="master.8.html">master(8)</a>, process manager
|
|
<a href="relocated.5.html">relocated(5)</a>, format of the "user has moved" table
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
</pre> </body> </html>
|