1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
|
<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>
|