xref: /netbsd-src/external/ibm-public/postfix/dist/html/postconf.5.html (revision c48c605c14fd8622b523d1d6a3f0c0bad133ea89)
1<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
2        "http://www.w3.org/TR/html4/loose.dtd">
3
4<html>
5
6<head>
7
8<title>Postfix Configuration Parameters </title>
9
10<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
11<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
12
13</head>
14
15<body>
16
17<h1><img src="postfix-logo.jpg" width="203" height="98" alt="">Postfix Configuration Parameters </h1>
18
19<hr>
20
21<h2> Postfix main.cf file format </h2>
22
23<p> The Postfix main.cf configuration file specifies a very small
24subset of all the parameters that control the operation of the
25Postfix mail system. Parameters not explicitly specified are left
26at their default values. </p>
27
28<p> The general format of the main.cf file is as follows: </p>
29
30<ul>
31
32<li> <p> Each logical line is in the form "parameter = value".
33Whitespace around the "=" is ignored, as is whitespace at the end
34of a logical line. </p>
35
36<li> <p> Empty lines and whitespace-only lines are ignored, as are
37lines whose first non-whitespace character is a `#'. </p>
38
39<li> <p> A logical line starts with non-whitespace text. A line
40that starts with whitespace continues a logical line. </p>
41
42<li> <p> A parameter value may refer to other parameters. </p>
43
44<ul>
45
46<li> <p> The expressions "$name" and "${name}" are recursively
47replaced with the value of the named parameter. The parameter name
48must contain only characters from the set [a-zA-Z0-9_].
49An undefined parameter value is replaced with the empty value.  </p>
50
51<li> <p> The expressions "${name?value}" and "${name?{value}}" are
52replaced with "value" when "$name" is non-empty. The parameter name
53must contain only characters from the set [a-zA-Z0-9_]. These forms are
54supported with Postfix versions &ge; 2.2 and &ge; 3.0, respectively.
55</p>
56
57<li> <p> The expressions "${name:value}" and "${name:{value}}" are
58replaced with "value" when "$name" is empty. The parameter name must
59contain only characters from the set [a-zA-Z0-9_]. These forms are
60supported with Postfix versions &ge; 2.2 and &ge; 3.0, respectively.
61</p>
62
63<li> <p> The expression "${name?{value1}:{value2}}" is replaced
64with "value1" when "$name" is non-empty, and with "value2" when
65"$name" is empty.  The "{}" is required for "value1", optional for
66"value2".  The parameter name must contain only characters from the
67set [a-zA-Z0-9_].  This form is supported with Postfix versions
68&ge; 3.0.  </p>
69
70<li> <p> The first item inside "${...}" may be a relational expression
71of the form: "{value3} == {value4}". Besides the "==" (equality)
72operator Postfix supports "!=" (inequality), "&lt;", "&le;", "&ge;",
73and "&gt;". The comparison is numerical when both operands are all
74digits, otherwise the comparison is lexicographical. These forms
75are supported with Postfix versions &ge; 3.0. </p>
76
77<li> <p> Each "value" is subject to recursive named parameter and
78relational expression evaluation, except where noted.  </p>
79
80<li> <p> Whitespace before or after each "{value}" is ignored. </p>
81
82<li> <p> Specify "$$" to produce a single "$" character. </p>
83
84<li> <p> The legacy form "$(...)" is equivalent to the preferred
85form "${...}". </p>
86
87</ul>
88
89<li> <p> When the same parameter is defined multiple times, only
90the last instance is remembered. </p>
91
92<li> <p> Otherwise, the order of main.cf parameter definitions does
93not matter. </p>
94
95</ul>
96
97<p> The remainder of this document is a description of all Postfix
98configuration parameters. Default values are shown after the
99parameter name in parentheses, and can be looked up with the
100"<b>postconf -d</b>" command. </p>
101
102<p> Note: this is not an invitation to make changes to Postfix
103configuration parameters. Unnecessary changes are likely to impair
104the operation of the mail system.  </p>
105
106<dl>
107<DT><b><a name="2bounce_notice_recipient">2bounce_notice_recipient</a>
108(default: postmaster)</b></DT><DD>
109
110<p> The recipient of undeliverable mail that cannot be returned to
111the sender.  This feature is enabled with the <a href="postconf.5.html#notify_classes">notify_classes</a>
112parameter.  </p>
113
114
115</DD>
116
117<DT><b><a name="access_map_defer_code">access_map_defer_code</a>
118(default: 450)</b></DT><DD>
119
120<p>
121The numerical Postfix SMTP server response code for
122an <a href="access.5.html">access(5)</a> map "defer" action, including "<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>"
123or "<a href="postconf.5.html#defer_if_reject">defer_if_reject</a>". Prior to Postfix 2.6, the response
124is hard-coded as "450".
125</p>
126
127<p>
128Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
129</p>
130
131<p>
132This feature is available in Postfix 2.6 and later.
133</p>
134
135
136</DD>
137
138<DT><b><a name="access_map_reject_code">access_map_reject_code</a>
139(default: 554)</b></DT><DD>
140
141<p>
142The numerical Postfix SMTP server response code for
143an <a href="access.5.html">access(5)</a> map "reject" action.
144</p>
145
146<p>
147Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
148</p>
149
150
151</DD>
152
153<DT><b><a name="address_verify_cache_cleanup_interval">address_verify_cache_cleanup_interval</a>
154(default: 12h)</b></DT><DD>
155
156<p> The amount of time between <a href="verify.8.html">verify(8)</a> address verification
157database cleanup runs. This feature requires that the database
158supports the "delete" and "sequence" operators.  Specify a zero
159interval to disable database cleanup. </p>
160
161<p> After each database cleanup run, the <a href="verify.8.html">verify(8)</a> daemon logs the
162number of entries that were retained and dropped. A cleanup run is
163logged as "partial" when the daemon terminates early after "<b>postfix
164reload</b>", "<b>postfix stop</b>", or no requests for $<a href="postconf.5.html#max_idle">max_idle</a>
165seconds. </p>
166
167<p> Specify a non-negative time value (an integral value plus an optional
168one-letter suffix that specifies the time unit).  Time units: s
169(seconds), m (minutes), h (hours), d (days), w (weeks).
170The default time unit is h (hours).  </p>
171
172<p> This feature is available in Postfix 2.7. </p>
173
174
175</DD>
176
177<DT><b><a name="address_verify_default_transport">address_verify_default_transport</a>
178(default: $<a href="postconf.5.html#default_transport">default_transport</a>)</b></DT><DD>
179
180<p>
181Overrides the <a href="postconf.5.html#default_transport">default_transport</a> parameter setting for address
182verification probes.
183</p>
184
185<p>
186This feature is available in Postfix 2.1 and later.
187</p>
188
189
190</DD>
191
192<DT><b><a name="address_verify_local_transport">address_verify_local_transport</a>
193(default: $<a href="postconf.5.html#local_transport">local_transport</a>)</b></DT><DD>
194
195<p>
196Overrides the <a href="postconf.5.html#local_transport">local_transport</a> parameter setting for address
197verification probes.
198</p>
199
200<p>
201This feature is available in Postfix 2.1 and later.
202</p>
203
204
205</DD>
206
207<DT><b><a name="address_verify_map">address_verify_map</a>
208(default: see "postconf -d" output)</b></DT><DD>
209
210<p>
211Lookup table for persistent address verification status
212storage.  The table is maintained by the <a href="verify.8.html">verify(8)</a> service, and
213is opened before the process releases privileges.
214</p>
215
216<p>
217The lookup table is persistent by default (Postfix 2.7 and later).
218Specify an empty table name to keep the information in volatile
219memory which is lost after "<b>postfix reload</b>" or "<b>postfix
220stop</b>". This is the default with Postfix version 2.6 and earlier.
221</p>
222
223<p>
224Specify a location in a file system that will not fill up. If the
225database becomes corrupted, the world comes to an end. To recover,
226delete (NOT: truncate) the file and do "<b>postfix reload</b>".
227</p>
228
229<p> Postfix daemon processes do not use root privileges when opening
230this file (Postfix 2.5 and later).  The file must therefore be
231stored under a Postfix-owned directory such as the <a href="postconf.5.html#data_directory">data_directory</a>.
232As a migration aid, an attempt to open the file under a non-Postfix
233directory is redirected to the Postfix-owned <a href="postconf.5.html#data_directory">data_directory</a>, and a
234warning is logged. </p>
235
236<p>
237Examples:
238</p>
239
240<pre>
241<a href="postconf.5.html#address_verify_map">address_verify_map</a> = <a href="DATABASE_README.html#types">hash</a>:/var/db/postfix/verify
242<a href="postconf.5.html#address_verify_map">address_verify_map</a> = <a href="DATABASE_README.html#types">btree</a>:/var/db/postfix/verify
243</pre>
244
245<p>
246This feature is available in Postfix 2.1 and later.
247</p>
248
249
250</DD>
251
252<DT><b><a name="address_verify_negative_cache">address_verify_negative_cache</a>
253(default: yes)</b></DT><DD>
254
255<p>
256Enable caching of failed address verification probe results.  When
257this feature is enabled, the cache may pollute quickly with garbage.
258When this feature is disabled, Postfix will generate an address
259probe for every lookup.
260</p>
261
262<p>
263This feature is available in Postfix 2.1 and later.
264</p>
265
266
267</DD>
268
269<DT><b><a name="address_verify_negative_expire_time">address_verify_negative_expire_time</a>
270(default: 3d)</b></DT><DD>
271
272<p>
273The time after which a failed probe expires from the address
274verification cache.
275</p>
276
277<p> Specify a non-zero time value (an integral value plus an optional
278one-letter suffix that specifies the time unit).  Time units: s
279(seconds), m (minutes), h (hours), d (days), w (weeks).
280The default time unit is d (days).  </p>
281
282<p>
283This feature is available in Postfix 2.1 and later.
284</p>
285
286
287</DD>
288
289<DT><b><a name="address_verify_negative_refresh_time">address_verify_negative_refresh_time</a>
290(default: 3h)</b></DT><DD>
291
292<p>
293The time after which a failed address verification probe needs to
294be refreshed.
295</p>
296
297<p> Specify a non-zero time value (an integral value plus an optional
298one-letter suffix that specifies the time unit).  Time units: s
299(seconds), m (minutes), h (hours), d (days), w (weeks).
300The default time unit is h (hours).  </p>
301
302<p>
303This feature is available in Postfix 2.1 and later.
304</p>
305
306
307</DD>
308
309<DT><b><a name="address_verify_pending_request_limit">address_verify_pending_request_limit</a>
310(default: see "postconf -d" output)</b></DT><DD>
311
312<p> A safety limit that prevents address verification requests from
313overwhelming the Postfix queue. By default, the number of pending
314requests is limited to 1/4 of the <a href="QSHAPE_README.html#active_queue">active queue</a> maximum size
315(<a href="postconf.5.html#qmgr_message_active_limit">qmgr_message_active_limit</a>). The queue manager enforces the limit
316by tempfailing requests that exceed the limit. This affects only
317unknown addresses and inactive addresses that have expired, because
318the <a href="verify.8.html">verify(8)</a> daemon automatically refreshes an active address
319before it expires. </p>
320
321<p> This feature is available in Postfix 3.1 and later.  </p>
322
323
324</DD>
325
326<DT><b><a name="address_verify_poll_count">address_verify_poll_count</a>
327(default: normal: 3, overload: 1)</b></DT><DD>
328
329<p>
330How many times to query the <a href="verify.8.html">verify(8)</a> service for the completion
331of an address verification request in progress.
332</p>
333
334<p> By default, the Postfix SMTP server polls the <a href="verify.8.html">verify(8)</a> service
335up to three times under non-overload conditions, and only once when
336under overload.  With Postfix version 2.5 and earlier, the SMTP
337server always polls the <a href="verify.8.html">verify(8)</a> service up to three times by
338default.  </p>
339
340<p>
341Specify 1 to implement a crude form of greylisting, that is, always
342defer the first delivery request for a new address.
343</p>
344
345<p>
346Examples:
347</p>
348
349<pre>
350# Postfix &le; 2.6 default
351<a href="postconf.5.html#address_verify_poll_count">address_verify_poll_count</a> = 3
352# Poor man's greylisting
353<a href="postconf.5.html#address_verify_poll_count">address_verify_poll_count</a> = 1
354</pre>
355
356<p>
357This feature is available in Postfix 2.1 and later.
358</p>
359
360
361</DD>
362
363<DT><b><a name="address_verify_poll_delay">address_verify_poll_delay</a>
364(default: 3s)</b></DT><DD>
365
366<p>
367The delay between queries for the completion of an address
368verification request in progress.
369</p>
370
371<p>
372The default polling delay is 3 seconds.
373</p>
374
375<p> Specify a non-zero time value (an integral value plus an optional
376one-letter suffix that specifies the time unit).  Time units: s
377(seconds), m (minutes), h (hours), d (days), w (weeks).
378The default time unit is s (seconds).  </p>
379
380<p>
381This feature is available in Postfix 2.1 and later.
382</p>
383
384
385</DD>
386
387<DT><b><a name="address_verify_positive_expire_time">address_verify_positive_expire_time</a>
388(default: 31d)</b></DT><DD>
389
390<p>
391The time after which a successful probe expires from the address
392verification cache.
393</p>
394
395<p> Specify a non-zero time value (an integral value plus an optional
396one-letter suffix that specifies the time unit).  Time units: s
397(seconds), m (minutes), h (hours), d (days), w (weeks).
398The default time unit is d (days).  </p>
399
400<p>
401This feature is available in Postfix 2.1 and later.
402</p>
403
404
405</DD>
406
407<DT><b><a name="address_verify_positive_refresh_time">address_verify_positive_refresh_time</a>
408(default: 7d)</b></DT><DD>
409
410<p>
411The time after which a successful address verification probe needs
412to be refreshed.  The address verification status is not updated
413when the probe fails (optimistic caching).
414</p>
415
416<p> Specify a non-zero time value (an integral value plus an optional
417one-letter suffix that specifies the time unit).  Time units: s
418(seconds), m (minutes), h (hours), d (days), w (weeks).
419The default time unit is d (days).  </p>
420
421<p>
422This feature is available in Postfix 2.1 and later.
423</p>
424
425
426</DD>
427
428<DT><b><a name="address_verify_relay_transport">address_verify_relay_transport</a>
429(default: $<a href="postconf.5.html#relay_transport">relay_transport</a>)</b></DT><DD>
430
431<p>
432Overrides the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter setting for address
433verification probes.
434</p>
435
436<p>
437This feature is available in Postfix 2.1 and later.
438</p>
439
440
441</DD>
442
443<DT><b><a name="address_verify_relayhost">address_verify_relayhost</a>
444(default: $<a href="postconf.5.html#relayhost">relayhost</a>)</b></DT><DD>
445
446<p>
447Overrides the <a href="postconf.5.html#relayhost">relayhost</a> parameter setting for address verification
448probes. This information can be overruled with the <a href="transport.5.html">transport(5)</a> table.
449</p>
450
451<p>
452This feature is available in Postfix 2.1 and later.
453</p>
454
455
456</DD>
457
458<DT><b><a name="address_verify_sender">address_verify_sender</a>
459(default: $<a href="postconf.5.html#double_bounce_sender">double_bounce_sender</a>)</b></DT><DD>
460
461<p> The sender address to use in address verification probes; prior
462to Postfix 2.5 the default was "postmaster". To
463avoid problems with address probes that are sent in response to
464address probes, the Postfix SMTP server excludes the probe sender
465address from all SMTPD access blocks. </p>
466
467<p>
468Specify an empty value (<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> =) or &lt;&gt; if you want
469to use the null sender address. Beware, some sites reject mail from
470&lt;&gt;, even though RFCs require that such addresses be accepted.
471</p>
472
473<p>
474Examples:
475</p>
476
477<pre>
478<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> = &lt;&gt;
479<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> = postmaster@<a href="postconf.5.html#mydomain">mydomain</a>
480</pre>
481
482<p>
483This feature is available in Postfix 2.1 and later.
484</p>
485
486
487</DD>
488
489<DT><b><a name="address_verify_sender_dependent_default_transport_maps">address_verify_sender_dependent_default_transport_maps</a>
490(default: $<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a>)</b></DT><DD>
491
492<p> Overrides the <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> parameter
493setting for address verification probes.  </p>
494
495<p> This feature is available in Postfix 2.7 and later.  </p>
496
497
498</DD>
499
500<DT><b><a name="address_verify_sender_dependent_relayhost_maps">address_verify_sender_dependent_relayhost_maps</a>
501(default: $<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>)</b></DT><DD>
502
503<p>
504Overrides the <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> parameter setting for address
505verification probes.
506</p>
507
508<p>
509This feature is available in Postfix 2.3 and later.
510</p>
511
512
513</DD>
514
515<DT><b><a name="address_verify_sender_ttl">address_verify_sender_ttl</a>
516(default: 0s)</b></DT><DD>
517
518<p> The time between changes in the time-dependent portion of address
519verification probe sender addresses. The time-dependent portion is
520appended to the localpart of the address specified with the
521<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> parameter. This feature is ignored when the
522probe sender addresses is the null sender, i.e. the <a href="postconf.5.html#address_verify_sender">address_verify_sender</a>
523value is empty or &lt;&gt;. </p>
524
525<p> Historically, the probe sender address was fixed. This has
526caused such addresses to end up on spammer mailing lists, and has
527resulted in wasted network and processing resources.  </p>
528
529<p> To enable time-dependent probe sender addresses, specify a
530non-zero time value. Specify a value of at least several hours,
531to avoid problems with senders that use greylisting. Avoid nice
532TTL values, to make the result less predictable.  </p>
533
534<p> Specify a non-negative time value (an integral value plus an optional
535one-letter suffix that specifies the time unit).  Time units: s
536(seconds), m (minutes), h (hours), d (days), w (weeks).
537The default time unit is s (seconds).  </p>
538
539<p> This feature is available in Postfix 2.9 and later.  </p>
540
541
542</DD>
543
544<DT><b><a name="address_verify_service_name">address_verify_service_name</a>
545(default: verify)</b></DT><DD>
546
547<p>
548The name of the <a href="verify.8.html">verify(8)</a> address verification service. This service
549maintains the status of sender and/or recipient address verification
550probes, and generates probes on request by other Postfix processes.
551</p>
552
553
554</DD>
555
556<DT><b><a name="address_verify_transport_maps">address_verify_transport_maps</a>
557(default: $<a href="postconf.5.html#transport_maps">transport_maps</a>)</b></DT><DD>
558
559<p>
560Overrides the <a href="postconf.5.html#transport_maps">transport_maps</a> parameter setting for address verification
561probes.
562</p>
563
564<p>
565This feature is available in Postfix 2.1 and later.
566</p>
567
568
569</DD>
570
571<DT><b><a name="address_verify_virtual_transport">address_verify_virtual_transport</a>
572(default: $<a href="postconf.5.html#virtual_transport">virtual_transport</a>)</b></DT><DD>
573
574<p>
575Overrides the <a href="postconf.5.html#virtual_transport">virtual_transport</a> parameter setting for address
576verification probes.
577</p>
578
579<p>
580This feature is available in Postfix 2.1 and later.
581</p>
582
583
584</DD>
585
586<DT><b><a name="alias_database">alias_database</a>
587(default: see "postconf -d" output)</b></DT><DD>
588
589<p>
590The alias databases for <a href="local.8.html">local(8)</a> delivery that are updated with
591"<b>newaliases</b>" or with "<b>sendmail -bi</b>".
592</p>
593
594<p>
595This is a separate configuration parameter because not all the
596tables specified with $<a href="postconf.5.html#alias_maps">alias_maps</a> have to be local files.
597</p>
598
599<p>
600Examples:
601</p>
602
603<pre>
604<a href="postconf.5.html#alias_database">alias_database</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/aliases
605<a href="postconf.5.html#alias_database">alias_database</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/mail/aliases
606</pre>
607
608
609</DD>
610
611<DT><b><a name="alias_maps">alias_maps</a>
612(default: see "postconf -d" output)</b></DT><DD>
613
614<p>
615The alias databases that are used for <a href="local.8.html">local(8)</a> delivery. See
616<a href="aliases.5.html">aliases(5)</a> for syntax details.
617Specify zero or more "type:name" lookup tables, separated by
618whitespace or comma. Tables will be searched in the specified order
619until a match is found.
620Note: these lookups are recursive.
621</p>
622
623<p>
624The default list is system dependent.  On systems with NIS, the
625default is to search the local alias database, then the NIS alias
626database.
627</p>
628
629<p>
630If you change the alias database, run "<b>postalias /etc/aliases</b>"
631(or wherever your system stores the mail alias file), or simply
632run "<b>newaliases</b>" to build the necessary DBM or DB file.
633</p>
634
635<p>
636The <a href="local.8.html">local(8)</a> delivery agent disallows regular expression substitution
637of $1 etc. in <a href="postconf.5.html#alias_maps">alias_maps</a>, because that would open a security hole.
638</p>
639
640<p>
641The <a href="local.8.html">local(8)</a> delivery agent will silently ignore requests to use
642the <a href="proxymap.8.html">proxymap(8)</a> server within <a href="postconf.5.html#alias_maps">alias_maps</a>. Instead it will open the
643table directly. Before Postfix version 2.2, the <a href="local.8.html">local(8)</a> delivery
644agent will terminate with a fatal error.
645</p>
646
647<p>
648Examples:
649</p>
650
651<pre>
652<a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/aliases, nis:mail.aliases
653<a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/aliases
654</pre>
655
656
657</DD>
658
659<DT><b><a name="allow_mail_to_commands">allow_mail_to_commands</a>
660(default: alias, forward)</b></DT><DD>
661
662<p>
663Restrict <a href="local.8.html">local(8)</a> mail delivery to external commands.  The default
664is to disallow delivery to "|command" in :include:  files (see
665<a href="aliases.5.html">aliases(5)</a> for the text that defines this terminology).
666</p>
667
668<p>
669Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
670in order to allow commands in <a href="aliases.5.html">aliases(5)</a>, .forward files or in
671:include:  files, respectively.
672</p>
673
674<p>
675Example:
676</p>
677
678<pre>
679<a href="postconf.5.html#allow_mail_to_commands">allow_mail_to_commands</a> = alias,forward,include
680</pre>
681
682
683</DD>
684
685<DT><b><a name="allow_mail_to_files">allow_mail_to_files</a>
686(default: alias, forward)</b></DT><DD>
687
688<p>
689Restrict <a href="local.8.html">local(8)</a> mail delivery to external files. The default is
690to disallow "/file/name" destinations in :include:  files (see
691<a href="aliases.5.html">aliases(5)</a> for the text that defines this terminology).
692</p>
693
694<p>
695Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
696in order to allow "/file/name" destinations in <a href="aliases.5.html">aliases(5)</a>, .forward
697files and in :include:  files, respectively.
698</p>
699
700<p>
701Example:
702</p>
703
704<pre>
705<a href="postconf.5.html#allow_mail_to_files">allow_mail_to_files</a> = alias,forward,include
706</pre>
707
708
709</DD>
710
711<DT><b><a name="allow_min_user">allow_min_user</a>
712(default: no)</b></DT><DD>
713
714<p>
715Allow a sender or recipient address to have `-' as the first
716character.  By
717default, this is not allowed, to avoid accidents with software that
718passes email addresses via the command line. Such software
719would not be able to distinguish a malicious address from a
720bona fide command-line option. Although this can be prevented by
721inserting a "--" option terminator into the command line, this is
722difficult to enforce consistently and globally.  </p>
723
724<p> As of Postfix version 2.5, this feature is implemented by
725<a href="trivial-rewrite.8.html">trivial-rewrite(8)</a>.  With earlier versions this feature was implemented
726by <a href="qmgr.8.html">qmgr(8)</a> and was limited to recipient addresses only. </p>
727
728
729</DD>
730
731<DT><b><a name="allow_percent_hack">allow_percent_hack</a>
732(default: yes)</b></DT><DD>
733
734<p>
735Enable the rewriting of the form "user%domain" to "user@domain".
736This is enabled by default.
737</p>
738
739<p> Note: as of Postfix version 2.2, message header address rewriting
740happens only when one of the following conditions is true: </p>
741
742<ul>
743
744<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
745
746<li> The message is received from a network client that matches
747$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
748
749<li> The message is received from the network, and the
750<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
751
752</ul>
753
754<p> To get the behavior before Postfix version 2.2, specify
755"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
756
757<p>
758Example:
759</p>
760
761<pre>
762<a href="postconf.5.html#allow_percent_hack">allow_percent_hack</a> = no
763</pre>
764
765
766</DD>
767
768<DT><b><a name="allow_srv_lookup_fallback">allow_srv_lookup_fallback</a>
769(default: no)</b></DT><DD>
770
771<p> When SRV record lookup fails or no SRV record exists, fall back
772to MX or IP address lookup as if SRV record lookup was not enabled. <p>
773
774<p> This feature is available in Postfix 3.8 and later. </p>
775
776
777</DD>
778
779<DT><b><a name="allow_untrusted_routing">allow_untrusted_routing</a>
780(default: no)</b></DT><DD>
781
782<p>
783Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
784from untrusted clients to destinations matching $<a href="postconf.5.html#relay_domains">relay_domains</a>.
785</p>
786
787<p>
788By default, this feature is turned off.  This closes a nasty open
789relay loophole where a backup MX host can be tricked into forwarding
790junk mail to a primary MX host which then spams it out to the world.
791</p>
792
793<p>
794This parameter also controls if non-local addresses with sender-specified
795routing can match Postfix access tables. By default, such addresses
796cannot match Postfix access tables, because the address is ambiguous.
797</p>
798
799
800</DD>
801
802<DT><b><a name="alternate_config_directories">alternate_config_directories</a>
803(default: empty)</b></DT><DD>
804
805<p>
806A list of non-default Postfix configuration directories that may
807be specified with "-c <a href="postconf.5.html#config_directory">config_directory</a>" on the command line (in the
808case of <a href="sendmail.1.html">sendmail(1)</a>, with the "-C" option), or via the MAIL_CONFIG
809environment parameter.
810</p>
811
812<p>
813This list must be specified in the default Postfix <a href="postconf.5.html">main.cf</a> file,
814and will be used by set-gid Postfix commands such as <a href="postqueue.1.html">postqueue(1)</a>
815and <a href="postdrop.1.html">postdrop(1)</a>.
816</p>
817
818<p>
819Specify absolute pathnames, separated by comma or space. Note: $name
820expansion is not supported.
821</p>
822
823
824</DD>
825
826<DT><b><a name="always_add_missing_headers">always_add_missing_headers</a>
827(default: no)</b></DT><DD>
828
829<p> Always add (Resent-) From:, To:, Date: or Message-ID: headers
830when not present.  Postfix 2.6 and later add these headers only
831when clients match the <a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> parameter
832setting.  Earlier Postfix versions always add these headers; this
833may break DKIM signatures that cover non-existent headers.
834The <a href="postconf.5.html#undisclosed_recipients_header">undisclosed_recipients_header</a> parameter setting determines
835whether a To: header will be added. </p>
836
837
838</DD>
839
840<DT><b><a name="always_bcc">always_bcc</a>
841(default: empty)</b></DT><DD>
842
843<p>
844Optional address that receives a "blind carbon copy" of each message
845that is received by the Postfix mail system.
846</p>
847
848<p>
849Note: with Postfix 2.3 and later the BCC address is added as if it
850was specified with NOTIFY=NONE. The sender will not be notified
851when the BCC address is undeliverable, as long as all down-stream
852software implements <a href="https://tools.ietf.org/html/rfc3461">RFC 3461</a>.
853</p>
854
855<p>
856Note: with Postfix 2.2 and earlier the sender will be notified
857when the BCC address is undeliverable.
858</p>
859
860<p> Note: automatic BCC recipients are produced only for new mail.
861To avoid mailer loops, automatic BCC recipients are not generated
862after Postfix forwards mail internally, or after Postfix generates
863mail itself. </p>
864
865
866</DD>
867
868<DT><b><a name="anvil_rate_time_unit">anvil_rate_time_unit</a>
869(default: 60s)</b></DT><DD>
870
871<p>
872The time unit over which client connection rates and other rates
873are calculated.
874</p>
875
876<p>
877This feature is implemented by the <a href="anvil.8.html">anvil(8)</a> service which is available
878in Postfix version 2.2 and later.
879</p>
880
881<p>
882The default interval is relatively short. Because of the high
883frequency of updates, the <a href="anvil.8.html">anvil(8)</a> server uses volatile memory
884only. Thus, information is lost whenever the process terminates.
885</p>
886
887<p> Specify a non-zero time value (an integral value plus an optional
888one-letter suffix that specifies the time unit).  Time units: s
889(seconds), m (minutes), h (hours), d (days), w (weeks).
890The default time unit is s (seconds).  </p>
891
892
893</DD>
894
895<DT><b><a name="anvil_status_update_time">anvil_status_update_time</a>
896(default: 600s)</b></DT><DD>
897
898<p>
899How frequently the <a href="anvil.8.html">anvil(8)</a> connection and rate limiting server
900logs peak usage information.
901</p>
902
903<p> Specify a non-zero time value (an integral value plus an optional
904one-letter suffix that specifies the time unit).  Time units: s
905(seconds), m (minutes), h (hours), d (days), w (weeks).
906The default time unit is s (seconds).  </p>
907
908<p>
909This feature is available in Postfix 2.2 and later.
910</p>
911
912
913</DD>
914
915<DT><b><a name="append_at_myorigin">append_at_myorigin</a>
916(default: yes)</b></DT><DD>
917
918<p>
919With locally submitted mail, append the string "@$<a href="postconf.5.html#myorigin">myorigin</a>" to mail
920addresses without domain information. With remotely submitted mail,
921append the string "@$<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a>" instead.
922</p>
923
924<p>
925Note 1: this feature is enabled by default and must not be turned off.
926Postfix does not support domain-less addresses.
927</p>
928
929<p> Note 2: with Postfix version 2.2, message header address rewriting
930happens only when one of the following conditions is true: </p>
931
932<ul>
933
934<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
935
936<li> The message is received from a network client that matches
937$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
938
939<li> The message is received from the network, and the
940<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
941
942</ul>
943
944<p> To get the behavior before Postfix version 2.2, specify
945"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
946
947
948</DD>
949
950<DT><b><a name="append_dot_mydomain">append_dot_mydomain</a>
951(default: Postfix &ge; 3.0: no, Postfix &lt; 3.0: yes)</b></DT><DD>
952
953<p>
954With locally submitted mail, append the string ".$<a href="postconf.5.html#mydomain">mydomain</a>" to
955addresses that have no ".domain" information. With remotely submitted
956mail, append the string ".$<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a>"
957instead.
958</p>
959
960<p>
961Note 1: When disabled (Postfix 3.0 and later), users will not be
962able to send mail to "user@partialdomainname" but will have to
963specify full domain names instead.
964</p>
965
966<p> Note 2: with Postfix version 2.2, message header address rewriting
967happens only when one of the following conditions is true: </p>
968
969<ul>
970
971<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
972
973<li> The message is received from a network client that matches
974$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
975
976<li> The message is received from the network, and the
977<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
978
979</ul>
980
981<p> To get the behavior before Postfix version 2.2, specify
982"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
983
984
985</DD>
986
987<DT><b><a name="application_event_drain_time">application_event_drain_time</a>
988(default: 100s)</b></DT><DD>
989
990<p>
991How long the <a href="postkick.1.html">postkick(1)</a> command waits for a request to enter the
992Postfix daemon process input buffer before giving up.
993</p>
994
995<p> Specify a non-zero time value (an integral value plus an optional
996one-letter suffix that specifies the time unit).  Time units: s
997(seconds), m (minutes), h (hours), d (days), w (weeks).
998The default time unit is s (seconds).  </p>
999
1000<p>
1001This feature is available in Postfix 2.1 and later.
1002</p>
1003
1004
1005</DD>
1006
1007<DT><b><a name="authorized_flush_users">authorized_flush_users</a>
1008(default: <a href="DATABASE_README.html#types">static</a>:anyone)</b></DT><DD>
1009
1010<p>
1011List of users who are authorized to flush the queue.
1012</p>
1013
1014<p>
1015By default, all users are allowed to flush the queue.  Access is
1016always granted if the invoking user is the super-user or the
1017$<a href="postconf.5.html#mail_owner">mail_owner</a> user.  Otherwise, the real UID of the process is looked
1018up in the system password file, and access is granted only if the
1019corresponding login name is on the access list.  The username
1020"unknown" is used for processes whose real UID is not found in the
1021password file.  </p>
1022
1023<p>
1024Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
1025separated by commas and/or whitespace. The list is matched left to
1026right, and the search stops on the first match. A "/file/name"
1027pattern is replaced
1028by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name
1029matches a lookup key (the lookup result is ignored).  Continue long
1030lines by starting the next line with whitespace. Specify "!pattern"
1031to exclude a name from the list. The form "!/file/name" is supported
1032only in Postfix version 2.4 and later.  </p>
1033
1034<p>
1035This feature is available in Postfix 2.2 and later.
1036</p>
1037
1038
1039</DD>
1040
1041<DT><b><a name="authorized_mailq_users">authorized_mailq_users</a>
1042(default: <a href="DATABASE_README.html#types">static</a>:anyone)</b></DT><DD>
1043
1044<p>
1045List of users who are authorized to view the queue.
1046</p>
1047
1048<p>
1049By default, all users are allowed to view the queue.  Access is
1050always granted if the invoking user is the super-user or the
1051$<a href="postconf.5.html#mail_owner">mail_owner</a> user.  Otherwise, the real UID of the process is looked
1052up in the system password file, and access is granted only if the
1053corresponding login name is on the access list.  The username
1054"unknown" is used for processes whose real UID is not found in the
1055password file.  </p>
1056
1057<p>
1058Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
1059separated by commas and/or whitespace. The list is matched left to
1060right, and the search stops on the first match. A "/file/name"
1061pattern is replaced
1062by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name
1063matches a lookup key (the lookup result is ignored).  Continue long
1064lines by starting the next line with whitespace. Specify "!pattern"
1065to exclude a user name from the list. The form "!/file/name" is
1066supported only in Postfix version 2.4 and later.  </p>
1067
1068<p>
1069This feature is available in Postfix 2.2 and later.
1070</p>
1071
1072
1073</DD>
1074
1075<DT><b><a name="authorized_submit_users">authorized_submit_users</a>
1076(default: <a href="DATABASE_README.html#types">static</a>:anyone)</b></DT><DD>
1077
1078<p>
1079List of users who are authorized to submit mail with the <a href="sendmail.1.html">sendmail(1)</a>
1080command (and with the privileged <a href="postdrop.1.html">postdrop(1)</a> helper command).
1081</p>
1082
1083<p>
1084By default, all users are allowed to submit mail.  Otherwise, the
1085real UID of the process is looked up in the system password file,
1086and access is granted only if the corresponding login name is on
1087the access list.  The username "unknown" is used for processes
1088whose real UID is not found in the password file. To deny mail
1089submission access to all users specify an empty list.  </p>
1090
1091<p>
1092Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
1093separated by commas and/or whitespace. The list is matched left to right,
1094and the search stops on the first match. A "/file/name" pattern is
1095replaced by its contents;
1096a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name matches a lookup key
1097(the lookup result is ignored).  Continue long lines by starting the
1098next line with whitespace. Specify "!pattern" to exclude a user
1099name from the list. The form "!/file/name" is supported only in
1100Postfix version 2.4 and later.  </p>
1101
1102<p>
1103Example:
1104</p>
1105
1106<pre>
1107<a href="postconf.5.html#authorized_submit_users">authorized_submit_users</a> = !www, <a href="DATABASE_README.html#types">static</a>:all
1108</pre>
1109
1110<p>
1111This feature is available in Postfix 2.2 and later.
1112</p>
1113
1114
1115</DD>
1116
1117<DT><b><a name="authorized_verp_clients">authorized_verp_clients</a>
1118(default: $<a href="postconf.5.html#mynetworks">mynetworks</a>)</b></DT><DD>
1119
1120<p> What remote SMTP clients are allowed to specify the XVERP command.
1121This command requests that mail be delivered one recipient at a
1122time with a per recipient return address.  </p>
1123
1124<p> By default, only trusted clients are allowed to specify XVERP.
1125</p>
1126
1127<p> This parameter was introduced with Postfix version 1.1.  Postfix
1128version 2.1 renamed this parameter to <a href="postconf.5.html#smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a>
1129and changed the default to none. </p>
1130
1131<p> Specify a list of network/netmask patterns, separated by commas
1132and/or whitespace. The mask specifies the number of bits in the
1133network part of a host address. You can also specify hostnames or
1134.domain names (the initial dot causes the domain to match any name
1135below it),  "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns.  A "/file/name"
1136pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table
1137is matched when a table entry matches a lookup string (the lookup
1138result is ignored).  Continue long lines by starting the next line
1139with whitespace. Specify "!pattern" to exclude an address or network
1140block from the list. The form "!/file/name" is supported only in
1141Postfix version 2.4 and later. </p>
1142
1143<p> Note: IP version 6 address information must be specified inside
1144<tt>[]</tt> in the <a href="postconf.5.html#authorized_verp_clients">authorized_verp_clients</a> value, and in files
1145specified with "/file/name".  IP version 6 addresses contain the
1146":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
1147pattern.  </p>
1148
1149
1150</DD>
1151
1152<DT><b><a name="backwards_bounce_logfile_compatibility">backwards_bounce_logfile_compatibility</a>
1153(default: yes)</b></DT><DD>
1154
1155<p>
1156Produce additional <a href="bounce.8.html">bounce(8)</a> logfile records that can be read by
1157Postfix versions before 2.0. The current and more extensible "name =
1158value" format is needed in order to implement more sophisticated
1159functionality.
1160</p>
1161
1162<p>
1163This feature is available in Postfix 2.1 and later.
1164</p>
1165
1166
1167</DD>
1168
1169<DT><b><a name="berkeley_db_create_buffer_size">berkeley_db_create_buffer_size</a>
1170(default: 16777216)</b></DT><DD>
1171
1172<p>
1173The per-table I/O buffer size for programs that create Berkeley DB
1174hash or btree tables.  Specify a byte count.
1175</p>
1176
1177<p>
1178This feature is available in Postfix 2.0 and later.
1179</p>
1180
1181
1182</DD>
1183
1184<DT><b><a name="berkeley_db_read_buffer_size">berkeley_db_read_buffer_size</a>
1185(default: 131072)</b></DT><DD>
1186
1187<p>
1188The per-table I/O buffer size for programs that read Berkeley DB
1189hash or btree tables.  Specify a byte count.
1190</p>
1191
1192<p>
1193This feature is available in Postfix 2.0 and later.
1194</p>
1195
1196
1197</DD>
1198
1199<DT><b><a name="best_mx_transport">best_mx_transport</a>
1200(default: empty)</b></DT><DD>
1201
1202<p>
1203Where the Postfix SMTP client should deliver mail when it detects
1204a "mail loops back to myself" error condition. This happens when
1205the local MTA is the best SMTP mail exchanger for a destination
1206not listed in $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>, $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>,
1207$<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, or $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.  By default,
1208the Postfix SMTP client returns such mail as undeliverable.
1209</p>
1210
1211<p>
1212Specify, for example, "<a href="postconf.5.html#best_mx_transport">best_mx_transport</a> = local" to pass the mail
1213from the Postfix SMTP client to the <a href="local.8.html">local(8)</a> delivery agent. You
1214can specify
1215any message delivery "transport" or "transport:nexthop" that is
1216defined in the <a href="master.5.html">master.cf</a> file. See the <a href="transport.5.html">transport(5)</a> manual page
1217for the syntax and meaning of "transport" or "transport:nexthop".
1218</p>
1219
1220<p>
1221However, this feature is expensive because it ties up a Postfix
1222SMTP client process while the <a href="local.8.html">local(8)</a> delivery agent is doing its
1223work. It is more efficient (for Postfix) to list all <a href="VIRTUAL_README.html#canonical">hosted domains</a>
1224in a table or database.
1225</p>
1226
1227
1228</DD>
1229
1230<DT><b><a name="biff">biff</a>
1231(default: yes)</b></DT><DD>
1232
1233<p>
1234Whether or not to use the local <a href="postconf.5.html#biff">biff</a> service.  This service sends
1235"new mail" notifications to users who have requested new mail
1236notification with the UNIX command "<a href="postconf.5.html#biff">biff</a> y".
1237</p>
1238
1239<p>
1240For compatibility reasons this feature is on by default.  On systems
1241with lots of interactive users, the <a href="postconf.5.html#biff">biff</a> service can be a performance
1242drain.  Specify "<a href="postconf.5.html#biff">biff</a> = no" in <a href="postconf.5.html">main.cf</a> to disable.
1243</p>
1244
1245
1246</DD>
1247
1248<DT><b><a name="body_checks">body_checks</a>
1249(default: empty)</b></DT><DD>
1250
1251<p> Optional lookup tables for content inspection as specified in
1252the <a href="header_checks.5.html">body_checks(5)</a> manual page.  </p>
1253
1254<p> Note: with Postfix versions before 2.0, these rules inspect
1255all content after the primary message headers. </p>
1256
1257
1258</DD>
1259
1260<DT><b><a name="body_checks_size_limit">body_checks_size_limit</a>
1261(default: 51200)</b></DT><DD>
1262
1263<p>
1264How much text in a message body segment (or attachment, if you
1265prefer to use that term) is subjected to <a href="postconf.5.html#body_checks">body_checks</a> inspection.
1266The amount of text is limited to avoid scanning huge attachments.
1267</p>
1268
1269<p>
1270This feature is available in Postfix 2.0 and later.
1271</p>
1272
1273
1274</DD>
1275
1276<DT><b><a name="bounce_notice_recipient">bounce_notice_recipient</a>
1277(default: postmaster)</b></DT><DD>
1278
1279<p>
1280The recipient of postmaster notifications with the message headers
1281of mail that Postfix did not deliver and of SMTP conversation
1282transcripts of mail that Postfix did not receive.  This feature is
1283enabled with the <a href="postconf.5.html#notify_classes">notify_classes</a> parameter.  </p>
1284
1285
1286</DD>
1287
1288<DT><b><a name="bounce_queue_lifetime">bounce_queue_lifetime</a>
1289(default: 5d)</b></DT><DD>
1290
1291<p>
1292Consider a bounce message as undeliverable, when delivery fails
1293with a temporary error, and the time in the queue has reached the
1294<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a> limit.  By default, this limit is the same
1295as for regular mail.
1296</p>
1297
1298<p> Specify a non-negative time value (an integral value plus an optional
1299one-letter suffix that specifies the time unit).  Time units: s
1300(seconds), m (minutes), h (hours), d (days), w (weeks).
1301The default time unit is d (days).  </p>
1302
1303<p>
1304Specify 0 when mail delivery should be tried only once.
1305</p>
1306
1307<p>
1308This feature is available in Postfix 2.1 and later.
1309</p>
1310
1311
1312</DD>
1313
1314<DT><b><a name="bounce_service_name">bounce_service_name</a>
1315(default: bounce)</b></DT><DD>
1316
1317<p>
1318The name of the <a href="bounce.8.html">bounce(8)</a> service. This service maintains a record
1319of failed delivery attempts and generates non-delivery notifications.
1320</p>
1321
1322<p>
1323This feature is available in Postfix 2.0 and later.
1324</p>
1325
1326
1327</DD>
1328
1329<DT><b><a name="bounce_size_limit">bounce_size_limit</a>
1330(default: 50000)</b></DT><DD>
1331
1332<p> The maximal amount of original message text that is sent in a
1333non-delivery notification. Specify a byte count.  A message is
1334returned as either message/rfc822 (the complete original) or as
1335text/rfc822-headers (the headers only).  With Postfix version 2.4
1336and earlier, a message is always returned as message/rfc822 and is
1337truncated when it exceeds the size limit.
1338</p>
1339
1340<p> Notes: </p>
1341
1342<ul>
1343
1344<li> <p> If you increase this limit, then you should increase the
1345<a href="postconf.5.html#mime_nesting_limit">mime_nesting_limit</a> value proportionally.  </p>
1346
1347<li> <p> Be careful when making changes.  Excessively large values
1348will result in the loss of non-delivery notifications, when a bounce
1349message size exceeds a local or remote MTA's message size limit.
1350</p>
1351
1352</ul>
1353
1354
1355</DD>
1356
1357<DT><b><a name="bounce_template_file">bounce_template_file</a>
1358(default: empty)</b></DT><DD>
1359
1360<p> Pathname of a configuration file with bounce message templates.
1361These override the built-in templates of delivery status notification
1362(DSN) messages for undeliverable mail, delayed mail, successful
1363delivery, or delivery verification. The <a href="bounce.5.html">bounce(5)</a> manual page
1364describes how to edit and test template files.  </p>
1365
1366<p> Template message body text may contain $name references to
1367Postfix configuration parameters. The result of $name expansion can
1368be previewed with "<b>postconf -b <i>file_name</i></b>" before the file
1369is placed into the Postfix configuration directory.  </p>
1370
1371<p> This feature is available in Postfix 2.3 and later.  </p>
1372
1373
1374</DD>
1375
1376<DT><b><a name="broken_sasl_auth_clients">broken_sasl_auth_clients</a>
1377(default: no)</b></DT><DD>
1378
1379<p>
1380Enable interoperability with remote SMTP clients that implement an obsolete
1381version of the AUTH command (<a href="https://tools.ietf.org/html/rfc4954">RFC 4954</a>). Examples of such clients
1382are MicroSoft Outlook Express version 4 and MicroSoft Exchange
1383version 5.0.
1384</p>
1385
1386<p>
1387Specify "<a href="postconf.5.html#broken_sasl_auth_clients">broken_sasl_auth_clients</a> = yes" to have Postfix advertise
1388AUTH support in a non-standard way.
1389</p>
1390
1391
1392</DD>
1393
1394<DT><b><a name="canonical_classes">canonical_classes</a>
1395(default: envelope_sender, envelope_recipient, header_sender, header_recipient)</b></DT><DD>
1396
1397<p> What addresses are subject to <a href="postconf.5.html#canonical_maps">canonical_maps</a> address mapping.
1398By default, <a href="postconf.5.html#canonical_maps">canonical_maps</a> address mapping is applied to envelope
1399sender and recipient addresses, and to header sender and header
1400recipient addresses.  </p>
1401
1402<p> Specify one or more of: envelope_sender, envelope_recipient,
1403header_sender, header_recipient </p>
1404
1405<p> This feature is available in Postfix 2.2 and later. </p>
1406
1407
1408</DD>
1409
1410<DT><b><a name="canonical_maps">canonical_maps</a>
1411(default: empty)</b></DT><DD>
1412
1413<p>
1414Optional address mapping lookup tables for message headers and
1415envelopes. The mapping is applied to both sender and recipient
1416addresses, in both envelopes and in headers, as controlled
1417with the <a href="postconf.5.html#canonical_classes">canonical_classes</a> parameter. This is typically used
1418to clean up dirty addresses from legacy mail systems, or to replace
1419login names by Firstname.Lastname.  The table format and lookups
1420are documented in <a href="canonical.5.html">canonical(5)</a>. For an overview of Postfix address
1421manipulations see the <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> document.
1422</p>
1423
1424<p>
1425Specify zero or more "type:name" lookup tables, separated by
1426whitespace or comma. Tables will be searched in the specified order
1427until a match is found.
1428Note: these lookups are recursive.
1429</p>
1430
1431<p>
1432If you use this feature, run "<b>postmap /etc/postfix/canonical</b>" to
1433build the necessary DBM or DB file after every change. The changes
1434will become visible after a minute or so.  Use "<b>postfix reload</b>"
1435to eliminate the delay.
1436</p>
1437
1438<p> Note: with Postfix version 2.2, message header address mapping
1439happens only when message header address rewriting is enabled: </p>
1440
1441<ul>
1442
1443<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
1444
1445<li> The message is received from a network client that matches
1446$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
1447
1448<li> The message is received from the network, and the
1449<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
1450
1451</ul>
1452
1453<p> To get the behavior before Postfix version 2.2, specify
1454"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
1455
1456<p>
1457Examples:
1458</p>
1459
1460<pre>
1461<a href="postconf.5.html#canonical_maps">canonical_maps</a> = <a href="DATABASE_README.html#types">dbm</a>:/etc/postfix/canonical
1462<a href="postconf.5.html#canonical_maps">canonical_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/canonical
1463</pre>
1464
1465
1466</DD>
1467
1468<DT><b><a name="cleanup_service_name">cleanup_service_name</a>
1469(default: cleanup)</b></DT><DD>
1470
1471<p>
1472The name of the <a href="cleanup.8.html">cleanup(8)</a> service. This service rewrites addresses
1473into the standard form, and performs <a href="canonical.5.html">canonical(5)</a> address mapping
1474and <a href="virtual.5.html">virtual(5)</a> aliasing.
1475</p>
1476
1477<p>
1478This feature is available in Postfix 2.0 and later.
1479</p>
1480
1481
1482</DD>
1483
1484<DT><b><a name="command_directory">command_directory</a>
1485(default: see "postconf -d" output)</b></DT><DD>
1486
1487<p>
1488The location of all postfix administrative commands.
1489</p>
1490
1491
1492</DD>
1493
1494<DT><b><a name="command_execution_directory">command_execution_directory</a>
1495(default: empty)</b></DT><DD>
1496
1497<p> The <a href="local.8.html">local(8)</a> delivery agent working directory for delivery to
1498external commands.  Failure to change directory causes the delivery
1499to be deferred. </p>
1500
1501<p> The <a href="postconf.5.html#command_execution_directory">command_execution_directory</a> value is not subject to Postfix
1502configuration parameter $name expansion. Instead, the following
1503$name expansions are done on <a href="postconf.5.html#command_execution_directory">command_execution_directory</a> before the
1504directory is used. Expansion happens in the context
1505of the delivery request.  The result of $name expansion is filtered
1506with the character set that is specified with the
1507<a href="postconf.5.html#execution_directory_expansion_filter">execution_directory_expansion_filter</a> parameter.  </p>
1508
1509<dl>
1510
1511<dt><b>$user</b></dt>
1512
1513<dd>The recipient's username. </dd>
1514
1515<dt><b>$shell</b></dt>
1516
1517<dd>The recipient's login shell pathname. </dd>
1518
1519<dt><b>$home</b></dt>
1520
1521<dd>The recipient's home directory. </dd>
1522
1523<dt><b>$recipient</b></dt>
1524
1525<dd>The full recipient address. </dd>
1526
1527<dt><b>$extension</b></dt>
1528
1529<dd>The optional recipient address extension. </dd>
1530
1531<dt><b>$domain</b></dt>
1532
1533<dd>The recipient domain. </dd>
1534
1535<dt><b>$local</b></dt>
1536
1537<dd>The entire recipient localpart. </dd>
1538
1539<dt><b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a></b></dt>
1540
1541<dd>The address extension delimiter that was found in the recipient
1542address (Postfix 2.11 and later), or the system-wide recipient
1543address extension delimiter (Postfix 2.10 and earlier). </dd>
1544
1545<dt><b>${name?value}</b></dt>
1546
1547<dt><b>${name?{value}}</b> (Postfix &ge; 3.0)</dt>
1548
1549<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
1550
1551<dt><b>${name:value}</b></dt>
1552
1553<dt><b>${name:{value}}</b> (Postfix &ge; 3.0)</dt>
1554
1555<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
1556
1557<dt><b>${name?{value1}:{value2}}</b> (Postfix &ge; 3.0)</dt>
1558
1559<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
1560<i>value2</i> otherwise. </dd>
1561
1562</dl>
1563
1564<p>
1565Instead of $name you can also specify ${name} or $(name).
1566</p>
1567
1568<p> This feature is available in Postfix 2.2 and later. </p>
1569
1570
1571</DD>
1572
1573<DT><b><a name="command_expansion_filter">command_expansion_filter</a>
1574(default: see "postconf -d" output)</b></DT><DD>
1575
1576<p>
1577Restrict the characters that the <a href="local.8.html">local(8)</a> delivery agent allows in
1578$name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_command</a> and $<a href="postconf.5.html#command_execution_directory">command_execution_directory</a>.
1579Characters outside the
1580allowed set are replaced by underscores.
1581</p>
1582
1583
1584</DD>
1585
1586<DT><b><a name="command_time_limit">command_time_limit</a>
1587(default: 1000s)</b></DT><DD>
1588
1589<p>
1590Time limit for delivery to external commands. This limit is used
1591by the <a href="local.8.html">local(8)</a> delivery agent, and is the default time limit for
1592delivery by the <a href="pipe.8.html">pipe(8)</a> delivery agent.
1593</p>
1594
1595<p>
1596Note: if you set this time limit to a large value you must update the
1597global <a href="postconf.5.html#ipc_timeout">ipc_timeout</a> parameter as well.
1598</p>
1599
1600
1601</DD>
1602
1603<DT><b><a name="compatibility_level">compatibility_level</a>
1604(default: 0)</b></DT><DD>
1605
1606<p> A safety net that causes Postfix to run with backwards-compatible
1607default settings after an upgrade to a newer Postfix version. </p>
1608
1609<p> With backwards compatibility turned on (the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#compatibility_level">compatibility_level</a>
1610value is less than the Postfix built-in value), Postfix looks for
1611settings that are left at their implicit default value, and logs a
1612message when a backwards-compatible default setting is required.
1613</p>
1614
1615<blockquote>
1616<pre>
1617using backwards-compatible default setting <i>name=value</i>
1618    to [accept a specific client request]
1619
1620using backwards-compatible default setting <i>name=value</i>
1621    to [enable specific Postfix behavior]
1622</pre>
1623</blockquote>
1624
1625<p> See <a href="COMPATIBILITY_README.html">COMPATIBILITY_README</a> for specific message details. If such
1626a message is logged in the context of a legitimate request, the
1627system administrator should make the backwards-compatible setting
1628permanent in <a href="postconf.5.html">main.cf</a> or <a href="master.5.html">master.cf</a>, for example: </p>
1629
1630<blockquote>
1631<pre>
1632# <b>postconf</b> <i>name=value</i>
1633# <b>postfix reload</b>
1634</pre>
1635</blockquote>
1636
1637<p> When no more backwards-compatible settings need to be made
1638permanent, the administrator should turn off backwards compatibility
1639by updating the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting in <a href="postconf.5.html">main.cf</a>:</p>
1640
1641<blockquote>
1642<pre>
1643# <b>postconf <a href="postconf.5.html#compatibility_level">compatibility_level</a>=<i>N</i></b>
1644# <b>postfix reload</b>
1645</pre>
1646</blockquote>
1647
1648<p> For <i>N</i> specify the number that is logged in your <a href="postfix.1.html">postfix(1)</a>
1649warning message: </p>
1650
1651<blockquote>
1652<pre>
1653warning: To disable backwards compatibility use "postconf
1654    <a href="postconf.5.html#compatibility_level">compatibility_level</a>=<i>N</i>" and "postfix reload"
1655</pre>
1656</blockquote>
1657
1658<p> Starting with Postfix version 3.6, the compatibility level in
1659the above warning message is the Postfix version that introduced
1660the last incompatible change. The level is formatted as
1661<i>major.minor.patch</i>, where <i>patch</i> is usually omitted and
1662defaults to zero. Earlier compatibility levels are 0, 1 and 2. </p>
1663
1664<p> NOTE: this also introduces support for the "&lt;level",
1665"&lt;=level", and other operators to compare compatibility levels.
1666With the standard operators "&lt;", "&lt;=", etc., compatibility
1667level "3.10" would be smaller than "3.9" which is undesirable. </p>
1668
1669<p> This feature is available in Postfix 3.0 and later. </p>
1670
1671
1672</DD>
1673
1674<DT><b><a name="config_directory">config_directory</a>
1675(default: see "postconf -d" output)</b></DT><DD>
1676
1677<p> The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a>
1678configuration files. This can be overruled via the following
1679mechanisms: </p>
1680
1681<ul>
1682
1683<li> <p> The MAIL_CONFIG environment variable (daemon processes
1684and commands). </p>
1685
1686<li> <p> The "-c" command-line option (commands only). </p>
1687
1688</ul>
1689
1690<p> With Postfix commands that run with set-gid privileges, a
1691<a href="postconf.5.html#config_directory">config_directory</a> override either requires root privileges, or it
1692requires that the directory is listed with the <a href="postconf.5.html#alternate_config_directories">alternate_config_directories</a>
1693parameter in the default <a href="postconf.5.html">main.cf</a> file.  </p>
1694
1695
1696</DD>
1697
1698<DT><b><a name="confirm_delay_cleared">confirm_delay_cleared</a>
1699(default: no)</b></DT><DD>
1700
1701<p> After sending a "your message is delayed" notification, inform
1702the sender when the delay clears up. This can result in a sudden
1703burst of notifications at the end of a prolonged network outage,
1704and is therefore disabled by default. </p>
1705
1706<p> See also: <a href="postconf.5.html#delay_warning_time">delay_warning_time</a>. </p>
1707
1708<p> This feature is available in Postfix 3.0 and later. </p>
1709
1710
1711</DD>
1712
1713<DT><b><a name="connection_cache_protocol_timeout">connection_cache_protocol_timeout</a>
1714(default: 5s)</b></DT><DD>
1715
1716<p> Time limit for connection cache connect, send or receive
1717operations.  The time limit is enforced in the client. </p>
1718
1719<p> This feature is available in Postfix 2.3 and later. </p>
1720
1721
1722</DD>
1723
1724<DT><b><a name="connection_cache_service_name">connection_cache_service_name</a>
1725(default: scache)</b></DT><DD>
1726
1727<p> The name of the <a href="scache.8.html">scache(8)</a> connection cache service.  This service
1728maintains a limited pool of cached sessions.  </p>
1729
1730<p> This feature is available in Postfix 2.2 and later. </p>
1731
1732
1733</DD>
1734
1735<DT><b><a name="connection_cache_status_update_time">connection_cache_status_update_time</a>
1736(default: 600s)</b></DT><DD>
1737
1738<p> How frequently the <a href="scache.8.html">scache(8)</a> server logs usage statistics with
1739connection cache hit and miss rates for logical destinations and for
1740physical endpoints. </p>
1741
1742
1743</DD>
1744
1745<DT><b><a name="connection_cache_ttl_limit">connection_cache_ttl_limit</a>
1746(default: 2s)</b></DT><DD>
1747
1748<p> The maximal time-to-live value that the <a href="scache.8.html">scache(8)</a> connection
1749cache server
1750allows. Requests that specify a larger TTL will be stored with the
1751maximum allowed TTL. The purpose of this additional control is to
1752protect the infrastructure against careless people. The cache TTL
1753is already bounded by $<a href="postconf.5.html#max_idle">max_idle</a>.  </p>
1754
1755
1756</DD>
1757
1758<DT><b><a name="content_filter">content_filter</a>
1759(default: empty)</b></DT><DD>
1760
1761<p> After the message is queued, send the entire message to the
1762specified <i>transport:destination</i>. The <i>transport</i> name
1763specifies the first field of a mail delivery agent definition in
1764<a href="master.5.html">master.cf</a>; the syntax of the next-hop <i>destination</i> is described
1765in the manual page of the corresponding delivery agent.  More
1766information about external content filters is in the Postfix
1767<a href="FILTER_README.html">FILTER_README</a> file.  </p>
1768
1769<p> Notes: </p>
1770
1771<ul>
1772
1773<li> <p> This setting has lower precedence than a FILTER action
1774that is specified in an <a href="access.5.html">access(5)</a>, <a href="header_checks.5.html">header_checks(5)</a> or <a href="header_checks.5.html">body_checks(5)</a>
1775table. </p>
1776
1777<li> <p> The meaning of an empty next-hop filter <i>destination</i>
1778is version dependent.  Postfix 2.7 and later will use the recipient
1779domain; earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>.  Specify
1780"<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility with Postfix
17812.6 or earlier, or specify a <a href="postconf.5.html#content_filter">content_filter</a> value with an explicit
1782next-hop <i>destination</i>.  </p>
1783
1784</ul>
1785
1786
1787</DD>
1788
1789<DT><b><a name="cyrus_sasl_config_path">cyrus_sasl_config_path</a>
1790(default: empty)</b></DT><DD>
1791
1792<p> Search path for Cyrus SASL application configuration files,
1793currently used only to locate the $<a href="postconf.5.html#smtpd_sasl_path">smtpd_sasl_path</a>.conf file.
1794Specify zero or more directories separated by a colon character,
1795or an empty value to use Cyrus SASL's built-in search path.  </p>
1796
1797<p> This feature is available in Postfix 2.5 and later when compiled
1798with Cyrus SASL 2.1.22 or later. </p>
1799
1800
1801</DD>
1802
1803<DT><b><a name="daemon_directory">daemon_directory</a>
1804(default: see "postconf -d" output)</b></DT><DD>
1805
1806<p>
1807The directory with Postfix support programs and daemon programs.
1808These should not be invoked directly by humans. The directory must
1809be owned by root.
1810</p>
1811
1812
1813</DD>
1814
1815<DT><b><a name="daemon_table_open_error_is_fatal">daemon_table_open_error_is_fatal</a>
1816(default: no)</b></DT><DD>
1817
1818<p> How a Postfix daemon process handles errors while opening lookup
1819tables: gradual degradation or immediate termination. </p>
1820
1821<dl>
1822
1823<dt> <b> no </b> (default) </dt> <dd> <p> Gradual degradation: a
1824daemon process logs a message of type "error" and continues execution
1825with reduced functionality. Features that do not depend on the
1826unavailable table will work normally, while features that depend
1827on the table will result in a type "warning" message.  <br> When
1828the <a href="postconf.5.html#notify_classes">notify_classes</a> parameter value contains the "data" class, the
1829Postfix SMTP server and client will report transcripts of sessions
1830with an error because a table is unavailable.  </p> </dd>
1831
1832<dt> <b> yes </b> (historical behavior) </dt> <dd> <p> Immediate
1833termination: a daemon process logs a type "fatal" message and
1834terminates immediately.  This option reduces the number of possible
1835code paths through Postfix, and may therefore be slightly more
1836secure than the default.  </p> </dd>
1837
1838</dl>
1839
1840<p> For the sake of sanity, the number of type "error" messages is
1841limited to 13 over the lifetime of a daemon process. </p>
1842
1843<p> This feature is available in Postfix 2.9 and later.  </p>
1844
1845
1846</DD>
1847
1848<DT><b><a name="daemon_timeout">daemon_timeout</a>
1849(default: 18000s)</b></DT><DD>
1850
1851<p> How much time a Postfix daemon process may take to handle a
1852request before it is terminated by a built-in watchdog timer.  </p>
1853
1854<p> Specify a non-zero time value (an integral value plus an optional
1855one-letter suffix that specifies the time unit).  Time units: s
1856(seconds), m (minutes), h (hours), d (days), w (weeks).
1857The default time unit is s (seconds).  </p>
1858
1859
1860</DD>
1861
1862<DT><b><a name="data_directory">data_directory</a>
1863(default: see "postconf -d" output)</b></DT><DD>
1864
1865<p> The directory with Postfix-writable data files (for example:
1866caches, pseudo-random numbers).  This directory must be owned by
1867the <a href="postconf.5.html#mail_owner">mail_owner</a> account, and must not be shared with non-Postfix
1868software.  </p>
1869
1870<p> This feature is available in Postfix 2.5 and later. </p>
1871
1872
1873</DD>
1874
1875<DT><b><a name="debug_peer_level">debug_peer_level</a>
1876(default: 2)</b></DT><DD>
1877
1878<p> The increment in verbose logging level when a nexthop destination,
1879remote client or server name or network address matches a pattern
1880given with the <a href="postconf.5.html#debug_peer_list">debug_peer_list</a> parameter. </p>
1881
1882<p> Per-nexthop debug logging is available in Postfix 3.6 and later. </p>
1883
1884
1885</DD>
1886
1887<DT><b><a name="debug_peer_list">debug_peer_list</a>
1888(default: empty)</b></DT><DD>
1889
1890<p> Optional list of nexthop destination, remote client or server
1891name or network address patterns that, if matched, cause the verbose
1892logging level to increase by the amount specified in $<a href="postconf.5.html#debug_peer_level">debug_peer_level</a>.
1893</p>
1894
1895<p> Per-nexthop debug logging is available in Postfix 3.6 and later. </p>
1896
1897<p> Specify domain names, network/netmask patterns, "/file/name"
1898patterns or "<a href="DATABASE_README.html">type:table</a>" lookup tables. The right-hand side result
1899from "<a href="DATABASE_README.html">type:table</a>" lookups is ignored.  </p>
1900
1901<p> Pattern matching of domain names is controlled by the presence
1902or absence of "<a href="postconf.5.html#debug_peer_list">debug_peer_list</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
1903parameter value.  </p>
1904
1905<p>
1906Examples:
1907</p>
1908
1909<pre>
1910<a href="postconf.5.html#debug_peer_list">debug_peer_list</a> = 127.0.0.1
1911<a href="postconf.5.html#debug_peer_list">debug_peer_list</a> = example.com
1912</pre>
1913
1914
1915</DD>
1916
1917<DT><b><a name="debugger_command">debugger_command</a>
1918(default: empty)</b></DT><DD>
1919
1920<p>
1921The external command to execute when a Postfix daemon program is
1922invoked with the -D option.
1923</p>
1924
1925<p>
1926Use "command .. &amp; sleep 5" so that the debugger can attach before
1927the process marches on. If you use an X-based debugger, be sure to
1928set up your XAUTHORITY environment variable before starting Postfix.
1929</p>
1930
1931<p>
1932Note: the command is subject to $name expansion, before it is
1933passed to the default command interpreter. Specify "$$" to
1934produce a single "$" character.
1935</p>
1936
1937<p>
1938Example:
1939</p>
1940
1941<pre>
1942<a href="postconf.5.html#debugger_command">debugger_command</a> =
1943    PATH=/usr/bin:/usr/X11R6/bin
1944    ddd $<a href="postconf.5.html#daemon_directory">daemon_directory</a>/$<a href="postconf.5.html#process_name">process_name</a> $<a href="postconf.5.html#process_id">process_id</a> &amp; sleep 5
1945</pre>
1946
1947
1948</DD>
1949
1950<DT><b><a name="default_database_type">default_database_type</a>
1951(default: see "postconf -d" output)</b></DT><DD>
1952
1953<p>
1954The default database type for use in <a href="newaliases.1.html">newaliases(1)</a>, <a href="postalias.1.html">postalias(1)</a>
1955and <a href="postmap.1.html">postmap(1)</a> commands. On many UNIX systems the default type is
1956either <b>dbm</b> or <b>hash</b>. The default setting is frozen
1957when the Postfix system is built.
1958</p>
1959
1960<p>
1961Examples:
1962</p>
1963
1964<pre>
1965<a href="postconf.5.html#default_database_type">default_database_type</a> = hash
1966<a href="postconf.5.html#default_database_type">default_database_type</a> = dbm
1967</pre>
1968
1969
1970</DD>
1971
1972<DT><b><a name="default_delivery_slot_cost">default_delivery_slot_cost</a>
1973(default: 5)</b></DT><DD>
1974
1975<p>
1976How often the Postfix queue manager's scheduler is allowed to
1977preempt delivery of one message with another.
1978</p>
1979
1980<p>
1981Each transport maintains a so-called "available delivery slot counter"
1982for each message. One message can be preempted by another one when
1983the other message can be delivered using no more delivery slots
1984(i.e., invocations of delivery agents) than the current message
1985counter has accumulated (or will eventually accumulate - see about
1986slot loans below). This parameter controls how often the counter is
1987incremented - it happens after each <a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a>
1988recipients have been delivered.
1989</p>
1990
1991<p>
1992The cost of 0 is used to disable the preempting scheduling completely.
1993The minimum value the scheduling algorithm can use is 2 - use it
1994if you want to maximize the message throughput rate. Although there
1995is no maximum, it doesn't make much sense to use values above say
199650.
1997</p>
1998
1999<p>
2000The only reason why the value of 2 is not the default is the way
2001this parameter affects the delivery of mailing-list mail. In the
2002worst case, delivery can take somewhere between (cost+1/cost)
2003and (cost/cost-1) times more than if the preemptive scheduler was
2004disabled. The default value of 5 turns out to provide reasonable
2005message response times while making sure the mailing-list deliveries
2006are not extended by more than 20-25 percent even in the worst case.
2007</p>
2008
2009<p> Use <a href="postconf.5.html#transport_delivery_slot_cost"><i>transport</i>_delivery_slot_cost</a> to specify a
2010transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2011name of the message delivery transport.
2012</p>
2013
2014<p>
2015Examples:
2016</p>
2017
2018<pre>
2019<a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a> = 0
2020<a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a> = 2
2021</pre>
2022
2023
2024</DD>
2025
2026<DT><b><a name="default_delivery_slot_discount">default_delivery_slot_discount</a>
2027(default: 50)</b></DT><DD>
2028
2029<p>
2030The default value for transport-specific _delivery_slot_discount
2031settings.
2032</p>
2033
2034<p>
2035This parameter speeds up the moment when a message preemption can
2036happen. Instead of waiting until the full amount of delivery slots
2037required is available, the preemption can happen when
2038<a href="postconf.5.html#transport_delivery_slot_discount"><i>transport</i>_delivery_slot_discount</a> percent of the required amount
2039plus <a href="postconf.5.html#transport_delivery_slot_loan"><i>transport</i>_delivery_slot_loan</a> still remains to be accumulated.
2040Note that the full amount will still have to be accumulated before
2041another preemption can take place later.
2042</p>
2043
2044<p> Use <a href="postconf.5.html#transport_delivery_slot_discount"><i>transport</i>_delivery_slot_discount</a> to specify a
2045transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2046name of the message delivery transport.
2047</p>
2048
2049
2050</DD>
2051
2052<DT><b><a name="default_delivery_slot_loan">default_delivery_slot_loan</a>
2053(default: 3)</b></DT><DD>
2054
2055<p>
2056The default value for transport-specific _delivery_slot_loan
2057settings.
2058</p>
2059
2060<p>
2061This parameter speeds up the moment when a message preemption can
2062happen. Instead of waiting until the full amount of delivery slots
2063required is available, the preemption can happen when
2064<a href="postconf.5.html#transport_delivery_slot_discount">transport_delivery_slot_discount</a> percent of the required amount
2065plus <a href="postconf.5.html#transport_delivery_slot_loan">transport_delivery_slot_loan</a> still remains to be accumulated.
2066Note that the full amount will still have to be accumulated before
2067another preemption can take place later.
2068</p>
2069
2070<p> Use <a href="postconf.5.html#transport_delivery_slot_loan"><i>transport</i>_delivery_slot_loan</a> to specify a
2071transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2072name of the message delivery transport.
2073</p>
2074
2075
2076</DD>
2077
2078<DT><b><a name="default_delivery_status_filter">default_delivery_status_filter</a>
2079(default: empty)</b></DT><DD>
2080
2081<p> Optional filter to replace the delivery status code or explanatory
2082text of successful or unsuccessful deliveries.  This does not allow
2083the replacement of a successful status code (2.X.X) with an
2084unsuccessful status code (4.X.X or 5.X.X) or vice versa.  </p>
2085
2086<p> Note: the (smtp|lmtp)_delivery_status_filter is applied only
2087once per recipient: when delivery is successful, when delivery is
2088rejected with 5XX, or when there are no more alternate MX or A
2089destinations. Use <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> or <a href="postconf.5.html#lmtp_reply_filter">lmtp_reply_filter</a> to inspect
2090responses for all delivery attempts. </p>
2091
2092<p> The following parameters can be used to implement a filter for
2093specific delivery agents: <a href="postconf.5.html#lmtp_delivery_status_filter">lmtp_delivery_status_filter</a>,
2094<a href="postconf.5.html#local_delivery_status_filter">local_delivery_status_filter</a>, <a href="postconf.5.html#pipe_delivery_status_filter">pipe_delivery_status_filter</a>,
2095<a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> or <a href="postconf.5.html#virtual_delivery_status_filter">virtual_delivery_status_filter</a>. These
2096parameters support the same filter syntax as described here. </p>
2097
2098<p> Specify zero or more "<a href="DATABASE_README.html">type:table</a>" lookup table names, separated
2099by comma or whitespace. For each successful or unsuccessful delivery
2100to a recipient, the tables are queried in the specified order with
2101one line of text that is structured as follows: </p>
2102
2103<blockquote>
2104enhanced-status-code SPACE explanatory-text
2105</blockquote>
2106
2107<p> The first table match wins. The lookup result must have the
2108same structure as the query, a successful status code (2.X.X) must
2109be replaced with a successful status code, an unsuccessful status
2110code (4.X.X or 5.X.X) must be replaced with an unsuccessful status
2111code, and the explanatory text field must be non-empty. Other results
2112will result in a warning.  </p>
2113
2114<p> Example 1: convert specific soft TLS errors into hard errors,
2115by overriding the first number in the enhanced status code.  </p>
2116
2117<blockquote>
2118<pre>
2119/etc/postfix/<a href="postconf.5.html">main.cf</a>:
2120    <a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_dsn_filter
2121</pre>
2122</blockquote>
2123
2124<blockquote>
2125<pre>
2126/etc/postfix/smtp_dsn_filter:
2127    /^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
2128        5$1
2129    /^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
2130        5$1
2131    # Do not change the following into hard bounces. They may
2132    # result from a local configuration problem.
2133    # 4.\d+.\d+ TLS is required, but our TLS engine is unavailable
2134    # 4.\d+.\d+ TLS is required, but unavailable
2135    # 4.\d+.\d+ Cannot start TLS: handshake failure
2136</pre>
2137</blockquote>
2138
2139<p> Example 2: censor the per-recipient delivery status text so
2140that it does not reveal the destination command or filename
2141when a remote sender requests confirmation of successful delivery.
2142</p>
2143
2144<blockquote>
2145<pre>
2146/etc/postfix/<a href="postconf.5.html">main.cf</a>:
2147    <a href="postconf.5.html#local_delivery_status_filter">local_delivery_status_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/local_dsn_filter
2148</pre>
2149</blockquote>
2150
2151<blockquote>
2152<pre>
2153/etc/postfix/local_dsn_filter:
2154    /^(2\S+ delivered to file).+/    $1
2155    /^(2\S+ delivered to command).+/ $1
2156</pre>
2157</blockquote>
2158
2159<p> Notes: </p>
2160
2161<ul>
2162
2163<li> <p> This feature will NOT override the <a href="postconf.5.html#soft_bounce">soft_bounce</a> safety net. </p>
2164
2165<li> <p> This feature will change the enhanced status code and text
2166that is logged to the maillog file, and that is reported to the
2167sender in delivery confirmation or non-delivery notifications.
2168</p>
2169
2170</ul>
2171
2172<p> This feature is available in Postfix 3.0 and later. </p>
2173
2174
2175</DD>
2176
2177<DT><b><a name="default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>
2178(default: 1)</b></DT><DD>
2179
2180<p> How many pseudo-cohorts must suffer connection or handshake
2181failure before a specific destination is considered unavailable
2182(and further delivery is suspended). Specify zero to disable this
2183feature. A destination's pseudo-cohort failure count is reset each
2184time a delivery completes without connection or handshake failure
2185for that specific destination. </p>
2186
2187<p> A pseudo-cohort is the number of deliveries equal to a destination's
2188delivery concurrency. </p>
2189
2190<p> Use <a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> to specify
2191a transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2192name of the message delivery transport. </p>
2193
2194<p> This feature is available in Postfix 2.5. The default setting
2195is compatible with earlier Postfix versions. </p>
2196
2197
2198</DD>
2199
2200<DT><b><a name="default_destination_concurrency_limit">default_destination_concurrency_limit</a>
2201(default: 20)</b></DT><DD>
2202
2203<p>
2204The default maximal number of parallel deliveries to the same
2205destination.  This is the default limit for delivery via the <a href="lmtp.8.html">lmtp(8)</a>,
2206<a href="pipe.8.html">pipe(8)</a>, <a href="smtp.8.html">smtp(8)</a> and <a href="virtual.8.html">virtual(8)</a> delivery agents.
2207With a per-destination recipient limit &gt; 1, a destination is a domain,
2208otherwise it is a recipient.
2209</p>
2210
2211<p> Use <a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> to specify a
2212transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2213name of the message delivery transport.
2214</p>
2215
2216
2217</DD>
2218
2219<DT><b><a name="default_destination_concurrency_negative_feedback">default_destination_concurrency_negative_feedback</a>
2220(default: 1)</b></DT><DD>
2221
2222<p> The per-destination amount of delivery concurrency negative
2223feedback, after a delivery completes with a connection or handshake
2224failure. Feedback values are in the range 0..1 inclusive. With
2225negative feedback, concurrency is decremented at the beginning of
2226a sequence of length 1/feedback. This is unlike positive feedback,
2227where concurrency is incremented at the end of a sequence of length
22281/feedback. </p>
2229
2230<p> As of Postfix version 2.5, negative feedback cannot reduce
2231delivery concurrency to zero.  Instead, a destination is marked
2232dead (further delivery suspended) after the failed pseudo-cohort
2233count reaches $<a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>
2234(or $<a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a>).
2235To make the scheduler completely immune to connection or handshake
2236failures, specify a zero feedback value and a zero failed pseudo-cohort
2237limit.  </p>
2238
2239<p> Specify one of the following forms: </p>
2240
2241<dl>
2242
2243<dt> <b><i>number</i> </b> </dt>
2244
2245<dt> <b><i>number</i> / <i>number</i> </b> </dt>
2246
2247<dd> Constant feedback. The value must be in the range 0..1 inclusive.
2248The default setting of "1" is compatible with Postfix versions
2249before 2.5, where a destination's delivery concurrency is throttled
2250down to zero (and further delivery suspended) after a single failed
2251pseudo-cohort. </dd>
2252
2253<dt> <b><i>number</i> / concurrency </b> </dt>
2254
2255<dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
2256The <i>number</i> must be in the range 0..1 inclusive. With
2257<i>number</i> equal to "1", a destination's delivery concurrency
2258is decremented by 1 after each failed pseudo-cohort.  </dd>
2259
2260</dl>
2261
2262<p> A pseudo-cohort is the number of deliveries equal to a destination's
2263delivery concurrency. </p>
2264
2265<p> Use <a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a>
2266to specify a transport-specific override, where <i>transport</i>
2267is the <a href="master.5.html">master.cf</a>
2268name of the message delivery transport. </p>
2269
2270<p> This feature is available in Postfix 2.5. The default setting
2271is compatible with earlier Postfix versions. </p>
2272
2273
2274</DD>
2275
2276<DT><b><a name="default_destination_concurrency_positive_feedback">default_destination_concurrency_positive_feedback</a>
2277(default: 1)</b></DT><DD>
2278
2279<p> The per-destination amount of delivery concurrency positive
2280feedback, after a delivery completes without connection or handshake
2281failure. Feedback values are in the range 0..1 inclusive.  The
2282concurrency increases until it reaches the per-destination maximal
2283concurrency limit. With positive feedback, concurrency is incremented
2284at the end of a sequence with length 1/feedback. This is unlike
2285negative feedback, where concurrency is decremented at the start
2286of a sequence of length 1/feedback. </p>
2287
2288<p> Specify one of the following forms:  </p>
2289
2290<dl>
2291
2292<dt> <b><i>number</i> </b> </dt>
2293
2294<dt> <b><i>number</i> / <i>number</i> </b> </dt>
2295
2296<dd> Constant feedback.  The value must be in the range 0..1
2297inclusive. The default setting of "1" is compatible with Postfix
2298versions before 2.5, where a destination's delivery concurrency
2299doubles after each successful pseudo-cohort.  </dd>
2300
2301<dt> <b><i>number</i> / concurrency </b> </dt>
2302
2303<dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
2304The <i>number</i> must be in the range 0..1 inclusive. With
2305<i>number</i> equal to "1", a destination's delivery concurrency
2306is incremented by 1 after each successful pseudo-cohort.  </dd>
2307
2308</dl>
2309
2310<p> A pseudo-cohort is the number of deliveries equal to a destination's
2311delivery concurrency. </p>
2312
2313<p> Use <a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a>
2314to specify a transport-specific override, where <i>transport</i>
2315is the <a href="master.5.html">master.cf</a> name of the message delivery transport. </p>
2316
2317<p> This feature is available in Postfix 2.5 and later.  </p>
2318
2319
2320</DD>
2321
2322<DT><b><a name="default_destination_rate_delay">default_destination_rate_delay</a>
2323(default: 0s)</b></DT><DD>
2324
2325<p> The default amount of delay that is inserted between individual
2326message deliveries to the same destination and over the same message
2327delivery transport. Specify a non-zero value to rate-limit those
2328message deliveries to at most one per $<a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a>.
2329</p>
2330
2331<p> The resulting behavior depends on the value of the corresponding
2332per-destination recipient limit.
2333
2334</p>
2335
2336<ul>
2337
2338<li> <p> With a corresponding per-destination recipient limit &gt;
23391, the rate delay specifies the time between deliveries to the
2340<i>same domain</i>.  Different domains are delivered in parallel,
2341subject to the process limits specified in <a href="master.5.html">master.cf</a>. </p>
2342
2343<li> <p> With a corresponding per-destination recipient limit equal
2344to 1, the rate delay specifies the time between deliveries to the
2345<i>same recipient</i>. Different recipients are delivered in
2346parallel, subject to the process limits specified in <a href="master.5.html">master.cf</a>.
2347</p>
2348
2349</ul>
2350
2351<p> To enable the delay, specify a non-zero time value (an integral
2352value plus an optional one-letter suffix that specifies the time
2353unit). </p>
2354
2355<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
2356(weeks). The default time unit is s (seconds). </p>
2357
2358<p> NOTE: the delay is enforced by the queue manager. The delay
2359timer state does not survive "<b>postfix reload</b>" or "<b>postfix
2360stop</b>".
2361</p>
2362
2363<p> Use <a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> to specify a
2364transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2365name of the message delivery transport.
2366</p>
2367
2368<p> NOTE: with a non-zero _destination_rate_delay, specify a
2369<a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> of 10
2370or more to prevent Postfix from deferring all mail for the same
2371destination after only one connection or handshake error. </p>
2372
2373<p> This feature is available in Postfix 2.5 and later. </p>
2374
2375
2376</DD>
2377
2378<DT><b><a name="default_destination_recipient_limit">default_destination_recipient_limit</a>
2379(default: 50)</b></DT><DD>
2380
2381<p>
2382The default maximal number of recipients per message delivery.
2383This is the default limit for delivery via the <a href="lmtp.8.html">lmtp(8)</a>, <a href="pipe.8.html">pipe(8)</a>,
2384<a href="smtp.8.html">smtp(8)</a> and <a href="virtual.8.html">virtual(8)</a> delivery agents.
2385</p>
2386
2387<p> Setting this parameter to a value of 1 affects email deliveries
2388as follows:</p>
2389
2390<ul>
2391
2392<li> <p> It changes the meaning of the corresponding per-destination
2393concurrency limit, from concurrency of deliveries to the <i>same
2394domain</i> into concurrency of deliveries to the <i>same recipient</i>.
2395Different recipients are delivered in parallel, subject to the
2396process limits specified in <a href="master.5.html">master.cf</a>. </p>
2397
2398<li> <p> It changes the meaning of the corresponding per-destination
2399rate delay, from the delay between deliveries to the <i>same
2400domain</i> into the delay between deliveries to the <i>same
2401recipient</i>.  Again, different recipients are delivered in parallel,
2402subject to the process limits specified in <a href="master.5.html">master.cf</a>.  </p>
2403
2404<li> <p> It changes the meaning of other corresponding per-destination
2405settings in a similar manner, from settings for delivery to the
2406<i>same domain</i> into settings for delivery to the <i>same
2407recipient</i>.
2408
2409</ul>
2410
2411<p> Use <a href="postconf.5.html#transport_destination_recipient_limit"><i>transport</i>_destination_recipient_limit</a> to specify a
2412transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2413name of the message delivery transport.
2414</p>
2415
2416
2417</DD>
2418
2419<DT><b><a name="default_extra_recipient_limit">default_extra_recipient_limit</a>
2420(default: 1000)</b></DT><DD>
2421
2422<p>
2423The default value for the extra per-transport limit imposed on the
2424number of in-memory recipients.  This extra recipient space is
2425reserved for the cases when the Postfix queue manager's scheduler
2426preempts one message with another and suddenly needs some extra
2427recipient slots for the chosen message in order to avoid performance
2428degradation.
2429</p>
2430
2431<p> Use <a href="postconf.5.html#transport_extra_recipient_limit"><i>transport</i>_extra_recipient_limit</a> to specify a
2432transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2433name of the message delivery transport.
2434</p>
2435
2436
2437</DD>
2438
2439<DT><b><a name="default_filter_nexthop">default_filter_nexthop</a>
2440(default: empty)</b></DT><DD>
2441
2442<p> When a <a href="postconf.5.html#content_filter">content_filter</a> or FILTER request specifies no explicit
2443next-hop destination, use $<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> instead; when
2444that value is empty, use the domain in the recipient address.
2445Specify "<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility
2446with Postfix version 2.6 and earlier, or specify an explicit next-hop
2447destination with each <a href="postconf.5.html#content_filter">content_filter</a> value or FILTER action. </p>
2448
2449<p> This feature is available in Postfix 2.7 and later.  </p>
2450
2451
2452</DD>
2453
2454<DT><b><a name="default_minimum_delivery_slots">default_minimum_delivery_slots</a>
2455(default: 3)</b></DT><DD>
2456
2457<p>
2458How many recipients a message must have in order to invoke the
2459Postfix queue manager's scheduling algorithm at all.  Messages
2460which would never accumulate at least this many delivery slots
2461(subject to slot cost parameter as well) are never preempted.
2462</p>
2463
2464<p> Use <a href="postconf.5.html#transport_minimum_delivery_slots"><i>transport</i>_minimum_delivery_slots</a> to specify a
2465transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2466name of the message delivery transport.
2467</p>
2468
2469
2470</DD>
2471
2472<DT><b><a name="default_privs">default_privs</a>
2473(default: nobody)</b></DT><DD>
2474
2475<p>
2476The default rights used by the <a href="local.8.html">local(8)</a> delivery agent for delivery
2477to an external file or command.  These rights are used when delivery
2478is requested from an <a href="aliases.5.html">aliases(5)</a> file that is owned by <b>root</b>, or
2479when delivery is done on behalf of <b>root</b>. <b>DO NOT SPECIFY A
2480PRIVILEGED USER OR THE POSTFIX OWNER</b>.
2481</p>
2482
2483
2484</DD>
2485
2486<DT><b><a name="default_process_limit">default_process_limit</a>
2487(default: 100)</b></DT><DD>
2488
2489<p>
2490The default maximal number of Postfix child processes that provide
2491a given service. This limit can be overruled for specific services
2492in the <a href="master.5.html">master.cf</a> file.
2493</p>
2494
2495
2496</DD>
2497
2498<DT><b><a name="default_rbl_reply">default_rbl_reply</a>
2499(default: see "postconf -d" output)</b></DT><DD>
2500
2501<p>
2502The default Postfix SMTP server response template for a request that is
2503rejected by an RBL-based restriction. This template can be overruled
2504by specific entries in the optional <a href="postconf.5.html#rbl_reply_maps">rbl_reply_maps</a> lookup table.
2505</p>
2506
2507<p>
2508This feature is available in Postfix 2.0 and later.
2509</p>
2510
2511<p>
2512The template does not support Postfix configuration parameter $name
2513substitution. Instead, it supports exactly one level of $name
2514substitution for the following attributes:
2515</p>
2516
2517<dl>
2518
2519<dt><b>$client</b></dt>
2520
2521<dd>The client hostname and IP address, formatted as name[address]. </dd>
2522
2523<dt><b>$client_address</b></dt>
2524
2525<dd>The client IP address. </dd>
2526
2527<dt><b>$client_name</b></dt>
2528
2529<dd>The client hostname or "unknown". See <a href="postconf.5.html#reject_unknown_client_hostname">reject_unknown_client_hostname</a>
2530for more details. </dd>
2531
2532<dt><b>$reverse_client_name</b></dt>
2533
2534<dd>The client hostname from address-&gt;name lookup, or "unknown".
2535See <a href="postconf.5.html#reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a> for more details. </dd>
2536
2537<dt><b>$helo_name</b></dt>
2538
2539<dd>The hostname given in HELO or EHLO command or empty string. </dd>
2540
2541<dt><b>$rbl_class</b></dt>
2542
2543<dd>The denylisted entity type: Client host, Helo command, Sender
2544address, or Recipient address. </dd>
2545
2546<dt><b>$rbl_code</b></dt>
2547
2548<dd>The numerical SMTP response code, as specified with the
2549<a href="postconf.5.html#maps_rbl_reject_code">maps_rbl_reject_code</a> configuration parameter. Note: The numerical
2550SMTP response code is required, and must appear at the start of the
2551reply. With Postfix version 2.3 and later this information may be followed
2552by an <a href="https://tools.ietf.org/html/rfc3463">RFC 3463</a> enhanced status code. </dd>
2553
2554<dt><b>$rbl_domain</b></dt>
2555
2556<dd>The RBL domain where $rbl_what is denylisted. </dd>
2557
2558<dt><b>$rbl_reason</b></dt>
2559
2560<dd>The reason why $rbl_what is denylisted, or an empty string. </dd>
2561
2562<dt><b>$rbl_what</b></dt>
2563
2564<dd>The entity that is denylisted (an IP address, a hostname, a domain
2565name, or an email address whose domain was denylisted). </dd>
2566
2567<dt><b>$recipient</b></dt>
2568
2569<dd>The recipient address or &lt;&gt; in case of the null address. </dd>
2570
2571<dt><b>$recipient_domain</b></dt>
2572
2573<dd>The recipient domain or empty string. </dd>
2574
2575<dt><b>$recipient_name</b></dt>
2576
2577<dd>The recipient address localpart or &lt;&gt; in case of null address. </dd>
2578
2579<dt><b>$sender</b></dt>
2580
2581<dd>The sender address or &lt;&gt; in case of the null address. </dd>
2582
2583<dt><b>$sender_domain</b></dt>
2584
2585<dd>The sender domain or empty string. </dd>
2586
2587<dt><b>$sender_name</b></dt>
2588
2589<dd>The sender address localpart or &lt;&gt; in case of the null address. </dd>
2590
2591<dt><b>${name?value}</b></dt>
2592
2593<dt><b>${name?{value}}</b> (Postfix &ge; 3.0)</dt>
2594
2595<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
2596
2597<dt><b>${name:value}</b></dt>
2598
2599<dt><b>${name:{value}}</b> (Postfix &ge; 3.0)</dt>
2600
2601<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
2602
2603<dt><b>${name?{value1}:{value2}}</b> (Postfix &ge; 3.0)</dt>
2604
2605<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
2606<i>value2</i> otherwise. </dd>
2607
2608</dl>
2609
2610<p>
2611Instead of $name you can also specify ${name} or $(name).
2612</p>
2613
2614<p> Note: when an enhanced status code is specified in an RBL reply
2615template, it is subject to modification.  The following transformations
2616are needed when the same RBL reply template is used for client,
2617helo, sender, or recipient access restrictions.  </p>
2618
2619<ul>
2620
2621<li> <p> When rejecting a sender address, the Postfix SMTP server
2622will transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the
2623corresponding sender DSN status, and vice versa. </p>
2624
2625<li> <p> When rejecting non-address information (such as the HELO
2626command argument or the client hostname/address), the Postfix SMTP
2627server will transform a sender or recipient DSN status into a generic
2628non-address DSN status (e.g., 4.0.0).  </p>
2629
2630</ul>
2631
2632
2633</DD>
2634
2635<DT><b><a name="default_recipient_limit">default_recipient_limit</a>
2636(default: 20000)</b></DT><DD>
2637
2638<p>
2639The default per-transport upper limit on the number of in-memory
2640recipients.  These limits take priority over the global
2641<a href="postconf.5.html#qmgr_message_recipient_limit">qmgr_message_recipient_limit</a> after the message has been assigned
2642to the respective transports.  See also <a href="postconf.5.html#default_extra_recipient_limit">default_extra_recipient_limit</a>
2643and <a href="postconf.5.html#qmgr_message_recipient_minimum">qmgr_message_recipient_minimum</a>.
2644</p>
2645
2646<p> Use <a href="postconf.5.html#transport_recipient_limit"><i>transport</i>_recipient_limit</a> to specify a
2647transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2648name of the message delivery transport.
2649</p>
2650
2651
2652</DD>
2653
2654<DT><b><a name="default_recipient_refill_delay">default_recipient_refill_delay</a>
2655(default: 5s)</b></DT><DD>
2656
2657<p>
2658The default per-transport maximum delay between refilling recipients.
2659When not all message recipients fit into memory at once, keep loading
2660more of them at least once every this many seconds.  This is used to
2661make sure the recipients are refilled in a timely manner even when
2662$<a href="postconf.5.html#default_recipient_refill_limit">default_recipient_refill_limit</a> is too high for too slow deliveries.
2663</p>
2664
2665<p> Use <a href="postconf.5.html#transport_recipient_refill_delay"><i>transport</i>_recipient_refill_delay</a> to specify a
2666transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2667name of the message delivery transport.
2668</p>
2669
2670<p> This feature is available in Postfix 2.4 and later. </p>
2671
2672
2673</DD>
2674
2675<DT><b><a name="default_recipient_refill_limit">default_recipient_refill_limit</a>
2676(default: 100)</b></DT><DD>
2677
2678<p>
2679The default per-transport limit on the number of recipients refilled at
2680once.  When not all message recipients fit into memory at once, keep
2681loading more of them in batches of at least this many at a time.  See also
2682$<a href="postconf.5.html#default_recipient_refill_delay">default_recipient_refill_delay</a>, which may result in recipient batches
2683lower than this when this limit is too high for too slow deliveries.
2684</p>
2685
2686<p> Use <a href="postconf.5.html#transport_recipient_refill_limit"><i>transport</i>_recipient_refill_limit</a> to specify a
2687transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
2688name of the message delivery transport.
2689</p>
2690
2691<p> This feature is available in Postfix 2.4 and later. </p>
2692
2693
2694</DD>
2695
2696<DT><b><a name="default_transport">default_transport</a>
2697(default: smtp)</b></DT><DD>
2698
2699<p>
2700The default mail delivery transport and next-hop destination for
2701destinations that do not match $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>,
2702$<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>, $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>,
2703or $<a href="postconf.5.html#relay_domains">relay_domains</a>.  This information can be overruled with the
2704<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> parameter and with the
2705<a href="transport.5.html">transport(5)</a> table. </p>
2706
2707<p>
2708In order of decreasing precedence, the nexthop destination is taken
2709from $<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a>, $<a href="postconf.5.html#default_transport">default_transport</a>,
2710$<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>, $<a href="postconf.5.html#relayhost">relayhost</a>, or from the recipient
2711domain.
2712</p>
2713
2714<p>
2715Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
2716is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
2717The <i>:nexthop</i> destination is optional; its syntax is documented
2718in the manual page of the corresponding delivery agent. In the case of
2719SMTP or LMTP, specify one or more destinations separated by comma or
2720whitespace (with Postfix 3.5 and later).
2721</p>
2722
2723<p>
2724Example:
2725</p>
2726
2727<pre>
2728<a href="postconf.5.html#default_transport">default_transport</a> = uucp:relayhostname
2729</pre>
2730
2731
2732</DD>
2733
2734<DT><b><a name="default_transport_rate_delay">default_transport_rate_delay</a>
2735(default: 0s)</b></DT><DD>
2736
2737<p> The default amount of delay that is inserted between individual
2738message deliveries over the same message delivery transport,
2739regardless of destination. Specify a non-zero value to rate-limit
2740those message deliveries to at most one per $<a href="postconf.5.html#default_transport_rate_delay">default_transport_rate_delay</a>.
2741</p>
2742
2743<p>Use <a href="postconf.5.html#transport_transport_rate_delay"><i>transport</i>_transport_rate_delay</a> to specify a
2744transport-specific override, where the initial <i>transport</i> is
2745the <a href="master.5.html">master.cf</a> name of the message delivery transport. </p>
2746
2747<p> Example: throttle outbound SMTP mail to at most 3 deliveries
2748per minute. </p>
2749
2750<pre>
2751/etc/postfix/<a href="postconf.5.html">main.cf</a>:
2752    smtp_transport_rate_delay = 20s
2753</pre>
2754
2755<p> To enable the delay, specify a non-zero time value (an integral
2756value plus an optional one-letter suffix that specifies the time
2757unit). </p>
2758
2759<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
2760(weeks). The default time unit is s (seconds). </p>
2761
2762<p> NOTE: the delay is enforced by the queue manager. </p>
2763
2764<p> This feature is available in Postfix 3.1 and later. </p>
2765
2766
2767</DD>
2768
2769<DT><b><a name="default_verp_delimiters">default_verp_delimiters</a>
2770(default: +=)</b></DT><DD>
2771
2772<p> The two default VERP delimiter characters. These are used when
2773no explicit delimiters are specified with the SMTP XVERP command
2774or with the "<b>sendmail -XV</b>" command-line option (Postfix 2.2
2775and earlier: <b>-V</b>). Specify characters that are allowed by the
2776<a href="postconf.5.html#verp_delimiter_filter">verp_delimiter_filter</a> setting.
2777</p>
2778
2779<p>
2780This feature is available in Postfix 1.1 and later.
2781</p>
2782
2783
2784</DD>
2785
2786<DT><b><a name="defer_code">defer_code</a>
2787(default: 450)</b></DT><DD>
2788
2789<p>
2790The numerical Postfix SMTP server response code when a remote SMTP
2791client request is rejected by the "defer" restriction.
2792</p>
2793
2794<p>
2795Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
2796</p>
2797
2798
2799</DD>
2800
2801<DT><b><a name="defer_service_name">defer_service_name</a>
2802(default: defer)</b></DT><DD>
2803
2804<p>
2805The name of the defer service. This service is implemented by the
2806<a href="bounce.8.html">bounce(8)</a> daemon and maintains a record
2807of failed delivery attempts and generates non-delivery notifications.
2808</p>
2809
2810<p>
2811This feature is available in Postfix 2.0 and later.
2812</p>
2813
2814
2815</DD>
2816
2817<DT><b><a name="defer_transports">defer_transports</a>
2818(default: empty)</b></DT><DD>
2819
2820<p>
2821The names of message delivery transports that should not deliver mail
2822unless someone issues "<b>sendmail -q</b>" or equivalent. Specify zero
2823or more mail delivery transport names that appear in the
2824first field of <a href="master.5.html">master.cf</a>.
2825</p>
2826
2827<p>
2828Example:
2829</p>
2830
2831<pre>
2832<a href="postconf.5.html#defer_transports">defer_transports</a> = smtp
2833</pre>
2834
2835
2836</DD>
2837
2838<DT><b><a name="delay_logging_resolution_limit">delay_logging_resolution_limit</a>
2839(default: 2)</b></DT><DD>
2840
2841<p> The maximal number of digits after the decimal point when logging
2842sub-second delay values.  Specify a number in the range 0..6.  </p>
2843
2844<p> Large delay values are rounded off to an integral number of seconds;
2845delay values below the <a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> are logged
2846as "0", and delay values under 100s are logged with at most two-digit
2847precision.  </p>
2848
2849<p> The format of the "delays=a/b/c/d" logging is as follows: </p>
2850
2851<ul>
2852
2853<li> a = time from message arrival to last <a href="QSHAPE_README.html#active_queue">active queue</a> entry
2854
2855<li> b = time from last <a href="QSHAPE_README.html#active_queue">active queue</a> entry to connection setup
2856
2857<li> c = time in connection setup, including DNS, EHLO and STARTTLS
2858
2859<li> d = time in message transmission
2860
2861</ul>
2862
2863<p> This feature is available in Postfix 2.3 and later.  </p>
2864
2865
2866</DD>
2867
2868<DT><b><a name="delay_notice_recipient">delay_notice_recipient</a>
2869(default: postmaster)</b></DT><DD>
2870
2871<p>
2872The recipient of postmaster notifications with the message headers
2873of mail that cannot be delivered within $<a href="postconf.5.html#delay_warning_time">delay_warning_time</a> time
2874units.  </p>
2875
2876<p>
2877See also: <a href="postconf.5.html#delay_warning_time">delay_warning_time</a>, <a href="postconf.5.html#notify_classes">notify_classes</a>.
2878</p>
2879
2880
2881</DD>
2882
2883<DT><b><a name="delay_warning_time">delay_warning_time</a>
2884(default: 0h)</b></DT><DD>
2885
2886<p>
2887The time after which the sender receives a copy of the message
2888headers of mail that is still queued. The <a href="postconf.5.html#confirm_delay_cleared">confirm_delay_cleared</a>
2889parameter controls sender notification when the delay clears up.
2890</p>
2891
2892<p>
2893To enable this feature, specify a non-zero time value (an integral
2894value plus an optional one-letter suffix that specifies the time
2895unit).
2896</p>
2897
2898<p>
2899Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2900The default time unit is h (hours).
2901</p>
2902
2903<p>
2904See also: <a href="postconf.5.html#delay_notice_recipient">delay_notice_recipient</a>, <a href="postconf.5.html#notify_classes">notify_classes</a>, <a href="postconf.5.html#confirm_delay_cleared">confirm_delay_cleared</a>.
2905</p>
2906
2907
2908</DD>
2909
2910<DT><b><a name="deliver_lock_attempts">deliver_lock_attempts</a>
2911(default: 20)</b></DT><DD>
2912
2913<p>
2914The maximal number of attempts to acquire an exclusive lock on a
2915mailbox file or <a href="bounce.8.html">bounce(8)</a> logfile.
2916</p>
2917
2918
2919</DD>
2920
2921<DT><b><a name="deliver_lock_delay">deliver_lock_delay</a>
2922(default: 1s)</b></DT><DD>
2923
2924<p>
2925The time between attempts to acquire an exclusive lock on a mailbox
2926file or <a href="bounce.8.html">bounce(8)</a> logfile.
2927</p>
2928
2929<p> Specify a non-zero time value (an integral value plus an optional
2930one-letter suffix that specifies the time unit).  Time units: s
2931(seconds), m (minutes), h (hours), d (days), w (weeks).
2932The default time unit is s (seconds).  </p>
2933
2934
2935</DD>
2936
2937<DT><b><a name="destination_concurrency_feedback_debug">destination_concurrency_feedback_debug</a>
2938(default: no)</b></DT><DD>
2939
2940<p> Make the queue manager's feedback algorithm verbose for performance
2941analysis purposes. </p>
2942
2943<p> This feature is available in Postfix 2.5 and later. </p>
2944
2945
2946</DD>
2947
2948<DT><b><a name="detect_8bit_encoding_header">detect_8bit_encoding_header</a>
2949(default: yes)</b></DT><DD>
2950
2951<p> Automatically detect 8BITMIME body content by looking at
2952Content-Transfer-Encoding: message headers; historically, this
2953behavior was hard-coded to be "always on".  </p>
2954
2955<p> This feature is available in Postfix 2.5 and later. </p>
2956
2957
2958</DD>
2959
2960<DT><b><a name="disable_dns_lookups">disable_dns_lookups</a>
2961(default: no)</b></DT><DD>
2962
2963<p>
2964Disable DNS lookups in the Postfix SMTP and LMTP clients. When
2965disabled, hosts are looked up with the getaddrinfo() system
2966library routine which normally also looks in /etc/hosts.  As of
2967Postfix 2.11, this parameter is deprecated; use <a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a>
2968instead.
2969</p>
2970
2971<p>
2972DNS lookups are enabled by default.
2973</p>
2974
2975
2976</DD>
2977
2978<DT><b><a name="disable_mime_input_processing">disable_mime_input_processing</a>
2979(default: no)</b></DT><DD>
2980
2981<p>
2982Turn off MIME processing while receiving mail. This means that no
2983special treatment is given to Content-Type: message headers, and
2984that all text after the initial message headers is considered to
2985be part of the message body.
2986</p>
2987
2988<p>
2989This feature is available in Postfix 2.0 and later.
2990</p>
2991
2992<p>
2993Mime input processing is enabled by default, and is needed in order
2994to recognize MIME headers in message content.
2995</p>
2996
2997
2998</DD>
2999
3000<DT><b><a name="disable_mime_output_conversion">disable_mime_output_conversion</a>
3001(default: no)</b></DT><DD>
3002
3003<p>
3004Disable the conversion of 8BITMIME format to 7BIT format.  Mime
3005output conversion is needed when the destination does not advertise
30068BITMIME support.
3007</p>
3008
3009<p>
3010This feature is available in Postfix 2.0 and later.
3011</p>
3012
3013
3014</DD>
3015
3016<DT><b><a name="disable_verp_bounces">disable_verp_bounces</a>
3017(default: no)</b></DT><DD>
3018
3019<p>
3020Disable sending one bounce report per recipient.
3021</p>
3022
3023<p>
3024The default, one per recipient, is what ezmlm needs.
3025</p>
3026
3027<p>
3028This feature is available in Postfix 1.1 and later.
3029</p>
3030
3031
3032</DD>
3033
3034<DT><b><a name="disable_vrfy_command">disable_vrfy_command</a>
3035(default: no)</b></DT><DD>
3036
3037<p>
3038Disable the SMTP VRFY command. This stops some techniques used to
3039harvest email addresses.
3040</p>
3041
3042<p>
3043Example:
3044</p>
3045
3046<pre>
3047<a href="postconf.5.html#disable_vrfy_command">disable_vrfy_command</a> = no
3048</pre>
3049
3050
3051</DD>
3052
3053<DT><b><a name="dns_ncache_ttl_fix_enable">dns_ncache_ttl_fix_enable</a>
3054(default: no)</b></DT><DD>
3055
3056<p> Enable a workaround for future libc incompatibility. The Postfix
3057implementation of <a href="https://tools.ietf.org/html/rfc2308">RFC 2308</a> negative reply caching relies on the
3058promise that res_query() and res_search() invoke res_send(), which
3059returns the server response in an application buffer even if the
3060requested record does not exist. If this promise is broken, specify
3061"yes" to enable a  workaround for DNS reputation lookups. </p>
3062
3063<p>
3064This feature is available in Postfix 3.1 and later.
3065</p>
3066
3067
3068</DD>
3069
3070<DT><b><a name="dnsblog_reply_delay">dnsblog_reply_delay</a>
3071(default: 0s)</b></DT><DD>
3072
3073<p> A debugging aid to artificially delay DNS responses. </p>
3074
3075<p> This feature is available in Postfix 2.8.  </p>
3076
3077
3078</DD>
3079
3080<DT><b><a name="dnsblog_service_name">dnsblog_service_name</a>
3081(default: dnsblog)</b></DT><DD>
3082
3083<p> The name of the <a href="dnsblog.8.html">dnsblog(8)</a> service entry in <a href="master.5.html">master.cf</a>. This
3084service performs DNS allow/denylist lookups. </p>
3085
3086<p> This feature is available in Postfix 2.8 and later. </p>
3087
3088
3089</DD>
3090
3091<DT><b><a name="dnssec_probe">dnssec_probe</a>
3092(default: ns:.)</b></DT><DD>
3093
3094<p> The DNS query type (default: "ns") and DNS query name (default:
3095".") that Postfix may use to determine whether DNSSEC validation
3096is available.
3097</p>
3098
3099<p> Background: DNSSEC validation is needed for Postfix DANE support;
3100this ensures that Postfix receives TLSA records with secure TLS
3101server certificate info. When DNSSEC validation is unavailable,
3102mail deliveries using <i>opportunistic</i> DANE will not be protected
3103by server certificate info in TLSA records, and mail deliveries
3104using <i>mandatory</i> DANE will not be made at all. </p>
3105
3106<p> By default, a Postfix process will send a DNSSEC probe after
31071) the process made a DNS query that requested DNSSEC validation,
31082) the process did not receive a DNSSEC validated response to this
3109query or to an earlier query, and 3) the process did not already
3110send a DNSSEC probe. <p>
3111
3112<p> When the DNSSEC probe has no response, or when the response is
3113not DNSSEC validated, Postfix logs a warning that DNSSEC validation
3114may be unavailable. </p>
3115
3116<p> Example: </p>
3117
3118<pre>
3119warning: DNSSEC validation may be unavailable
3120warning: reason: <a href="postconf.5.html#dnssec_probe">dnssec_probe</a> 'ns:.' received a response that is not DNSSEC validated
3121warning: reason: <a href="postconf.5.html#dnssec_probe">dnssec_probe</a> 'ns:.' received no response: Server failure
3122</pre>
3123
3124<p> Possible reasons why DNSSEC validation may be unavailable: </p>
3125
3126<ul>
3127
3128<li> The local /etc/resolv.conf file specifies a DNS resolver that
3129does not validate DNSSEC signatures (that's
3130$<a href="postconf.5.html#queue_directory">queue_directory</a>/etc/resolv.conf when a Postfix daemon runs in a
3131chroot jail).
3132
3133<li> The local system library does not pass on the "DNSSEC validated"
3134bit to Postfix, or Postfix does not know how to ask the library to
3135do that.
3136
3137</ul>
3138
3139<p> By default, the DNSSEC probe asks for the DNS root zone NS
3140records, because resolvers should always have that information
3141cached. If Postfix runs on a network where the DNS root zone is not
3142reachable, specify a different probe, or specify an empty <a href="postconf.5.html#dnssec_probe">dnssec_probe</a>
3143value to disable the feature. </p>
3144
3145<p> This feature is available in Postfix 3.6 and later. It was backported
3146to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21. </p>
3147
3148
3149</DD>
3150
3151<DT><b><a name="dont_remove">dont_remove</a>
3152(default: 0)</b></DT><DD>
3153
3154<p>
3155Don't remove queue files and save them to the "saved" mail queue.
3156This is a debugging aid.  To inspect the envelope information and
3157content of a Postfix queue file, use the <a href="postcat.1.html">postcat(1)</a> command.
3158</p>
3159
3160
3161</DD>
3162
3163<DT><b><a name="double_bounce_sender">double_bounce_sender</a>
3164(default: double-bounce)</b></DT><DD>
3165
3166<p> The sender address of postmaster notifications that are generated
3167by the mail system. All mail to this address is silently discarded,
3168in order to terminate mail bounce loops.  </p>
3169
3170
3171</DD>
3172
3173<DT><b><a name="duplicate_filter_limit">duplicate_filter_limit</a>
3174(default: 1000)</b></DT><DD>
3175
3176<p> The maximal number of addresses remembered by the address
3177duplicate filter for <a href="aliases.5.html">aliases(5)</a> or <a href="virtual.5.html">virtual(5)</a> alias expansion, or
3178for <a href="showq.8.html">showq(8)</a> queue displays.  </p>
3179
3180
3181</DD>
3182
3183<DT><b><a name="empty_address_default_transport_maps_lookup_key">empty_address_default_transport_maps_lookup_key</a>
3184(default: &lt;&gt;)</b></DT><DD>
3185
3186<p> The <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> search string that
3187will be used instead of the null sender address. </p>
3188
3189<p> This feature is available in Postfix 2.7 and later.  </p>
3190
3191
3192</DD>
3193
3194<DT><b><a name="empty_address_local_login_sender_maps_lookup_key">empty_address_local_login_sender_maps_lookup_key</a>
3195(default: &lt;&gt;)</b></DT><DD>
3196
3197<p>
3198The lookup key to be used in <a href="postconf.5.html#local_login_sender_maps">local_login_sender_maps</a> tables, instead
3199of the null sender address.
3200</p>
3201
3202<p> This feature is available in Postfix 3.6 and later. </p>
3203
3204
3205</DD>
3206
3207<DT><b><a name="empty_address_recipient">empty_address_recipient</a>
3208(default: MAILER-DAEMON)</b></DT><DD>
3209
3210<p>
3211The recipient of mail addressed to the null address.  Postfix does
3212not accept such addresses in SMTP commands, but they may still be
3213created locally as the result of configuration or software error.
3214</p>
3215
3216
3217</DD>
3218
3219<DT><b><a name="empty_address_relayhost_maps_lookup_key">empty_address_relayhost_maps_lookup_key</a>
3220(default: &lt;&gt;)</b></DT><DD>
3221
3222<p> The <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> search string that will be
3223used instead of the null sender address. </p>
3224
3225<p> This feature is available in Postfix 2.5 and later. With
3226earlier versions, <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> lookups were
3227skipped for the null sender address.  </p>
3228
3229
3230</DD>
3231
3232<DT><b><a name="enable_errors_to">enable_errors_to</a>
3233(default: no)</b></DT><DD>
3234
3235<p> Report mail delivery errors to the address specified with the
3236non-standard Errors-To: message header, instead of the envelope
3237sender address (this feature is removed with Postfix version 2.2, is
3238turned off by default with Postfix version 2.1, and is always turned on
3239with older Postfix versions).  </p>
3240
3241
3242</DD>
3243
3244<DT><b><a name="enable_idna2003_compatibility">enable_idna2003_compatibility</a>
3245(default: no)</b></DT><DD>
3246
3247<p> Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
3248when converting UTF-8 domain names to/from the ASCII form that is
3249used for DNS lookups. Specify "yes" for compatibility with Postfix
3250&le; 3.1 (not recommended). This affects the conversion of domain
3251names that contain for example the German sz and the Greek zeta.
3252See <a href="http://unicode.org/cldr/utility/idna.jsp">http://unicode.org/cldr/utility/idna.jsp</a> for more examples.
3253</p>
3254
3255<p> This feature is available in Postfix 3.2 and later.  </p>
3256
3257
3258</DD>
3259
3260<DT><b><a name="enable_long_queue_ids">enable_long_queue_ids</a>
3261(default: no)</b></DT><DD>
3262
3263<p> Enable long, non-repeating, queue IDs (queue file names).  The
3264benefit of non-repeating names is simpler logfile analysis and
3265easier queue migration (there is no need to run "postsuper" to
3266change queue file names that don't match their message file inode
3267number).  </p>
3268
3269<p> Note: see below for how to convert long queue file names to
3270Postfix &le; 2.8. </p>
3271
3272<p> Changing the parameter value to "yes" has the following effects:
3273</p>
3274
3275<ul>
3276
3277<li> <p> Existing queue file names are not affected. </p>
3278
3279<li> <p> New queue files are created with names such as 3Pt2mN2VXxznjll.
3280These are encoded in a 52-character alphabet that contains digits
3281(0-9), upper-case letters (B-Z) and lower-case letters (b-z). For
3282safety reasons the vowels (AEIOUaeiou) are excluded from the alphabet.
3283The name format is: 6 or more characters for the time in seconds,
32844 characters for the time in microseconds, the 'z'; the remainder
3285is the file inode number encoded in the first 51 characters of the
328652-character alphabet.  </p>
3287
3288<li> <p> New messages have a Message-ID header with
3289<i>queueID</i>@<i><a href="postconf.5.html#myhostname">myhostname</a></i>.  </p>
3290
3291<li> <p> The mailq (postqueue -p) output has a wider Queue ID column.
3292The number of whitespace-separated fields is not changed. <p>
3293
3294<li> <p> The <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> algorithm uses the first characters
3295of the queue file creation time in microseconds, after conversion
3296into hexadecimal representation. This produces the same queue hashing
3297behavior as if the queue file name was created with "<a href="postconf.5.html#enable_long_queue_ids">enable_long_queue_ids</a>
3298= no". </p>
3299
3300</ul>
3301
3302<p> Changing the parameter value to "no" has the following effects:
3303</p>
3304
3305<ul>
3306
3307<li> <p> Existing long queue file names are renamed to the short
3308form (while running "postfix reload" or "postsuper").  </p>
3309
3310<li> <p> New queue files are created with names such as C3CD21F3E90
3311from a hexadecimal alphabet that contains digits (0-9) and upper-case
3312letters (A-F). The name format is: 5 characters for the time in
3313microseconds; the remainder is the file inode number. </p>
3314
3315<li> <p> New messages have a Message-ID header with
3316<i>YYYYMMDDHHMMSS.queueid</i>@<i><a href="postconf.5.html#myhostname">myhostname</a></i>, where
3317<i>YYYYMMDDHHMMSS</i> are the year, month, day, hour, minute and
3318second.
3319
3320<li> <p> The mailq (postqueue -p) output has the same format as
3321with Postfix &le; 2.8. <p>
3322
3323<li> <p> The <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> algorithm uses the first characters
3324of the queue file name, with the hexadecimal representation of the
3325file creation time in microseconds.  </p>
3326
3327</ul>
3328
3329<p> Before migration to Postfix &le; 2.8, the following commands
3330are required to convert long queue file names into short names: </p>
3331
3332<pre>
3333# postfix stop
3334# postconf <a href="postconf.5.html#enable_long_queue_ids">enable_long_queue_ids</a>=no
3335# postsuper
3336</pre>
3337
3338<p> Repeat the postsuper command until it reports no more queue file
3339name changes. </p>
3340
3341<p> This feature is available in Postfix 2.9 and later.  </p>
3342
3343
3344</DD>
3345
3346<DT><b><a name="enable_original_recipient">enable_original_recipient</a>
3347(default: yes)</b></DT><DD>
3348
3349<p> Enable support for the original recipient address after an
3350address is rewritten to a different address (for example with
3351aliasing or with canonical mapping). </p>
3352
3353<p> The original recipient address is used as follows: </p>
3354
3355<dl>
3356
3357<dt> Final delivery </dt> <dd> With "<a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a> =
3358yes", the original recipient address is stored in the <b>X-Original-To</b>
3359message header. This header may be used to distinguish between
3360different recipients that share the same mailbox.  </dd>
3361
3362<dt> Recipient deduplication </dt> <dd> With "<a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a>
3363= yes", the <a href="cleanup.8.html">cleanup(8)</a> daemon performs duplicate recipient elimination
3364based on the content of (original recipient, maybe-rewritten
3365recipient) pairs.  Otherwise, the <a href="cleanup.8.html">cleanup(8)</a> daemon performs duplicate
3366recipient elimination based only on the maybe-rewritten recipient
3367address.  </dd>
3368
3369</dl>
3370
3371<p> Note: with Postfix &le; 3.2 the "setting <a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a>
3372= <b>no</b>" breaks address verification for addresses that are
3373aliased or otherwise rewritten (Postfix is unable to store the
3374address verification result under the original probe destination
3375address; instead, it can store the result only under the rewritten
3376address).  </p>
3377
3378<p> This feature is available in Postfix 2.1 and later. Postfix
3379version 2.0 behaves as if this parameter is always set to <b>yes</b>.
3380Postfix versions before 2.0 have no support for the original recipient
3381address. </p>
3382
3383
3384</DD>
3385
3386<DT><b><a name="enable_threaded_bounces">enable_threaded_bounces</a>
3387(default: no)</b></DT><DD>
3388
3389<p> Enable non-delivery, success, and delay notifications that link
3390to the original message by including a References: and In-Reply-To:
3391header with the original Message-ID value. There are advantages and
3392disadvantages to consider. </p>
3393
3394<dl>
3395
3396<dt> <b> advantage </b> </dt> <dd> This allows mail readers to present
3397a delivery status notification in the same email thread as the original
3398message. </dd>
3399
3400<dt> <b> disadvantage </b> </dt> <dd> This makes it easy for users to
3401mistakenly delete the whole email thread (all related messages),
3402instead of deleting only the non-delivery notification. </dd>
3403
3404</dl>
3405
3406<p> This feature is available in Postfix 3.6 and later. </p>
3407
3408
3409</DD>
3410
3411<DT><b><a name="error_notice_recipient">error_notice_recipient</a>
3412(default: postmaster)</b></DT><DD>
3413
3414<p> The recipient of postmaster notifications about mail delivery
3415problems that are caused by policy, resource, software or protocol
3416errors.  These notifications are enabled with the <a href="postconf.5.html#notify_classes">notify_classes</a>
3417parameter.  </p>
3418
3419
3420</DD>
3421
3422<DT><b><a name="error_service_name">error_service_name</a>
3423(default: error)</b></DT><DD>
3424
3425<p>
3426The name of the <a href="error.8.html">error(8)</a> pseudo delivery agent. This service always
3427returns mail as undeliverable.
3428</p>
3429
3430<p>
3431This feature is available in Postfix 2.0 and later.
3432</p>
3433
3434
3435</DD>
3436
3437<DT><b><a name="execution_directory_expansion_filter">execution_directory_expansion_filter</a>
3438(default: see "postconf -d" output)</b></DT><DD>
3439
3440<p> Restrict the characters that the <a href="local.8.html">local(8)</a> delivery agent allows
3441in $name expansions of $<a href="postconf.5.html#command_execution_directory">command_execution_directory</a>.  Characters
3442outside the allowed set are replaced by underscores.  </p>
3443
3444<p> This feature is available in Postfix 2.2 and later. </p>
3445
3446
3447</DD>
3448
3449<DT><b><a name="expand_owner_alias">expand_owner_alias</a>
3450(default: no)</b></DT><DD>
3451
3452<p>
3453When delivering to an alias "<i>aliasname</i>" that has an
3454"owner-<i>aliasname</i>" companion alias, set the envelope sender
3455address to the expansion of the "owner-<i>aliasname</i>" alias.
3456Normally, Postfix sets the envelope sender address to the name of
3457the "owner-<i>aliasname</i>" alias.
3458</p>
3459
3460
3461</DD>
3462
3463<DT><b><a name="export_environment">export_environment</a>
3464(default: see "postconf -d" output)</b></DT><DD>
3465
3466<p>
3467The list of environment variables that a Postfix process will export
3468to non-Postfix processes. The TZ variable is needed for sane
3469time keeping on System-V-ish systems.
3470</p>
3471
3472<p>
3473Specify a list of names and/or name=value pairs, separated by
3474whitespace or comma. Specify "{ name=value }" to protect whitespace
3475or comma in parameter values (whitespace after the opening "{" and
3476before the closing "}"
3477is ignored). The form name=value is supported with Postfix version
34782.1 and later; the use of {} is supported with Postfix 3.0 and
3479later.  </p>
3480
3481<p>
3482Example:
3483</p>
3484
3485<pre>
3486<a href="postconf.5.html#export_environment">export_environment</a> = TZ PATH=/bin:/usr/bin
3487</pre>
3488
3489
3490</DD>
3491
3492<DT><b><a name="extract_recipient_limit">extract_recipient_limit</a>
3493(default: 10240)</b></DT><DD>
3494
3495<p>
3496The maximal number of recipient addresses that Postfix will extract
3497from message headers when mail is submitted with "<b>sendmail -t</b>".
3498</p>
3499
3500<p>
3501This feature was removed in Postfix version 2.1.
3502</p>
3503
3504
3505</DD>
3506
3507<DT><b><a name="fallback_relay">fallback_relay</a>
3508(default: empty)</b></DT><DD>
3509
3510<p>
3511Optional list of relay hosts for SMTP destinations that can't be
3512found or that are unreachable. With Postfix 2.3 this parameter
3513is renamed to <a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a>. </p>
3514
3515<p>
3516By default, mail is returned to the sender when a destination is
3517not found, and delivery is deferred when a destination is unreachable.
3518</p>
3519
3520<p> The fallback relays must be SMTP destinations. Specify a domain,
3521host, host:port, [host]:port, [address] or [address]:port; the form
3522[host] turns off MX lookups.  If you specify multiple SMTP
3523destinations, Postfix will try them in the specified order.  </p>
3524
3525<p> Note: before Postfix 2.2, do not use the <a href="postconf.5.html#fallback_relay">fallback_relay</a> feature
3526when relaying mail
3527for a backup or primary MX domain. Mail would loop between the
3528Postfix MX host and the <a href="postconf.5.html#fallback_relay">fallback_relay</a> host when the final destination
3529is unavailable. </p>
3530
3531<ul>
3532
3533<li> In <a href="postconf.5.html">main.cf</a> specify "<a href="postconf.5.html#relay_transport">relay_transport</a> = relay",
3534
3535<li> In <a href="master.5.html">master.cf</a> specify "-o <a href="postconf.5.html#fallback_relay">fallback_relay</a> =" (i.e., empty) at
3536the end of the <tt>relay</tt> entry.
3537
3538<li> In transport maps, specify "relay:<i>nexthop...</i>"
3539as the right-hand side for backup or primary MX domain entries.
3540
3541</ul>
3542
3543<p> Postfix version 2.2 and later will not use the <a href="postconf.5.html#fallback_relay">fallback_relay</a> feature
3544for destinations that it is MX host for.
3545</p>
3546
3547
3548</DD>
3549
3550<DT><b><a name="fallback_transport">fallback_transport</a>
3551(default: empty)</b></DT><DD>
3552
3553<p>
3554Optional message delivery transport that the <a href="local.8.html">local(8)</a> delivery
3555agent should use for names that are not found in the <a href="aliases.5.html">aliases(5)</a>
3556or UNIX password database.
3557</p>
3558
3559<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
3560is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
3561<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
3562<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
3563
3564
3565</DD>
3566
3567<DT><b><a name="fallback_transport_maps">fallback_transport_maps</a>
3568(default: empty)</b></DT><DD>
3569
3570<p> Optional lookup tables with per-recipient message delivery
3571transports for recipients that the <a href="local.8.html">local(8)</a> delivery agent could
3572not find in the <a href="aliases.5.html">aliases(5)</a> or UNIX password database. </p>
3573
3574<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
3575is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
3576<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
3577<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
3578
3579<p> For safety reasons, this feature does not allow $number
3580substitutions in regular expression maps. </p>
3581
3582<p> This feature is available in Postfix 2.3 and later. </p>
3583
3584
3585</DD>
3586
3587<DT><b><a name="fast_flush_domains">fast_flush_domains</a>
3588(default: $<a href="postconf.5.html#relay_domains">relay_domains</a>)</b></DT><DD>
3589
3590<p>
3591Optional list of destinations that are eligible for per-destination
3592logfiles with mail that is queued to those destinations.
3593</p>
3594
3595<p>
3596By default, Postfix maintains "fast flush" logfiles only for
3597destinations that the Postfix SMTP server is willing to relay to
3598(i.e. the default is: "<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> = $<a href="postconf.5.html#relay_domains">relay_domains</a>"; see
3599the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter in the <a href="postconf.5.html">postconf(5)</a> manual).
3600</p>
3601
3602<p> Specify a list of hosts or domains, "/file/name" patterns or
3603"<a href="DATABASE_README.html">type:table</a>" lookup tables, separated by commas and/or whitespace.
3604Continue long lines by starting the next line with whitespace. A
3605"/file/name" pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>"
3606lookup table is matched when the domain or its parent domain appears
3607as lookup key.  </p>
3608
3609<p> Pattern matching of domain names is controlled by the presence
3610or absence of "<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
3611parameter value.  </p>
3612
3613<p>
3614Specify "<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> =" (i.e., empty) to disable the feature
3615altogether.
3616</p>
3617
3618
3619</DD>
3620
3621<DT><b><a name="fast_flush_purge_time">fast_flush_purge_time</a>
3622(default: 7d)</b></DT><DD>
3623
3624<p>
3625The time after which an empty per-destination "fast flush" logfile
3626is deleted.
3627</p>
3628
3629<p>
3630You can specify the time as a number, or as a number followed by
3631a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
3632d=days, w=weeks.  The default time unit is days.
3633</p>
3634
3635
3636</DD>
3637
3638<DT><b><a name="fast_flush_refresh_time">fast_flush_refresh_time</a>
3639(default: 12h)</b></DT><DD>
3640
3641<p>
3642The time after which a non-empty but unread per-destination "fast
3643flush" logfile needs to be refreshed.  The contents of a logfile
3644are refreshed by requesting delivery of all messages listed in the
3645logfile.
3646</p>
3647
3648<p>
3649You can specify the time as a number, or as a number followed by
3650a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
3651d=days, w=weeks.  The default time unit is hours.
3652</p>
3653
3654
3655</DD>
3656
3657<DT><b><a name="fault_injection_code">fault_injection_code</a>
3658(default: 0)</b></DT><DD>
3659
3660<p>
3661Force specific internal tests to fail, to test the handling of
3662errors that are difficult to reproduce otherwise.
3663</p>
3664
3665
3666</DD>
3667
3668<DT><b><a name="flush_service_name">flush_service_name</a>
3669(default: flush)</b></DT><DD>
3670
3671<p>
3672The name of the <a href="flush.8.html">flush(8)</a> service. This service maintains per-destination
3673logfiles with the queue file names of mail that is queued for those
3674destinations.
3675</p>
3676
3677<p>
3678This feature is available in Postfix 2.0 and later.
3679</p>
3680
3681
3682</DD>
3683
3684<DT><b><a name="fork_attempts">fork_attempts</a>
3685(default: 5)</b></DT><DD>
3686
3687<p> The maximal number of attempts to fork() a child process.  </p>
3688
3689
3690</DD>
3691
3692<DT><b><a name="fork_delay">fork_delay</a>
3693(default: 1s)</b></DT><DD>
3694
3695<p> The delay between attempts to fork() a child process.  </p>
3696
3697<p> Specify a non-zero time value (an integral value plus an optional
3698one-letter suffix that specifies the time unit).  Time units: s
3699(seconds), m (minutes), h (hours), d (days), w (weeks).
3700The default time unit is s (seconds).  </p>
3701
3702
3703</DD>
3704
3705<DT><b><a name="forward_expansion_filter">forward_expansion_filter</a>
3706(default: see "postconf -d" output)</b></DT><DD>
3707
3708<p>
3709Restrict the characters that the <a href="local.8.html">local(8)</a> delivery agent allows in
3710$name expansions of $<a href="postconf.5.html#forward_path">forward_path</a>.  Characters outside the
3711allowed set are replaced by underscores.
3712</p>
3713
3714
3715</DD>
3716
3717<DT><b><a name="forward_path">forward_path</a>
3718(default: see "postconf -d" output)</b></DT><DD>
3719
3720<p> The <a href="local.8.html">local(8)</a> delivery agent search list for finding a .forward
3721file with user-specified delivery methods. The first file that is
3722found is used.  </p>
3723
3724<p> The <a href="postconf.5.html#forward_path">forward_path</a> value is not subject to Postfix configuration
3725parameter $name expansion. Instead, the following $name expansions
3726are done on <a href="postconf.5.html#forward_path">forward_path</a> before the search actually happens.
3727The result of $name expansion is
3728filtered with the character set that is specified with the
3729<a href="postconf.5.html#forward_expansion_filter">forward_expansion_filter</a> parameter.  </p>
3730
3731<dl>
3732
3733<dt><b>$user</b></dt>
3734
3735<dd>The recipient's username. </dd>
3736
3737<dt><b>$shell</b></dt>
3738
3739<dd>The recipient's login shell pathname. </dd>
3740
3741<dt><b>$home</b></dt>
3742
3743<dd>The recipient's home directory. </dd>
3744
3745<dt><b>$recipient</b></dt>
3746
3747<dd>The full recipient address. </dd>
3748
3749<dt><b>$extension</b></dt>
3750
3751<dd>The optional recipient address extension. </dd>
3752
3753<dt><b>$domain</b></dt>
3754
3755<dd>The recipient domain. </dd>
3756
3757<dt><b>$local</b></dt>
3758
3759<dd>The entire recipient localpart. </dd>
3760
3761<dt><b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a></b></dt>
3762
3763<dd>The address extension delimiter that was found in the recipient
3764address (Postfix 2.11 and later), or the 'first' delimiter specified
3765with the system-wide recipient address extension delimiter (Postfix
37663.5.22, 3.5.12, 3.7.8, 3.8.3 and later). Historically, this was
3767always the system-wide recipient
3768address extension delimiter (Postfix 2.10 and earlier). </dd>
3769
3770<dt><b>${name?value}</b></dt>
3771
3772<dt><b>${name?{value}}</b> (Postfix &ge; 3.0)</dt>
3773
3774<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
3775
3776<dt><b>${name:value}</b></dt>
3777
3778<dt><b>${name:{value}}</b> (Postfix &ge; 3.0)</dt>
3779
3780<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
3781
3782<dt><b>${name?{value1}:{value2}}</b> (Postfix &ge; 3.0)</dt>
3783
3784<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
3785<i>value2</i> otherwise. </dd>
3786
3787</dl>
3788
3789<p>
3790Instead of $name you can also specify ${name} or $(name).
3791</p>
3792
3793<p>
3794Examples:
3795</p>
3796
3797<pre>
3798<a href="postconf.5.html#forward_path">forward_path</a> = /var/forward/$user
3799<a href="postconf.5.html#forward_path">forward_path</a> =
3800    /var/forward/$user/.forward$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>$extension,
3801    /var/forward/$user/.forward
3802</pre>
3803
3804
3805</DD>
3806
3807<DT><b><a name="frozen_delivered_to">frozen_delivered_to</a>
3808(default: yes)</b></DT><DD>
3809
3810<p> Update the <a href="local.8.html">local(8)</a> delivery agent's idea of the Delivered-To:
3811address (see <a href="postconf.5.html#prepend_delivered_header">prepend_delivered_header</a>) only once, at the start of
3812a delivery attempt; do not update the Delivered-To: address while
3813expanding aliases or .forward files. </p>
3814
3815<p> This feature is available in Postfix 2.3 and later. With older
3816Postfix releases, the behavior is as if this parameter is set to
3817"no". The old setting can be expensive with deeply nested aliases
3818or .forward files. When an alias or .forward file changes the
3819Delivered-To: address, it ties up one queue file and one cleanup
3820process instance while mail is being forwarded.  </p>
3821
3822
3823</DD>
3824
3825<DT><b><a name="hash_queue_depth">hash_queue_depth</a>
3826(default: 1)</b></DT><DD>
3827
3828<p>
3829The number of subdirectory levels for queue directories listed with
3830the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> parameter. Queue hashing is implemented by
3831creating one or more levels of directories with one-character names.
3832Originally, these directory names were equal to the first characters
3833of the queue file name, with the hexadecimal representation of the
3834file creation time in microseconds. </p>
3835
3836<p> With long queue file names, queue hashing produces the same
3837results as with short names. The file creation time in microseconds
3838is converted into hexadecimal form before the result is used for
3839queue hashing.  The base 16 encoding gives finer control over the
3840number of subdirectories than is possible with the base 52 encoding
3841of long queue file names.  </p>
3842
3843<p>
3844After changing the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> or <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> parameter,
3845execute the command "<b>postfix reload</b>".
3846</p>
3847
3848
3849</DD>
3850
3851<DT><b><a name="hash_queue_names">hash_queue_names</a>
3852(default: deferred, defer)</b></DT><DD>
3853
3854<p>
3855The names of queue directories that are split across multiple
3856subdirectory levels.
3857</p>
3858
3859<p> Before Postfix version 2.2, the default list of hashed queues
3860was significantly larger. Claims about improvements in file system
3861technology suggest that hashing of the <a href="QSHAPE_README.html#incoming_queue">incoming</a> and <a href="QSHAPE_README.html#active_queue">active queues</a>
3862is no longer needed. Fewer hashed directories speed up the time
3863needed to restart Postfix. </p>
3864
3865<p>
3866After changing the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> or <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> parameter,
3867execute the command "<b>postfix reload</b>".
3868</p>
3869
3870
3871</DD>
3872
3873<DT><b><a name="header_address_token_limit">header_address_token_limit</a>
3874(default: 10240)</b></DT><DD>
3875
3876<p>
3877The maximal number of address tokens are allowed in an address
3878message header. Information that exceeds the limit is discarded.
3879The limit is enforced by the <a href="cleanup.8.html">cleanup(8)</a> server.
3880</p>
3881
3882
3883</DD>
3884
3885<DT><b><a name="header_checks">header_checks</a>
3886(default: empty)</b></DT><DD>
3887
3888<p>
3889Optional lookup tables for content inspection of primary non-MIME
3890message headers, as specified in the <a href="header_checks.5.html">header_checks(5)</a> manual page.
3891</p>
3892
3893
3894</DD>
3895
3896<DT><b><a name="header_from_format">header_from_format</a>
3897(default: standard)</b></DT><DD>
3898
3899<p> The format of the Postfix-generated <b>From:</b> header. This
3900setting affects the appearance of 'full name' information when a
3901local program such as /bin/mail submits a message without a From:
3902header through the Postfix <a href="sendmail.1.html">sendmail(1)</a> command. </p>
3903
3904<p> Specify one of the following: </p>
3905
3906<dl>
3907
3908<dt><b>standard</b> (default)</dt> <dd> Produce a header formatted
3909as "<b>From:</b> <i>name</i><b> &lt;</b><i>address</i><b>&gt;</b>".
3910This is the default as of Postfix 3.3.</dd>
3911
3912<dt><b>obsolete</b></dt> <dd>Produce a header formatted as "<b>From:</b>
3913<i>address</i> <b>(</b><i>name</i><b>)</b>". This is the behavior
3914prior to Postfix 3.3. </dd>
3915
3916</dl>
3917
3918<p> Notes: </p>
3919
3920<ul>
3921
3922<li> <p> Postfix generates the format "<b>From:</b> <i>address</i>"
3923when <i>name</i> information is unavailable or the envelope sender
3924address is empty. This is the same behavior as prior to Postfix
39253.3. </p>
3926
3927<li> <p> In the <b>standard</b> form, the <i>name</i> will be quoted
3928if it contains <b>specials</b> as defined in <a href="https://tools.ietf.org/html/rfc5322">RFC 5322</a>, or the "!%"
3929address operators. </p>
3930
3931<li> <p> The Postfix <a href="sendmail.1.html">sendmail(1)</a> command gets <i>name</i> information
3932from the <b>-F</b> command-line option, from the <b>NAME</b>
3933environment variable, or from the UNIX password file. </p>
3934
3935</ul>
3936
3937<p> This feature is available in Postfix 3.3 and later. </p>
3938
3939
3940</DD>
3941
3942<DT><b><a name="header_size_limit">header_size_limit</a>
3943(default: 102400)</b></DT><DD>
3944
3945<p>
3946The maximal amount of memory in bytes for storing a message header.
3947If a header is larger, the excess is discarded.  The limit is
3948enforced by the <a href="cleanup.8.html">cleanup(8)</a> server.
3949</p>
3950
3951
3952</DD>
3953
3954<DT><b><a name="helpful_warnings">helpful_warnings</a>
3955(default: yes)</b></DT><DD>
3956
3957<p>
3958Log warnings about problematic configuration settings, and provide
3959helpful suggestions.
3960</p>
3961
3962<p>
3963This feature is available in Postfix 2.0 and later.
3964</p>
3965
3966
3967</DD>
3968
3969<DT><b><a name="home_mailbox">home_mailbox</a>
3970(default: empty)</b></DT><DD>
3971
3972<p>
3973Optional pathname of a mailbox file relative to a <a href="local.8.html">local(8)</a> user's
3974home directory.
3975</p>
3976
3977<p>
3978Specify a pathname ending in "/" for qmail-style delivery.
3979</p>
3980
3981<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
3982is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
3983<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
3984<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
3985
3986<p>
3987Examples:
3988</p>
3989
3990<pre>
3991<a href="postconf.5.html#home_mailbox">home_mailbox</a> = Mailbox
3992<a href="postconf.5.html#home_mailbox">home_mailbox</a> = Maildir/
3993</pre>
3994
3995
3996</DD>
3997
3998<DT><b><a name="hopcount_limit">hopcount_limit</a>
3999(default: 50)</b></DT><DD>
4000
4001<p>
4002The maximal number of Received:  message headers that is allowed
4003in the primary message headers. A message that exceeds the limit
4004is bounced, in order to stop a mailer loop.
4005</p>
4006
4007
4008</DD>
4009
4010<DT><b><a name="html_directory">html_directory</a>
4011(default: see "postconf -d" output)</b></DT><DD>
4012
4013<p>
4014The location of Postfix HTML files that describe how to build,
4015configure or operate a specific Postfix subsystem or feature.
4016</p>
4017
4018
4019</DD>
4020
4021<DT><b><a name="ignore_mx_lookup_error">ignore_mx_lookup_error</a>
4022(default: no)</b></DT><DD>
4023
4024<p> Ignore DNS MX lookups that produce no response.  By default,
4025the Postfix SMTP client defers delivery and tries again after some
4026delay.  This behavior is required by the SMTP standard.  </p>
4027
4028<p>
4029Specify "<a href="postconf.5.html#ignore_mx_lookup_error">ignore_mx_lookup_error</a> = yes" to force a DNS A record
4030lookup instead. This violates the SMTP standard and can result in
4031mis-delivery of mail.
4032</p>
4033
4034
4035</DD>
4036
4037<DT><b><a name="ignore_srv_lookup_error">ignore_srv_lookup_error</a>
4038(default: no)</b></DT><DD>
4039
4040<p> When SRV record lookup fails, fall back to MX or IP address
4041lookup as if SRV record lookup was not enabled. </p>
4042
4043<p> This feature is available in Postfix 3.8 and later. </p>
4044
4045
4046</DD>
4047
4048<DT><b><a name="import_environment">import_environment</a>
4049(default: see "postconf -d" output)</b></DT><DD>
4050
4051<p> The list of environment variables that a privileged Postfix
4052process will import from a non-Postfix parent process, or name=value
4053environment overrides.  Unprivileged utilities will enforce the
4054name=value overrides, but otherwise will not change their process
4055environment.  Examples of relevant environment variables: </p>
4056
4057<dl>
4058
4059<dt><b>TZ</b></dt>
4060
4061<dd>May be needed for sane time keeping on most System-V-ish systems.
4062</dd>
4063
4064<dt><b>DISPLAY</b></dt>
4065
4066<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
4067
4068<dt><b>XAUTHORITY</b></dt>
4069
4070<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
4071
4072<dt><b>MAIL_CONFIG</b></dt>
4073
4074<dd>Needed to make "<b>postfix -c</b>" work. </dd>
4075
4076<dt><b>POSTLOG_SERVICE</b></dt>
4077
4078<dd>Needed to make "<b><a href="postconf.5.html#maillog_file">maillog_file</a></b>" work during daemon
4079process initialization. </dd>
4080
4081<dt><b>POSTLOG_HOSTNAME</b></dt>
4082
4083<dd>Needed to make "<b><a href="postconf.5.html#maillog_file">maillog_file</a></b>" work during daemon
4084process initialization. </dd>
4085
4086</dl>
4087
4088<p> Specify a list of names and/or name=value pairs, separated by
4089whitespace or comma. Specify "{ name=value }" to protect whitespace
4090or comma in environment variable values (whitespace after the opening "{" and
4091before the closing "}"
4092is ignored). The form name=value is supported with Postfix version
40932.1 and later; the use of {} is supported with Postfix 3.0 and
4094later.  </p>
4095
4096
4097</DD>
4098
4099<DT><b><a name="in_flow_delay">in_flow_delay</a>
4100(default: 1s)</b></DT><DD>
4101
4102<p> Time to pause before accepting a new message, when the message
4103arrival rate exceeds the message delivery rate. This feature is
4104turned on by default (it's disabled on SCO UNIX due to an SCO bug).
4105</p>
4106
4107<p>
4108With the default 100 Postfix SMTP server process limit, "<a href="postconf.5.html#in_flow_delay">in_flow_delay</a>
4109= 1s" limits the mail inflow to 100 messages per second above the
4110number of messages delivered per second.
4111</p>
4112
4113<p>
4114Specify 0 to disable the feature. Valid delays are 0..10.
4115</p>
4116
4117
4118</DD>
4119
4120<DT><b><a name="inet_interfaces">inet_interfaces</a>
4121(default: all)</b></DT><DD>
4122
4123<p> The local network interface addresses that this mail system receives
4124mail on. Specify "all" to receive mail on all network
4125interfaces (default), and "loopback-only" to receive mail
4126on loopback network interfaces only (Postfix version 2.2 and later).  The
4127parameter also controls delivery of mail to <tt>user@[ip.address]</tt>.
4128</p>
4129
4130<p>
4131Note 1: you need to stop and start Postfix when this parameter changes.
4132</p>
4133
4134<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
4135but this form is not required here. </p>
4136
4137<p> When <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> specifies just one IPv4 and/or IPv6 address
4138that is not a loopback address, the Postfix SMTP client will use
4139this address as the IP source address for outbound mail. Support
4140for IPv6 is available in Postfix version 2.2 and later. </p>
4141
4142<p>
4143On a multi-homed firewall with separate Postfix instances listening on the
4144"inside" and "outside" interfaces, this can prevent each instance from
4145being able to reach remote SMTP servers on the "other side" of the
4146firewall. Setting
4147<a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> to 0.0.0.0 avoids the potential problem for
4148IPv4, and setting <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> to :: solves the problem
4149for IPv6. </p>
4150
4151<p>
4152A better solution for multi-homed firewalls is to leave <a href="postconf.5.html#inet_interfaces">inet_interfaces</a>
4153at the default value and instead use explicit IP addresses in
4154the <a href="master.5.html">master.cf</a> SMTP server definitions.  This preserves the Postfix
4155SMTP client's
4156loop detection, by ensuring that each side of the firewall knows that the
4157other IP address is still the same host. Setting $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> to a
4158single IPv4 and/or IPV6 address is primarily useful with virtual
4159hosting of domains on
4160secondary IP addresses, when each IP address serves a different domain
4161(and has a different $<a href="postconf.5.html#myhostname">myhostname</a> setting). </p>
4162
4163<p>
4164See also the <a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> parameter, for network addresses that
4165are forwarded to Postfix by way of a proxy or address translator.
4166</p>
4167
4168<p>
4169Examples:
4170</p>
4171
4172<pre>
4173<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = all (DEFAULT)
4174<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback-only (Postfix version 2.2 and later)
4175<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = 127.0.0.1
4176<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = 127.0.0.1, [::1] (Postfix version 2.2 and later)
4177<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = 192.168.1.2, 127.0.0.1
4178</pre>
4179
4180
4181</DD>
4182
4183<DT><b><a name="inet_protocols">inet_protocols</a>
4184(default: see 'postconf -d output')</b></DT><DD>
4185
4186<p> The Internet protocols Postfix will attempt to use when making
4187or accepting connections. Specify one or more of "ipv4"
4188or "ipv6", separated by whitespace or commas. The form
4189"all" is equivalent to "ipv4, ipv6" or "ipv4", depending
4190on whether the operating system implements IPv6. </p>
4191
4192<p> With Postfix 2.8 and earlier the default is "ipv4". For backwards
4193compatibility with these releases, the Postfix 2.9 and later upgrade
4194procedure appends an explicit "<a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv4" setting to
4195<a href="postconf.5.html">main.cf</a> when no explicit setting is present. This compatibility
4196workaround will be phased out as IPv6 deployment becomes more common.
4197</p>
4198
4199<p> This feature is available in Postfix 2.2 and later. </p>
4200
4201<p> Note: you MUST stop and start Postfix after changing this
4202parameter. </p>
4203
4204<p> On systems that pre-date IPV6_V6ONLY support (<a href="https://tools.ietf.org/html/rfc3493">RFC 3493</a>), an
4205IPv6 server will also accept IPv4 connections, even when IPv4 is
4206turned off with the <a href="postconf.5.html#inet_protocols">inet_protocols</a> parameter.  On systems with
4207IPV6_V6ONLY support, Postfix will use separate server sockets for
4208IPv6 and IPv4, and each will accept only connections for the
4209corresponding protocol.  </p>
4210
4211<p> When IPv4 support is enabled via the <a href="postconf.5.html#inet_protocols">inet_protocols</a> parameter,
4212Postfix will look up DNS type A records, and will convert
4213IPv4-in-IPv6 client IP addresses (::ffff:1.2.3.4) to their original
4214IPv4 form (1.2.3.4).  The latter is needed on hosts that pre-date
4215IPV6_V6ONLY support (<a href="https://tools.ietf.org/html/rfc3493">RFC 3493</a>). </p>
4216
4217<p> When IPv6 support is enabled via the <a href="postconf.5.html#inet_protocols">inet_protocols</a> parameter,
4218Postfix will do DNS type AAAA record lookups. </p>
4219
4220<p> When both IPv4 and IPv6 support are enabled, the Postfix SMTP
4221client will choose the protocol as specified with the
4222<a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> parameter. Postfix versions before 2.8
4223attempt to connect via IPv6 before attempting to use IPv4.  </p>
4224
4225<p>
4226Examples:
4227</p>
4228
4229<pre>
4230<a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv4
4231<a href="postconf.5.html#inet_protocols">inet_protocols</a> = all (DEFAULT)
4232<a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv6
4233<a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv4, ipv6
4234</pre>
4235
4236
4237</DD>
4238
4239<DT><b><a name="info_log_address_format">info_log_address_format</a>
4240(default: external)</b></DT><DD>
4241
4242<p> The email address form that will be used in non-debug logging
4243(info, warning, etc.). As of Postfix 3.5 when an address localpart
4244contains spaces or other special characters, the localpart will be
4245quoted, for example: </p>
4246
4247<blockquote>
4248<pre>
4249    from=&lt;"name with spaces"@example.com&gt;
4250</pre>
4251</blockquote>
4252
4253<p> Older Postfix versions would log the internal (unquoted) form: </p>
4254
4255<blockquote>
4256<pre>
4257    from=&lt;name with spaces@example.com&gt;
4258</pre>
4259</blockquote>
4260
4261<p> The external and internal forms are identical for the vast
4262majority of email addresses that contain no spaces or other special
4263characters in the localpart. </p>
4264
4265<p> The logging in external form is consistent with the address
4266form that Postfix 3.2 and later prefer for most table lookups. This
4267is therefore the more useful form for non-debug logging. </p>
4268
4269<p> Specify "<b><a href="postconf.5.html#info_log_address_format">info_log_address_format</a> = internal</b>" for backwards
4270compatibility. </p>
4271
4272<p> Postfix uses the unquoted form internally, because an attacker
4273can specify an email address in different forms by playing games
4274with quotes and backslashes. An attacker should not be able to use
4275such games to circumvent Postfix access policies. </p>
4276
4277<p> This feature is available in Postfix 3.5 and later. </p>
4278
4279
4280</DD>
4281
4282<DT><b><a name="initial_destination_concurrency">initial_destination_concurrency</a>
4283(default: 5)</b></DT><DD>
4284
4285<p>
4286The initial per-destination concurrency level for parallel delivery
4287to the same destination.
4288With per-destination recipient limit &gt; 1, a destination is a domain,
4289otherwise it is a recipient.
4290</p>
4291
4292<p> Use <a href="postconf.5.html#transport_initial_destination_concurrency"><i>transport</i>_initial_destination_concurrency</a> to specify
4293a transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
4294name of the message delivery transport (Postfix 2.5 and later). </p>
4295
4296<p>
4297Warning: with concurrency of 1, one bad message can be enough to
4298block all mail to a site.
4299</p>
4300
4301
4302</DD>
4303
4304<DT><b><a name="internal_mail_filter_classes">internal_mail_filter_classes</a>
4305(default: empty)</b></DT><DD>
4306
4307<p> What categories of Postfix-generated mail are subject to
4308before-queue content inspection by <a href="postconf.5.html#non_smtpd_milters">non_smtpd_milters</a>, <a href="postconf.5.html#header_checks">header_checks</a>
4309and <a href="postconf.5.html#body_checks">body_checks</a>.  Specify zero or more of the following, separated
4310by whitespace or comma.  </p>
4311
4312<dl>
4313
4314<dt><b>bounce</b></dt> <dd> Inspect the content of delivery
4315status notifications. </dd>
4316
4317<dt><b>notify</b></dt> <dd> Inspect the content of postmaster
4318notifications by the <a href="smtp.8.html">smtp(8)</a> and <a href="smtpd.8.html">smtpd(8)</a> processes. </dd>
4319
4320</dl>
4321
4322<p> NOTE: It's generally not safe to enable content inspection of
4323Postfix-generated email messages. The user is warned. </p>
4324
4325<p> This feature is available in Postfix 2.3 and later. </p>
4326
4327
4328</DD>
4329
4330<DT><b><a name="invalid_hostname_reject_code">invalid_hostname_reject_code</a>
4331(default: 501)</b></DT><DD>
4332
4333<p>
4334The numerical Postfix SMTP server response code when the client
4335HELO or EHLO command parameter is rejected by the <a href="postconf.5.html#reject_invalid_helo_hostname">reject_invalid_helo_hostname</a>
4336restriction.
4337</p>
4338
4339<p>
4340Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
4341</p>
4342
4343
4344</DD>
4345
4346<DT><b><a name="ipc_idle">ipc_idle</a>
4347(default: version dependent)</b></DT><DD>
4348
4349<p>
4350The time after which a client closes an idle internal communication
4351channel.  The purpose is to allow Postfix daemon processes to
4352terminate voluntarily after they become idle. This is used, for
4353example, by the Postfix address resolving and rewriting clients.
4354</p>
4355
4356<p> With Postfix 2.4 the default value was reduced from 100s to 5s. </p>
4357
4358<p> Specify a non-zero time value (an integral value plus an optional
4359one-letter suffix that specifies the time unit).  Time units: s
4360(seconds), m (minutes), h (hours), d (days), w (weeks).
4361The default time unit is s (seconds).  </p>
4362
4363
4364</DD>
4365
4366<DT><b><a name="ipc_timeout">ipc_timeout</a>
4367(default: 3600s)</b></DT><DD>
4368
4369<p>
4370The time limit for sending or receiving information over an internal
4371communication channel.  The purpose is to break out of deadlock
4372situations. If the time limit is exceeded the software aborts with a
4373fatal error.
4374</p>
4375
4376<p> Specify a non-zero time value (an integral value plus an optional
4377one-letter suffix that specifies the time unit).  Time units: s
4378(seconds), m (minutes), h (hours), d (days), w (weeks).
4379The default time unit is s (seconds).  </p>
4380
4381
4382</DD>
4383
4384<DT><b><a name="ipc_ttl">ipc_ttl</a>
4385(default: 1000s)</b></DT><DD>
4386
4387<p>
4388The time after which a client closes an active internal communication
4389channel.  The purpose is to allow Postfix daemon processes to
4390terminate voluntarily
4391after reaching their client limit.  This is used, for example, by
4392the Postfix address resolving and rewriting clients.
4393</p>
4394
4395<p> Specify a non-zero time value (an integral value plus an optional
4396one-letter suffix that specifies the time unit).  Time units: s
4397(seconds), m (minutes), h (hours), d (days), w (weeks).
4398The default time unit is s (seconds).  </p>
4399
4400<p>
4401This feature is available in Postfix 2.1 and later.
4402</p>
4403
4404
4405</DD>
4406
4407<DT><b><a name="known_tcp_ports">known_tcp_ports</a>
4408(default: lmtp=24, smtp=25, smtps=submissions=465, submission=587)</b></DT><DD>
4409
4410<p> Optional setting that avoids lookups in the services(5) database.
4411This feature was implemented to address inconsistencies in the name
4412of the port "465" service. The ABNF is:
4413</p>
4414
4415<blockquote>
4416<p>
4417<a href="postconf.5.html#known_tcp_ports">known_tcp_ports</a> = empty | name-to-port *("," name-to-port) <br>
4418name-to-port = 1*(service-name "=') port-number
4419</p>
4420</blockquote>
4421
4422<p> The comma is required. Whitespace is optional but it cannot appear
4423inside a service name or port number. </p>
4424
4425<p> This feature is available in Postfix 3.6 and later. </p>
4426
4427
4428</DD>
4429
4430<DT><b><a name="line_length_limit">line_length_limit</a>
4431(default: 2048)</b></DT><DD>
4432
4433<p> Upon input, long lines are chopped up into pieces of at most
4434this length; upon delivery, long lines are reconstructed.  </p>
4435
4436
4437</DD>
4438
4439<DT><b><a name="lmdb_map_size">lmdb_map_size</a>
4440(default: 16777216)</b></DT><DD>
4441
4442<p>
4443The initial OpenLDAP LMDB database size limit in bytes.  Each time
4444a database becomes full, its size limit is doubled.
4445</p>
4446
4447<p>
4448This feature is available in Postfix 2.11 and later.
4449</p>
4450
4451
4452</DD>
4453
4454<DT><b><a name="lmtp_address_preference">lmtp_address_preference</a>
4455(default: ipv6)</b></DT><DD>
4456
4457<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a>
4458configuration parameter.  See there for details. </p>
4459
4460<p> This feature is available in Postfix 2.8 and later.  </p>
4461
4462
4463</DD>
4464
4465<DT><b><a name="lmtp_address_verify_target">lmtp_address_verify_target</a>
4466(default: rcpt)</b></DT><DD>
4467
4468<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_address_verify_target">smtp_address_verify_target</a>
4469configuration parameter.  See there for details. </p>
4470
4471<p> This feature is available in Postfix 3.0 and later.  </p>
4472
4473
4474</DD>
4475
4476<DT><b><a name="lmtp_assume_final">lmtp_assume_final</a>
4477(default: no)</b></DT><DD>
4478
4479<p> When a remote LMTP server announces no DSN support, assume that
4480the
4481server performs final delivery, and send "delivered" delivery status
4482notifications instead of "relayed". The default setting is backwards
4483compatible to avoid the infinitesimal possibility of breaking
4484existing LMTP-based content filters. </p>
4485
4486
4487</DD>
4488
4489<DT><b><a name="lmtp_balance_inet_protocols">lmtp_balance_inet_protocols</a>
4490(default: yes)</b></DT><DD>
4491
4492<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_balance_inet_protocols">smtp_balance_inet_protocols</a>
4493configuration parameter. See there for details. </p>
4494
4495<p> This feature is available in Postfix 3.3 and later.  </p>
4496
4497
4498</DD>
4499
4500<DT><b><a name="lmtp_bind_address">lmtp_bind_address</a>
4501(default: empty)</b></DT><DD>
4502
4503<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> configuration
4504parameter.  See there for details. </p>
4505
4506<p> This feature is available in Postfix 2.3 and later. </p>
4507
4508
4509</DD>
4510
4511<DT><b><a name="lmtp_bind_address6">lmtp_bind_address6</a>
4512(default: empty)</b></DT><DD>
4513
4514<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> configuration
4515parameter.  See there for details. </p>
4516
4517<p> This feature is available in Postfix 2.3 and later. </p>
4518
4519
4520</DD>
4521
4522<DT><b><a name="lmtp_bind_address_enforce">lmtp_bind_address_enforce</a>
4523(default: empty)</b></DT><DD>
4524
4525<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_bind_address_enforce">smtp_bind_address_enforce</a>
4526configuration parameter. See there for details. </p>
4527
4528<p> This feature is available in Postfix 3.7 and later. </p>
4529
4530
4531</DD>
4532
4533<DT><b><a name="lmtp_body_checks">lmtp_body_checks</a>
4534(default: empty)</b></DT><DD>
4535
4536<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_body_checks">smtp_body_checks</a> configuration
4537parameter. See there for details. </p>
4538
4539<p> This feature is available in Postfix 2.5 and later. </p>
4540
4541
4542</DD>
4543
4544<DT><b><a name="lmtp_cache_connection">lmtp_cache_connection</a>
4545(default: yes)</b></DT><DD>
4546
4547<p>
4548Keep Postfix LMTP client connections open for up to $<a href="postconf.5.html#max_idle">max_idle</a>
4549seconds. When the LMTP client receives a request for the same
4550connection the connection is reused.
4551</p>
4552
4553<p> This parameter is available in Postfix version 2.2 and earlier.
4554With Postfix version 2.3 and later, see <a href="postconf.5.html#lmtp_connection_cache_on_demand">lmtp_connection_cache_on_demand</a>,
4555<a href="postconf.5.html#lmtp_connection_cache_destinations">lmtp_connection_cache_destinations</a>, or <a href="postconf.5.html#lmtp_connection_reuse_time_limit">lmtp_connection_reuse_time_limit</a>.
4556</p>
4557
4558<p>
4559The effectiveness of cached connections will be determined by the
4560number of remote LMTP servers in use, and the concurrency limit specified
4561for the Postfix LMTP client. Cached connections are closed under any of
4562the following conditions:
4563</p>
4564
4565<ul>
4566
4567<li> The Postfix LMTP client idle time limit is reached.  This limit is
4568specified with the Postfix <a href="postconf.5.html#max_idle">max_idle</a> configuration parameter.
4569
4570<li> A delivery request specifies a different destination than the
4571one currently cached.
4572
4573<li> The per-process limit on the number of delivery requests is
4574reached.  This limit is specified with the Postfix <a href="postconf.5.html#max_use">max_use</a>
4575configuration parameter.
4576
4577<li> Upon the onset of another delivery request, the remote LMTP server
4578associated with the current session does not respond to the RSET
4579command.
4580
4581</ul>
4582
4583<p>
4584Most of these limitations have been with the Postfix
4585connection cache that is shared among multiple LMTP client
4586programs.
4587</p>
4588
4589
4590</DD>
4591
4592<DT><b><a name="lmtp_cname_overrides_servername">lmtp_cname_overrides_servername</a>
4593(default: yes)</b></DT><DD>
4594
4595<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_cname_overrides_servername">smtp_cname_overrides_servername</a>
4596configuration parameter.  See there for details. </p>
4597
4598<p> This feature is available in Postfix 2.3 and later. </p>
4599
4600
4601</DD>
4602
4603<DT><b><a name="lmtp_connect_timeout">lmtp_connect_timeout</a>
4604(default: 0s)</b></DT><DD>
4605
4606<p> The Postfix LMTP client time limit for completing a TCP connection, or
4607zero (use the operating system built-in time limit).  When no
4608connection can be made within the deadline, the LMTP client tries
4609the next address on the mail exchanger list.  </p>
4610
4611<p> Specify a non-negative time value (an integral value plus an optional
4612one-letter suffix that specifies the time unit).  Time units: s
4613(seconds), m (minutes), h (hours), d (days), w (weeks).
4614The default time unit is s (seconds).  </p>
4615
4616<p>
4617Example:
4618</p>
4619
4620<pre>
4621<a href="postconf.5.html#lmtp_connect_timeout">lmtp_connect_timeout</a> = 30s
4622</pre>
4623
4624
4625</DD>
4626
4627<DT><b><a name="lmtp_connection_cache_destinations">lmtp_connection_cache_destinations</a>
4628(default: empty)</b></DT><DD>
4629
4630<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_connection_cache_destinations">smtp_connection_cache_destinations</a>
4631configuration parameter.  See there for details. </p>
4632
4633<p> This feature is available in Postfix 2.3 and later. </p>
4634
4635
4636</DD>
4637
4638<DT><b><a name="lmtp_connection_cache_on_demand">lmtp_connection_cache_on_demand</a>
4639(default: yes)</b></DT><DD>
4640
4641<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_connection_cache_on_demand">smtp_connection_cache_on_demand</a>
4642configuration parameter.  See there for details. </p>
4643
4644<p> This feature is available in Postfix 2.3 and later. </p>
4645
4646
4647</DD>
4648
4649<DT><b><a name="lmtp_connection_cache_time_limit">lmtp_connection_cache_time_limit</a>
4650(default: 2s)</b></DT><DD>
4651
4652<p> The LMTP-specific version of the
4653<a href="postconf.5.html#smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a> configuration parameter.
4654See there for details. </p>
4655
4656<p> This feature is available in Postfix 2.3 and later. </p>
4657
4658
4659</DD>
4660
4661<DT><b><a name="lmtp_connection_reuse_count_limit">lmtp_connection_reuse_count_limit</a>
4662(default: 0)</b></DT><DD>
4663
4664<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_connection_reuse_count_limit">smtp_connection_reuse_count_limit</a>
4665configuration parameter.  See there for details. </p>
4666
4667<p> This feature is available in Postfix 2.11 and later. </p>
4668
4669
4670</DD>
4671
4672<DT><b><a name="lmtp_connection_reuse_time_limit">lmtp_connection_reuse_time_limit</a>
4673(default: 300s)</b></DT><DD>
4674
4675<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a>
4676configuration parameter.  See there for details. </p>
4677
4678<p> This feature is available in Postfix 2.3 and later. </p>
4679
4680
4681</DD>
4682
4683<DT><b><a name="lmtp_data_done_timeout">lmtp_data_done_timeout</a>
4684(default: 600s)</b></DT><DD>
4685
4686<p> The Postfix LMTP client time limit for sending the LMTP ".",
4687and for receiving the remote LMTP server response.  When no response
4688is received within the deadline, a warning is logged that the mail
4689may be delivered multiple times.  </p>
4690
4691<p> Specify a non-zero time value (an integral value plus an optional
4692one-letter suffix that specifies the time unit).  Time units: s
4693(seconds), m (minutes), h (hours), d (days), w (weeks).
4694The default time unit is s (seconds).  </p>
4695
4696
4697</DD>
4698
4699<DT><b><a name="lmtp_data_init_timeout">lmtp_data_init_timeout</a>
4700(default: 120s)</b></DT><DD>
4701
4702<p>
4703The Postfix LMTP client time limit for sending the LMTP DATA command,
4704and
4705for receiving the remote LMTP server response.
4706</p>
4707
4708<p> Specify a non-zero time value (an integral value plus an optional
4709one-letter suffix that specifies the time unit).  Time units: s
4710(seconds), m (minutes), h (hours), d (days), w (weeks).
4711The default time unit is s (seconds).  </p>
4712
4713
4714</DD>
4715
4716<DT><b><a name="lmtp_data_xfer_timeout">lmtp_data_xfer_timeout</a>
4717(default: 180s)</b></DT><DD>
4718
4719<p>
4720The Postfix LMTP client time limit for sending the LMTP message
4721content.
4722When the connection stalls for more than $<a href="postconf.5.html#lmtp_data_xfer_timeout">lmtp_data_xfer_timeout</a>
4723the LMTP client terminates the transfer.
4724</p>
4725
4726<p> Specify a non-zero time value (an integral value plus an optional
4727one-letter suffix that specifies the time unit).  Time units: s
4728(seconds), m (minutes), h (hours), d (days), w (weeks).
4729The default time unit is s (seconds).  </p>
4730
4731
4732</DD>
4733
4734<DT><b><a name="lmtp_defer_if_no_mx_address_found">lmtp_defer_if_no_mx_address_found</a>
4735(default: no)</b></DT><DD>
4736
4737<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_defer_if_no_mx_address_found">smtp_defer_if_no_mx_address_found</a>
4738configuration parameter.  See there for details. </p>
4739
4740<p> This feature is available in Postfix 2.3 and later. </p>
4741
4742
4743</DD>
4744
4745<DT><b><a name="lmtp_delivery_status_filter">lmtp_delivery_status_filter</a>
4746(default: empty)</b></DT><DD>
4747
4748<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a>
4749configuration parameter.  See there for details. </p>
4750
4751<p> This feature is available in Postfix 3.0 and later. </p>
4752
4753
4754</DD>
4755
4756<DT><b><a name="lmtp_destination_concurrency_limit">lmtp_destination_concurrency_limit</a>
4757(default: $<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concurrency_limit</a>)</b></DT><DD>
4758
4759<p> The maximal number of parallel deliveries to the same destination
4760via the lmtp message delivery transport. This limit is enforced by
4761the queue manager. The message delivery transport name is the first
4762field in the entry in the <a href="master.5.html">master.cf</a> file.  </p>
4763
4764
4765</DD>
4766
4767<DT><b><a name="lmtp_destination_recipient_limit">lmtp_destination_recipient_limit</a>
4768(default: $<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b></DT><DD>
4769
4770<p> The maximal number of recipients per message for the lmtp
4771message delivery transport. This limit is enforced by the queue
4772manager. The message delivery transport name is the first field in
4773the entry in the <a href="master.5.html">master.cf</a> file.  </p>
4774
4775<p> Setting this parameter to a value of 1 changes the meaning of
4776<a href="postconf.5.html#lmtp_destination_concurrency_limit">lmtp_destination_concurrency_limit</a> from concurrency per domain into
4777concurrency per recipient.  </p>
4778
4779
4780</DD>
4781
4782<DT><b><a name="lmtp_discard_lhlo_keyword_address_maps">lmtp_discard_lhlo_keyword_address_maps</a>
4783(default: empty)</b></DT><DD>
4784
4785<p> Lookup tables, indexed by the remote LMTP server address, with
4786case insensitive lists of LHLO keywords (pipelining, starttls,
4787auth, etc.) that the Postfix LMTP client will ignore in the LHLO
4788response
4789from a remote LMTP server. See <a href="postconf.5.html#lmtp_discard_lhlo_keywords">lmtp_discard_lhlo_keywords</a> for
4790details. The table is not indexed by hostname for consistency with
4791<a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_keyword_address_maps</a>. </p>
4792
4793<p> This feature is available in Postfix 2.3 and later. </p>
4794
4795
4796</DD>
4797
4798<DT><b><a name="lmtp_discard_lhlo_keywords">lmtp_discard_lhlo_keywords</a>
4799(default: empty)</b></DT><DD>
4800
4801<p> A case insensitive list of LHLO keywords (pipelining, starttls,
4802auth, etc.) that the Postfix LMTP client will ignore in the LHLO
4803response
4804from a remote LMTP server. </p>
4805
4806<p> This feature is available in Postfix 2.3 and later. </p>
4807
4808<p> Notes: </p>
4809
4810<ul>
4811
4812<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
4813this action from being logged. </p>
4814
4815<li> <p> Use the <a href="postconf.5.html#lmtp_discard_lhlo_keyword_address_maps">lmtp_discard_lhlo_keyword_address_maps</a> feature to
4816discard LHLO keywords selectively. </p>
4817
4818</ul>
4819
4820
4821</DD>
4822
4823<DT><b><a name="lmtp_dns_reply_filter">lmtp_dns_reply_filter</a>
4824(default: empty)</b></DT><DD>
4825
4826<p> Optional filter for Postfix LMTP client DNS lookup results.
4827See <a href="postconf.5.html#smtp_dns_reply_filter">smtp_dns_reply_filter</a> for details including an example.  </p>
4828
4829<p> This feature is available in Postfix 3.0 and later. </p>
4830
4831
4832</DD>
4833
4834<DT><b><a name="lmtp_dns_resolver_options">lmtp_dns_resolver_options</a>
4835(default: empty)</b></DT><DD>
4836
4837<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_dns_resolver_options">smtp_dns_resolver_options</a>
4838configuration parameter.  See there for details. </p>
4839
4840<p> This feature is available in Postfix 2.8 and later.  </p>
4841
4842
4843</DD>
4844
4845<DT><b><a name="lmtp_dns_support_level">lmtp_dns_support_level</a>
4846(default: empty)</b></DT><DD>
4847
4848<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a>
4849configuration parameter.  See there for details.  </p>
4850
4851<p> This feature is available in Postfix 2.11 and later.  </p>
4852
4853
4854</DD>
4855
4856<DT><b><a name="lmtp_enforce_tls">lmtp_enforce_tls</a>
4857(default: no)</b></DT><DD>
4858
4859<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> configuration
4860parameter.  See there for details. </p>
4861
4862<p> This feature is available in Postfix 2.3 and later. </p>
4863
4864
4865</DD>
4866
4867<DT><b><a name="lmtp_fallback_relay">lmtp_fallback_relay</a>
4868(default: empty)</b></DT><DD>
4869
4870<p> Optional list of relay hosts for LMTP destinations that can't be
4871found or that are unreachable.  In <a href="postconf.5.html">main.cf</a> elements are separated by
4872whitespace or commas.  </p>
4873
4874<p> By default, mail is returned to the sender when a destination is not
4875found, and delivery is deferred when a destination is unreachable.  </p>
4876
4877<p> The fallback relays must be TCP destinations, specified without
4878a leading "inet:" prefix.  Specify a host or host:port.  Since MX
4879lookups do not apply with LMTP, there is no need to use the "[host]" or
4880"[host]:port" forms.  If you specify multiple LMTP destinations, Postfix
4881will try them in the specified order.  </p>
4882
4883<p>
4884This feature is available in Postfix 3.1 and later.
4885</p>
4886
4887
4888</DD>
4889
4890<DT><b><a name="lmtp_generic_maps">lmtp_generic_maps</a>
4891(default: empty)</b></DT><DD>
4892
4893<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_generic_maps">smtp_generic_maps</a> configuration
4894parameter.  See there for details. </p>
4895
4896<p> This feature is available in Postfix 2.3 and later. </p>
4897
4898
4899</DD>
4900
4901<DT><b><a name="lmtp_header_checks">lmtp_header_checks</a>
4902(default: empty)</b></DT><DD>
4903
4904<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_header_checks">smtp_header_checks</a> configuration
4905parameter. See there for details. </p>
4906
4907<p> This feature is available in Postfix 2.5 and later. </p>
4908
4909
4910</DD>
4911
4912<DT><b><a name="lmtp_host_lookup">lmtp_host_lookup</a>
4913(default: dns)</b></DT><DD>
4914
4915<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_host_lookup">smtp_host_lookup</a> configuration
4916parameter.  See there for details. </p>
4917
4918<p> This feature is available in Postfix 2.3 and later. </p>
4919
4920
4921</DD>
4922
4923<DT><b><a name="lmtp_lhlo_name">lmtp_lhlo_name</a>
4924(default: $<a href="postconf.5.html#myhostname">myhostname</a>)</b></DT><DD>
4925
4926<p>
4927The hostname to send in the LMTP LHLO command.
4928</p>
4929
4930<p>
4931The default value is the machine hostname.  Specify a hostname or
4932[ip.add.re.ss] or [ip:v6:add:re::ss].
4933</p>
4934
4935<p>
4936This information can be specified in the <a href="postconf.5.html">main.cf</a> file for all LMTP
4937clients, or it can be specified in the <a href="master.5.html">master.cf</a> file for a specific
4938client, for example:
4939</p>
4940
4941<blockquote>
4942<pre>
4943/etc/postfix/<a href="master.5.html">master.cf</a>:
4944    mylmtp ... lmtp -o <a href="postconf.5.html#lmtp_lhlo_name">lmtp_lhlo_name</a>=foo.bar.com
4945</pre>
4946</blockquote>
4947
4948<p>
4949This feature is available in Postfix 2.3 and later.
4950</p>
4951
4952
4953</DD>
4954
4955<DT><b><a name="lmtp_lhlo_timeout">lmtp_lhlo_timeout</a>
4956(default: 300s)</b></DT><DD>
4957
4958<p> The Postfix LMTP client time limit for sending the LHLO command,
4959and for receiving the initial remote LMTP server response. </p>
4960
4961<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
4962(weeks).  The default time unit is s (seconds).  </p>
4963
4964
4965</DD>
4966
4967<DT><b><a name="lmtp_line_length_limit">lmtp_line_length_limit</a>
4968(default: 998)</b></DT><DD>
4969
4970<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_line_length_limit">smtp_line_length_limit</a>
4971configuration parameter.  See there for details. </p>
4972
4973<p> This feature is available in Postfix 2.3 and later. </p>
4974
4975
4976</DD>
4977
4978<DT><b><a name="lmtp_mail_timeout">lmtp_mail_timeout</a>
4979(default: 300s)</b></DT><DD>
4980
4981<p>
4982The Postfix LMTP client time limit for sending the MAIL FROM command,
4983and for receiving the remote LMTP server response.
4984</p>
4985
4986<p> Specify a non-zero time value (an integral value plus an optional
4987one-letter suffix that specifies the time unit).  Time units: s
4988(seconds), m (minutes), h (hours), d (days), w (weeks).
4989The default time unit is s (seconds).  </p>
4990
4991
4992</DD>
4993
4994<DT><b><a name="lmtp_mime_header_checks">lmtp_mime_header_checks</a>
4995(default: empty)</b></DT><DD>
4996
4997<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_mime_header_checks">smtp_mime_header_checks</a>
4998configuration parameter. See there for details. </p>
4999
5000<p> This feature is available in Postfix 2.5 and later. </p>
5001
5002
5003</DD>
5004
5005<DT><b><a name="lmtp_min_data_rate">lmtp_min_data_rate</a>
5006(default: 500)</b></DT><DD>
5007
5008<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_min_data_rate">smtp_min_data_rate</a> configuration
5009parameter. See there for details. </p>
5010
5011<p> This feature is available in Postfix 3.7 and later. </p>
5012
5013
5014</DD>
5015
5016<DT><b><a name="lmtp_mx_address_limit">lmtp_mx_address_limit</a>
5017(default: 5)</b></DT><DD>
5018
5019<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_mx_address_limit">smtp_mx_address_limit</a> configuration
5020parameter.  See there for details. </p>
5021
5022<p> This feature is available in Postfix 2.3 and later. </p>
5023
5024
5025</DD>
5026
5027<DT><b><a name="lmtp_mx_session_limit">lmtp_mx_session_limit</a>
5028(default: 2)</b></DT><DD>
5029
5030<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_mx_session_limit">smtp_mx_session_limit</a> configuration
5031parameter.  See there for details. </p>
5032
5033<p> This feature is available in Postfix 2.3 and later. </p>
5034
5035
5036</DD>
5037
5038<DT><b><a name="lmtp_nested_header_checks">lmtp_nested_header_checks</a>
5039(default: empty)</b></DT><DD>
5040
5041<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_nested_header_checks">smtp_nested_header_checks</a>
5042configuration parameter. See there for details. </p>
5043
5044<p> This feature is available in Postfix 2.5 and later. </p>
5045
5046
5047</DD>
5048
5049<DT><b><a name="lmtp_per_record_deadline">lmtp_per_record_deadline</a>
5050(default: no)</b></DT><DD>
5051
5052<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_per_record_deadline">smtp_per_record_deadline</a>
5053configuration parameter.  See there for details. </p>
5054
5055<p> This feature is available in Postfix 2.9 and later.  </p>
5056
5057
5058</DD>
5059
5060<DT><b><a name="lmtp_per_request_deadline">lmtp_per_request_deadline</a>
5061(default: no)</b></DT><DD>
5062
5063<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_per_request_deadline">smtp_per_request_deadline</a>
5064configuration parameter. See there for details. </p>
5065
5066<p> This feature is available in Postfix 3.7 and later. </p>
5067
5068
5069</DD>
5070
5071<DT><b><a name="lmtp_pix_workaround_delay_time">lmtp_pix_workaround_delay_time</a>
5072(default: 10s)</b></DT><DD>
5073
5074<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a>
5075configuration parameter.  See there for details. </p>
5076
5077<p> This feature is available in Postfix 2.3 and later. </p>
5078
5079
5080</DD>
5081
5082<DT><b><a name="lmtp_pix_workaround_maps">lmtp_pix_workaround_maps</a>
5083(default: empty)</b></DT><DD>
5084
5085<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_pix_workaround_maps">smtp_pix_workaround_maps</a>
5086configuration parameter.  See there for details. </p>
5087
5088<p> This feature is available in Postfix 2.4 and later. </p>
5089
5090
5091</DD>
5092
5093<DT><b><a name="lmtp_pix_workaround_threshold_time">lmtp_pix_workaround_threshold_time</a>
5094(default: 500s)</b></DT><DD>
5095
5096<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_pix_workaround_threshold_time">smtp_pix_workaround_threshold_time</a>
5097configuration parameter.  See there for details. </p>
5098
5099<p> This feature is available in Postfix 2.3 and later. </p>
5100
5101
5102</DD>
5103
5104<DT><b><a name="lmtp_pix_workarounds">lmtp_pix_workarounds</a>
5105(default: empty)</b></DT><DD>
5106
5107<p> The LMTP-specific version of the smtp_pix_workaround
5108configuration parameter.  See there for details. </p>
5109
5110<p> This feature is available in Postfix 2.4 and later. </p>
5111
5112
5113</DD>
5114
5115<DT><b><a name="lmtp_quit_timeout">lmtp_quit_timeout</a>
5116(default: 300s)</b></DT><DD>
5117
5118<p>
5119The Postfix LMTP client time limit for sending the QUIT command,
5120and for receiving the remote LMTP server response.
5121</p>
5122
5123<p> Specify a non-zero time value (an integral value plus an optional
5124one-letter suffix that specifies the time unit).  Time units: s
5125(seconds), m (minutes), h (hours), d (days), w (weeks).
5126The default time unit is s (seconds).  </p>
5127
5128
5129</DD>
5130
5131<DT><b><a name="lmtp_quote_rfc821_envelope">lmtp_quote_rfc821_envelope</a>
5132(default: yes)</b></DT><DD>
5133
5134<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a>
5135configuration parameter.  See there for details. </p>
5136
5137<p> This feature is available in Postfix 2.3 and later. </p>
5138
5139
5140</DD>
5141
5142<DT><b><a name="lmtp_randomize_addresses">lmtp_randomize_addresses</a>
5143(default: yes)</b></DT><DD>
5144
5145<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_randomize_addresses">smtp_randomize_addresses</a>
5146configuration parameter.  See there for details. </p>
5147
5148<p> This feature is available in Postfix 2.3 and later. </p>
5149
5150
5151</DD>
5152
5153<DT><b><a name="lmtp_rcpt_timeout">lmtp_rcpt_timeout</a>
5154(default: 300s)</b></DT><DD>
5155
5156<p>
5157The Postfix LMTP client time limit for sending the RCPT TO command,
5158and for receiving the remote LMTP server response.
5159</p>
5160
5161<p> Specify a non-zero time value (an integral value plus an optional
5162one-letter suffix that specifies the time unit).  Time units: s
5163(seconds), m (minutes), h (hours), d (days), w (weeks).
5164The default time unit is s (seconds).  </p>
5165
5166
5167</DD>
5168
5169<DT><b><a name="lmtp_reply_filter">lmtp_reply_filter</a>
5170(default: empty)</b></DT><DD>
5171
5172<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a>
5173configuration parameter.  See there for details. </p>
5174
5175<p> This feature is available in Postfix 2.7 and later. </p>
5176
5177
5178</DD>
5179
5180<DT><b><a name="lmtp_rset_timeout">lmtp_rset_timeout</a>
5181(default: 20s)</b></DT><DD>
5182
5183<p> The Postfix LMTP client time limit for sending the RSET command,
5184and for receiving the remote LMTP server response. The LMTP client
5185sends RSET in
5186order to finish a recipient address probe, or to verify that a
5187cached connection is still alive.  </p>
5188
5189<p> Specify a non-zero time value (an integral value plus an optional
5190one-letter suffix that specifies the time unit).  Time units: s
5191(seconds), m (minutes), h (hours), d (days), w (weeks).
5192The default time unit is s (seconds).  </p>
5193
5194
5195</DD>
5196
5197<DT><b><a name="lmtp_sasl_auth_cache_name">lmtp_sasl_auth_cache_name</a>
5198(default: empty)</b></DT><DD>
5199
5200<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a>
5201configuration parameter.  See there for details. </p>
5202
5203<p> This feature is available in Postfix 2.5 and later. </p>
5204
5205
5206</DD>
5207
5208<DT><b><a name="lmtp_sasl_auth_cache_time">lmtp_sasl_auth_cache_time</a>
5209(default: 90d)</b></DT><DD>
5210
5211<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a>
5212configuration parameter.  See there for details. </p>
5213
5214<p> This feature is available in Postfix 2.5 and later. </p>
5215
5216
5217</DD>
5218
5219<DT><b><a name="lmtp_sasl_auth_enable">lmtp_sasl_auth_enable</a>
5220(default: no)</b></DT><DD>
5221
5222<p>
5223Enable SASL authentication in the Postfix LMTP client.
5224</p>
5225
5226
5227</DD>
5228
5229<DT><b><a name="lmtp_sasl_auth_soft_bounce">lmtp_sasl_auth_soft_bounce</a>
5230(default: yes)</b></DT><DD>
5231
5232<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a>
5233configuration parameter.  See there for details. </p>
5234
5235<p> This feature is available in Postfix 2.5 and later. </p>
5236
5237
5238</DD>
5239
5240<DT><b><a name="lmtp_sasl_mechanism_filter">lmtp_sasl_mechanism_filter</a>
5241(default: empty)</b></DT><DD>
5242
5243<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a>
5244configuration parameter.  See there for details. </p>
5245
5246<p> This feature is available in Postfix 2.3 and later. </p>
5247
5248
5249</DD>
5250
5251<DT><b><a name="lmtp_sasl_password_maps">lmtp_sasl_password_maps</a>
5252(default: empty)</b></DT><DD>
5253
5254<p>
5255Optional Postfix LMTP client lookup tables with one username:password entry
5256per host or domain.  If a remote host or domain has no username:password
5257entry, then the Postfix LMTP client will not attempt to authenticate
5258to the remote host.
5259</p>
5260
5261
5262</DD>
5263
5264<DT><b><a name="lmtp_sasl_path">lmtp_sasl_path</a>
5265(default: empty)</b></DT><DD>
5266
5267<p> Implementation-specific information that is passed through to
5268the SASL plug-in implementation that is selected with
5269<b><a href="postconf.5.html#lmtp_sasl_type">lmtp_sasl_type</a></b>.  Typically this specifies the name of a
5270configuration file or rendezvous point. </p>
5271
5272<p> This feature is available in Postfix 2.3 and later. </p>
5273
5274
5275</DD>
5276
5277<DT><b><a name="lmtp_sasl_security_options">lmtp_sasl_security_options</a>
5278(default: noplaintext, noanonymous)</b></DT><DD>
5279
5280<p> SASL security options; as of Postfix 2.3 the list of available
5281features depends on the SASL client implementation that is selected
5282with <b><a href="postconf.5.html#lmtp_sasl_type">lmtp_sasl_type</a></b>.  </p>
5283
5284<p> The following security features are defined for the <b>cyrus</b>
5285client SASL implementation: </p>
5286
5287<dl>
5288
5289<dt><b>noplaintext</b></dt>
5290
5291<dd>Disallow authentication methods that use plaintext passwords. </dd>
5292
5293<dt><b>noactive</b></dt>
5294
5295<dd>Disallow authentication methods that are vulnerable to non-dictionary
5296active attacks. </dd>
5297
5298<dt><b>nodictionary</b></dt>
5299
5300<dd>Disallow authentication methods that are vulnerable to passive
5301dictionary attacks. </dd>
5302
5303<dt><b>noanonymous</b></dt>
5304
5305<dd>Disallow anonymous logins. </dd>
5306
5307</dl>
5308
5309<p>
5310Example:
5311</p>
5312
5313<pre>
5314<a href="postconf.5.html#lmtp_sasl_security_options">lmtp_sasl_security_options</a> = noplaintext
5315</pre>
5316
5317
5318</DD>
5319
5320<DT><b><a name="lmtp_sasl_tls_security_options">lmtp_sasl_tls_security_options</a>
5321(default: $<a href="postconf.5.html#lmtp_sasl_security_options">lmtp_sasl_security_options</a>)</b></DT><DD>
5322
5323<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_security_options</a>
5324configuration parameter.  See there for details. </p>
5325
5326<p> This feature is available in Postfix 2.3 and later. </p>
5327
5328
5329</DD>
5330
5331<DT><b><a name="lmtp_sasl_tls_verified_security_options">lmtp_sasl_tls_verified_security_options</a>
5332(default: $<a href="postconf.5.html#lmtp_sasl_tls_security_options">lmtp_sasl_tls_security_options</a>)</b></DT><DD>
5333
5334<p> The LMTP-specific version of the
5335<a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> configuration parameter.
5336See there for details. </p>
5337
5338<p> This feature is available in Postfix 2.3 and later. </p>
5339
5340
5341</DD>
5342
5343<DT><b><a name="lmtp_sasl_type">lmtp_sasl_type</a>
5344(default: cyrus)</b></DT><DD>
5345
5346<p> The SASL plug-in type that the Postfix LMTP client should use
5347for authentication.  The available types are listed with the
5348"<b>postconf -A</b>" command. </p>
5349
5350<p> This feature is available in Postfix 2.3 and later. </p>
5351
5352
5353</DD>
5354
5355<DT><b><a name="lmtp_send_dummy_mail_auth">lmtp_send_dummy_mail_auth</a>
5356(default: no)</b></DT><DD>
5357
5358<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a>
5359configuration parameter.  See there for details. </p>
5360
5361<p> This feature is available in Postfix 2.9 and later.  </p>
5362
5363
5364</DD>
5365
5366<DT><b><a name="lmtp_send_xforward_command">lmtp_send_xforward_command</a>
5367(default: no)</b></DT><DD>
5368
5369<p>
5370Send an XFORWARD command to the remote LMTP server when the LMTP LHLO
5371server response announces XFORWARD support.  This allows an <a href="lmtp.8.html">lmtp(8)</a>
5372delivery agent, used for content filter message injection, to
5373forward the name, address, protocol and HELO name of the original
5374client to the content filter and downstream LMTP server.
5375Before you change the value to yes, it is best to make sure that
5376your content filter supports this command.
5377</p>
5378
5379<p>
5380This feature is available in Postfix 2.1 and later.
5381</p>
5382
5383
5384</DD>
5385
5386<DT><b><a name="lmtp_sender_dependent_authentication">lmtp_sender_dependent_authentication</a>
5387(default: no)</b></DT><DD>
5388
5389<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a>
5390configuration parameter.  See there for details. </p>
5391
5392<p> This feature is available in Postfix 2.3 and later. </p>
5393
5394
5395</DD>
5396
5397<DT><b><a name="lmtp_skip_5xx_greeting">lmtp_skip_5xx_greeting</a>
5398(default: yes)</b></DT><DD>
5399
5400<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_skip_5xx_greeting">smtp_skip_5xx_greeting</a>
5401configuration parameter.  See there for details. </p>
5402
5403<p> This feature is available in Postfix 2.3 and later. </p>
5404
5405
5406</DD>
5407
5408<DT><b><a name="lmtp_skip_quit_response">lmtp_skip_quit_response</a>
5409(default: no)</b></DT><DD>
5410
5411<p>
5412Wait for the response to the LMTP QUIT command.
5413</p>
5414
5415
5416</DD>
5417
5418<DT><b><a name="lmtp_starttls_timeout">lmtp_starttls_timeout</a>
5419(default: 300s)</b></DT><DD>
5420
5421<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_starttls_timeout">smtp_starttls_timeout</a> configuration
5422parameter.  See there for details. </p>
5423
5424<p> This feature is available in Postfix 2.3 and later. </p>
5425
5426
5427</DD>
5428
5429<DT><b><a name="lmtp_tcp_port">lmtp_tcp_port</a>
5430(default: 24)</b></DT><DD>
5431
5432<p>
5433The default TCP port that the Postfix LMTP client connects to.
5434Specify a symbolic name (see services(5)) or a numeric port.
5435</p>
5436
5437
5438</DD>
5439
5440<DT><b><a name="lmtp_tls_CAfile">lmtp_tls_CAfile</a>
5441(default: empty)</b></DT><DD>
5442
5443<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a>
5444configuration parameter.  See there for details. </p>
5445
5446<p> This feature is available in Postfix 2.3 and later. </p>
5447
5448
5449</DD>
5450
5451<DT><b><a name="lmtp_tls_CApath">lmtp_tls_CApath</a>
5452(default: empty)</b></DT><DD>
5453
5454<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a>
5455configuration parameter.  See there for details. </p>
5456
5457<p> This feature is available in Postfix 2.3 and later. </p>
5458
5459
5460</DD>
5461
5462<DT><b><a name="lmtp_tls_block_early_mail_reply">lmtp_tls_block_early_mail_reply</a>
5463(default: empty)</b></DT><DD>
5464
5465<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a>
5466configuration parameter.  See there for details. </p>
5467
5468<p> This feature is available in Postfix 2.7 and later. </p>
5469
5470
5471</DD>
5472
5473<DT><b><a name="lmtp_tls_cert_file">lmtp_tls_cert_file</a>
5474(default: empty)</b></DT><DD>
5475
5476<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>
5477configuration parameter.  See there for details. </p>
5478
5479<p> This feature is available in Postfix 2.3 and later. </p>
5480
5481
5482</DD>
5483
5484<DT><b><a name="lmtp_tls_chain_files">lmtp_tls_chain_files</a>
5485(default: empty)</b></DT><DD>
5486
5487<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a> configuration
5488parameter. See there for details. </p>
5489
5490<p> This feature is available in Postfix 3.4 and later.  </p>
5491
5492
5493</DD>
5494
5495<DT><b><a name="lmtp_tls_ciphers">lmtp_tls_ciphers</a>
5496(default: medium)</b></DT><DD>
5497
5498<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a> configuration
5499parameter. See there for details. </p>
5500
5501<p> This feature is available in Postfix 2.6 and later. </p>
5502
5503
5504</DD>
5505
5506<DT><b><a name="lmtp_tls_connection_reuse">lmtp_tls_connection_reuse</a>
5507(default: no)</b></DT><DD>
5508
5509<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a> configuration
5510parameter. See there for details. </p>
5511
5512<p> This feature is available in Postfix 3.4 and later. </p>
5513
5514
5515</DD>
5516
5517<DT><b><a name="lmtp_tls_dcert_file">lmtp_tls_dcert_file</a>
5518(default: empty)</b></DT><DD>
5519
5520<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a>
5521configuration parameter.  See there for details. </p>
5522
5523<p> This feature is available in Postfix 2.3 and later. </p>
5524
5525
5526</DD>
5527
5528<DT><b><a name="lmtp_tls_dkey_file">lmtp_tls_dkey_file</a>
5529(default: $<a href="postconf.5.html#lmtp_tls_dcert_file">lmtp_tls_dcert_file</a>)</b></DT><DD>
5530
5531<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_dkey_file">smtp_tls_dkey_file</a>
5532configuration parameter.  See there for details. </p>
5533
5534<p> This feature is available in Postfix 2.3 and later. </p>
5535
5536
5537</DD>
5538
5539<DT><b><a name="lmtp_tls_eccert_file">lmtp_tls_eccert_file</a>
5540(default: empty)</b></DT><DD>
5541
5542<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> configuration
5543parameter.  See there for details. </p>
5544
5545<p> This feature is available in Postfix 2.6 and later, when Postfix is
5546compiled and linked with OpenSSL 1.0.0 or later. </p>
5547
5548
5549</DD>
5550
5551<DT><b><a name="lmtp_tls_eckey_file">lmtp_tls_eckey_file</a>
5552(default: empty)</b></DT><DD>
5553
5554<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> configuration
5555parameter.  See there for details. </p>
5556
5557<p> This feature is available in Postfix 2.6 and later, when Postfix is
5558compiled and linked with OpenSSL 1.0.0 or later. </p>
5559
5560
5561</DD>
5562
5563<DT><b><a name="lmtp_tls_enforce_peername">lmtp_tls_enforce_peername</a>
5564(default: yes)</b></DT><DD>
5565
5566<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>
5567configuration parameter.  See there for details. </p>
5568
5569<p> This feature is available in Postfix 2.3 and later. </p>
5570
5571
5572</DD>
5573
5574<DT><b><a name="lmtp_tls_exclude_ciphers">lmtp_tls_exclude_ciphers</a>
5575(default: empty)</b></DT><DD>
5576
5577<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a>
5578configuration parameter.  See there for details. </p>
5579
5580<p> This feature is available in Postfix 2.3 and later. </p>
5581
5582
5583</DD>
5584
5585<DT><b><a name="lmtp_tls_fingerprint_cert_match">lmtp_tls_fingerprint_cert_match</a>
5586(default: empty)</b></DT><DD>
5587
5588<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a>
5589configuration parameter.  See there for details. </p>
5590
5591<p> This feature is available in Postfix 2.5 and later. </p>
5592
5593
5594</DD>
5595
5596<DT><b><a name="lmtp_tls_fingerprint_digest">lmtp_tls_fingerprint_digest</a>
5597(default: see "postconf -d" output)</b></DT><DD>
5598
5599<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a>
5600configuration parameter.  See there for details. </p>
5601
5602<p> This feature is available in Postfix 2.5 and later. </p>
5603
5604
5605</DD>
5606
5607<DT><b><a name="lmtp_tls_force_insecure_host_tlsa_lookup">lmtp_tls_force_insecure_host_tlsa_lookup</a>
5608(default: no)</b></DT><DD>
5609
5610<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_force_insecure_host_tlsa_lookup">smtp_tls_force_insecure_host_tlsa_lookup</a>
5611configuration parameter.  See there for details. </p>
5612
5613<p> This feature is available in Postfix 2.11 and later. </p>
5614
5615
5616</DD>
5617
5618<DT><b><a name="lmtp_tls_key_file">lmtp_tls_key_file</a>
5619(default: $<a href="postconf.5.html#lmtp_tls_cert_file">lmtp_tls_cert_file</a>)</b></DT><DD>
5620
5621<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_key_file">smtp_tls_key_file</a>
5622configuration parameter.  See there for details. </p>
5623
5624<p> This feature is available in Postfix 2.3 and later. </p>
5625
5626
5627</DD>
5628
5629<DT><b><a name="lmtp_tls_loglevel">lmtp_tls_loglevel</a>
5630(default: 0)</b></DT><DD>
5631
5632<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_loglevel">smtp_tls_loglevel</a>
5633configuration parameter.  See there for details. </p>
5634
5635<p> This feature is available in Postfix 2.3 and later. </p>
5636
5637
5638</DD>
5639
5640<DT><b><a name="lmtp_tls_mandatory_ciphers">lmtp_tls_mandatory_ciphers</a>
5641(default: medium)</b></DT><DD>
5642
5643<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>
5644configuration parameter.  See there for details. </p>
5645
5646<p> This feature is available in Postfix 2.3 and later. </p>
5647
5648
5649</DD>
5650
5651<DT><b><a name="lmtp_tls_mandatory_exclude_ciphers">lmtp_tls_mandatory_exclude_ciphers</a>
5652(default: empty)</b></DT><DD>
5653
5654<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>
5655configuration parameter.  See there for details. </p>
5656
5657<p> This feature is available in Postfix 2.3 and later. </p>
5658
5659
5660</DD>
5661
5662<DT><b><a name="lmtp_tls_mandatory_protocols">lmtp_tls_mandatory_protocols</a>
5663(default: see postconf -d output)</b></DT><DD>
5664
5665<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>
5666configuration parameter. See there for details. </p>
5667
5668<p> This feature is available in Postfix 2.3 and later. </p>
5669
5670
5671</DD>
5672
5673<DT><b><a name="lmtp_tls_note_starttls_offer">lmtp_tls_note_starttls_offer</a>
5674(default: no)</b></DT><DD>
5675
5676<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_note_starttls_offer">smtp_tls_note_starttls_offer</a>
5677configuration parameter.  See there for details. </p>
5678
5679<p> This feature is available in Postfix 2.3 and later. </p>
5680
5681
5682</DD>
5683
5684<DT><b><a name="lmtp_tls_per_site">lmtp_tls_per_site</a>
5685(default: empty)</b></DT><DD>
5686
5687<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> configuration
5688parameter.  See there for details. </p>
5689
5690<p> This feature is available in Postfix 2.3 and later. </p>
5691
5692
5693</DD>
5694
5695<DT><b><a name="lmtp_tls_policy_maps">lmtp_tls_policy_maps</a>
5696(default: empty)</b></DT><DD>
5697
5698<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>
5699configuration parameter. See there for details. </p>
5700
5701<p> This feature is available in Postfix 2.3 and later. </p>
5702
5703
5704</DD>
5705
5706<DT><b><a name="lmtp_tls_protocols">lmtp_tls_protocols</a>
5707(default: see postconf -d output)</b></DT><DD>
5708
5709<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> configuration
5710parameter. See there for details. </p>
5711
5712<p> This feature is available in Postfix 2.6 and later. </p>
5713
5714
5715</DD>
5716
5717<DT><b><a name="lmtp_tls_scert_verifydepth">lmtp_tls_scert_verifydepth</a>
5718(default: 9)</b></DT><DD>
5719
5720<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a>
5721configuration parameter.  See there for details. </p>
5722
5723<p> This feature is available in Postfix 2.3 and later. </p>
5724
5725
5726</DD>
5727
5728<DT><b><a name="lmtp_tls_secure_cert_match">lmtp_tls_secure_cert_match</a>
5729(default: nexthop)</b></DT><DD>
5730
5731<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a>
5732configuration parameter. See there for details. </p>
5733
5734<p> This feature is available in Postfix 2.3 and later. </p>
5735
5736
5737</DD>
5738
5739<DT><b><a name="lmtp_tls_security_level">lmtp_tls_security_level</a>
5740(default: empty)</b></DT><DD>
5741
5742<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> configuration
5743parameter.  See there for details. </p>
5744
5745<p> This feature is available in Postfix 2.3 and later. </p>
5746
5747
5748</DD>
5749
5750<DT><b><a name="lmtp_tls_servername">lmtp_tls_servername</a>
5751(default: empty)</b></DT><DD>
5752
5753<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_servername">smtp_tls_servername</a> configuration
5754parameter. See there for details. </p>
5755
5756<p> This feature is available in Postfix 3.4 and later.  </p>
5757
5758
5759</DD>
5760
5761<DT><b><a name="lmtp_tls_session_cache_database">lmtp_tls_session_cache_database</a>
5762(default: empty)</b></DT><DD>
5763
5764<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a>
5765configuration parameter. See there for details. </p>
5766
5767<p> This feature is available in Postfix 2.3 and later. </p>
5768
5769
5770</DD>
5771
5772<DT><b><a name="lmtp_tls_session_cache_timeout">lmtp_tls_session_cache_timeout</a>
5773(default: 3600s)</b></DT><DD>
5774
5775<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a>
5776configuration parameter.  See there for details. </p>
5777
5778<p> This feature is available in Postfix 2.3 and later. </p>
5779
5780
5781</DD>
5782
5783<DT><b><a name="lmtp_tls_trust_anchor_file">lmtp_tls_trust_anchor_file</a>
5784(default: empty)</b></DT><DD>
5785
5786<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_trust_anchor_file">smtp_tls_trust_anchor_file</a>
5787configuration parameter.  See there for details.  </p>
5788
5789<p> This feature is available in Postfix 2.11 and later.  </p>
5790
5791
5792</DD>
5793
5794<DT><b><a name="lmtp_tls_verify_cert_match">lmtp_tls_verify_cert_match</a>
5795(default: hostname)</b></DT><DD>
5796
5797<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a>
5798configuration parameter. See there for details. </p>
5799
5800<p> This feature is available in Postfix 2.3 and later. </p>
5801
5802
5803</DD>
5804
5805<DT><b><a name="lmtp_tls_wrappermode">lmtp_tls_wrappermode</a>
5806(default: no)</b></DT><DD>
5807
5808<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_tls_wrappermode">smtp_tls_wrappermode</a> configuration
5809parameter. See there for details. </p>
5810
5811<p> This feature is available in Postfix 3.0 and later. </p>
5812
5813
5814</DD>
5815
5816<DT><b><a name="lmtp_use_tls">lmtp_use_tls</a>
5817(default: no)</b></DT><DD>
5818
5819<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a> configuration
5820parameter.  See there for details. </p>
5821
5822<p> This feature is available in Postfix 2.3 and later. </p>
5823
5824
5825</DD>
5826
5827<DT><b><a name="lmtp_xforward_timeout">lmtp_xforward_timeout</a>
5828(default: 300s)</b></DT><DD>
5829
5830<p>
5831The Postfix LMTP client time limit for sending the XFORWARD command,
5832and for receiving the remote LMTP server response.
5833</p>
5834
5835<p>
5836In case of problems the client does NOT try the next address on
5837the mail exchanger list.
5838</p>
5839
5840<p> Specify a non-zero time value (an integral value plus an optional
5841one-letter suffix that specifies the time unit).  Time units: s
5842(seconds), m (minutes), h (hours), d (days), w (weeks).
5843The default time unit is s (seconds).  </p>
5844
5845<p>
5846This feature is available in Postfix 2.1 and later.
5847</p>
5848
5849
5850</DD>
5851
5852<DT><b><a name="local_command_shell">local_command_shell</a>
5853(default: empty)</b></DT><DD>
5854
5855<p>
5856Optional shell program for <a href="local.8.html">local(8)</a> delivery to non-Postfix commands.
5857By default, non-Postfix commands are executed directly; commands
5858are given to the default shell (typically, /bin/sh) only when they
5859contain shell meta characters or shell built-in commands.
5860</p>
5861
5862<p> "sendmail's restricted shell" (smrsh) is what most people will
5863use in order to restrict what programs can be run from e.g. .forward
5864files (smrsh is part of the Sendmail distribution).  </p>
5865
5866<p> Note: when a shell program is specified, it is invoked even
5867when the command contains no shell built-in commands or meta
5868characters.  </p>
5869
5870<p>
5871Example:
5872</p>
5873
5874<pre>
5875<a href="postconf.5.html#local_command_shell">local_command_shell</a> = /some/where/smrsh -c
5876<a href="postconf.5.html#local_command_shell">local_command_shell</a> = /bin/bash -c
5877</pre>
5878
5879
5880</DD>
5881
5882<DT><b><a name="local_delivery_status_filter">local_delivery_status_filter</a>
5883(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
5884
5885<p> Optional filter for the <a href="local.8.html">local(8)</a> delivery agent to change the
5886status code or explanatory text of successful or unsuccessful
5887deliveries.  See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details.  </p>
5888
5889<p> This feature is available in Postfix 3.0 and later. </p>
5890
5891
5892</DD>
5893
5894<DT><b><a name="local_destination_concurrency_limit">local_destination_concurrency_limit</a>
5895(default: 2)</b></DT><DD>
5896
5897<p> The maximal number of parallel deliveries via the local mail
5898delivery transport to the same recipient (when
5899"<a href="postconf.5.html#local_destination_recipient_limit">local_destination_recipient_limit</a> = 1") or the maximal number of
5900parallel deliveries to the same <a href="ADDRESS_CLASS_README.html#local_domain_class">local domain</a> (when
5901"<a href="postconf.5.html#local_destination_recipient_limit">local_destination_recipient_limit</a> &gt; 1"). This limit is enforced by
5902the queue manager. The message delivery transport name is the first
5903field in the entry in the <a href="master.5.html">master.cf</a> file. </p>
5904
5905<p> A low limit of 2 is recommended, just in case someone has an
5906expensive shell command in a .forward file or in an alias (e.g.,
5907a mailing list manager).  You don't want to run lots of those at
5908the same time.  </p>
5909
5910
5911</DD>
5912
5913<DT><b><a name="local_destination_recipient_limit">local_destination_recipient_limit</a>
5914(default: 1)</b></DT><DD>
5915
5916<p> The maximal number of recipients per message delivery via the
5917local mail delivery transport. This limit is enforced by the queue
5918manager. The message delivery transport name is the first field in
5919the entry in the <a href="master.5.html">master.cf</a> file. </p>
5920
5921<p> Setting this parameter to a value &gt; 1 changes the meaning of
5922<a href="postconf.5.html#local_destination_concurrency_limit">local_destination_concurrency_limit</a> from concurrency per recipient
5923into concurrency per domain.  </p>
5924
5925
5926</DD>
5927
5928<DT><b><a name="local_header_rewrite_clients">local_header_rewrite_clients</a>
5929(default: <a href="postconf.5.html#permit_inet_interfaces">permit_inet_interfaces</a>)</b></DT><DD>
5930
5931<p> Rewrite or add message headers in mail from these clients,
5932updating incomplete addresses with the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or
5933$<a href="postconf.5.html#mydomain">mydomain</a>, and adding missing headers. </p>
5934
5935<p> See the <a href="postconf.5.html#append_at_myorigin">append_at_myorigin</a> and <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a> parameters
5936for details of how domain names are appended to incomplete addresses.
5937</p>
5938
5939<p> See <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> to optionally rewrite or add
5940message headers in mail from other clients. </p>
5941
5942<p> Specify a list of zero or more of the following:  </p>
5943
5944<dl>
5945
5946<dt><b><a href="postconf.5.html#permit_inet_interfaces">permit_inet_interfaces</a></b></dt>
5947
5948<dd> Append the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> when the
5949client IP address matches $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>. This is enabled by
5950default. </dd>
5951
5952<dt><b><a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a></b></dt>
5953
5954<dd> Append the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> when the
5955client IP address matches any network or network address listed in
5956$<a href="postconf.5.html#mynetworks">mynetworks</a>. This setting will not prevent remote mail header
5957address rewriting when mail from a remote client is forwarded by
5958a neighboring system.  </dd>
5959
5960<dt><b><a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a> </b></dt>
5961
5962<dd> Append the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> when the
5963client is successfully authenticated via the <a href="https://tools.ietf.org/html/rfc4954">RFC 4954</a> (AUTH)
5964protocol. </dd>
5965
5966<dt><b><a href="postconf.5.html#permit_tls_clientcerts">permit_tls_clientcerts</a> </b></dt>
5967
5968<dd> Append the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> when the
5969remote SMTP client TLS certificate fingerprint or public key fingerprint
5970(Postfix 2.9 and later) is listed in $<a href="postconf.5.html#relay_clientcerts">relay_clientcerts</a>.
5971The fingerprint digest algorithm is configurable via the
5972<a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> parameter (hard-coded as md5 prior to
5973Postfix version 2.5).  </dd>
5974
5975<dd> The default algorithm is <b>sha256</b> with Postfix &ge; 3.6
5976and the <b><a href="postconf.5.html#compatibility_level">compatibility_level</a></b> set to 3.6 or higher. With Postfix
5977&le; 3.5, the default algorithm is <b>md5</b>.  The best-practice
5978algorithm is now <b>sha256</b>. Recent advances in hash function
5979cryptanalysis have led to md5 and sha1 being deprecated in favor of
5980sha256.  However, as long as there are no known "second pre-image"
5981attacks against the older algorithms, their use in this context, though
5982not recommended, is still likely safe.  </dd>
5983
5984<dt><b><a href="postconf.5.html#permit_tls_all_clientcerts">permit_tls_all_clientcerts</a> </b></dt>
5985
5986<dd> Append the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> when the
5987remote SMTP client TLS certificate is successfully verified, regardless of
5988whether it is listed on the server, and regardless of the certifying
5989authority. </dd>
5990
5991<dt><b><a name="check_address_map">check_address_map</a> <i><a href="DATABASE_README.html">type:table</a></i> </b></dt>
5992
5993<dt><b><i><a href="DATABASE_README.html">type:table</a></i> </b></dt>
5994
5995<dd> Append the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> when the
5996client IP address matches the specified lookup table.
5997The lookup result is ignored, and no subnet lookup is done. This
5998is suitable for, e.g., pop-before-smtp lookup tables. </dd>
5999
6000</dl>
6001
6002<p> Examples:  </p>
6003
6004<p> The Postfix &lt; 2.2 backwards compatible setting: always rewrite
6005message headers, and always append my own domain to incomplete
6006header addresses.  </p>
6007
6008<blockquote>
6009<pre>
6010<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all
6011</pre>
6012</blockquote>
6013
6014<p> The purist (and default) setting: rewrite headers only in mail
6015from Postfix sendmail and in SMTP mail from this machine. </p>
6016
6017<blockquote>
6018<pre>
6019<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="postconf.5.html#permit_inet_interfaces">permit_inet_interfaces</a>
6020</pre>
6021</blockquote>
6022
6023<p> The intermediate setting: rewrite header addresses and append
6024$<a href="postconf.5.html#myorigin">myorigin</a> or $<a href="postconf.5.html#mydomain">mydomain</a> information only with mail from Postfix
6025sendmail, from local clients, or from authorized SMTP clients. </p>
6026
6027<p> Note: this setting will not prevent remote mail header address
6028rewriting when mail from a remote client is forwarded by a neighboring
6029system.  </p>
6030
6031<blockquote>
6032<pre>
6033<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,
6034    <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a> <a href="postconf.5.html#permit_tls_clientcerts">permit_tls_clientcerts</a>
6035    <a href="postconf.5.html#check_address_map">check_address_map</a> <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/pop-before-smtp
6036</pre>
6037</blockquote>
6038
6039
6040</DD>
6041
6042<DT><b><a name="local_login_sender_maps">local_login_sender_maps</a>
6043(default: <a href="DATABASE_README.html#types">static</a>:*)</b></DT><DD>
6044
6045<p> A list of lookup tables that are searched by the UNIX login name,
6046and that return a list of allowed envelope sender patterns separated
6047by space or comma. These sender patterns are enforced by the Postfix
6048<a href="postdrop.1.html">postdrop(1)</a> command. The default is backwards-compatible:
6049every user may specify any sender envelope address. </p>
6050
6051<p> When no UNIX login name is available, the <a href="postdrop.1.html">postdrop(1)</a> command will
6052prepend "<b>uid:</b>" to the numerical UID and use that instead. </p>
6053
6054<p> This feature ignores address extensions in the user-specified
6055envelope sender address. </p>
6056
6057<p> The following sender patterns are special; these cannot be used
6058as part of a longer pattern. </p>
6059
6060<dl compact>
6061
6062<dt> <b> * </b> <dd> This pattern allows any envelope sender address.
6063</dd>
6064
6065<dt> <b> &lt;&gt; </b> </dt> <dd> This pattern allows the empty
6066envelope sender address. See the
6067<a href="postconf.5.html#empty_address_local_login_sender_maps_lookup_key">empty_address_local_login_sender_maps_lookup_key</a> configuration
6068parameter. </dd>
6069
6070<dt> <b> @</b><i>domain</i> </dt> <dd> This pattern allows an
6071envelope sender address when the '<b>@</b>' and <i>domain</i> part
6072match. </dd>
6073
6074</dl>
6075
6076<p> Examples: </p>
6077
6078<pre>
6079/etc/postfix/<a href="postconf.5.html">main.cf</a>:
6080    # Allow root and postfix full control, anyone else can only
6081    # send mail as themselves. Use "uid:" followed by the numerical
6082    # UID when the UID has no entry in the UNIX password file.
6083    <a href="postconf.5.html#local_login_sender_maps">local_login_sender_maps</a> =
6084        <a href="DATABASE_README.html#types">inline</a>:{ { root = * }, { postfix = * } },
6085        <a href="pcre_table.5.html">pcre</a>:/etc/postfix/login_senders
6086</pre>
6087
6088<pre>
6089/etc/postfix/login_senders:
6090   # Allow both the bare username and the user@domain forms.
6091    /(.+)/ $1 $1@example.com
6092</pre>
6093
6094<p> This feature is available in Postfix 3.6 and later. </p>
6095
6096
6097</DD>
6098
6099<DT><b><a name="local_recipient_maps">local_recipient_maps</a>
6100(default: <a href="proxymap.8.html">proxy</a>:unix:passwd.byname $<a href="postconf.5.html#alias_maps">alias_maps</a>)</b></DT><DD>
6101
6102<p> Lookup tables with all names or addresses of local recipients:
6103a recipient address is local when its domain matches $<a href="postconf.5.html#mydestination">mydestination</a>,
6104$<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.  Specify @domain as a
6105wild-card for domains that do not have a valid recipient list.
6106Technically, tables listed with $<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> are used as
6107lists: Postfix needs to know only if a lookup string is found or
6108not, but it does not use the result from table lookup.  </p>
6109
6110<p>
6111Specify zero or more "type:name" lookup tables, separated by
6112whitespace or comma. Tables will be searched in the specified order
6113until a match is found.
6114</p>
6115
6116<p>
6117If this parameter is non-empty (the default), then the Postfix SMTP
6118server will reject mail for unknown local users.
6119</p>
6120
6121<p>
6122To turn off local recipient checking in the Postfix SMTP server,
6123specify "<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> =" (i.e. empty).
6124</p>
6125
6126<p>
6127The default setting assumes that you use the default Postfix local
6128delivery agent for local delivery. You need to update the
6129<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> setting if:
6130</p>
6131
6132<ul>
6133
6134<li>You redefine the local delivery agent in <a href="master.5.html">master.cf</a>.
6135
6136<li>You redefine the "<a href="postconf.5.html#local_transport">local_transport</a>" setting in <a href="postconf.5.html">main.cf</a>.
6137
6138<li>You use the "<a href="postconf.5.html#luser_relay">luser_relay</a>", "<a href="postconf.5.html#mailbox_transport">mailbox_transport</a>", or "<a href="postconf.5.html#fallback_transport">fallback_transport</a>"
6139feature of the Postfix <a href="local.8.html">local(8)</a> delivery agent.
6140
6141</ul>
6142
6143<p>
6144Details are described in the <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a> file.
6145</p>
6146
6147<p>
6148Beware: if the Postfix SMTP server runs chrooted, you need to access
6149the passwd file via the <a href="proxymap.8.html">proxymap(8)</a> service, in order to overcome
6150chroot access restrictions. The alternative, maintaining a copy of
6151the system password file in the chroot jail is not practical.
6152</p>
6153
6154<p>
6155Examples:
6156</p>
6157
6158<pre>
6159<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> =
6160</pre>
6161
6162
6163</DD>
6164
6165<DT><b><a name="local_transport">local_transport</a>
6166(default: <a href="local.8.html">local</a>:$<a href="postconf.5.html#myhostname">myhostname</a>)</b></DT><DD>
6167
6168<p> The default mail delivery transport and next-hop destination
6169for final delivery to domains listed with <a href="postconf.5.html#mydestination">mydestination</a>, and for
6170[ipaddress] destinations that match $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
6171This information can be overruled with the <a href="transport.5.html">transport(5)</a> table. </p>
6172
6173<p>
6174By default, local mail is delivered to the transport called "local",
6175which is just the name of a service that is defined the <a href="master.5.html">master.cf</a> file.
6176</p>
6177
6178<p>
6179Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
6180is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
6181The <i>:nexthop</i> destination is optional; its syntax is documented
6182in the manual page of the corresponding delivery agent.
6183</p>
6184
6185<p>
6186Beware: if you override the default local delivery agent then you
6187need to review the <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a> document, otherwise the
6188SMTP server may reject mail for local recipients.
6189</p>
6190
6191
6192</DD>
6193
6194<DT><b><a name="luser_relay">luser_relay</a>
6195(default: empty)</b></DT><DD>
6196
6197<p>
6198Optional catch-all destination for unknown <a href="local.8.html">local(8)</a> recipients.
6199By default, mail for unknown recipients in domains that match
6200$<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> is returned
6201as undeliverable.
6202</p>
6203
6204<p>
6205The <a href="postconf.5.html#luser_relay">luser_relay</a> value is not subject to Postfix configuration
6206parameter $name expansion. Instead, the following $name expansions
6207are done:
6208</p>
6209
6210<dl>
6211
6212<dt><b>$domain</b></dt>
6213
6214<dd>The recipient domain. </dd>
6215
6216<dt><b>$extension</b></dt>
6217
6218<dd>The recipient address extension. </dd>
6219
6220<dt><b>$home</b></dt>
6221
6222<dd>The recipient's home directory. </dd>
6223
6224<dt><b>$local</b></dt>
6225
6226<dd>The entire recipient address localpart. </dd>
6227
6228<dt><b>$recipient</b></dt>
6229
6230<dd>The full recipient address. </dd>
6231
6232<dt><b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a></b></dt>
6233
6234<dd>The address extension delimiter that was found in the recipient
6235address (Postfix 2.11 and later), or the system-wide recipient
6236address extension delimiter (Postfix 2.10 and earlier). </dd>
6237
6238<dt><b>$shell</b></dt>
6239
6240<dd>The recipient's login shell. </dd>
6241
6242<dt><b>$user</b></dt>
6243
6244<dd>The recipient username. </dd>
6245
6246<dt><b>${name?value}</b></dt>
6247
6248<dt><b>${name?{value}}</b> (Postfix &ge; 3.0)</dt>
6249
6250<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
6251
6252<dt><b>${name:value}</b></dt>
6253
6254<dt><b>${name:{value}}</b> (Postfix &ge; 3.0)</dt>
6255
6256<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
6257
6258<dt><b>${name?{value1}:{value2}}</b> (Postfix &ge; 3.0)</dt>
6259
6260<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
6261<i>value2</i> otherwise. </dd>
6262
6263</dl>
6264
6265<p>
6266Instead of $name you can also specify ${name} or $(name).
6267</p>
6268
6269<p>
6270Note: <a href="postconf.5.html#luser_relay">luser_relay</a> works only for the Postfix <a href="local.8.html">local(8)</a> delivery agent.
6271</p>
6272
6273<p>
6274Note: if you use this feature for accounts not in the UNIX password
6275file, then you must specify "<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> =" (i.e. empty)
6276in the <a href="postconf.5.html">main.cf</a> file, otherwise the Postfix SMTP server will reject mail
6277for non-UNIX accounts with "User unknown in local recipient table".
6278</p>
6279
6280<p>
6281Examples:
6282</p>
6283
6284<pre>
6285<a href="postconf.5.html#luser_relay">luser_relay</a> = $user@other.host
6286<a href="postconf.5.html#luser_relay">luser_relay</a> = $local@other.host
6287<a href="postconf.5.html#luser_relay">luser_relay</a> = admin+$local
6288</pre>
6289
6290
6291</DD>
6292
6293<DT><b><a name="mail_name">mail_name</a>
6294(default: Postfix)</b></DT><DD>
6295
6296<p>
6297The mail system name that is displayed in Received: headers, in
6298the SMTP greeting banner, and in bounced mail.
6299</p>
6300
6301
6302</DD>
6303
6304<DT><b><a name="mail_owner">mail_owner</a>
6305(default: postfix)</b></DT><DD>
6306
6307<p>
6308The UNIX system account that owns the Postfix queue and most Postfix
6309daemon processes.  Specify the name of an unprivileged user account
6310that does not share a user or group ID with other accounts, and that
6311owns no other files
6312or processes on the system.  In particular, don't specify nobody
6313or daemon.  PLEASE USE A DEDICATED USER ID AND GROUP ID.
6314</p>
6315
6316<p>
6317When this parameter value is changed you need to re-run "<b>postfix
6318set-permissions</b>" (with Postfix version 2.0 and earlier:
6319"<b>/etc/postfix/post-install set-permissions</b>".
6320</p>
6321
6322
6323</DD>
6324
6325<DT><b><a name="mail_release_date">mail_release_date</a>
6326(default: see "postconf -d" output)</b></DT><DD>
6327
6328<p>
6329The Postfix release date, in "YYYYMMDD" format.
6330</p>
6331
6332
6333</DD>
6334
6335<DT><b><a name="mail_spool_directory">mail_spool_directory</a>
6336(default: see "postconf -d" output)</b></DT><DD>
6337
6338<p>
6339The directory where <a href="local.8.html">local(8)</a> UNIX-style mailboxes are kept. The
6340default setting depends on the system type. Specify a name ending
6341in / for maildir-style delivery.
6342</p>
6343
6344<p>
6345Note: maildir delivery is done with the privileges of the recipient.
6346If you use the <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> setting for maildir style
6347delivery, then you must create the top-level maildir directory in
6348advance. Postfix will not create it.
6349</p>
6350
6351<p>
6352Examples:
6353</p>
6354
6355<pre>
6356<a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> = /var/mail
6357<a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> = /var/spool/mail
6358</pre>
6359
6360
6361</DD>
6362
6363<DT><b><a name="mail_version">mail_version</a>
6364(default: see "postconf -d" output)</b></DT><DD>
6365
6366<p>
6367The version of the mail system. Stable releases are named
6368<i>major</i>.<i>minor</i>.<i>patchlevel</i>. Experimental releases
6369also include the release date. The version string can be used in,
6370for example, the SMTP greeting banner.
6371</p>
6372
6373
6374</DD>
6375
6376<DT><b><a name="mailbox_command">mailbox_command</a>
6377(default: empty)</b></DT><DD>
6378
6379<p>
6380Optional external command that the <a href="local.8.html">local(8)</a> delivery agent should
6381use for mailbox delivery.  The command is run with the user ID and
6382the primary group ID privileges of the recipient.  Exception:
6383command delivery for root executes with $<a href="postconf.5.html#default_privs">default_privs</a> privileges.
6384This is not a problem, because 1) mail for root should always be
6385aliased to a real user and 2) don't log in as root, use "su" instead.
6386</p>
6387
6388<p>
6389The following environment variables are exported to the command:
6390</p>
6391
6392<dl>
6393
6394<dt><b>CLIENT_ADDRESS</b></dt>
6395
6396<dd>Remote client network address. Available in Postfix version 2.2 and
6397later. </dd>
6398
6399<dt><b>CLIENT_HELO</b></dt>
6400
6401<dd>Remote client EHLO command parameter. Available in Postfix version 2.2
6402and later.</dd>
6403
6404<dt><b>CLIENT_HOSTNAME</b></dt>
6405
6406<dd>Remote client hostname. Available in Postfix version 2.2 and later.
6407</dd>
6408
6409<dt><b>CLIENT_PROTOCOL</b></dt>
6410
6411<dd>Remote client protocol. Available in Postfix version 2.2 and later.
6412</dd>
6413
6414<dt><b>DOMAIN</b></dt>
6415
6416<dd>The domain part of the recipient address. </dd>
6417
6418<dt><b>EXTENSION</b></dt>
6419
6420<dd>The optional address extension. </dd>
6421
6422<dt><b>HOME</b></dt>
6423
6424<dd>The recipient home directory. </dd>
6425
6426<dt><b>LOCAL</b></dt>
6427
6428<dd>The recipient address localpart. </dd>
6429
6430<dt><b>LOGNAME</b></dt>
6431
6432<dd>The recipient's username. </dd>
6433
6434<dt><b>ORIGINAL_RECIPIENT</b></dt>
6435
6436<dd>The entire recipient address, before any address rewriting or
6437aliasing.  </dd>
6438
6439<dt><b>RECIPIENT</b></dt>
6440
6441<dd>The full recipient address. </dd>
6442
6443<dt><b>SASL_METHOD</b></dt>
6444
6445<dd>SASL authentication method specified in the remote client AUTH
6446command. Available in Postfix version 2.2 and later. </dd>
6447
6448<dt><b>SASL_SENDER</b></dt>
6449
6450<dd>SASL sender address specified in the remote client MAIL FROM
6451command. Available in Postfix version 2.2 and later. </dd>
6452
6453<dt><b>SASL_USER</b></dt>
6454
6455<dd>SASL username specified in the remote client AUTH command.
6456Available in Postfix version 2.2 and later.  </dd>
6457
6458<dt><b>SENDER</b></dt>
6459
6460<dd>The full sender address. </dd>
6461
6462<dt><b>SHELL</b></dt>
6463
6464<dd>The recipient's login shell. </dd>
6465
6466<dt><b>USER</b></dt>
6467
6468<dd>The recipient username. </dd>
6469
6470</dl>
6471
6472<p>
6473Unlike other Postfix configuration parameters, the <a href="postconf.5.html#mailbox_command">mailbox_command</a>
6474parameter is not subjected to $name substitutions. This is to make
6475it easier to specify shell syntax (see example below).
6476</p>
6477
6478<p>
6479If you can, avoid shell meta characters because they will force
6480Postfix to run an expensive shell process. If you're delivering
6481via "procmail" then running a shell won't make a noticeable difference
6482in the total cost.
6483</p>
6484
6485<p>
6486Note: if you use the <a href="postconf.5.html#mailbox_command">mailbox_command</a> feature to deliver mail
6487system-wide, you must set up an alias that forwards mail for root
6488to a real user.
6489</p>
6490
6491<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
6492is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
6493<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
6494<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
6495
6496<p>
6497Examples:
6498</p>
6499
6500<pre>
6501<a href="postconf.5.html#mailbox_command">mailbox_command</a> = /some/where/procmail
6502<a href="postconf.5.html#mailbox_command">mailbox_command</a> = /some/where/procmail -a "$EXTENSION"
6503<a href="postconf.5.html#mailbox_command">mailbox_command</a> = /some/where/maildrop -d "$USER"
6504        -f "$SENDER" "$EXTENSION"
6505</pre>
6506
6507
6508</DD>
6509
6510<DT><b><a name="mailbox_command_maps">mailbox_command_maps</a>
6511(default: empty)</b></DT><DD>
6512
6513<p>
6514Optional lookup tables with per-recipient external commands to use
6515for <a href="local.8.html">local(8)</a> mailbox delivery.  Behavior is as with <a href="postconf.5.html#mailbox_command">mailbox_command</a>.
6516</p>
6517
6518<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
6519is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
6520<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
6521<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
6522
6523<p>
6524Specify zero or more "type:name" lookup tables, separated by
6525whitespace or comma. Tables will be searched in the specified order
6526until a match is found.
6527</p>
6528
6529
6530</DD>
6531
6532<DT><b><a name="mailbox_delivery_lock">mailbox_delivery_lock</a>
6533(default: see "postconf -d" output)</b></DT><DD>
6534
6535<p>
6536How to lock a UNIX-style <a href="local.8.html">local(8)</a> mailbox before attempting delivery.
6537For a list of available file locking methods, use the "<b>postconf
6538-l</b>" command.
6539</p>
6540
6541<p>
6542This setting is ignored with <b>maildir</b> style delivery,
6543because such deliveries are safe without explicit locks.
6544</p>
6545
6546<p>
6547Note: The <b>dotlock</b> method requires that the recipient UID or
6548GID has write access to the parent directory of the mailbox file.
6549</p>
6550
6551<p>
6552Note: the default setting of this parameter is system dependent.
6553</p>
6554
6555
6556</DD>
6557
6558<DT><b><a name="mailbox_size_limit">mailbox_size_limit</a>
6559(default: 51200000)</b></DT><DD>
6560
6561<p> The maximal size of any <a href="local.8.html">local(8)</a> individual mailbox or maildir
6562file, or zero (no limit).  In fact, this limits the size of any
6563file that is written to upon local delivery, including files written
6564by external commands that are executed by the <a href="local.8.html">local(8)</a> delivery
6565agent. The value cannot exceed LONG_MAX (typically, a 32-bit or
656664-bit signed integer).
6567</p>
6568
6569<p>
6570This limit must not be smaller than the message size limit.
6571</p>
6572
6573
6574</DD>
6575
6576<DT><b><a name="mailbox_transport">mailbox_transport</a>
6577(default: empty)</b></DT><DD>
6578
6579<p>
6580Optional message delivery transport that the <a href="local.8.html">local(8)</a> delivery
6581agent should use for mailbox delivery to all local recipients,
6582whether or not they are found in the UNIX passwd database.
6583</p>
6584
6585<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
6586is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
6587<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
6588<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
6589
6590
6591</DD>
6592
6593<DT><b><a name="mailbox_transport_maps">mailbox_transport_maps</a>
6594(default: empty)</b></DT><DD>
6595
6596<p> Optional lookup tables with per-recipient message delivery
6597transports to use for <a href="local.8.html">local(8)</a> mailbox delivery, whether or not the
6598recipients are found in the UNIX passwd database. </p>
6599
6600<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
6601is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
6602<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
6603<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.  </p>
6604
6605<p>
6606Specify zero or more "type:name" lookup tables, separated by
6607whitespace or comma. Tables will be searched in the specified order
6608until a match is found.
6609</p>
6610
6611<p> For safety reasons, this feature does not allow $number
6612substitutions in regular expression maps. </p>
6613
6614<p> This feature is available in Postfix 2.3 and later. </p>
6615
6616
6617</DD>
6618
6619<DT><b><a name="maillog_file">maillog_file</a>
6620(default: empty)</b></DT><DD>
6621
6622<p> The name of an optional logfile that is written by the Postfix
6623<a href="postlogd.8.html">postlogd(8)</a> service. An empty value selects logging to syslogd(8).
6624Specify "/dev/stdout" to select logging to standard output. Stdout
6625logging requires that Postfix is started with "postfix start-fg".
6626</p>
6627
6628<p> Note 1: The <a href="postconf.5.html#maillog_file">maillog_file</a> parameter value must contain a prefix
6629that is specified with the <a href="postconf.5.html#maillog_file_prefixes">maillog_file_prefixes</a> parameter. </p>
6630
6631<p> Note 2: Some Postfix non-daemon programs may still log information
6632to syslogd(8), before they have processed their configuration
6633parameters and command-line options. </p>
6634
6635<p> This feature is available in Postfix 3.4 and later. </p>
6636
6637
6638</DD>
6639
6640<DT><b><a name="maillog_file_compressor">maillog_file_compressor</a>
6641(default: gzip)</b></DT><DD>
6642
6643<p> The program to run after rotating $<a href="postconf.5.html#maillog_file">maillog_file</a> with "postfix
6644logrotate". The command is run with the rotated logfile name as its
6645first argument. </p>
6646
6647<p> This feature is available in Postfix 3.4 and later. </p>
6648
6649
6650</DD>
6651
6652<DT><b><a name="maillog_file_prefixes">maillog_file_prefixes</a>
6653(default: /var, /dev/stdout)</b></DT><DD>
6654
6655<p> A list of allowed prefixes for a <a href="postconf.5.html#maillog_file">maillog_file</a> value. This is a
6656safety feature to contain the damage from a single configuration
6657mistake. Specify one or more prefix strings, separated by comma or
6658whitespace. </p>
6659
6660<p> This feature is available in Postfix 3.4 and later. </p>
6661
6662
6663</DD>
6664
6665<DT><b><a name="maillog_file_rotate_suffix">maillog_file_rotate_suffix</a>
6666(default: %Y%m%d-%H%M%S)</b></DT><DD>
6667
6668<p> The format of the suffix to append to $<a href="postconf.5.html#maillog_file">maillog_file</a> while rotating
6669the file with "postfix logrotate". See strftime(3) for syntax. The
6670default suffix, YYYYMMDD-HHMMSS, allows logs to be rotated frequently.
6671</p>
6672
6673<p> This feature is available in Postfix 3.4 and later. </p>
6674
6675
6676</DD>
6677
6678<DT><b><a name="mailq_path">mailq_path</a>
6679(default: see "postconf -d" output)</b></DT><DD>
6680
6681<p>
6682Sendmail compatibility feature that specifies where the Postfix
6683<a href="mailq.1.html">mailq(1)</a> command is installed. This command can be used to
6684list the Postfix mail queue.
6685</p>
6686
6687
6688</DD>
6689
6690<DT><b><a name="manpage_directory">manpage_directory</a>
6691(default: see "postconf -d" output)</b></DT><DD>
6692
6693<p>
6694Where the Postfix manual pages are installed.
6695</p>
6696
6697
6698</DD>
6699
6700<DT><b><a name="maps_rbl_domains">maps_rbl_domains</a>
6701(default: empty)</b></DT><DD>
6702
6703<p>
6704Obsolete feature: use the <a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a> feature instead.
6705</p>
6706
6707
6708</DD>
6709
6710<DT><b><a name="maps_rbl_reject_code">maps_rbl_reject_code</a>
6711(default: 554)</b></DT><DD>
6712
6713<p>
6714The numerical Postfix SMTP server response code when a remote SMTP
6715client request is blocked by the <a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a>, <a href="postconf.5.html#reject_rhsbl_client">reject_rhsbl_client</a>,
6716<a href="postconf.5.html#reject_rhsbl_reverse_client">reject_rhsbl_reverse_client</a>, <a href="postconf.5.html#reject_rhsbl_sender">reject_rhsbl_sender</a> or
6717<a href="postconf.5.html#reject_rhsbl_recipient">reject_rhsbl_recipient</a> restriction.
6718</p>
6719
6720<p>
6721Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
6722</p>
6723
6724
6725</DD>
6726
6727<DT><b><a name="masquerade_classes">masquerade_classes</a>
6728(default: envelope_sender, header_sender, header_recipient)</b></DT><DD>
6729
6730<p>
6731What addresses are subject to address masquerading.
6732</p>
6733
6734<p>
6735By default, address masquerading is limited to envelope sender
6736addresses, and to header sender and header recipient addresses.
6737This allows you to use address masquerading on a mail gateway while
6738still being able to forward mail to users on individual machines.
6739</p>
6740
6741<p>
6742Specify zero or more of: envelope_sender, envelope_recipient,
6743header_sender, header_recipient
6744</p>
6745
6746
6747</DD>
6748
6749<DT><b><a name="masquerade_domains">masquerade_domains</a>
6750(default: empty)</b></DT><DD>
6751
6752<p>
6753Optional list of domains whose subdomain structure will be stripped
6754off in email addresses.
6755</p>
6756
6757<p>
6758The list is processed left to right, and processing stops at the
6759first match.  Thus,
6760</p>
6761
6762<blockquote>
6763<pre>
6764<a href="postconf.5.html#masquerade_domains">masquerade_domains</a> = foo.example.com example.com
6765</pre>
6766</blockquote>
6767
6768<p>
6769strips "user@any.thing.foo.example.com" to "user@foo.example.com",
6770but strips "user@any.thing.else.example.com" to "user@example.com".
6771</p>
6772
6773<p>
6774A domain name prefixed with ! means do not masquerade this domain
6775or its subdomains. Thus,
6776</p>
6777
6778<blockquote>
6779<pre>
6780<a href="postconf.5.html#masquerade_domains">masquerade_domains</a> = !foo.example.com example.com
6781</pre>
6782</blockquote>
6783
6784<p>
6785does not change "user@any.thing.foo.example.com" or "user@foo.example.com",
6786but strips "user@any.thing.else.example.com" to "user@example.com".
6787</p>
6788
6789<p> Note: with Postfix version 2.2, message header address masquerading
6790happens only when message header address rewriting is enabled: </p>
6791
6792<ul>
6793
6794<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
6795
6796<li> The message is received from a network client that matches
6797$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
6798
6799<li> The message is received from the network, and the
6800<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
6801
6802</ul>
6803
6804<p> To get the behavior before Postfix version 2.2, specify
6805"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
6806
6807<p>
6808Example:
6809</p>
6810
6811<pre>
6812<a href="postconf.5.html#masquerade_domains">masquerade_domains</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
6813</pre>
6814
6815
6816</DD>
6817
6818<DT><b><a name="masquerade_exceptions">masquerade_exceptions</a>
6819(default: empty)</b></DT><DD>
6820
6821<p>
6822Optional list of user names that are not subjected to address
6823masquerading, even when their addresses match $<a href="postconf.5.html#masquerade_domains">masquerade_domains</a>.
6824</p>
6825
6826<p>
6827By default, address masquerading makes no exceptions.
6828</p>
6829
6830<p>
6831Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
6832separated by commas and/or whitespace. The list is matched left to
6833right, and the search stops on the first match. A "/file/name"
6834pattern is replaced
6835by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name
6836matches a lookup key (the lookup result is ignored).  Continue long
6837lines by starting the next line with whitespace. Specify "!pattern"
6838to exclude a name from the list. The form "!/file/name" is supported
6839only in Postfix version 2.4 and later.  </p>
6840
6841<p>
6842Examples:
6843</p>
6844
6845<pre>
6846<a href="postconf.5.html#masquerade_exceptions">masquerade_exceptions</a> = root, mailer-daemon
6847<a href="postconf.5.html#masquerade_exceptions">masquerade_exceptions</a> = root
6848</pre>
6849
6850
6851</DD>
6852
6853<DT><b><a name="master_service_disable">master_service_disable</a>
6854(default: empty)</b></DT><DD>
6855
6856<p> Selectively disable <a href="master.8.html">master(8)</a> listener ports by service type
6857or by service name and type.  Specify a list of service types
6858("inet", "unix", "fifo", or "pass") or "name/type" tuples, where
6859"name" is the first field of a <a href="master.5.html">master.cf</a> entry and "type" is a
6860service type. As with other Postfix matchlists, a search stops at
6861the first match.  Specify "!pattern" to exclude a service from the
6862list. By default, all <a href="master.8.html">master(8)</a> listener ports are enabled.  </p>
6863
6864<p> Note: this feature does not support "/file/name" or "<a href="DATABASE_README.html">type:table</a>"
6865patterns, nor does it support wildcards such as "*" or "all". This
6866is intentional. </p>
6867
6868<p> Examples: </p>
6869
6870<pre>
6871# With Postfix 2.6..2.10 use '.' instead of '/'.
6872# Turn on all <a href="master.8.html">master(8)</a> listener ports (the default).
6873<a href="postconf.5.html#master_service_disable">master_service_disable</a> =
6874# Turn off only the main SMTP listener port.
6875<a href="postconf.5.html#master_service_disable">master_service_disable</a> = smtp/inet
6876# Turn off all TCP/IP listener ports.
6877<a href="postconf.5.html#master_service_disable">master_service_disable</a> = inet
6878# Turn off all TCP/IP listener ports except "foo".
6879<a href="postconf.5.html#master_service_disable">master_service_disable</a> = !foo/inet, inet
6880</pre>
6881
6882<p> This feature is available in Postfix 2.6 and later. </p>
6883
6884
6885</DD>
6886
6887<DT><b><a name="max_idle">max_idle</a>
6888(default: 100s)</b></DT><DD>
6889
6890<p>
6891The maximum amount of time that an idle Postfix daemon process waits
6892for an incoming connection before terminating voluntarily.  This
6893parameter
6894is ignored by the Postfix queue manager and by other long-lived
6895Postfix daemon processes.
6896</p>
6897
6898<p> Specify a non-zero time value (an integral value plus an optional
6899one-letter suffix that specifies the time unit).  Time units: s
6900(seconds), m (minutes), h (hours), d (days), w (weeks).
6901The default time unit is s (seconds).  </p>
6902
6903
6904</DD>
6905
6906<DT><b><a name="max_use">max_use</a>
6907(default: 100)</b></DT><DD>
6908
6909<p>
6910The maximal number of incoming connections that a Postfix daemon
6911process will service before terminating voluntarily.  This parameter
6912is ignored by the Postfix queue
6913manager and by other long-lived Postfix daemon processes.
6914</p>
6915
6916
6917</DD>
6918
6919<DT><b><a name="maximal_backoff_time">maximal_backoff_time</a>
6920(default: 4000s)</b></DT><DD>
6921
6922<p>
6923The maximal time between attempts to deliver a deferred message.
6924</p>
6925
6926<p> This parameter should be set to a value greater than or equal
6927to $<a href="postconf.5.html#minimal_backoff_time">minimal_backoff_time</a>. See also $<a href="postconf.5.html#queue_run_delay">queue_run_delay</a>.  </p>
6928
6929<p> Specify a non-zero time value (an integral value plus an optional
6930one-letter suffix that specifies the time unit).  Time units: s
6931(seconds), m (minutes), h (hours), d (days), w (weeks).
6932The default time unit is s (seconds).  </p>
6933
6934
6935</DD>
6936
6937<DT><b><a name="maximal_queue_lifetime">maximal_queue_lifetime</a>
6938(default: 5d)</b></DT><DD>
6939
6940<p>
6941Consider a message as undeliverable, when delivery fails with a
6942temporary error, and the time in the queue has reached the
6943<a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a> limit.
6944</p>
6945
6946<p> Specify a non-negative time value (an integral value plus an optional
6947one-letter suffix that specifies the time unit).  Time units: s
6948(seconds), m (minutes), h (hours), d (days), w (weeks).
6949The default time unit is d (days).  </p>
6950
6951<p>
6952Specify 0 when mail delivery should be tried only once.
6953</p>
6954
6955
6956</DD>
6957
6958<DT><b><a name="message_drop_headers">message_drop_headers</a>
6959(default: bcc, content-length, resent-bcc, return-path)</b></DT><DD>
6960
6961<p> Names of message headers that the <a href="cleanup.8.html">cleanup(8)</a> daemon will remove
6962after applying <a href="header_checks.5.html">header_checks(5)</a> and before invoking Milter applications.
6963The default setting is compatible with Postfix &lt; 3.0. </p>
6964
6965<p> Specify a list of header names, separated by comma or space.
6966Names are matched in a case-insensitive manner.  The list of supported
6967header names is limited only by available memory.  </p>
6968
6969<p> This feature is available in Postfix 3.0 and later. </p>
6970
6971
6972</DD>
6973
6974<DT><b><a name="message_reject_characters">message_reject_characters</a>
6975(default: empty)</b></DT><DD>
6976
6977<p> The set of characters that Postfix will reject in message
6978content.  The usual C-like escape sequences are recognized: <tt>\a
6979\b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and
6980<tt>\\</tt>. </p>
6981
6982<p> Note 1: this feature does not recognize text that requires MIME
6983decoding. It inspects raw message content, just like <a href="postconf.5.html#header_checks">header_checks</a>
6984and <a href="postconf.5.html#body_checks">body_checks</a>.  </p>
6985
6986<p> Note 2: this feature is disabled with "<a href="postconf.5.html#receive_override_options">receive_override_options</a>
6987= <a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>".  </p>
6988
6989<p> Example: </p>
6990
6991<pre>
6992<a href="postconf.5.html#message_reject_characters">message_reject_characters</a> = \0
6993</pre>
6994
6995<p> This feature is available in Postfix 2.3 and later.  </p>
6996
6997
6998</DD>
6999
7000<DT><b><a name="message_size_limit">message_size_limit</a>
7001(default: 10240000)</b></DT><DD>
7002
7003<p>
7004The maximal size in bytes of a message, including envelope information.
7005The value cannot exceed LONG_MAX (typically, a 32-bit or 64-bit
7006signed integer).
7007</p>
7008
7009<p> Note: be careful when making changes.  Excessively small values
7010will result in the loss of non-delivery notifications, when a bounce
7011message size exceeds the local or remote MTA's message size limit.
7012</p>
7013
7014
7015</DD>
7016
7017<DT><b><a name="message_strip_characters">message_strip_characters</a>
7018(default: empty)</b></DT><DD>
7019
7020<p> The set of characters that Postfix will remove from message
7021content.  The usual C-like escape sequences are recognized: <tt>\a
7022\b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and
7023<tt>\\</tt>. </p>
7024
7025<p> Note 1: this feature does not recognize text that requires MIME
7026decoding. It inspects raw message content, just like <a href="postconf.5.html#header_checks">header_checks</a>
7027and <a href="postconf.5.html#body_checks">body_checks</a>.  </p>
7028
7029<p> Note 2: this feature is disabled with "<a href="postconf.5.html#receive_override_options">receive_override_options</a>
7030= <a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>".  </p>
7031
7032<p> Example: </p>
7033
7034<pre>
7035<a href="postconf.5.html#message_strip_characters">message_strip_characters</a> = \0
7036</pre>
7037
7038<p> This feature is available in Postfix 2.3 and later.  </p>
7039
7040
7041</DD>
7042
7043<DT><b><a name="meta_directory">meta_directory</a>
7044(default: see 'postconf -d' output)</b></DT><DD>
7045
7046<p> The location of non-executable files that are shared among
7047multiple Postfix instances, such as postfix-files, dynamicmaps.cf,
7048and the multi-instance template files <a href="postconf.5.html">main.cf</a>.proto and <a href="master.5.html">master.cf</a>.proto.
7049This directory should contain only Postfix-related files.  Typically,
7050the <a href="postconf.5.html#meta_directory">meta_directory</a> parameter has the same default as the <a href="postconf.5.html#config_directory">config_directory</a>
7051parameter (/etc/postfix or /usr/local/etc/postfix).  </p>
7052
7053<p> For backwards compatibility with Postfix versions 2.6..2.11,
7054specify "<a href="postconf.5.html#meta_directory">meta_directory</a> = $<a href="postconf.5.html#daemon_directory">daemon_directory</a>" in <a href="postconf.5.html">main.cf</a> before
7055installing or upgrading Postfix, or specify "<a href="postconf.5.html#meta_directory">meta_directory</a> =
7056/path/name" on the "make makefiles", "make install" or "make upgrade"
7057command line.  </p>
7058
7059<p> This feature is available in Postfix 3.0 and later. </p>
7060
7061
7062</DD>
7063
7064<DT><b><a name="milter_command_timeout">milter_command_timeout</a>
7065(default: 30s)</b></DT><DD>
7066
7067<p> The time limit for sending an SMTP command to a Milter (mail
7068filter) application, and for receiving the response.  </p>
7069
7070<p> Specify a non-zero time value (an integral value plus an optional
7071one-letter suffix that specifies the time unit).  Time units: s
7072(seconds), m (minutes), h (hours), d (days), w (weeks).
7073The default time unit is s (seconds).  </p>
7074
7075<p> This feature is available in Postfix 2.3 and later. </p>
7076
7077
7078</DD>
7079
7080<DT><b><a name="milter_connect_macros">milter_connect_macros</a>
7081(default: see "postconf -d" output)</b></DT><DD>
7082
7083<p> The macros that are sent to Milter (mail filter) applications
7084after completion of an SMTP connection. See <a href="MILTER_README.html">MILTER_README</a>
7085for a list of available macro names and their meanings. </p>
7086
7087<p> This feature is available in Postfix 2.3 and later. </p>
7088
7089
7090</DD>
7091
7092<DT><b><a name="milter_connect_timeout">milter_connect_timeout</a>
7093(default: 30s)</b></DT><DD>
7094
7095<p> The time limit for connecting to a Milter (mail filter)
7096application, and for negotiating protocol options. </p>
7097
7098<p> Specify a non-zero time value (an integral value plus an optional
7099one-letter suffix that specifies the time unit).  Time units: s
7100(seconds), m (minutes), h (hours), d (days), w (weeks).
7101The default time unit is s (seconds).  </p>
7102
7103<p> This feature is available in Postfix 2.3 and later. </p>
7104
7105
7106</DD>
7107
7108<DT><b><a name="milter_content_timeout">milter_content_timeout</a>
7109(default: 300s)</b></DT><DD>
7110
7111<p> The time limit for sending message content to a Milter (mail
7112filter) application, and for receiving the response.  </p>
7113
7114<p> Specify a non-zero time value (an integral value plus an optional
7115one-letter suffix that specifies the time unit).  Time units: s
7116(seconds), m (minutes), h (hours), d (days), w (weeks).
7117The default time unit is s (seconds).  </p>
7118
7119<p> This feature is available in Postfix 2.3 and later. </p>
7120
7121
7122</DD>
7123
7124<DT><b><a name="milter_data_macros">milter_data_macros</a>
7125(default: see "postconf -d" output)</b></DT><DD>
7126
7127<p> The macros that are sent to version 4 or higher Milter (mail
7128filter) applications after the SMTP DATA command. See <a href="MILTER_README.html">MILTER_README</a>
7129for a list of available macro names and their meanings.  </p>
7130
7131<p> This feature is available in Postfix 2.3 and later. </p>
7132
7133
7134</DD>
7135
7136<DT><b><a name="milter_default_action">milter_default_action</a>
7137(default: tempfail)</b></DT><DD>
7138
7139<p> The default action when a Milter (mail filter) response is
7140unavailable (for example, bad Postfix configuration or Milter
7141failure). Specify one of the following: </p>
7142
7143<dl compact>
7144
7145<dt>accept</dt> <dd>Proceed as if the mail filter was not present.
7146</dd>
7147
7148<dt>reject</dt> <dd>Reject all further commands in this session
7149with a permanent status code.</dd>
7150
7151<dt>tempfail</dt> <dd>Reject all further commands in this session
7152with a temporary status code. </dd>
7153
7154<dt>quarantine</dt> <dd>Like "accept", but freeze the message in
7155the "<a href="QSHAPE_README.html#hold_queue">hold" queue</a>. Available with Postfix 2.6 and later. </dd>
7156
7157</dl>
7158
7159<p> This feature is available in Postfix 2.3 and later. </p>
7160
7161
7162</DD>
7163
7164<DT><b><a name="milter_end_of_data_macros">milter_end_of_data_macros</a>
7165(default: see "postconf -d" output)</b></DT><DD>
7166
7167<p> The macros that are sent to Milter (mail filter) applications
7168after the message end-of-data. See <a href="MILTER_README.html">MILTER_README</a> for a list of
7169available macro names and their meanings.  </p>
7170
7171<p> This feature is available in Postfix 2.3 and later. </p>
7172
7173
7174</DD>
7175
7176<DT><b><a name="milter_end_of_header_macros">milter_end_of_header_macros</a>
7177(default: see "postconf -d" output)</b></DT><DD>
7178
7179<p> The macros that are sent to Milter (mail filter) applications
7180after the end of the message header. See <a href="MILTER_README.html">MILTER_README</a> for a list
7181of available macro names and their meanings.  </p>
7182
7183<p> This feature is available in Postfix 2.5 and later. </p>
7184
7185
7186</DD>
7187
7188<DT><b><a name="milter_header_checks">milter_header_checks</a>
7189(default: empty)</b></DT><DD>
7190
7191<p> Optional lookup tables for content inspection of message headers
7192that are produced by Milter applications.  See the <a href="header_checks.5.html">header_checks(5)</a>
7193manual page available actions. Currently, PREPEND is not implemented.
7194</p>
7195
7196<p> The following example sends all mail that is marked as SPAM to
7197a spam handling machine. Note that matches are case-insensitive
7198by default. </p>
7199
7200<pre>
7201/etc/postfix/<a href="postconf.5.html">main.cf</a>:
7202    <a href="postconf.5.html#milter_header_checks">milter_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/<a href="postconf.5.html#milter_header_checks">milter_header_checks</a>
7203</pre>
7204
7205<pre>
7206/etc/postfix/<a href="postconf.5.html#milter_header_checks">milter_header_checks</a>:
7207    /^X-SPAM-FLAG:\s+YES/ FILTER mysmtp:sanitizer.example.com:25
7208</pre>
7209
7210<p> The <a href="postconf.5.html#milter_header_checks">milter_header_checks</a> mechanism could also be used for
7211allowlisting. For example it could be used to skip heavy content
7212inspection for DKIM-signed mail from known friendly domains. </p>
7213
7214<p> This feature is available in Postfix 2.7, and as an optional
7215patch for Postfix 2.6. </p>
7216
7217
7218</DD>
7219
7220<DT><b><a name="milter_helo_macros">milter_helo_macros</a>
7221(default: see "postconf -d" output)</b></DT><DD>
7222
7223<p> The macros that are sent to Milter (mail filter) applications
7224after the SMTP HELO or EHLO command. See
7225<a href="MILTER_README.html">MILTER_README</a> for a list of available macro names and their meanings.
7226</p>
7227
7228<p> This feature is available in Postfix 2.3 and later. </p>
7229
7230
7231</DD>
7232
7233<DT><b><a name="milter_macro_daemon_name">milter_macro_daemon_name</a>
7234(default: $<a href="postconf.5.html#myhostname">myhostname</a>)</b></DT><DD>
7235
7236<p> The {daemon_name} macro value for Milter (mail filter) applications.
7237See <a href="MILTER_README.html">MILTER_README</a> for a list of available macro names and their
7238meanings.  </p>
7239
7240<p> This feature is available in Postfix 2.3 and later. </p>
7241
7242
7243</DD>
7244
7245<DT><b><a name="milter_macro_defaults">milter_macro_defaults</a>
7246(default: empty)</b></DT><DD>
7247
7248<p> Optional list of <i>name=value</i> pairs that specify default
7249values for arbitrary macros that Postfix may send to Milter
7250applications.  These defaults are used when there is no corresponding
7251information from the message delivery context. </p>
7252
7253<p> Specify <i>name=value</i> or <i>{name=value}</i> pairs separated
7254by comma or whitespace.  Enclose a pair in "{}" when a value contains
7255comma or whitespace (this form ignores whitespace after the enclosing
7256"{", around the "=", and before the enclosing "}"). </p>
7257
7258<p> This feature is available in Postfix 3.1 and later.  </p>
7259
7260
7261</DD>
7262
7263<DT><b><a name="milter_macro_v">milter_macro_v</a>
7264(default: $<a href="postconf.5.html#mail_name">mail_name</a> $<a href="postconf.5.html#mail_version">mail_version</a>)</b></DT><DD>
7265
7266<p> The {v} macro value for Milter (mail filter) applications.
7267See <a href="MILTER_README.html">MILTER_README</a> for a list of available macro names and their
7268meanings.  </p>
7269
7270<p> This feature is available in Postfix 2.3 and later. </p>
7271
7272
7273</DD>
7274
7275<DT><b><a name="milter_mail_macros">milter_mail_macros</a>
7276(default: see "postconf -d" output)</b></DT><DD>
7277
7278<p> The macros that are sent to Milter (mail filter) applications
7279after the SMTP MAIL FROM command. See <a href="MILTER_README.html">MILTER_README</a>
7280for a list of available macro names and their meanings. </p>
7281
7282<p> This feature is available in Postfix 2.3 and later. </p>
7283
7284
7285</DD>
7286
7287<DT><b><a name="milter_protocol">milter_protocol</a>
7288(default: 6)</b></DT><DD>
7289
7290<p> The mail filter protocol version and optional protocol extensions
7291for communication with a Milter application; prior to Postfix 2.6
7292the default protocol is 2. Postfix
7293sends this version number during the initial protocol handshake.
7294It should match the version number that is expected by the mail
7295filter application (or by its Milter library).  </p>
7296
7297<p>Protocol versions: </p>
7298
7299<dl compact>
7300
7301<dt>2</dt> <dd>Use Sendmail 8 mail filter protocol version 2 (default
7302with Sendmail version 8.11 .. 8.13 and Postfix version 2.3 ..
73032.5).</dd>
7304
7305<dt>3</dt> <dd>Use Sendmail 8 mail filter protocol version 3.</dd>
7306
7307<dt>4</dt> <dd>Use Sendmail 8 mail filter protocol version 4.</dd>
7308
7309<dt>6</dt> <dd>Use Sendmail 8 mail filter protocol version 6 (default
7310with Sendmail version 8.14 and Postfix version 2.6).</dd>
7311
7312</dl>
7313
7314<p>Protocol extensions: </p>
7315
7316<dl compact>
7317
7318<dt>no_header_reply</dt> <dd> Specify this when the Milter application
7319will not reply for each individual message header.</dd>
7320
7321</dl>
7322
7323<p> This feature is available in Postfix 2.3 and later. </p>
7324
7325
7326</DD>
7327
7328<DT><b><a name="milter_rcpt_macros">milter_rcpt_macros</a>
7329(default: see "postconf -d" output)</b></DT><DD>
7330
7331<p> The macros that are sent to Milter (mail filter) applications
7332after the SMTP RCPT TO command. See <a href="MILTER_README.html">MILTER_README</a>
7333for a list of available macro names and their meanings. </p>
7334
7335<p> This feature is available in Postfix 2.3 and later. </p>
7336
7337
7338</DD>
7339
7340<DT><b><a name="milter_unknown_command_macros">milter_unknown_command_macros</a>
7341(default: see "postconf -d" output)</b></DT><DD>
7342
7343<p> The macros that are sent to version 3 or higher Milter (mail
7344filter) applications after an unknown SMTP command.  See <a href="MILTER_README.html">MILTER_README</a>
7345for a list of available macro names and their meanings.  </p>
7346
7347<p> This feature is available in Postfix 2.3 and later. </p>
7348
7349
7350</DD>
7351
7352<DT><b><a name="mime_boundary_length_limit">mime_boundary_length_limit</a>
7353(default: 2048)</b></DT><DD>
7354
7355<p>
7356The maximal length of MIME multipart boundary strings. The MIME
7357processor is unable to distinguish between boundary strings that
7358do not differ in the first $<a href="postconf.5.html#mime_boundary_length_limit">mime_boundary_length_limit</a> characters.
7359</p>
7360
7361<p>
7362This feature is available in Postfix 2.0 and later.
7363</p>
7364
7365
7366</DD>
7367
7368<DT><b><a name="mime_header_checks">mime_header_checks</a>
7369(default: $<a href="postconf.5.html#header_checks">header_checks</a>)</b></DT><DD>
7370
7371<p>
7372Optional lookup tables for content inspection of MIME related
7373message headers, as described in the <a href="header_checks.5.html">header_checks(5)</a> manual page.
7374</p>
7375
7376<p>
7377This feature is available in Postfix 2.0 and later.
7378</p>
7379
7380
7381</DD>
7382
7383<DT><b><a name="mime_nesting_limit">mime_nesting_limit</a>
7384(default: 100)</b></DT><DD>
7385
7386<p>
7387The maximal recursion level that the MIME processor will handle.
7388Postfix refuses mail that is nested deeper than the specified limit.
7389</p>
7390
7391<p>
7392This feature is available in Postfix 2.0 and later.
7393</p>
7394
7395
7396</DD>
7397
7398<DT><b><a name="minimal_backoff_time">minimal_backoff_time</a>
7399(default: 300s)</b></DT><DD>
7400
7401<p>
7402The minimal time between attempts to deliver a deferred message;
7403prior to Postfix 2.4 the default value was 1000s.
7404</p>
7405
7406<p>
7407This parameter also limits the time an unreachable destination is
7408kept in the short-term, in-memory, destination status cache.
7409</p>
7410
7411<p> This parameter should be set greater than or equal to
7412$<a href="postconf.5.html#queue_run_delay">queue_run_delay</a>. See also $<a href="postconf.5.html#maximal_backoff_time">maximal_backoff_time</a>.  </p>
7413
7414<p> Specify a non-zero time value (an integral value plus an optional
7415one-letter suffix that specifies the time unit).  Time units: s
7416(seconds), m (minutes), h (hours), d (days), w (weeks).
7417The default time unit is s (seconds).  </p>
7418
7419
7420</DD>
7421
7422<DT><b><a name="multi_instance_directories">multi_instance_directories</a>
7423(default: empty)</b></DT><DD>
7424
7425<p> An optional list of non-default Postfix configuration directories;
7426these directories belong to additional Postfix instances that share
7427the Postfix executable files and documentation with the default
7428Postfix instance, and that are started, stopped, etc., together
7429with the default Postfix instance.  Specify a list of pathnames
7430separated by comma or whitespace.  </p>
7431
7432<p> When $<a href="postconf.5.html#multi_instance_directories">multi_instance_directories</a> is empty, the <a href="postfix.1.html">postfix(1)</a> command
7433runs in single-instance mode and operates on a single Postfix
7434instance only. Otherwise, the <a href="postfix.1.html">postfix(1)</a> command runs in multi-instance
7435mode and invokes the multi-instance manager specified with the
7436<a href="postconf.5.html#multi_instance_wrapper">multi_instance_wrapper</a> parameter. The multi-instance manager in
7437turn executes <a href="postfix.1.html">postfix(1)</a> commands for the default instance and for
7438all Postfix instances in $<a href="postconf.5.html#multi_instance_directories">multi_instance_directories</a>.  </p>
7439
7440<p> Currently, this parameter setting is ignored except for the
7441default <a href="postconf.5.html">main.cf</a> file. </p>
7442
7443<p> This feature is available in Postfix 2.6 and later. </p>
7444
7445
7446</DD>
7447
7448<DT><b><a name="multi_instance_enable">multi_instance_enable</a>
7449(default: no)</b></DT><DD>
7450
7451<p> Allow this Postfix instance to be started, stopped, etc., by a
7452multi-instance manager.  By default, new instances are created in
7453a safe state that prevents them from being started inadvertently.
7454This parameter is reserved for the multi-instance manager.  </p>
7455
7456<p> This feature is available in Postfix 2.6 and later. </p>
7457
7458
7459</DD>
7460
7461<DT><b><a name="multi_instance_group">multi_instance_group</a>
7462(default: empty)</b></DT><DD>
7463
7464<p> The optional instance group name of this Postfix instance. A
7465group identifies closely-related Postfix instances that the
7466multi-instance manager can start, stop, etc., as a unit.  This
7467parameter is reserved for the multi-instance manager. </p>
7468
7469<p> This feature is available in Postfix 2.6 and later. </p>
7470
7471
7472</DD>
7473
7474<DT><b><a name="multi_instance_name">multi_instance_name</a>
7475(default: empty)</b></DT><DD>
7476
7477<p> The optional instance name of this Postfix instance. This name
7478becomes also the default value for the <a href="postconf.5.html#syslog_name">syslog_name</a> parameter. </p>
7479
7480<p> This feature is available in Postfix 2.6 and later. </p>
7481
7482
7483</DD>
7484
7485<DT><b><a name="multi_instance_wrapper">multi_instance_wrapper</a>
7486(default: empty)</b></DT><DD>
7487
7488<p> The pathname of a multi-instance manager command that the
7489<a href="postfix.1.html">postfix(1)</a> command invokes when the <a href="postconf.5.html#multi_instance_directories">multi_instance_directories</a>
7490parameter value is non-empty. The pathname may be followed by
7491initial command arguments separated by whitespace; shell
7492metacharacters such as quotes are not supported in this context.
7493</p>
7494
7495<p> The <a href="postfix.1.html">postfix(1)</a> command invokes the manager command with the
7496<a href="postfix.1.html">postfix(1)</a> non-option command arguments on the manager command line,
7497and with all installation configuration parameters exported into
7498the manager command process environment. The manager command in
7499turn invokes the <a href="postfix.1.html">postfix(1)</a> command for individual Postfix instances
7500as "postfix -c <i><a href="postconf.5.html#config_directory">config_directory</a></i> <i>command</i>".  </p>
7501
7502<p> This feature is available in Postfix 2.6 and later. </p>
7503
7504
7505</DD>
7506
7507<DT><b><a name="multi_recipient_bounce_reject_code">multi_recipient_bounce_reject_code</a>
7508(default: 550)</b></DT><DD>
7509
7510<p>
7511The numerical Postfix SMTP server response code when a remote SMTP
7512client request is blocked by the <a href="postconf.5.html#reject_multi_recipient_bounce">reject_multi_recipient_bounce</a>
7513restriction.
7514</p>
7515
7516<p>
7517Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
7518</p>
7519
7520<p>
7521This feature is available in Postfix 2.1 and later.
7522</p>
7523
7524
7525</DD>
7526
7527<DT><b><a name="mydestination">mydestination</a>
7528(default: $<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a>, localhost)</b></DT><DD>
7529
7530<p> The list of domains that are delivered via the $<a href="postconf.5.html#local_transport">local_transport</a>
7531mail delivery transport. By default this is the Postfix <a href="local.8.html">local(8)</a>
7532delivery agent which looks up all recipients in /etc/passwd and
7533/etc/aliases. The SMTP server validates recipient addresses with
7534$<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> and rejects non-existent recipients. See also
7535the <a href="ADDRESS_CLASS_README.html#local_domain_class">local domain</a> class in the <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> file.
7536</p>
7537
7538<p>
7539The default <a href="postconf.5.html#mydestination">mydestination</a> value specifies names for the local
7540machine only.  On a mail domain gateway, you should also include
7541$<a href="postconf.5.html#mydomain">mydomain</a>.
7542</p>
7543
7544<p>
7545The $<a href="postconf.5.html#local_transport">local_transport</a> delivery method is also selected for mail
7546addressed to user@[the.net.work.address] of the mail system (the
7547IP addresses specified with the <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> and <a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>
7548parameters).
7549</p>
7550
7551<p>
7552Warnings:
7553</p>
7554
7555<ul>
7556
7557<li><p>Do not specify the names of virtual domains - those domains
7558are specified elsewhere. See <a href="VIRTUAL_README.html">VIRTUAL_README</a> for more information. </p>
7559
7560<li><p>Do not specify the names of domains that this machine is
7561backup MX host for. See <a href="STANDARD_CONFIGURATION_README.html">STANDARD_CONFIGURATION_README</a> for how to
7562set up backup MX hosts. </p>
7563
7564<li><p>By default, the Postfix SMTP server rejects mail for recipients
7565not listed with the <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> parameter.  See the
7566<a href="postconf.5.html">postconf(5)</a> manual for a description of the <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a>
7567and <a href="postconf.5.html#unknown_local_recipient_reject_code">unknown_local_recipient_reject_code</a> parameters. </p>
7568
7569</ul>
7570
7571<p>
7572Specify a list of host or domain names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>"
7573patterns, separated by commas and/or whitespace. A "/file/name"
7574pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table
7575is matched when a name matches a lookup key (the lookup result is
7576ignored).  Continue long lines by starting the next line with
7577whitespace.  </p>
7578
7579<p>
7580Examples:
7581</p>
7582
7583<pre>
7584<a href="postconf.5.html#mydestination">mydestination</a> = $<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a> $<a href="postconf.5.html#mydomain">mydomain</a>
7585<a href="postconf.5.html#mydestination">mydestination</a> = $<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a> www.$<a href="postconf.5.html#mydomain">mydomain</a>, ftp.$<a href="postconf.5.html#mydomain">mydomain</a>
7586</pre>
7587
7588
7589</DD>
7590
7591<DT><b><a name="mydomain">mydomain</a>
7592(default: see "postconf -d" output)</b></DT><DD>
7593
7594<p>
7595The internet domain name of this mail system.  The default is to
7596use $<a href="postconf.5.html#myhostname">myhostname</a> minus the first component, or "localdomain" (Postfix
75972.3 and later).  $<a href="postconf.5.html#mydomain">mydomain</a> is used as
7598a default value for many other configuration parameters.
7599</p>
7600
7601<p>
7602Example:
7603</p>
7604
7605<pre>
7606<a href="postconf.5.html#mydomain">mydomain</a> = domain.tld
7607</pre>
7608
7609
7610</DD>
7611
7612<DT><b><a name="myhostname">myhostname</a>
7613(default: see "postconf -d" output)</b></DT><DD>
7614
7615<p>
7616The internet hostname of this mail system. The default is to use
7617the fully-qualified domain name (FQDN) from gethostname(), or to
7618use the non-FQDN result from gethostname() and append ".$<a href="postconf.5.html#mydomain">mydomain</a>".
7619$<a href="postconf.5.html#myhostname">myhostname</a> is used as a default value for many other configuration
7620parameters.  </p>
7621
7622<p>
7623Example:
7624</p>
7625
7626<pre>
7627<a href="postconf.5.html#myhostname">myhostname</a> = host.example.com
7628</pre>
7629
7630
7631</DD>
7632
7633<DT><b><a name="mynetworks">mynetworks</a>
7634(default: see "postconf -d" output)</b></DT><DD>
7635
7636<p>
7637The list of "trusted" remote SMTP clients that have more privileges than
7638"strangers".
7639</p>
7640
7641<p>
7642In particular, "trusted" SMTP clients are allowed to relay mail
7643through Postfix.  See the <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> parameter
7644description in the <a href="postconf.5.html">postconf(5)</a> manual.
7645</p>
7646
7647<p>
7648You can specify the list of "trusted" network addresses by hand
7649or you can let Postfix do it for you (which is the default).
7650See the description of the <a href="postconf.5.html#mynetworks_style">mynetworks_style</a> parameter for more
7651information.
7652</p>
7653
7654<p>
7655If you specify the <a href="postconf.5.html#mynetworks">mynetworks</a> list by hand,
7656Postfix ignores the <a href="postconf.5.html#mynetworks_style">mynetworks_style</a> setting.
7657</p>
7658
7659<p> Specify a list of network addresses or network/netmask patterns,
7660separated by commas and/or whitespace. Continue long lines by
7661starting the next line with whitespace. </p>
7662
7663<p> The netmask specifies the number of bits in the network part
7664of a host address.  You can also specify "/file/name" or "<a href="DATABASE_README.html">type:table</a>"
7665patterns.  A "/file/name" pattern is replaced by its contents; a
7666"<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a table entry matches a
7667lookup string (the lookup result is ignored). </p>
7668
7669<p> The list is matched left to right, and the search stops on the
7670first match.  Specify "!pattern" to exclude an address or network
7671block from the list. The form "!/file/name" is supported only
7672in Postfix version 2.4 and later. </p>
7673
7674<p> Note 1: Pattern matching of domain names is controlled by the
7675presence or absence of "<a href="postconf.5.html#mynetworks">mynetworks</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
7676parameter value.  </p>
7677
7678<p> Note 2: IP version 6 address information must be specified inside
7679<tt>[]</tt> in the <a href="postconf.5.html#mynetworks">mynetworks</a> value, and in files specified with
7680"/file/name".  IP version 6 addresses contain the ":" character,
7681and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>" pattern.  </p>
7682
7683<p> Note 3: CIDR ranges cannot be specified in hash tables.  Use cidr
7684tables if CIDR ranges are used. </p>
7685
7686<p> Examples:  </p>
7687
7688<pre>
7689<a href="postconf.5.html#mynetworks">mynetworks</a> = 127.0.0.0/8 168.100.189.0/28
7690<a href="postconf.5.html#mynetworks">mynetworks</a> = !192.168.0.1, 192.168.0.0/28
7691<a href="postconf.5.html#mynetworks">mynetworks</a> = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64
7692<a href="postconf.5.html#mynetworks">mynetworks</a> = $<a href="postconf.5.html#config_directory">config_directory</a>/mynetworks
7693<a href="postconf.5.html#mynetworks">mynetworks</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/network_table
7694<a href="postconf.5.html#mynetworks">mynetworks</a> = <a href="cidr_table.5.html">cidr</a>:/etc/postfix/network_table.cidr
7695</pre>
7696
7697
7698</DD>
7699
7700<DT><b><a name="mynetworks_style">mynetworks_style</a>
7701(default: Postfix &ge; 3.0: host, Postfix &lt; 3.0: subnet)</b></DT><DD>
7702
7703<p>
7704The method to generate the default value for the <a href="postconf.5.html#mynetworks">mynetworks</a> parameter.
7705This is the list of trusted networks for relay access control etc.
7706</p>
7707
7708<ul>
7709
7710<li><p>Specify "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = host" when Postfix should
7711"trust" only the local machine. </p>
7712
7713<li><p>Specify "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = subnet" when Postfix
7714should "trust" remote SMTP clients in the same IP subnetworks as the local
7715machine.  On Linux, this works correctly only with interfaces
7716specified with the "ifconfig" or "ip" command. </p>
7717
7718<li><p>Specify "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = class" when Postfix should
7719"trust" remote SMTP clients in the same IP class A/B/C networks as the
7720local machine.  Caution: this may cause
7721Postfix to "trust" your entire provider's network.  Instead, specify
7722an explicit <a href="postconf.5.html#mynetworks">mynetworks</a> list by hand, as described with the <a href="postconf.5.html#mynetworks">mynetworks</a>
7723configuration parameter. </p>
7724
7725</ul>
7726
7727
7728</DD>
7729
7730<DT><b><a name="myorigin">myorigin</a>
7731(default: $<a href="postconf.5.html#myhostname">myhostname</a>)</b></DT><DD>
7732
7733<p>
7734The domain name that locally-posted mail appears to come
7735from, and that locally posted mail is delivered to. The default,
7736$<a href="postconf.5.html#myhostname">myhostname</a>, is adequate for small sites.  If you run a domain with
7737multiple machines, you should (1) change this to $<a href="postconf.5.html#mydomain">mydomain</a> and (2)
7738set up a domain-wide alias database that aliases each user to
7739user@that.users.mailhost.
7740</p>
7741
7742<p>
7743Example:
7744</p>
7745
7746<pre>
7747<a href="postconf.5.html#myorigin">myorigin</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
7748</pre>
7749
7750
7751</DD>
7752
7753<DT><b><a name="nested_header_checks">nested_header_checks</a>
7754(default: $<a href="postconf.5.html#header_checks">header_checks</a>)</b></DT><DD>
7755
7756<p>
7757Optional lookup tables for content inspection of non-MIME message
7758headers in attached messages, as described in the <a href="header_checks.5.html">header_checks(5)</a>
7759manual page.
7760</p>
7761
7762<p>
7763This feature is available in Postfix 2.0 and later.
7764</p>
7765
7766
7767</DD>
7768
7769<DT><b><a name="newaliases_path">newaliases_path</a>
7770(default: see "postconf -d" output)</b></DT><DD>
7771
7772<p>
7773Sendmail compatibility feature that specifies the location of the
7774<a href="newaliases.1.html">newaliases(1)</a> command. This command can be used to rebuild the
7775<a href="local.8.html">local(8)</a> <a href="aliases.5.html">aliases(5)</a> database.
7776</p>
7777
7778
7779</DD>
7780
7781<DT><b><a name="non_fqdn_reject_code">non_fqdn_reject_code</a>
7782(default: 504)</b></DT><DD>
7783
7784<p>
7785The numerical Postfix SMTP server reply code when a client request
7786is rejected by the <a href="postconf.5.html#reject_non_fqdn_helo_hostname">reject_non_fqdn_helo_hostname</a>, <a href="postconf.5.html#reject_non_fqdn_sender">reject_non_fqdn_sender</a>
7787or <a href="postconf.5.html#reject_non_fqdn_recipient">reject_non_fqdn_recipient</a> restriction.
7788</p>
7789
7790
7791</DD>
7792
7793<DT><b><a name="non_smtpd_milters">non_smtpd_milters</a>
7794(default: empty)</b></DT><DD>
7795
7796<p> A list of Milter (mail filter) applications for new mail that
7797does not arrive via the Postfix <a href="smtpd.8.html">smtpd(8)</a> server. This includes local
7798submission via the <a href="sendmail.1.html">sendmail(1)</a> command line, new mail that arrives
7799via the Postfix <a href="qmqpd.8.html">qmqpd(8)</a> server, and old mail that is re-injected
7800into the queue with "postsuper -r".  Specify space or comma as a
7801separator. See the <a href="MILTER_README.html">MILTER_README</a> document for details.  </p>
7802
7803<p> This feature is available in Postfix 2.3 and later. </p>
7804
7805
7806</DD>
7807
7808<DT><b><a name="notify_classes">notify_classes</a>
7809(default: resource, software)</b></DT><DD>
7810
7811<p>
7812The list of error classes that are reported to the postmaster. These
7813postmaster notifications do not replace user notifications. The
7814default is to report only the most serious problems. The paranoid
7815may wish to turn on the policy (UCE and mail relaying) and protocol
7816error (broken mail software) reports.
7817</p>
7818
7819<p> NOTE: postmaster notifications may contain confidential information
7820such as SASL passwords or message content.  It is the system
7821administrator's responsibility to treat such information with care.
7822</p>
7823
7824<p>
7825The error classes are:
7826</p>
7827
7828<dl>
7829
7830<dt><b>bounce</b> (also implies <b>2bounce</b>)</dt>
7831
7832<dd>Send the postmaster copies of the headers of bounced mail, and
7833send transcripts of SMTP sessions when Postfix rejects mail. The
7834notification is sent to the address specified with the
7835<a href="postconf.5.html#bounce_notice_recipient">bounce_notice_recipient</a> configuration parameter (default: postmaster).
7836</dd>
7837
7838<dt><b>2bounce</b></dt>
7839
7840<dd>Send undeliverable bounced mail to the postmaster. The notification
7841is sent to the address specified with the <a href="postconf.5.html#2bounce_notice_recipient">2bounce_notice_recipient</a>
7842configuration parameter (default: postmaster). </dd>
7843
7844<dt><b>data</b></dt>
7845
7846<dd>Send the postmaster a transcript of the SMTP session with an
7847error because a critical data file was unavailable. The notification
7848is sent to the address specified with the <a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a>
7849configuration parameter (default: postmaster). <br> This feature
7850is available in Postfix 2.9 and later.  </dd>
7851
7852<dt><b>delay</b></dt>
7853
7854<dd>Send the postmaster copies of the headers of delayed mail (see
7855<a href="postconf.5.html#delay_warning_time">delay_warning_time</a>). The
7856notification is sent to the address specified with the
7857<a href="postconf.5.html#delay_notice_recipient">delay_notice_recipient</a> configuration parameter (default: postmaster).
7858</dd>
7859
7860<dt><b>policy</b></dt>
7861
7862<dd>Send the postmaster a transcript of the SMTP session when a
7863client request was rejected because of (UCE) policy. The notification
7864is sent to the address specified with the <a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a>
7865configuration parameter (default: postmaster).  </dd>
7866
7867<dt><b>protocol</b></dt>
7868
7869<dd>Send the postmaster a transcript of the SMTP session in case
7870of client or server protocol errors. The notification is sent to
7871the address specified with the <a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> configuration
7872parameter (default: postmaster). </dd>
7873
7874<dt><b>resource</b></dt>
7875
7876<dd>Inform the postmaster of mail not delivered due to resource
7877problems.  The notification is sent to the address specified with
7878the <a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> configuration parameter (default:
7879postmaster). </dd>
7880
7881<dt><b>software</b></dt>
7882
7883<dd>Inform the postmaster of mail not delivered due to software
7884problems.  The notification is sent to the address specified with
7885the <a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> configuration parameter (default:
7886postmaster). </dd>
7887
7888</dl>
7889
7890<p>
7891Examples:
7892</p>
7893
7894<pre>
7895<a href="postconf.5.html#notify_classes">notify_classes</a> = bounce, delay, policy, protocol, resource, software
7896<a href="postconf.5.html#notify_classes">notify_classes</a> = 2bounce, resource, software
7897</pre>
7898
7899
7900</DD>
7901
7902<DT><b><a name="openssl_path">openssl_path</a>
7903(default: openssl)</b></DT><DD>
7904
7905<p>
7906The location of the OpenSSL command line program openssl(1).  This
7907is used by the "<b><a href="postfix-tls.1.html">postfix tls</a></b>" command to create private keys,
7908certificate signing requests, self-signed certificates, and to
7909compute public key digests for DANE TLSA records.  In multi-instance
7910environments, this parameter is always determined from the configuration
7911of the default Postfix instance.
7912</p>
7913
7914<p> Example: </p>
7915
7916<blockquote>
7917<pre>
7918/etc/postfix/<a href="postconf.5.html">main.cf</a>:
7919    # NetBSD pkgsrc:
7920    <a href="postconf.5.html#openssl_path">openssl_path</a> = /usr/pkg/bin/openssl
7921    # Local build:
7922    <a href="postconf.5.html#openssl_path">openssl_path</a> = /usr/local/bin/openssl
7923</pre>
7924</blockquote>
7925
7926<p>
7927This feature is available in Postfix 3.1 and later.
7928</p>
7929
7930
7931</DD>
7932
7933<DT><b><a name="owner_request_special">owner_request_special</a>
7934(default: yes)</b></DT><DD>
7935
7936<p>
7937Enable special treatment for owner-<i>listname</i> entries in the
7938<a href="aliases.5.html">aliases(5)</a> file, and don't split owner-<i>listname</i> and
7939<i>listname</i>-request address localparts when the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>
7940is set to "-".  This feature is useful for mailing lists.
7941</p>
7942
7943
7944</DD>
7945
7946<DT><b><a name="parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
7947(default: see "postconf -d" output)</b></DT><DD>
7948
7949<p>
7950A list of Postfix features where the pattern "example.com" also
7951matches subdomains of example.com,
7952instead of requiring an explicit ".example.com" pattern.  This is
7953planned backwards compatibility:  eventually, all Postfix features
7954are expected to require explicit ".example.com" style patterns when
7955you really want to match subdomains.
7956</p>
7957
7958<p> The following Postfix feature names are supported. </p>
7959
7960<dl>
7961
7962<dt> Postfix version 1.0 and later</dt>
7963
7964<dd>
7965<a href="postconf.5.html#debug_peer_list">debug_peer_list</a>,
7966<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a>,
7967<a href="postconf.5.html#mynetworks">mynetworks</a>,
7968<a href="postconf.5.html#permit_mx_backup_networks">permit_mx_backup_networks</a>,
7969<a href="postconf.5.html#relay_domains">relay_domains</a>,
7970<a href="postconf.5.html#transport_maps">transport_maps</a>
7971</dd>
7972
7973<dt> Postfix version 1.1 and later</dt>
7974
7975<dd>
7976<a href="postconf.5.html#qmqpd_authorized_clients">qmqpd_authorized_clients</a>,
7977<a href="SMTPD_ACCESS_README.html">smtpd_access_maps</a>,
7978</dd>
7979
7980<dt> Postfix version 2.8 and later </dt>
7981
7982<dd>
7983<a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a>
7984</dd>
7985
7986<dt> Postfix version 3.0 and later </dt>
7987
7988<dd>
7989<a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a>
7990</dd>
7991
7992</dl>
7993
7994
7995</DD>
7996
7997<DT><b><a name="permit_mx_backup_networks">permit_mx_backup_networks</a>
7998(default: empty)</b></DT><DD>
7999
8000<p>
8001Restrict the use of the <a href="postconf.5.html#permit_mx_backup">permit_mx_backup</a> SMTP access feature to
8002only domains whose primary MX hosts match the listed networks.
8003The parameter value syntax is the same as with the <a href="postconf.5.html#mynetworks">mynetworks</a>
8004parameter; note, however, that the default value is empty.  </p>
8005
8006<p> Pattern matching of domain names is controlled by the presence
8007or absence of "<a href="postconf.5.html#permit_mx_backup_networks">permit_mx_backup_networks</a>" in the
8008<a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> parameter value.  </p>
8009
8010
8011</DD>
8012
8013<DT><b><a name="pickup_service_name">pickup_service_name</a>
8014(default: pickup)</b></DT><DD>
8015
8016<p>
8017The name of the <a href="pickup.8.html">pickup(8)</a> service. This service picks up local mail
8018submissions from the Postfix <a href="QSHAPE_README.html#maildrop_queue">maildrop queue</a>.
8019</p>
8020
8021<p>
8022This feature is available in Postfix 2.0 and later.
8023</p>
8024
8025
8026</DD>
8027
8028<DT><b><a name="pipe_delivery_status_filter">pipe_delivery_status_filter</a>
8029(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
8030
8031<p> Optional filter for the <a href="pipe.8.html">pipe(8)</a> delivery agent to change the
8032delivery status code or explanatory text of successful or unsuccessful
8033deliveries.  See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details.  </p>
8034
8035<p> This feature is available in Postfix 3.0 and later. </p>
8036
8037
8038</DD>
8039
8040<DT><b><a name="plaintext_reject_code">plaintext_reject_code</a>
8041(default: 450)</b></DT><DD>
8042
8043<p>
8044The numerical Postfix SMTP server response code when a request
8045is rejected by the <b><a href="postconf.5.html#reject_plaintext_session">reject_plaintext_session</a></b> restriction.
8046</p>
8047
8048<p> This feature is available in Postfix 2.3 and later. </p>
8049
8050
8051</DD>
8052
8053<DT><b><a name="postlog_service_name">postlog_service_name</a>
8054(default: postlog)</b></DT><DD>
8055
8056<p> The name of the <a href="postlogd.8.html">postlogd(8)</a> service entry in <a href="master.5.html">master.cf</a>.
8057This service appends logfile records to the file specified
8058with the <a href="postconf.5.html#maillog_file">maillog_file</a> parameter. </p>
8059
8060<p> This feature is available in Postfix 3.4 and later. </p>
8061
8062
8063</DD>
8064
8065<DT><b><a name="postlogd_watchdog_timeout">postlogd_watchdog_timeout</a>
8066(default: 10s)</b></DT><DD>
8067
8068<p> How much time a <a href="postlogd.8.html">postlogd(8)</a> process may take to process a request
8069before it is terminated by a built-in watchdog timer. This is a
8070safety mechanism that prevents <a href="postlogd.8.html">postlogd(8)</a> from becoming non-responsive
8071due to a bug in Postfix itself or in system software. This limit
8072cannot be set under 10s. </p>
8073
8074<p> Specify a non-zero time value (an integral value plus an optional
8075one-letter suffix that specifies the time unit).  Time units: s
8076(seconds), m (minutes), h (hours), d (days), w (weeks).
8077The default time unit is s (seconds).  </p>
8078
8079<p> This feature is available in Postfix 3.4 and later.  </p>
8080
8081
8082</DD>
8083
8084<DT><b><a name="postmulti_control_commands">postmulti_control_commands</a>
8085(default: reload flush)</b></DT><DD>
8086
8087<p> The <a href="postfix.1.html">postfix(1)</a> commands that the <a href="postmulti.1.html">postmulti(1)</a> instance manager
8088treats as "control" commands, that operate on running instances. For
8089these commands, disabled instances are skipped. </p>
8090
8091<p> This feature is available in Postfix 2.6 and later. </p>
8092
8093
8094</DD>
8095
8096<DT><b><a name="postmulti_start_commands">postmulti_start_commands</a>
8097(default: start)</b></DT><DD>
8098
8099<p> The <a href="postfix.1.html">postfix(1)</a> commands that the <a href="postmulti.1.html">postmulti(1)</a> instance manager treats
8100as "start" commands. For these commands, disabled instances are "checked"
8101rather than "started", and failure to "start" a member instance of an
8102instance group will abort the start-up of later instances. </p>
8103
8104<p> This feature is available in Postfix 2.6 and later. </p>
8105
8106
8107</DD>
8108
8109<DT><b><a name="postmulti_stop_commands">postmulti_stop_commands</a>
8110(default: see "postconf -d" output)</b></DT><DD>
8111
8112<p> The <a href="postfix.1.html">postfix(1)</a> commands that the <a href="postmulti.1.html">postmulti(1)</a> instance manager treats
8113as "stop" commands. For these commands, disabled instances are skipped,
8114and enabled instances are processed in reverse order. </p>
8115
8116<p> This feature is available in Postfix 2.6 and later. </p>
8117
8118
8119</DD>
8120
8121<DT><b><a name="postscreen_access_list">postscreen_access_list</a>
8122(default: <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>)</b></DT><DD>
8123
8124<p> Permanent allow/denylist for remote SMTP client IP addresses.
8125<a href="postscreen.8.html">postscreen(8)</a> searches this list immediately after a remote SMTP
8126client connects.  Specify a comma- or whitespace-separated list of
8127commands (in upper or lower case) or lookup tables. The search stops
8128upon the first command that fires for the client IP address. </p>
8129
8130<dl>
8131
8132<dt> <b> <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> </b> </dt> <dd> Allowlist the client and
8133terminate the search if the client IP address matches $<a href="postconf.5.html#mynetworks">mynetworks</a>.
8134Do not subject the client to any before/after 220 greeting tests.
8135Pass the connection immediately to a Postfix SMTP server process.
8136<br> Pattern matching of domain names is controlled by the presence
8137or absence of "<a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a>" in the
8138<a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> parameter value. </dd>
8139
8140<dt> <b> <a href="DATABASE_README.html">type:table</a> </b> </dt> <dd> Query the specified lookup
8141table. Each table lookup result is an access list, except that
8142access lists inside a table cannot specify <a href="DATABASE_README.html">type:table</a> entries.  <br>
8143To discourage the use of hash, btree, etc. tables, there is no
8144support for substring matching like <a href="smtpd.8.html">smtpd(8)</a>. Use CIDR tables
8145instead.  </dd>
8146
8147<dt> <b> permit </b> </dt> <dd> Allowlist the client and terminate
8148the search. Do not subject the client to any before/after 220
8149greeting tests. Pass the connection immediately to a Postfix SMTP
8150server process. </dd>
8151
8152<dt> <b> reject </b> </dt> <dd> Denylist the client and terminate
8153the search. Subject the client to the action configured with the
8154<a href="postconf.5.html#postscreen_denylist_action">postscreen_denylist_action</a> configuration parameter. </dd>
8155
8156<dt> <b> dunno </b> </dt> <dd> All <a href="postscreen.8.html">postscreen(8)</a> access lists
8157implicitly have this command at the end. <br> When <b> dunno </b>
8158is executed inside a lookup table, return from the lookup table and
8159evaluate the next command.  <br> When <b> dunno </b> is executed
8160outside a lookup table, terminate the search, and subject the client
8161to the configured before/after 220 greeting tests. </dd>
8162
8163</dl>
8164
8165<p> Example: </p>
8166
8167<pre>
8168/etc/postfix/<a href="postconf.5.html">main.cf</a>:
8169    <a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,
8170        <a href="cidr_table.5.html">cidr</a>:/etc/postfix/postscreen_access.cidr
8171    # Postfix &lt; 3.6 use <a href="postconf.5.html#postscreen_blacklist_action">postscreen_blacklist_action</a>.
8172    <a href="postconf.5.html#postscreen_denylist_action">postscreen_denylist_action</a> = enforce
8173</pre>
8174
8175<pre>
8176/etc/postfix/postscreen_access.<a href="cidr_table.5.html">cidr</a>:
8177    # Rules are evaluated in the order as specified.
8178    # Denylist 192.168.* except 192.168.0.1.
8179    192.168.0.1         dunno
8180    192.168.0.0/16      reject
8181</pre>
8182
8183<p> This feature is available in Postfix 2.8. </p>
8184
8185
8186</DD>
8187
8188<DT><b><a name="postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a>
8189(default: <a href="DATABASE_README.html#types">static</a>:all)</b></DT><DD>
8190
8191<p> A list of local <a href="postscreen.8.html">postscreen(8)</a> server IP addresses where a
8192non-allowlisted remote SMTP client can obtain <a href="postscreen.8.html">postscreen(8)</a>'s temporary
8193allowlist status. This status is required before the client can
8194talk to a Postfix SMTP server process.  By default, a client can
8195obtain <a href="postscreen.8.html">postscreen(8)</a>'s allowlist status on any local <a href="postscreen.8.html">postscreen(8)</a>
8196server IP address. </p>
8197
8198<p> When <a href="postscreen.8.html">postscreen(8)</a> listens on both primary and backup MX
8199addresses, the <a href="postconf.5.html#postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a> parameter can be
8200configured to give the temporary allowlist status only when a client
8201connects to a primary MX address. Once a client is allowlisted it
8202can talk to a Postfix SMTP server on any address. Thus, clients
8203that connect only to backup MX addresses will never become allowlisted,
8204and will never be allowed to talk to a Postfix SMTP server process.
8205</p>
8206
8207<p> Specify a list of network addresses or network/netmask patterns,
8208separated by commas and/or whitespace. The netmask specifies the
8209number of bits in the network part of a host address. Continue long
8210lines by starting the next line with whitespace. </p>
8211
8212<p> You can also specify "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns.  A
8213"/file/name" pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>"
8214lookup table is matched when a table entry matches a lookup string
8215(the lookup result is ignored). </p>
8216
8217<p> The list is matched left to right, and the search stops on the
8218first match. Specify "!pattern" to exclude an address or network
8219block from the list.  </p>
8220
8221<p> Note: IP version 6 address information must be specified inside
8222[] in the <a href="postconf.5.html#postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a> value, and in files
8223specified with "/file/name".  IP version 6 addresses contain the
8224":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
8225pattern. </p>
8226
8227<p> Example: </p>
8228
8229<pre>
8230/etc/postfix/<a href="postconf.5.html">main.cf</a>:
8231    # Don't allowlist connections to the backup IP address.
8232    # Postfix &lt; 3.6 use <a href="postconf.5.html#postscreen_whitelist_interfaces">postscreen_whitelist_interfaces</a>.
8233    <a href="postconf.5.html#postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a> = !168.100.189.8, <a href="DATABASE_README.html#types">static</a>:all
8234</pre>
8235
8236<p> This feature is available in Postfix 3.6 and later.  </p>
8237
8238<p> Available as <a href="postconf.5.html#postscreen_whitelist_interfaces">postscreen_whitelist_interfaces</a> in Postfix 2.9 - 3.5. </p>
8239
8240
8241</DD>
8242
8243<DT><b><a name="postscreen_bare_newline_action">postscreen_bare_newline_action</a>
8244(default: ignore)</b></DT><DD>
8245
8246<p> The action that <a href="postscreen.8.html">postscreen(8)</a> takes when a remote SMTP client sends
8247a bare newline character, that is, a newline not preceded by carriage
8248return.  Specify one of the following: </p>
8249
8250<dl>
8251
8252<dt> <b>ignore</b> </dt>
8253
8254<dd> Ignore the failure of this test. Allow other tests to complete.
8255Do <i>not</i> repeat this test before the result from some
8256other test expires.
8257This option is useful for testing and collecting statistics
8258without blocking mail permanently. </dd>
8259
8260<dt> <b>enforce</b> </dt>
8261
8262<dd> Allow other tests to complete. Reject attempts to deliver mail
8263with a 550 SMTP reply, and log the helo/sender/recipient information.
8264Repeat this test the next time the client connects. </dd>
8265
8266<dt> <b>drop</b> </dt>
8267
8268<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
8269this test the next time the client connects.  </dd>
8270
8271</dl>
8272
8273<p> This feature is available in Postfix 2.8. </p>
8274
8275
8276</DD>
8277
8278<DT><b><a name="postscreen_bare_newline_enable">postscreen_bare_newline_enable</a>
8279(default: no)</b></DT><DD>
8280
8281<p> Enable "bare newline" SMTP protocol tests in the <a href="postscreen.8.html">postscreen(8)</a>
8282server. These tests are expensive: a remote SMTP client must
8283disconnect after
8284it passes the test, before it can talk to a real Postfix SMTP server.
8285</p>
8286
8287<p> This feature is available in Postfix 2.8.  </p>
8288
8289
8290</DD>
8291
8292<DT><b><a name="postscreen_bare_newline_ttl">postscreen_bare_newline_ttl</a>
8293(default: 30d)</b></DT><DD>
8294
8295<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the result from
8296a successful "bare newline" SMTP protocol test. During this
8297time, the client IP address is excluded from this test. The default
8298is long because a remote SMTP client must disconnect after it passes
8299the test,
8300before it can talk to a real Postfix SMTP server. </p>
8301
8302<p> Specify a non-zero time value (an integral value plus an optional
8303one-letter suffix that specifies the time unit).  Time units: s
8304(seconds), m (minutes), h (hours), d (days), w (weeks).
8305The default time unit is d (days).  </p>
8306
8307<p> This feature is available in Postfix 2.8.  </p>
8308
8309
8310</DD>
8311
8312<DT><b><a name="postscreen_blacklist_action">postscreen_blacklist_action</a>
8313(default: ignore)</b></DT><DD>
8314
8315<p> Renamed to <a href="postconf.5.html#postscreen_denylist_action">postscreen_denylist_action</a> in Postfix 3.6. </p>
8316
8317<p> This feature is available in Postfix 2.8 - 3.5. </p>
8318
8319
8320</DD>
8321
8322<DT><b><a name="postscreen_cache_cleanup_interval">postscreen_cache_cleanup_interval</a>
8323(default: 12h)</b></DT><DD>
8324
8325<p> The amount of time between <a href="postscreen.8.html">postscreen(8)</a> cache cleanup runs.
8326Cache cleanup increases the load on the cache database and should
8327therefore not be run frequently. This feature requires that the
8328cache database supports the "delete" and "sequence" operators.
8329Specify a zero interval to disable cache cleanup. </p>
8330
8331<p> After each cache cleanup run, the <a href="postscreen.8.html">postscreen(8)</a> daemon logs the
8332number of entries that were retained and dropped. A cleanup run is
8333logged as "partial" when the daemon terminates early after "<b>postfix
8334reload</b>", "<b>postfix stop</b>", or no requests for $<a href="postconf.5.html#max_idle">max_idle</a>
8335seconds. </p>
8336
8337<p> Specify a non-negative time value (an integral value plus an optional
8338one-letter suffix that specifies the time unit).  Time units: s
8339(seconds), m (minutes), h (hours), d (days), w (weeks).
8340The default time unit is h (hours).  </p>
8341
8342<p> This feature is available in Postfix 2.8. </p>
8343
8344
8345</DD>
8346
8347<DT><b><a name="postscreen_cache_map">postscreen_cache_map</a>
8348(default: <a href="DATABASE_README.html#types">btree</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/postscreen_cache)</b></DT><DD>
8349
8350<p> Persistent storage for the <a href="postscreen.8.html">postscreen(8)</a> server decisions. </p>
8351
8352<p> To share a <a href="postscreen.8.html">postscreen(8)</a> cache between multiple <a href="postscreen.8.html">postscreen(8)</a>
8353instances, use "<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a> = <a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html#types">btree</a>:/path/to/file".
8354This requires Postfix version 2.9 or later; earlier <a href="proxymap.8.html">proxymap(8)</a>
8355implementations don't support cache cleanup. For an alternative
8356approach see the <a href="memcache_table.5.html">memcache_table(5)</a> manpage. </p>
8357
8358<p> This feature is available in Postfix 2.8. </p>
8359
8360
8361</DD>
8362
8363<DT><b><a name="postscreen_cache_retention_time">postscreen_cache_retention_time</a>
8364(default: 7d)</b></DT><DD>
8365
8366<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will cache an expired
8367temporary allowlist entry before it is removed. This prevents clients
8368from being logged as "NEW" just because their cache entry expired
8369an hour ago. It also prevents the cache from filling up with clients
8370that passed some deep protocol test once and never came back. </p>
8371
8372<p> Specify a non-zero time value (an integral value plus an optional
8373one-letter suffix that specifies the time unit).  Time units: s
8374(seconds), m (minutes), h (hours), d (days), w (weeks).
8375The default time unit is d (days).  </p>
8376
8377<p> This feature is available in Postfix 2.8. </p>
8378
8379
8380</DD>
8381
8382<DT><b><a name="postscreen_client_connection_count_limit">postscreen_client_connection_count_limit</a>
8383(default: $<a href="postconf.5.html#smtpd_client_connection_count_limit">smtpd_client_connection_count_limit</a>)</b></DT><DD>
8384
8385<p> How many simultaneous connections any remote SMTP client is
8386allowed to have
8387with the <a href="postscreen.8.html">postscreen(8)</a> daemon. By default, this limit is the same
8388as with the Postfix SMTP server. Note that the triage process can
8389take several seconds, with the time spent in <a href="postconf.5.html#postscreen_greet_wait">postscreen_greet_wait</a>
8390delay, and with the time spent talking to the <a href="postscreen.8.html">postscreen(8)</a> built-in
8391dummy SMTP protocol engine. </p>
8392
8393<p> This feature is available in Postfix 2.8.  </p>
8394
8395
8396</DD>
8397
8398<DT><b><a name="postscreen_command_count_limit">postscreen_command_count_limit</a>
8399(default: 20)</b></DT><DD>
8400
8401<p> The limit on the total number of commands per SMTP session for
8402<a href="postscreen.8.html">postscreen(8)</a>'s built-in SMTP protocol engine.  This SMTP engine
8403defers or rejects all attempts to deliver mail, therefore there is
8404no need to enforce separate limits on the number of junk commands
8405and error commands.  </p>
8406
8407<p> This feature is available in Postfix 2.8.  </p>
8408
8409
8410</DD>
8411
8412<DT><b><a name="postscreen_command_filter">postscreen_command_filter</a>
8413(default: $<a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a>)</b></DT><DD>
8414
8415<p> A mechanism to transform commands from remote SMTP clients.
8416See <a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a> for further details. </p>
8417
8418<p> This feature is available in Postfix 2.8 and later. </p>
8419
8420
8421</DD>
8422
8423<DT><b><a name="postscreen_command_time_limit">postscreen_command_time_limit</a>
8424(default: normal: 300s, overload: 10s)</b></DT><DD>
8425
8426<p> The time limit to read an entire command line with <a href="postscreen.8.html">postscreen(8)</a>'s
8427built-in SMTP protocol engine. </p>
8428
8429<p> This feature is available in Postfix 2.8.  </p>
8430
8431
8432</DD>
8433
8434<DT><b><a name="postscreen_denylist_action">postscreen_denylist_action</a>
8435(default: ignore)</b></DT><DD>
8436
8437<p> The action that <a href="postscreen.8.html">postscreen(8)</a> takes when a remote SMTP client is
8438permanently denylisted with the <a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a> parameter.
8439Specify one of the following: </p>
8440
8441<dl>
8442
8443<dt> <b>ignore</b> (default) </dt>
8444
8445<dd> Ignore  this result. Allow other tests to complete.  Repeat
8446this test the next time the client connects.
8447This option is useful for testing and collecting statistics
8448without blocking mail. </dd>
8449
8450<dt> <b>enforce</b> </dt>
8451
8452<dd> Allow other tests to complete. Reject attempts to deliver mail
8453with a 550 SMTP reply, and log the helo/sender/recipient information.
8454Repeat this test the next time the client connects. </dd>
8455
8456<dt> <b>drop</b> </dt>
8457
8458<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
8459this test the next time the client connects. </dd>
8460
8461</dl>
8462
8463<p> This feature is available in Postfix 3.6 and later. </p>
8464
8465<p> Available as <a href="postconf.5.html#postscreen_blacklist_action">postscreen_blacklist_action</a> in Postfix 2.8 - 3.5. </p>
8466
8467
8468</DD>
8469
8470<DT><b><a name="postscreen_disable_vrfy_command">postscreen_disable_vrfy_command</a>
8471(default: $<a href="postconf.5.html#disable_vrfy_command">disable_vrfy_command</a>)</b></DT><DD>
8472
8473<p> Disable the SMTP VRFY command in the <a href="postscreen.8.html">postscreen(8)</a> daemon.  See
8474<a href="postconf.5.html#disable_vrfy_command">disable_vrfy_command</a> for details.  </p>
8475
8476<p> This feature is available in Postfix 2.8.  </p>
8477
8478
8479</DD>
8480
8481<DT><b><a name="postscreen_discard_ehlo_keyword_address_maps">postscreen_discard_ehlo_keyword_address_maps</a>
8482(default: $<a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_keyword_address_maps</a>)</b></DT><DD>
8483
8484<p> Lookup tables, indexed by the remote SMTP client address, with
8485case insensitive lists of EHLO keywords (pipelining, starttls, auth,
8486etc.) that the <a href="postscreen.8.html">postscreen(8)</a> server will not send in the EHLO response
8487to a remote SMTP client. See <a href="postconf.5.html#smtpd_discard_ehlo_keywords">smtpd_discard_ehlo_keywords</a> for details.
8488The table is not searched by hostname for robustness reasons.  </p>
8489
8490<p> This feature is available in Postfix 2.8 and later. </p>
8491
8492
8493</DD>
8494
8495<DT><b><a name="postscreen_discard_ehlo_keywords">postscreen_discard_ehlo_keywords</a>
8496(default: $<a href="postconf.5.html#smtpd_discard_ehlo_keywords">smtpd_discard_ehlo_keywords</a>)</b></DT><DD>
8497
8498<p> A case insensitive list of EHLO keywords (pipelining, starttls,
8499auth, etc.) that the <a href="postscreen.8.html">postscreen(8)</a> server will not send in the EHLO
8500response to a remote SMTP client. See <a href="postconf.5.html#smtpd_discard_ehlo_keywords">smtpd_discard_ehlo_keywords</a>
8501for details. </p>
8502
8503<p> This feature is available in Postfix 2.8 and later. </p>
8504
8505
8506</DD>
8507
8508<DT><b><a name="postscreen_dnsbl_action">postscreen_dnsbl_action</a>
8509(default: ignore)</b></DT><DD>
8510
8511<p>The action that <a href="postscreen.8.html">postscreen(8)</a> takes when a remote SMTP client's combined
8512DNSBL score is equal to or greater than a threshold (as defined
8513with the <a href="postconf.5.html#postscreen_dnsbl_sites">postscreen_dnsbl_sites</a> and <a href="postconf.5.html#postscreen_dnsbl_threshold">postscreen_dnsbl_threshold</a>
8514parameters).  Specify one of the following: </p>
8515
8516<dl>
8517
8518<dt> <b>ignore</b> (default) </dt>
8519
8520<dd> Ignore the failure of this test. Allow other tests to complete.
8521Repeat this test the next time the client connects.
8522This option is useful for testing and collecting statistics
8523without blocking mail. </dd>
8524
8525<dt> <b>enforce</b> </dt>
8526
8527<dd> Allow other tests to complete. Reject attempts to deliver mail
8528with a 550 SMTP reply, and log the helo/sender/recipient information.
8529Repeat this test the next time the client connects. </dd>
8530
8531<dt> <b>drop</b> </dt>
8532
8533<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
8534this test the next time the client connects. </dd>
8535
8536</dl>
8537
8538<p> This feature is available in Postfix 2.8. </p>
8539
8540
8541</DD>
8542
8543<DT><b><a name="postscreen_dnsbl_allowlist_threshold">postscreen_dnsbl_allowlist_threshold</a>
8544(default: 0)</b></DT><DD>
8545
8546<p> Allow a remote SMTP client to skip "before" and "after 220
8547greeting" protocol tests, based on its combined DNSBL score as
8548defined with the <a href="postconf.5.html#postscreen_dnsbl_sites">postscreen_dnsbl_sites</a> parameter.  </p>
8549
8550<p> Specify a negative value to enable this feature. When a client
8551passes the <a href="postconf.5.html#postscreen_dnsbl_allowlist_threshold">postscreen_dnsbl_allowlist_threshold</a> without having
8552failed other tests, all pending or disabled tests are flagged as
8553completed with a time-to-live value equal to <a href="postconf.5.html#postscreen_dnsbl_ttl">postscreen_dnsbl_ttl</a>.
8554When a test was already completed, its time-to-live value is updated
8555if it was less than <a href="postconf.5.html#postscreen_dnsbl_ttl">postscreen_dnsbl_ttl</a>. </p>
8556
8557<p> This feature is available in Postfix 3.6 and later.  </p>
8558
8559<p> Available as <a href="postconf.5.html#postscreen_dnsbl_whitelist_threshold">postscreen_dnsbl_whitelist_threshold</a> in Postfix 2.11
8560- 3.5.  </p>
8561
8562
8563</DD>
8564
8565<DT><b><a name="postscreen_dnsbl_max_ttl">postscreen_dnsbl_max_ttl</a>
8566(default: ${<a href="postconf.5.html#postscreen_dnsbl_ttl">postscreen_dnsbl_ttl</a>?{$<a href="postconf.5.html#postscreen_dnsbl_ttl">postscreen_dnsbl_ttl</a>}:{1}}h)</b></DT><DD>
8567
8568<p> The maximum amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the
8569result from a successful DNS-based reputation test before a
8570client IP address is required to pass that test again. If the DNS
8571reply specifies a shorter TTL value, that value will be used unless
8572it would be smaller than <a href="postconf.5.html#postscreen_dnsbl_min_ttl">postscreen_dnsbl_min_ttl</a>.  </p>
8573
8574<p> Specify a non-zero time value (an integral value plus an optional
8575one-letter suffix that specifies the time unit).  Time units: s
8576(seconds), m (minutes), h (hours), d (days), w (weeks).
8577The default time unit is h (hours).  </p>
8578
8579<p> This feature is available in Postfix 3.1. The default setting
8580is backwards-compatible with older Postfix versions. </p>
8581
8582
8583</DD>
8584
8585<DT><b><a name="postscreen_dnsbl_min_ttl">postscreen_dnsbl_min_ttl</a>
8586(default: 60s)</b></DT><DD>
8587
8588<p> The minimum amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the
8589result from a successful DNS-based reputation test before a
8590client IP address is required to pass that test again. If the DNS
8591reply specifies a larger TTL value, that value will be used unless
8592it would be larger than <a href="postconf.5.html#postscreen_dnsbl_max_ttl">postscreen_dnsbl_max_ttl</a>.  </p>
8593
8594<p> Specify a non-zero time value (an integral value plus an optional
8595one-letter suffix that specifies the time unit).  Time units: s
8596(seconds), m (minutes), h (hours), d (days), w (weeks).
8597The default time unit is s (seconds).  </p>
8598
8599<p> This feature is available in Postfix 3.1. </p>
8600
8601
8602</DD>
8603
8604<DT><b><a name="postscreen_dnsbl_reply_map">postscreen_dnsbl_reply_map</a>
8605(default: empty)</b></DT><DD>
8606
8607<p> A mapping from an actual DNSBL domain name which includes a secret
8608password, to the DNSBL domain name that postscreen will reply with
8609when it rejects mail.  When no mapping is found, the actual DNSBL
8610domain will be used. </p>
8611
8612<p> For maximal stability it is best to use a file that is read
8613into memory such as <a href="pcre_table.5.html">pcre</a>:, <a href="regexp_table.5.html">regexp</a>: or <a href="DATABASE_README.html#types">texthash</a>: (<a href="DATABASE_README.html#types">texthash</a>: is similar
8614to <a href="DATABASE_README.html#types">hash</a>:, except a) there is no need to run <a href="postmap.1.html">postmap(1)</a> before the
8615file can be used, and b) <a href="DATABASE_README.html#types">texthash</a>: does not detect changes after
8616the file is read). </p>
8617
8618<p> Example: </p>
8619
8620<pre>
8621/etc/postfix/<a href="postconf.5.html">main.cf</a>:
8622    <a href="postconf.5.html#postscreen_dnsbl_reply_map">postscreen_dnsbl_reply_map</a> = <a href="DATABASE_README.html#types">texthash</a>:/etc/postfix/dnsbl_reply
8623</pre>
8624
8625<pre>
8626/etc/postfix/dnsbl_reply:
8627   secret.zen.spamhaus.org      zen.spamhaus.org
8628</pre>
8629
8630<p> This feature is available in Postfix 2.8.  </p>
8631
8632
8633</DD>
8634
8635<DT><b><a name="postscreen_dnsbl_sites">postscreen_dnsbl_sites</a>
8636(default: empty)</b></DT><DD>
8637
8638<p>Optional list of patterns with DNS allow/denylist domains, filters
8639and weight
8640factors. When the list is non-empty, the <a href="dnsblog.8.html">dnsblog(8)</a> daemon will
8641query these domains with the reversed IP addresses of remote SMTP
8642clients,
8643and <a href="postscreen.8.html">postscreen(8)</a> will update an SMTP client's DNSBL score with
8644each non-error reply as described below. </p>
8645
8646<p> Caution: when postscreen rejects mail, its SMTP response contains
8647the DNSBL
8648domain name. Use the <a href="postconf.5.html#postscreen_dnsbl_reply_map">postscreen_dnsbl_reply_map</a> feature to hide
8649"password" information in DNSBL domain names. </p>
8650
8651<p> When a client's score is equal to or greater than the threshold
8652specified with <a href="postconf.5.html#postscreen_dnsbl_threshold">postscreen_dnsbl_threshold</a>, <a href="postscreen.8.html">postscreen(8)</a> can drop
8653the connection with the remote SMTP client. </p>
8654
8655<p> Specify a list of domain=filter*weight patterns, separated by
8656comma or whitespace.  </p>
8657
8658<ul>
8659
8660<li> <p> When a pattern specifies no "=filter", <a href="postscreen.8.html">postscreen(8)</a> will
8661use any non-error DNSBL query result.  Otherwise, <a href="postscreen.8.html">postscreen(8)</a>
8662will use only DNSBL
8663query results that match the filter. The filter has the form d.d.d.d,
8664where each d is a number, or a pattern inside [] that contains one
8665or more ";"-separated numbers or number..number ranges.  </p>
8666
8667<li> <p> When a pattern specifies no "*weight", the weight of the
8668pattern is 1.  Otherwise, the weight must be an integral number.
8669Specify a negative number for allowlisting.  </p>
8670
8671<li> <p> When a pattern matches one or more DNSBL query results,
8672<a href="postscreen.8.html">postscreen(8)</a> adds that pattern's weight once to the remote SMTP
8673client's DNSBL score. </p>
8674
8675</ul>
8676
8677<p> Examples: </p>
8678
8679<p> To use example.com as a high-confidence blocklist, and to
8680block mail with example.net and example.org only when both agree:
8681</p>
8682
8683<pre>
8684<a href="postconf.5.html#postscreen_dnsbl_threshold">postscreen_dnsbl_threshold</a> = 2
8685<a href="postconf.5.html#postscreen_dnsbl_sites">postscreen_dnsbl_sites</a> = example.com*2, example.net, example.org
8686</pre>
8687
8688<p> To filter only DNSBL replies containing 127.0.0.4: </p>
8689
8690<pre>
8691<a href="postconf.5.html#postscreen_dnsbl_sites">postscreen_dnsbl_sites</a> = example.com=127.0.0.4
8692</pre>
8693
8694<p> This feature is available in Postfix 2.8. </p>
8695
8696
8697</DD>
8698
8699<DT><b><a name="postscreen_dnsbl_threshold">postscreen_dnsbl_threshold</a>
8700(default: 1)</b></DT><DD>
8701
8702<p> The inclusive lower bound for blocking a remote SMTP client, based on
8703its combined DNSBL score as defined with the <a href="postconf.5.html#postscreen_dnsbl_sites">postscreen_dnsbl_sites</a>
8704parameter. </p>
8705
8706<p> This feature is available in Postfix 2.8.  </p>
8707
8708
8709</DD>
8710
8711<DT><b><a name="postscreen_dnsbl_timeout">postscreen_dnsbl_timeout</a>
8712(default: 10s)</b></DT><DD>
8713
8714<p> The time limit for DNSBL or DNSWL lookups. This is separate from
8715the timeouts in the <a href="dnsblog.8.html">dnsblog(8)</a> daemon which are defined by system
8716resolver(3) routines. </p>
8717
8718<p> Specify a non-zero time value (an integral value plus an optional
8719one-letter suffix that specifies the time unit).  Time units: s
8720(seconds), m (minutes), h (hours), d (days), w (weeks).
8721The default time unit is s (seconds).  </p>
8722
8723<p> This feature is available in Postfix 3.0.  </p>
8724
8725
8726</DD>
8727
8728<DT><b><a name="postscreen_dnsbl_ttl">postscreen_dnsbl_ttl</a>
8729(default: 1h)</b></DT><DD>
8730
8731<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the result from
8732a successful DNS-based reputation test before a client
8733IP address is required to pass that test again.  </p>
8734
8735<p> Specify a non-zero time value (an integral value plus an optional
8736one-letter suffix that specifies the time unit).  Time units: s
8737(seconds), m (minutes), h (hours), d (days), w (weeks).
8738The default time unit is h (hours).  </p>
8739
8740<p> This feature is available in Postfix 2.8-3.0. It was
8741replaced by <a href="postconf.5.html#postscreen_dnsbl_max_ttl">postscreen_dnsbl_max_ttl</a> in Postfix 3.1.  </p>
8742
8743
8744</DD>
8745
8746<DT><b><a name="postscreen_dnsbl_whitelist_threshold">postscreen_dnsbl_whitelist_threshold</a>
8747(default: 0)</b></DT><DD>
8748
8749<p> Renamed to <a href="postconf.5.html#postscreen_dnsbl_allowlist_threshold">postscreen_dnsbl_allowlist_threshold</a> in Postfix 3.6. </p>
8750
8751<p> This feature is available in Postfix 2.11 - 3.5.  </p>
8752
8753
8754</DD>
8755
8756<DT><b><a name="postscreen_enforce_tls">postscreen_enforce_tls</a>
8757(default: $<a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a>)</b></DT><DD>
8758
8759<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
8760require that clients use TLS encryption.  See smtpd_postscreen_enforce_tls
8761for details.  </p>
8762
8763<p> This feature is available in Postfix 2.8 and later.
8764Preferably, use <a href="postconf.5.html#postscreen_tls_security_level">postscreen_tls_security_level</a> instead. </p>
8765
8766
8767</DD>
8768
8769<DT><b><a name="postscreen_expansion_filter">postscreen_expansion_filter</a>
8770(default: see "postconf -d" output)</b></DT><DD>
8771
8772<p> List of characters that are permitted in <a href="postconf.5.html#postscreen_reject_footer">postscreen_reject_footer</a>
8773attribute expansions.  See <a href="postconf.5.html#smtpd_expansion_filter">smtpd_expansion_filter</a> for further
8774details. </p>
8775
8776<p> This feature is available in Postfix 2.8 and later. </p>
8777
8778
8779</DD>
8780
8781<DT><b><a name="postscreen_forbidden_commands">postscreen_forbidden_commands</a>
8782(default: $<a href="postconf.5.html#smtpd_forbidden_commands">smtpd_forbidden_commands</a>)</b></DT><DD>
8783
8784<p> List of commands that the <a href="postscreen.8.html">postscreen(8)</a> server considers in
8785violation of the SMTP protocol. See <a href="postconf.5.html#smtpd_forbidden_commands">smtpd_forbidden_commands</a> for
8786syntax, and <a href="postconf.5.html#postscreen_non_smtp_command_action">postscreen_non_smtp_command_action</a> for possible actions.
8787</p>
8788
8789<p> This feature is available in Postfix 2.8.  </p>
8790
8791
8792</DD>
8793
8794<DT><b><a name="postscreen_greet_action">postscreen_greet_action</a>
8795(default: ignore)</b></DT><DD>
8796
8797<p>The action that <a href="postscreen.8.html">postscreen(8)</a> takes when a remote SMTP client speaks
8798before its turn within the time specified with the <a href="postconf.5.html#postscreen_greet_wait">postscreen_greet_wait</a>
8799parameter.  Specify one of the following: </p>
8800
8801<dl>
8802
8803<dt> <b>ignore</b> (default) </dt>
8804
8805<dd> Ignore the failure of this test. Allow other tests to complete.
8806Repeat this test the next time the client connects.
8807This option is useful for testing and collecting statistics
8808without blocking mail. </dd>
8809
8810<dt> <b>enforce</b> </dt>
8811
8812<dd> Allow other tests to complete. Reject attempts to deliver mail
8813with a 550 SMTP reply, and log the helo/sender/recipient information.
8814Repeat this test the next time the client connects. </dd>
8815
8816<dt> <b>drop</b> </dt>
8817
8818<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
8819this test the next time the client connects. </dd>
8820
8821</dl>
8822
8823<p> In either case, <a href="postscreen.8.html">postscreen(8)</a> will not allowlist the remote SMTP client
8824IP address. </p>
8825
8826<p> This feature is available in Postfix 2.8. </p>
8827
8828
8829</DD>
8830
8831<DT><b><a name="postscreen_greet_banner">postscreen_greet_banner</a>
8832(default: $<a href="postconf.5.html#smtpd_banner">smtpd_banner</a>)</b></DT><DD>
8833
8834<p> The <i>text</i> in the optional "220-<i>text</i>..." server
8835response that
8836<a href="postscreen.8.html">postscreen(8)</a> sends ahead of the real Postfix SMTP server's "220
8837text..." response, in an attempt to confuse bad SMTP clients so
8838that they speak before their turn (pre-greet).  Specify an empty
8839value to disable this feature.  </p>
8840
8841<p> This feature is available in Postfix 2.8. </p>
8842
8843
8844</DD>
8845
8846<DT><b><a name="postscreen_greet_ttl">postscreen_greet_ttl</a>
8847(default: 1d)</b></DT><DD>
8848
8849<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the result from
8850a successful PREGREET test. During this time, the client IP address
8851is excluded from this test. The default is relatively short, because
8852a good client can immediately talk to a real Postfix SMTP server. </p>
8853
8854<p> Specify a non-zero time value (an integral value plus an optional
8855one-letter suffix that specifies the time unit).  Time units: s
8856(seconds), m (minutes), h (hours), d (days), w (weeks).
8857The default time unit is d (days).  </p>
8858
8859<p> This feature is available in Postfix 2.8. </p>
8860
8861
8862</DD>
8863
8864<DT><b><a name="postscreen_greet_wait">postscreen_greet_wait</a>
8865(default: normal: 6s, overload: 2s)</b></DT><DD>
8866
8867<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will wait for an SMTP
8868client to send a command before its turn, and for DNS blocklist
8869lookup results to arrive (default: up to 2 seconds under stress,
8870up to 6 seconds otherwise).  <p>
8871
8872<p> Specify a non-zero time value (an integral value plus an optional
8873one-letter suffix that specifies the time unit).  Time units: s
8874(seconds), m (minutes), h (hours), d (days), w (weeks).
8875The default time unit is s (seconds).  </p>
8876
8877<p> This feature is available in Postfix 2.8. </p>
8878
8879
8880</DD>
8881
8882<DT><b><a name="postscreen_helo_required">postscreen_helo_required</a>
8883(default: $<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a>)</b></DT><DD>
8884
8885<p> Require that a remote SMTP client sends HELO or EHLO before
8886commencing a MAIL transaction. </p>
8887
8888<p> This feature is available in Postfix 2.8.  </p>
8889
8890
8891</DD>
8892
8893<DT><b><a name="postscreen_non_smtp_command_action">postscreen_non_smtp_command_action</a>
8894(default: drop)</b></DT><DD>
8895
8896<p> The action that <a href="postscreen.8.html">postscreen(8)</a> takes when a remote SMTP client sends
8897non-SMTP commands as specified with the <a href="postconf.5.html#postscreen_forbidden_commands">postscreen_forbidden_commands</a>
8898parameter.  Specify one of the following: </p>
8899
8900<dl>
8901
8902<dt> <b>ignore</b> </dt>
8903
8904<dd> Ignore the failure of this test. Allow other tests to complete.
8905Do <i>not</i> repeat this test before the result from some
8906other test expires.
8907This option is useful for testing and collecting statistics
8908without blocking mail permanently. </dd>
8909
8910<dt> <b>enforce</b> </dt>
8911
8912<dd> Allow other tests to complete. Reject attempts to deliver mail
8913with a 550 SMTP reply, and log the helo/sender/recipient information.
8914Repeat this test the next time the client connects. </dd>
8915
8916<dt> <b>drop</b> </dt>
8917
8918<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
8919this test the next time the client connects. This action is the
8920same as with the Postfix SMTP server's <a href="postconf.5.html#smtpd_forbidden_commands">smtpd_forbidden_commands</a>
8921feature.  </dd>
8922
8923</dl>
8924
8925<p> This feature is available in Postfix 2.8. </p>
8926
8927
8928</DD>
8929
8930<DT><b><a name="postscreen_non_smtp_command_enable">postscreen_non_smtp_command_enable</a>
8931(default: no)</b></DT><DD>
8932
8933<p> Enable "non-SMTP command" tests in the <a href="postscreen.8.html">postscreen(8)</a> server. These
8934tests are expensive: a client must disconnect after it passes the
8935test, before it can talk to a real Postfix SMTP server. </p>
8936
8937<p> This feature is available in Postfix 2.8.  </p>
8938
8939
8940</DD>
8941
8942<DT><b><a name="postscreen_non_smtp_command_ttl">postscreen_non_smtp_command_ttl</a>
8943(default: 30d)</b></DT><DD>
8944
8945<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the result from
8946a successful "non_smtp_command" SMTP protocol test. During this
8947time, the client IP address is excluded from this test. The default
8948is long because a client must disconnect after it passes the test,
8949before it can talk to a real Postfix SMTP server. </p>
8950
8951<p> Specify a non-zero time value (an integral value plus an optional
8952one-letter suffix that specifies the time unit).  Time units: s
8953(seconds), m (minutes), h (hours), d (days), w (weeks).
8954The default time unit is d (days).  </p>
8955
8956<p> This feature is available in Postfix 2.8.  </p>
8957
8958
8959</DD>
8960
8961<DT><b><a name="postscreen_pipelining_action">postscreen_pipelining_action</a>
8962(default: enforce)</b></DT><DD>
8963
8964<p> The action that <a href="postscreen.8.html">postscreen(8)</a> takes when a remote SMTP client
8965sends
8966multiple commands instead of sending one command and waiting for
8967the server to respond.  Specify one of the following: </p>
8968
8969<dl>
8970
8971<dt> <b>ignore</b> </dt>
8972
8973<dd> Ignore the failure of this test. Allow other tests to complete.
8974Do <i>not</i> repeat this test before the result from some
8975other test expires.
8976This option is useful for testing and collecting statistics
8977without blocking mail permanently. </dd>
8978
8979<dt> <b>enforce</b> </dt>
8980
8981<dd> Allow other tests to complete. Reject attempts to deliver mail
8982with a 550 SMTP reply, and log the helo/sender/recipient information.
8983Repeat this test the next time the client connects. </dd>
8984
8985<dt> <b>drop</b> </dt>
8986
8987<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
8988this test the next time the client connects. </dd>
8989
8990</dl>
8991
8992<p> This feature is available in Postfix 2.8. </p>
8993
8994
8995</DD>
8996
8997<DT><b><a name="postscreen_pipelining_enable">postscreen_pipelining_enable</a>
8998(default: no)</b></DT><DD>
8999
9000<p> Enable "pipelining" SMTP protocol tests in the <a href="postscreen.8.html">postscreen(8)</a>
9001server. These tests are expensive: a good client must disconnect
9002after it passes the test, before it can talk to a real Postfix SMTP
9003server. </p>
9004
9005<p> This feature is available in Postfix 2.8.  </p>
9006
9007
9008</DD>
9009
9010<DT><b><a name="postscreen_pipelining_ttl">postscreen_pipelining_ttl</a>
9011(default: 30d)</b></DT><DD>
9012
9013<p> The amount of time that <a href="postscreen.8.html">postscreen(8)</a> will use the result from
9014a successful "pipelining" SMTP protocol test. During this time, the
9015client IP address is excluded from this test. The default is
9016long because a good client must disconnect after it passes the test,
9017before it can talk to a real Postfix SMTP server. </p>
9018
9019<p> Specify a non-zero time value (an integral value plus an optional
9020one-letter suffix that specifies the time unit).  Time units: s
9021(seconds), m (minutes), h (hours), d (days), w (weeks).
9022The default time unit is d (days).  </p>
9023
9024<p> This feature is available in Postfix 2.8.  </p>
9025
9026
9027</DD>
9028
9029<DT><b><a name="postscreen_post_queue_limit">postscreen_post_queue_limit</a>
9030(default: $<a href="postconf.5.html#default_process_limit">default_process_limit</a>)</b></DT><DD>
9031
9032<p> The number of clients that can be waiting for service from a
9033real Postfix SMTP server process. When this queue is full, all
9034clients will
9035receive a 421 response. </p>
9036
9037<p> This feature is available in Postfix 2.8. </p>
9038
9039
9040</DD>
9041
9042<DT><b><a name="postscreen_pre_queue_limit">postscreen_pre_queue_limit</a>
9043(default: $<a href="postconf.5.html#default_process_limit">default_process_limit</a>)</b></DT><DD>
9044
9045<p> The number of non-allowlisted clients that can be waiting for
9046a decision whether they will receive service from a real Postfix
9047SMTP server
9048process. When this queue is full, all non-allowlisted clients will
9049receive a 421 response. </p>
9050
9051<p> This feature is available in Postfix 2.8. </p>
9052
9053
9054</DD>
9055
9056<DT><b><a name="postscreen_reject_footer">postscreen_reject_footer</a>
9057(default: $<a href="postconf.5.html#smtpd_reject_footer">smtpd_reject_footer</a>)</b></DT><DD>
9058
9059<p> Optional information that is appended after a 4XX or 5XX
9060<a href="postscreen.8.html">postscreen(8)</a> server
9061response. See <a href="postconf.5.html#smtpd_reject_footer">smtpd_reject_footer</a> for further details.  </p>
9062
9063<p> This feature is available in Postfix 2.8 and later. </p>
9064
9065
9066</DD>
9067
9068<DT><b><a name="postscreen_reject_footer_maps">postscreen_reject_footer_maps</a>
9069(default: $<a href="postconf.5.html#smtpd_reject_footer_maps">smtpd_reject_footer_maps</a>)</b></DT><DD>
9070
9071<p> Optional lookup table for information that is appended after a 4XX
9072or 5XX <a href="postscreen.8.html">postscreen(8)</a> server response. See <a href="postconf.5.html#smtpd_reject_footer_maps">smtpd_reject_footer_maps</a> for
9073further details. </p>
9074
9075<p> This feature is available in Postfix 3.4 and later. </p>
9076
9077
9078</DD>
9079
9080<DT><b><a name="postscreen_tls_security_level">postscreen_tls_security_level</a>
9081(default: $<a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a>)</b></DT><DD>
9082
9083<p> The SMTP TLS security level for the <a href="postscreen.8.html">postscreen(8)</a> server; when
9084a non-empty value is specified, this overrides the obsolete parameters
9085<a href="postconf.5.html#postscreen_use_tls">postscreen_use_tls</a> and <a href="postconf.5.html#postscreen_enforce_tls">postscreen_enforce_tls</a>. See <a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a>
9086for details. </p>
9087
9088<p> This feature is available in Postfix 2.8 and later. </p>
9089
9090
9091</DD>
9092
9093<DT><b><a name="postscreen_upstream_proxy_protocol">postscreen_upstream_proxy_protocol</a>
9094(default: empty)</b></DT><DD>
9095
9096<p> The name of the proxy protocol used by an optional before-postscreen
9097proxy agent. When a proxy agent is used, this protocol conveys local
9098and remote address and port information. Specify
9099"<a href="postconf.5.html#postscreen_upstream_proxy_protocol">postscreen_upstream_proxy_protocol</a> = haproxy" to enable the haproxy
9100protocol; version 2 is supported with Postfix 3.5 and later. <p>
9101
9102<p> This feature is available in Postfix 2.10 and later.  </p>
9103
9104
9105</DD>
9106
9107<DT><b><a name="postscreen_upstream_proxy_timeout">postscreen_upstream_proxy_timeout</a>
9108(default: 5s)</b></DT><DD>
9109
9110<p> The time limit for the proxy protocol specified with the
9111<a href="postconf.5.html#postscreen_upstream_proxy_protocol">postscreen_upstream_proxy_protocol</a> parameter. </p>
9112
9113<p> This feature is available in Postfix 2.10 and later.  </p>
9114
9115
9116</DD>
9117
9118<DT><b><a name="postscreen_use_tls">postscreen_use_tls</a>
9119(default: $<a href="postconf.5.html#smtpd_use_tls">smtpd_use_tls</a>)</b></DT><DD>
9120
9121<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
9122but do not require that clients use TLS encryption. </p>
9123
9124<p> This feature is available in Postfix 2.8 and later.
9125Preferably, use <a href="postconf.5.html#postscreen_tls_security_level">postscreen_tls_security_level</a> instead. </p>
9126
9127
9128</DD>
9129
9130<DT><b><a name="postscreen_watchdog_timeout">postscreen_watchdog_timeout</a>
9131(default: 10s)</b></DT><DD>
9132
9133<p> How much time a <a href="postscreen.8.html">postscreen(8)</a> process may take to respond to
9134a remote SMTP client command or to perform a cache operation before it
9135is terminated by a built-in watchdog timer.  This is a safety
9136mechanism that prevents <a href="postscreen.8.html">postscreen(8)</a> from becoming non-responsive
9137due to a bug in Postfix itself or in system software.  To avoid
9138false alarms and unnecessary cache corruption this limit cannot be
9139set under 10s.  </p>
9140
9141<p> Specify a non-zero time value (an integral value plus an optional
9142one-letter suffix that specifies the time unit).  Time units: s
9143(seconds), m (minutes), h (hours), d (days), w (weeks).
9144The default time unit is s (seconds).  </p>
9145
9146<p> This feature is available in Postfix 2.8.  </p>
9147
9148
9149</DD>
9150
9151<DT><b><a name="postscreen_whitelist_interfaces">postscreen_whitelist_interfaces</a>
9152(default: <a href="DATABASE_README.html#types">static</a>:all)</b></DT><DD>
9153
9154<p> Renamed to <a href="postconf.5.html#postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a> in Postfix 3.6. </p>
9155
9156<p> This feature is available in Postfix 2.9 - 3.5. </p>
9157
9158
9159</DD>
9160
9161<DT><b><a name="prepend_delivered_header">prepend_delivered_header</a>
9162(default: command, file, forward)</b></DT><DD>
9163
9164<p> The message delivery contexts where the Postfix <a href="local.8.html">local(8)</a> delivery
9165agent prepends a Delivered-To:  message header with the address
9166that the mail was delivered to. This information is used for mail
9167delivery loop detection.  </p>
9168
9169<p>
9170By default, the Postfix local delivery agent prepends a Delivered-To:
9171header when forwarding mail and when delivering to file (mailbox)
9172and command. Turning off the Delivered-To: header when forwarding
9173mail is not recommended.
9174</p>
9175
9176<p>
9177Specify zero or more of <b>forward</b>, <b>file</b>, or <b>command</b>.
9178</p>
9179
9180<p>
9181Example:
9182</p>
9183
9184<pre>
9185<a href="postconf.5.html#prepend_delivered_header">prepend_delivered_header</a> = forward
9186</pre>
9187
9188
9189</DD>
9190
9191<DT><b><a name="process_id">process_id</a>
9192(read-only)</b></DT><DD>
9193
9194<p>
9195The process ID of a Postfix command or daemon process.
9196</p>
9197
9198
9199</DD>
9200
9201<DT><b><a name="process_id_directory">process_id_directory</a>
9202(default: pid)</b></DT><DD>
9203
9204<p>
9205The location of Postfix PID files relative to $<a href="postconf.5.html#queue_directory">queue_directory</a>.
9206This is a read-only parameter.
9207</p>
9208
9209
9210</DD>
9211
9212<DT><b><a name="process_name">process_name</a>
9213(read-only)</b></DT><DD>
9214
9215<p>
9216The process name of a Postfix command or daemon process.
9217</p>
9218
9219
9220</DD>
9221
9222<DT><b><a name="propagate_unmatched_extensions">propagate_unmatched_extensions</a>
9223(default: canonical, virtual)</b></DT><DD>
9224
9225<p>
9226What address lookup tables copy an address extension from the lookup
9227key to the lookup result.
9228</p>
9229
9230<p>
9231For example, with a <a href="virtual.5.html">virtual(5)</a> mapping of "<i>joe@example.com =&gt;
9232joe.user@example.net</i>", the address "<i>joe+foo@example.com</i>"
9233would rewrite to "<i>joe.user+foo@example.net</i>".
9234</p>
9235
9236<p>
9237Specify zero or more of <b>canonical</b>, <b>virtual</b>, <b>alias</b>,
9238<b>forward</b>, <b>include</b> or <b>generic</b>. These cause
9239address extension
9240propagation with <a href="canonical.5.html">canonical(5)</a>, <a href="virtual.5.html">virtual(5)</a>, and <a href="aliases.5.html">aliases(5)</a> maps,
9241with <a href="local.8.html">local(8)</a> .forward and :include: file lookups, and with <a href="smtp.8.html">smtp(8)</a>
9242generic maps, respectively.  </p>
9243
9244<p>
9245Note: enabling this feature for types other than <b>canonical</b>
9246and <b>virtual</b> is likely to cause problems when mail is forwarded
9247to other sites, especially with mail that is sent to a mailing list
9248exploder address.
9249</p>
9250
9251<p>
9252Examples:
9253</p>
9254
9255<pre>
9256<a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> = canonical, virtual, alias,
9257        forward, include
9258<a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> = canonical, virtual
9259</pre>
9260
9261
9262</DD>
9263
9264<DT><b><a name="proxy_interfaces">proxy_interfaces</a>
9265(default: empty)</b></DT><DD>
9266
9267<p>
9268The remote network interface addresses that this mail system receives mail
9269on by way of a proxy or network address translation unit.
9270</p>
9271
9272<p>
9273This feature is available in Postfix 2.0 and later.
9274</p>
9275
9276<p> You must specify your "outside" proxy/NAT addresses when your
9277system is a backup MX host for other domains, otherwise mail delivery
9278loops will happen when the primary MX host is down.  </p>
9279
9280<p>
9281Example:
9282</p>
9283
9284<pre>
9285<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> = 1.2.3.4
9286</pre>
9287
9288
9289</DD>
9290
9291<DT><b><a name="proxy_read_maps">proxy_read_maps</a>
9292(default: see "postconf -d" output)</b></DT><DD>
9293
9294<p>
9295The lookup tables that the <a href="proxymap.8.html">proxymap(8)</a> server is allowed to
9296access for the read-only service.
9297</p>
9298
9299<p>
9300Specify zero or more "type:name" lookup tables, separated by
9301whitespace or comma.
9302Table references that don't begin with <a href="proxymap.8.html">proxy</a>: are ignored.
9303</p>
9304
9305<p>
9306This feature is available in Postfix 2.0 and later.
9307</p>
9308
9309
9310</DD>
9311
9312<DT><b><a name="proxy_write_maps">proxy_write_maps</a>
9313(default: see "postconf -d" output)</b></DT><DD>
9314
9315<p> The lookup tables that the <a href="proxymap.8.html">proxymap(8)</a> server is allowed to
9316access for the read-write service. Postfix-owned local database
9317files should be stored under the Postfix-owned <a href="postconf.5.html#data_directory">data_directory</a>.
9318Table references that don't begin with <a href="proxymap.8.html">proxy</a>: are ignored.  </p>
9319
9320<p>
9321This feature is available in Postfix 2.5 and later.
9322</p>
9323
9324
9325</DD>
9326
9327<DT><b><a name="proxymap_service_name">proxymap_service_name</a>
9328(default: proxymap)</b></DT><DD>
9329
9330<p> The name of the proxymap read-only table lookup service.  This
9331service is normally implemented by the <a href="proxymap.8.html">proxymap(8)</a> daemon. </p>
9332
9333<p> This feature is available in Postfix 2.6 and later. </p>
9334
9335
9336</DD>
9337
9338<DT><b><a name="proxywrite_service_name">proxywrite_service_name</a>
9339(default: proxywrite)</b></DT><DD>
9340
9341<p> The name of the proxywrite read-write table lookup service.
9342This service is normally implemented by the <a href="proxymap.8.html">proxymap(8)</a> daemon.
9343</p>
9344
9345<p> This feature is available in Postfix 2.6 and later. </p>
9346
9347
9348</DD>
9349
9350<DT><b><a name="qmgr_clog_warn_time">qmgr_clog_warn_time</a>
9351(default: 300s)</b></DT><DD>
9352
9353<p>
9354The minimal delay between warnings that a specific destination is
9355clogging up the Postfix <a href="QSHAPE_README.html#active_queue">active queue</a>. Specify 0 to disable.
9356</p>
9357
9358<p> Specify a non-negative time value (an integral value plus an optional
9359one-letter suffix that specifies the time unit).  Time units: s
9360(seconds), m (minutes), h (hours), d (days), w (weeks).
9361The default time unit is s (seconds).  </p>
9362
9363<p>
9364This feature is enabled with the <a href="postconf.5.html#helpful_warnings">helpful_warnings</a> parameter.
9365</p>
9366
9367<p>
9368This feature is available in Postfix 2.0 and later.
9369</p>
9370
9371
9372</DD>
9373
9374<DT><b><a name="qmgr_daemon_timeout">qmgr_daemon_timeout</a>
9375(default: 1000s)</b></DT><DD>
9376
9377<p> How much time a Postfix queue manager process may take to handle
9378a request before it is terminated by a built-in watchdog timer.
9379</p>
9380
9381<p> Specify a non-zero time value (an integral value plus an optional
9382one-letter suffix that specifies the time unit).  Time units: s
9383(seconds), m (minutes), h (hours), d (days), w (weeks).
9384The default time unit is s (seconds).  </p>
9385
9386<p> This feature is available in Postfix 2.8 and later.  </p>
9387
9388
9389</DD>
9390
9391<DT><b><a name="qmgr_fudge_factor">qmgr_fudge_factor</a>
9392(default: 100)</b></DT><DD>
9393
9394<p>
9395Obsolete feature: the percentage of delivery resources that a busy
9396mail system will use up for delivery of a large mailing  list
9397message.
9398</p>
9399
9400<p>
9401This feature exists only in the <a href="qmgr.8.html">oqmgr(8)</a> old queue manager. The
9402current queue manager solves the problem in a better way.
9403</p>
9404
9405
9406</DD>
9407
9408<DT><b><a name="qmgr_ipc_timeout">qmgr_ipc_timeout</a>
9409(default: 60s)</b></DT><DD>
9410
9411<p> The time limit for the queue manager to send or receive information
9412over an internal communication channel.  The purpose is to break
9413out of deadlock situations. If the time limit is exceeded the
9414software either retries or aborts the operation. </p>
9415
9416<p> Specify a non-zero time value (an integral value plus an optional
9417one-letter suffix that specifies the time unit).  Time units: s
9418(seconds), m (minutes), h (hours), d (days), w (weeks).
9419The default time unit is s (seconds).  </p>
9420
9421<p> This feature is available in Postfix 2.8 and later.  </p>
9422
9423
9424</DD>
9425
9426<DT><b><a name="qmgr_message_active_limit">qmgr_message_active_limit</a>
9427(default: 20000)</b></DT><DD>
9428
9429<p>
9430The maximal number of messages in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
9431</p>
9432
9433
9434</DD>
9435
9436<DT><b><a name="qmgr_message_recipient_limit">qmgr_message_recipient_limit</a>
9437(default: 20000)</b></DT><DD>
9438
9439<p> The maximal number of recipients held in memory by the Postfix
9440queue manager, and the maximal size of the short-term,
9441in-memory "dead" destination status cache.  </p>
9442
9443
9444</DD>
9445
9446<DT><b><a name="qmgr_message_recipient_minimum">qmgr_message_recipient_minimum</a>
9447(default: 10)</b></DT><DD>
9448
9449<p>
9450The minimal number of in-memory recipients for any message. This
9451takes priority over any other in-memory recipient limits (i.e.,
9452the global <a href="postconf.5.html#qmgr_message_recipient_limit">qmgr_message_recipient_limit</a> and the per transport
9453_recipient_limit) if necessary. The minimum value allowed for this
9454parameter is 1.
9455</p>
9456
9457
9458</DD>
9459
9460<DT><b><a name="qmqpd_authorized_clients">qmqpd_authorized_clients</a>
9461(default: empty)</b></DT><DD>
9462
9463<p>
9464What remote QMQP clients are allowed to connect to the Postfix QMQP
9465server port.
9466</p>
9467
9468<p>
9469By default, no client is allowed to use the service. This is
9470because the QMQP server will relay mail to any destination.
9471</p>
9472
9473<p>
9474Specify a list of client patterns. A list pattern specifies a host
9475name, a domain name, an internet address, or a network/mask pattern,
9476where the mask specifies the number of bits in the network part.
9477When a pattern specifies a file name, its contents are substituted
9478for the file name; when a pattern is a "<a href="DATABASE_README.html">type:table</a>" table specification,
9479table lookup is used instead.  </p>
9480
9481<p>
9482Patterns are separated by whitespace and/or commas. In order to
9483reverse the result, precede a pattern with an
9484exclamation point (!). The form "!/file/name" is supported only
9485in Postfix version 2.4 and later.
9486</p>
9487
9488<p> Pattern matching of domain names is controlled by the presence
9489or absence of "<a href="postconf.5.html#qmqpd_authorized_clients">qmqpd_authorized_clients</a>" in the
9490<a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> parameter value.  </p>
9491
9492<p>
9493Example:
9494</p>
9495
9496<pre>
9497<a href="postconf.5.html#qmqpd_authorized_clients">qmqpd_authorized_clients</a> = !192.168.0.1, 192.168.0.0/24
9498</pre>
9499
9500
9501</DD>
9502
9503<DT><b><a name="qmqpd_client_port_logging">qmqpd_client_port_logging</a>
9504(default: no)</b></DT><DD>
9505
9506<p> Enable logging of the remote QMQP client port in addition to
9507the hostname and IP address. The logging format is "host[address]:port".
9508</p>
9509
9510<p> This feature is available in Postfix 2.5 and later. </p>
9511
9512
9513</DD>
9514
9515<DT><b><a name="qmqpd_error_delay">qmqpd_error_delay</a>
9516(default: 1s)</b></DT><DD>
9517
9518<p>
9519How long the Postfix QMQP server will pause before sending a negative
9520reply to the remote QMQP client. The purpose is to slow down confused
9521or malicious clients.
9522</p>
9523
9524<p> Specify a non-negative time value (an integral value plus an optional
9525one-letter suffix that specifies the time unit).  Time units: s
9526(seconds), m (minutes), h (hours), d (days), w (weeks).
9527The default time unit is s (seconds).  </p>
9528
9529
9530</DD>
9531
9532<DT><b><a name="qmqpd_timeout">qmqpd_timeout</a>
9533(default: 300s)</b></DT><DD>
9534
9535<p>
9536The time limit for sending or receiving information over the network.
9537If a read or write operation blocks for more than $<a href="postconf.5.html#qmqpd_timeout">qmqpd_timeout</a>
9538seconds the Postfix QMQP server gives up and disconnects.
9539</p>
9540
9541<p> Specify a non-zero time value (an integral value plus an optional
9542one-letter suffix that specifies the time unit).  Time units: s
9543(seconds), m (minutes), h (hours), d (days), w (weeks).
9544The default time unit is s (seconds).  </p>
9545
9546
9547</DD>
9548
9549<DT><b><a name="queue_directory">queue_directory</a>
9550(default: see "postconf -d" output)</b></DT><DD>
9551
9552<p>
9553The location of the Postfix top-level queue directory. This is the
9554root directory of Postfix daemon processes that run chrooted.
9555</p>
9556
9557
9558</DD>
9559
9560<DT><b><a name="queue_file_attribute_count_limit">queue_file_attribute_count_limit</a>
9561(default: 100)</b></DT><DD>
9562
9563<p>
9564The maximal number of (name=value) attributes that may be stored
9565in a Postfix queue file. The limit is enforced by the <a href="cleanup.8.html">cleanup(8)</a>
9566server.
9567</p>
9568
9569<p>
9570This feature is available in Postfix 2.0 and later.
9571</p>
9572
9573
9574</DD>
9575
9576<DT><b><a name="queue_minfree">queue_minfree</a>
9577(default: 0)</b></DT><DD>
9578
9579<p>
9580The minimal amount of free space in bytes in the queue file system
9581that is needed to receive mail.  This is currently used by the
9582Postfix SMTP server to decide if it will accept any mail at all.
9583</p>
9584
9585<p>
9586By default, the Postfix SMTP server rejects MAIL FROM commands when
9587the amount of free space is less than 1.5*$<a href="postconf.5.html#message_size_limit">message_size_limit</a>
9588(Postfix version 2.1 and later).
9589To specify a higher minimum free space limit, specify a <a href="postconf.5.html#queue_minfree">queue_minfree</a>
9590value that is at least 1.5*$<a href="postconf.5.html#message_size_limit">message_size_limit</a>.
9591</p>
9592
9593<p>
9594With Postfix versions 2.0 and earlier, a <a href="postconf.5.html#queue_minfree">queue_minfree</a> value of
9595zero means there is no minimum required amount of free space.
9596</p>
9597
9598
9599</DD>
9600
9601<DT><b><a name="queue_run_delay">queue_run_delay</a>
9602(default: 300s)</b></DT><DD>
9603
9604<p>
9605The time between <a href="QSHAPE_README.html#deferred_queue">deferred queue</a> scans by the queue manager;
9606prior to Postfix 2.4 the default value was 1000s.
9607</p>
9608
9609<p> This parameter should be set less than or equal to
9610$<a href="postconf.5.html#minimal_backoff_time">minimal_backoff_time</a>. See also $<a href="postconf.5.html#maximal_backoff_time">maximal_backoff_time</a>.  </p>
9611
9612<p> Specify a non-zero time value (an integral value plus an optional
9613one-letter suffix that specifies the time unit).  Time units: s
9614(seconds), m (minutes), h (hours), d (days), w (weeks).
9615The default time unit is s (seconds).  </p>
9616
9617
9618</DD>
9619
9620<DT><b><a name="queue_service_name">queue_service_name</a>
9621(default: qmgr)</b></DT><DD>
9622
9623<p>
9624The name of the <a href="qmgr.8.html">qmgr(8)</a> service. This service manages the Postfix
9625queue and schedules delivery requests.
9626</p>
9627
9628<p>
9629This feature is available in Postfix 2.0 and later.
9630</p>
9631
9632
9633</DD>
9634
9635<DT><b><a name="rbl_reply_maps">rbl_reply_maps</a>
9636(default: empty)</b></DT><DD>
9637
9638<p>
9639Optional lookup tables with RBL response templates. The tables are
9640indexed by the RBL domain name. By default, Postfix uses the default
9641template as specified with the <a href="postconf.5.html#default_rbl_reply">default_rbl_reply</a> configuration
9642parameter. See there for a discussion of the syntax of RBL reply
9643templates.
9644</p>
9645
9646<p>
9647This feature is available in Postfix 2.0 and later.
9648</p>
9649
9650
9651</DD>
9652
9653<DT><b><a name="readme_directory">readme_directory</a>
9654(default: see "postconf -d" output)</b></DT><DD>
9655
9656<p>
9657The location of Postfix README files that describe how to build,
9658configure or operate a specific Postfix subsystem or feature.
9659</p>
9660
9661
9662</DD>
9663
9664<DT><b><a name="receive_override_options">receive_override_options</a>
9665(default: empty)</b></DT><DD>
9666
9667<p> Enable or disable recipient validation, built-in content
9668filtering, or address mapping. Typically, these are specified in
9669<a href="master.5.html">master.cf</a> as command-line arguments for the <a href="smtpd.8.html">smtpd(8)</a>, <a href="qmqpd.8.html">qmqpd(8)</a> or
9670<a href="pickup.8.html">pickup(8)</a> daemons. </p>
9671
9672<p> Specify zero or more of the following options.  The options
9673override <a href="postconf.5.html">main.cf</a> settings and are either implemented by <a href="smtpd.8.html">smtpd(8)</a>,
9674<a href="qmqpd.8.html">qmqpd(8)</a>, or <a href="pickup.8.html">pickup(8)</a> themselves, or they are forwarded to the
9675cleanup server.  </p>
9676
9677<dl>
9678
9679<dt><b><a name="no_unknown_recipient_checks">no_unknown_recipient_checks</a></b></dt>
9680
9681<dd>Do not try to reject unknown recipients (SMTP server only).
9682This is typically specified AFTER an external content filter.
9683</dd>
9684
9685<dt><b><a name="no_address_mappings">no_address_mappings</a></b></dt>
9686
9687<dd>Disable canonical address mapping, virtual alias map expansion,
9688address masquerading, and automatic BCC (blind carbon-copy)
9689recipients. This is typically specified BEFORE an external content
9690filter. </dd>
9691
9692<dt><b><a name="no_header_body_checks">no_header_body_checks</a></b></dt>
9693
9694<dd>Disable header/body_checks. This is typically specified AFTER
9695an external content filter. </dd>
9696
9697<dt><b><a name="no_milters">no_milters</a></b></dt>
9698
9699<dd>Disable Milter (mail filter) applications. This is typically
9700specified AFTER an external content filter. </dd>
9701
9702</dl>
9703
9704<p>
9705Note: when the "BEFORE content filter" <a href="postconf.5.html#receive_override_options">receive_override_options</a>
9706setting is specified in the <a href="postconf.5.html">main.cf</a> file, specify the "AFTER content
9707filter" <a href="postconf.5.html#receive_override_options">receive_override_options</a> setting in <a href="master.5.html">master.cf</a> (and vice
9708versa).
9709</p>
9710
9711<p>
9712Examples:
9713</p>
9714
9715<pre>
9716<a href="postconf.5.html#receive_override_options">receive_override_options</a> =
9717    <a href="postconf.5.html#no_unknown_recipient_checks">no_unknown_recipient_checks</a>, <a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>
9718<a href="postconf.5.html#receive_override_options">receive_override_options</a> = <a href="postconf.5.html#no_address_mappings">no_address_mappings</a>
9719</pre>
9720
9721<p>
9722This feature is available in Postfix 2.1 and later.
9723</p>
9724
9725
9726</DD>
9727
9728<DT><b><a name="recipient_bcc_maps">recipient_bcc_maps</a>
9729(default: empty)</b></DT><DD>
9730
9731<p>
9732Optional BCC (blind carbon-copy) address lookup tables, indexed by
9733envelope recipient address.  The BCC address (multiple results are not
9734supported) is added when mail enters from outside of Postfix.
9735</p>
9736
9737<p>
9738Specify zero or more "type:name" lookup tables, separated by
9739whitespace or comma. Tables will be searched in the specified order
9740until a match is found.
9741</p>
9742
9743<p>
9744The table search order is as follows:
9745</p>
9746
9747<ul>
9748
9749<li> Look up the "user+extension@domain.tld" address including the
9750optional address extension.
9751
9752<li> Look up the "user@domain.tld" address without the optional
9753address extension.
9754
9755<li> Look up the "user+extension" address local part when the
9756recipient domain equals $<a href="postconf.5.html#myorigin">myorigin</a>, $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>
9757or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
9758
9759<li> Look up the "user" address local part when the recipient domain
9760equals $<a href="postconf.5.html#myorigin">myorigin</a>, $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
9761
9762<li> Look up the "@domain.tld" part.
9763
9764</ul>
9765
9766<p>
9767Note: with Postfix 2.3 and later the BCC address is added as if it
9768was specified with NOTIFY=NONE. The sender will not be notified
9769when the BCC address is undeliverable, as long as all down-stream
9770software implements <a href="https://tools.ietf.org/html/rfc3461">RFC 3461</a>.
9771</p>
9772
9773<p>
9774Note: with Postfix 2.2 and earlier the sender will unconditionally
9775be notified when the BCC address is undeliverable.
9776</p>
9777
9778<p> Note: automatic BCC recipients are produced only for new mail.
9779To avoid mailer loops, automatic BCC recipients are not generated
9780after Postfix forwards mail internally, or after Postfix generates
9781mail itself. </p>
9782
9783<p>
9784Example:
9785</p>
9786
9787<pre>
9788<a href="postconf.5.html#recipient_bcc_maps">recipient_bcc_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/recipient_bcc
9789</pre>
9790
9791<p>
9792After a change, run "<b>postmap /etc/postfix/recipient_bcc</b>".
9793</p>
9794
9795<p>
9796This feature is available in Postfix 2.1 and later.
9797</p>
9798
9799
9800</DD>
9801
9802<DT><b><a name="recipient_canonical_classes">recipient_canonical_classes</a>
9803(default: envelope_recipient, header_recipient)</b></DT><DD>
9804
9805<p> What addresses are subject to <a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a> address
9806mapping.  By default, <a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a> address mapping is
9807applied to envelope recipient addresses, and to header recipient
9808addresses.  </p>
9809
9810<p> Specify one or more of: envelope_recipient, header_recipient
9811</p>
9812
9813<p> This feature is available in Postfix 2.2 and later. </p>
9814
9815
9816</DD>
9817
9818<DT><b><a name="recipient_canonical_maps">recipient_canonical_maps</a>
9819(default: empty)</b></DT><DD>
9820
9821<p>
9822Optional address mapping lookup tables for envelope and header
9823recipient addresses.
9824The table format and lookups are documented in <a href="canonical.5.html">canonical(5)</a>.
9825</p>
9826
9827<p>
9828Note: $<a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a> is processed before $<a href="postconf.5.html#canonical_maps">canonical_maps</a>.
9829</p>
9830
9831<p>
9832Example:
9833</p>
9834
9835<pre>
9836<a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/recipient_canonical
9837</pre>
9838
9839
9840</DD>
9841
9842<DT><b><a name="recipient_delimiter">recipient_delimiter</a>
9843(default: empty)</b></DT><DD>
9844
9845<p> The set of characters that can separate an email address
9846localpart, user name, or a .forward file name from its extension.
9847For example, with "<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> = +", the software tries
9848user+foo@example.com before trying user@example.com, user+foo before
9849trying user, and .forward+foo before trying .forward. </p>
9850
9851<p> More formally, an email address localpart or user name is
9852separated from its extension by the first character that matches
9853the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> set. The delimiter character and extension
9854may then be used to generate an extended .forward file name. This
9855implementation recognizes one delimiter character and one extension
9856per email address localpart or email address. With Postfix 2.10 and
9857earlier, the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> specifies a single character. </p>
9858
9859<p> See <a href="canonical.5.html">canonical(5)</a>, <a href="local.8.html">local(8)</a>, <a href="relocated.5.html">relocated(5)</a> and <a href="virtual.5.html">virtual(5)</a> for the
9860effects of <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> on lookups in aliases, canonical,
9861virtual, and relocated maps, and see the <a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a>
9862parameter for propagating an extension from one email address to
9863another.  </p>
9864
9865<p> When used in <a href="postconf.5.html#command_execution_directory">command_execution_directory</a>, <a href="postconf.5.html#forward_path">forward_path</a>, or
9866<a href="postconf.5.html#luser_relay">luser_relay</a>, ${<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>} is replaced with the actual
9867recipient delimiter that was found in the recipient email address
9868(Postfix 2.11 and later), or it is replaced with the <a href="postconf.5.html">main.cf</a>
9869<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> parameter value (Postfix 2.10 and earlier).
9870</p>
9871
9872<p> The <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> is not applied to the mailer-daemon
9873address, the postmaster address, or the double-bounce address. With
9874the default "<a href="postconf.5.html#owner_request_special">owner_request_special</a> = yes" setting, the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>
9875is also not applied to addresses with the special "owner-" prefix
9876or the special "-request" suffix. </p>
9877
9878<p>
9879Examples:
9880</p>
9881
9882<pre>
9883# Handle Postfix-style extensions.
9884<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> = +
9885</pre>
9886
9887<pre>
9888# Handle both Postfix and qmail extensions (Postfix 2.11 and later).
9889<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> = +-
9890</pre>
9891
9892<pre>
9893# Use .forward for mail without address extension, and for mail with
9894# an unrecognized address extension.
9895<a href="postconf.5.html#forward_path">forward_path</a> = $home/.forward${<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>}${extension},
9896    $home/.forward
9897</pre>
9898
9899
9900</DD>
9901
9902<DT><b><a name="reject_code">reject_code</a>
9903(default: 554)</b></DT><DD>
9904
9905<p>
9906The numerical Postfix SMTP server response code when a remote SMTP
9907client request is rejected by the "reject" restriction.
9908</p>
9909
9910<p>
9911Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
9912</p>
9913
9914
9915</DD>
9916
9917<DT><b><a name="reject_tempfail_action">reject_tempfail_action</a>
9918(default: <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>)</b></DT><DD>
9919
9920<p> The Postfix SMTP server's action when a reject-type restriction
9921fails due to a temporary error condition. Specify "defer" to defer
9922the remote SMTP client request immediately. With the default
9923"<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" action, the Postfix SMTP server continues to look
9924for opportunities to reject mail, and defers the client request
9925only if it would otherwise be accepted. </p>
9926
9927<p> For finer control, see: <a href="postconf.5.html#unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a>,
9928<a href="postconf.5.html#unverified_sender_tempfail_action">unverified_sender_tempfail_action</a>, <a href="postconf.5.html#unknown_address_tempfail_action">unknown_address_tempfail_action</a>,
9929and <a href="postconf.5.html#unknown_helo_hostname_tempfail_action">unknown_helo_hostname_tempfail_action</a>.  </p>
9930
9931<p> This feature is available in Postfix 2.6 and later. </p>
9932
9933
9934</DD>
9935
9936<DT><b><a name="relay_clientcerts">relay_clientcerts</a>
9937(default: empty)</b></DT><DD>
9938
9939<p> List of tables with remote SMTP client-certificate fingerprints or
9940public key fingerprints (Postfix 2.9 and later) for which the Postfix
9941SMTP server will allow access with the <a href="postconf.5.html#permit_tls_clientcerts">permit_tls_clientcerts</a>
9942feature.  The fingerprint digest algorithm is configurable via the
9943<a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> parameter (hard-coded as md5 prior to
9944Postfix version 2.5).  </p>
9945
9946<p> The default algorithm is <b>sha256</b> with Postfix &ge; 3.6
9947and the <b><a href="postconf.5.html#compatibility_level">compatibility_level</a></b> set to 3.6 or higher. With Postfix
9948&le; 3.5, the default algorithm is <b>md5</b>.  The best-practice
9949algorithm is now <b>sha256</b>. Recent advances in hash function
9950cryptanalysis have led to md5 and sha1 being deprecated in favor of
9951sha256.  However, as long as there are no known "second pre-image"
9952attacks against the older algorithms, their use in this context, though
9953not recommended, is still likely safe.  </p>
9954
9955<p> Postfix lookup tables are in the form of (key, value) pairs.
9956Since we only need the key, the value can be chosen freely, e.g.
9957the name of the user or host:
9958D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home </p>
9959
9960<p> Example: </p>
9961
9962<pre>
9963<a href="postconf.5.html#relay_clientcerts">relay_clientcerts</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/relay_clientcerts
9964</pre>
9965
9966<p>For more fine-grained control, use <a href="postconf.5.html#check_ccert_access">check_ccert_access</a> to select
9967an appropriate <a href="access.5.html">access(5)</a> policy for each client.
9968See <a href="RESTRICTION_CLASS_README.html">RESTRICTION_CLASS_README</a>.</p>
9969
9970<p>This feature is available with Postfix version 2.2.</p>
9971
9972
9973</DD>
9974
9975<DT><b><a name="relay_destination_concurrency_limit">relay_destination_concurrency_limit</a>
9976(default: $<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concurrency_limit</a>)</b></DT><DD>
9977
9978<p> The maximal number of parallel deliveries to the same destination
9979via the relay message delivery transport. This limit is enforced
9980by the queue manager. The message delivery transport name is the
9981first field in the entry in the <a href="master.5.html">master.cf</a> file.  </p>
9982
9983<p> This feature is available in Postfix 2.0 and later. </p>
9984
9985
9986</DD>
9987
9988<DT><b><a name="relay_destination_recipient_limit">relay_destination_recipient_limit</a>
9989(default: $<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b></DT><DD>
9990
9991<p> The maximal number of recipients per message for the relay
9992message delivery transport. This limit is enforced by the queue
9993manager. The message delivery transport name is the first field in
9994the entry in the <a href="master.5.html">master.cf</a> file.  </p>
9995
9996<p> Setting this parameter to a value of 1 changes the meaning of
9997<a href="postconf.5.html#relay_destination_concurrency_limit">relay_destination_concurrency_limit</a> from concurrency per domain
9998into concurrency per recipient.  </p>
9999
10000<p> This feature is available in Postfix 2.0 and later. </p>
10001
10002
10003</DD>
10004
10005<DT><b><a name="relay_domains">relay_domains</a>
10006(default: Postfix &ge; 3.0: empty, Postfix &lt; 3.0: $<a href="postconf.5.html#mydestination">mydestination</a>)</b></DT><DD>
10007
10008<p> What destination domains (and subdomains thereof) this system
10009will relay mail to. For details about how
10010the <a href="postconf.5.html#relay_domains">relay_domains</a> value is used, see the description of the
10011<a href="postconf.5.html#permit_auth_destination">permit_auth_destination</a> and <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> SMTP recipient
10012restrictions.  </p>
10013
10014<p> Domains that match $<a href="postconf.5.html#relay_domains">relay_domains</a> are delivered with the
10015$<a href="postconf.5.html#relay_transport">relay_transport</a> mail delivery transport. The SMTP server validates
10016recipient addresses with $<a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> and rejects non-existent
10017recipients. See also the <a href="ADDRESS_CLASS_README.html#relay_domain_class">relay domains</a> address class in the
10018<a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> file.  </p>
10019
10020<p> Note: Postfix will not automatically forward mail for domains
10021that list this system as their primary or backup MX host. See the
10022<a href="postconf.5.html#permit_mx_backup">permit_mx_backup</a> restriction in the <a href="postconf.5.html">postconf(5)</a> manual page.  </p>
10023
10024<p> Specify a list of host or domain names, "/file/name" patterns
10025or "<a href="DATABASE_README.html">type:table</a>" lookup tables, separated by commas and/or whitespace.
10026Continue long lines by starting the next line with whitespace. A
10027"/file/name" pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>"
10028lookup table is matched when a (parent) domain appears as lookup
10029key. Specify "!pattern" to exclude a domain from the list. The form
10030"!/file/name" is supported only in Postfix version 2.4 and later.
10031</p>
10032
10033<p> Pattern matching of domain names is controlled by the presence
10034or absence of "<a href="postconf.5.html#relay_domains">relay_domains</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
10035parameter value. </p>
10036
10037
10038</DD>
10039
10040<DT><b><a name="relay_domains_reject_code">relay_domains_reject_code</a>
10041(default: 554)</b></DT><DD>
10042
10043<p>
10044The numerical Postfix SMTP server response code when a client
10045request is rejected by the <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> recipient
10046restriction.
10047</p>
10048
10049<p>
10050Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
10051</p>
10052
10053
10054</DD>
10055
10056<DT><b><a name="relay_recipient_maps">relay_recipient_maps</a>
10057(default: empty)</b></DT><DD>
10058
10059<p> Optional lookup tables with all valid addresses in the domains
10060that match $<a href="postconf.5.html#relay_domains">relay_domains</a>. Specify @domain as a wild-card for
10061domains that have no valid recipient list, and become a source of
10062backscatter mail: Postfix accepts spam for non-existent recipients
10063and then floods innocent people with undeliverable mail.  Technically,
10064tables
10065listed with $<a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> are used as lists: Postfix needs
10066to know only if a lookup string is found or not, but it does not
10067use the result from the table lookup.  </p>
10068
10069<p>
10070Specify zero or more "type:name" lookup tables, separated by
10071whitespace or comma. Tables will be searched in the specified order
10072until a match is found.
10073</p>
10074
10075<p>
10076If this parameter is non-empty, then the Postfix SMTP server will reject
10077mail to unknown relay users. This feature is off by default.
10078</p>
10079
10080<p>
10081See also the <a href="ADDRESS_CLASS_README.html#relay_domain_class">relay domains</a> address class in the <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a>
10082file.
10083</p>
10084
10085<p>
10086Example:
10087</p>
10088
10089<pre>
10090<a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/relay_recipients
10091</pre>
10092
10093<p>
10094This feature is available in Postfix 2.0 and later.
10095</p>
10096
10097
10098</DD>
10099
10100<DT><b><a name="relay_transport">relay_transport</a>
10101(default: relay)</b></DT><DD>
10102
10103<p>
10104The default mail delivery transport and next-hop destination for
10105remote delivery to domains listed with $<a href="postconf.5.html#relay_domains">relay_domains</a>. In order of
10106decreasing precedence, the nexthop destination is taken from
10107$<a href="postconf.5.html#relay_transport">relay_transport</a>, $<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>, $<a href="postconf.5.html#relayhost">relayhost</a>, or
10108from the recipient domain. This information can be overruled with
10109the <a href="transport.5.html">transport(5)</a> table.
10110</p>
10111
10112<p>
10113Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
10114is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
10115The <i>:nexthop</i> destination is optional; its syntax is documented
10116in the manual page of the corresponding delivery agent.
10117</p>
10118
10119<p>
10120See also the <a href="ADDRESS_CLASS_README.html#relay_domain_class">relay domains</a> address class in the <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a>
10121file.
10122</p>
10123
10124<p>
10125This feature is available in Postfix 2.0 and later.
10126</p>
10127
10128
10129</DD>
10130
10131<DT><b><a name="relayhost">relayhost</a>
10132(default: empty)</b></DT><DD>
10133
10134<p>
10135The next-hop destination(s) for non-local mail; overrides non-local
10136domains in recipient addresses. This information is overruled with
10137<a href="postconf.5.html#relay_transport">relay_transport</a>, <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a>,
10138<a href="postconf.5.html#default_transport">default_transport</a>, <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>
10139and with the <a href="transport.5.html">transport(5)</a> table.
10140</p>
10141
10142<p>
10143On an intranet, specify the organizational domain name. If your
10144internal DNS uses no MX records, specify the name of the intranet
10145gateway host instead.
10146</p>
10147
10148<p>
10149In the case of SMTP or LMTP delivery, specify one or more destinations
10150in the form of a domain name, hostname, hostname:port, [hostname]:port,
10151[hostaddress] or [hostaddress]:port, separated by comma or whitespace.
10152The form [hostname] turns off MX lookups. Multiple destinations are
10153supported in Postfix 3.5 and later.
10154</p>
10155
10156<p>
10157If you're connected via UUCP, see the <a href="UUCP_README.html">UUCP_README</a> file for useful
10158information.
10159</p>
10160
10161<p>
10162Examples:
10163</p>
10164
10165<pre>
10166<a href="postconf.5.html#relayhost">relayhost</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
10167<a href="postconf.5.html#relayhost">relayhost</a> = [gateway.example.com]
10168<a href="postconf.5.html#relayhost">relayhost</a> = mail1.example:587, mail2.example:587
10169<a href="postconf.5.html#relayhost">relayhost</a> = [an.ip.add.ress]
10170</pre>
10171
10172
10173</DD>
10174
10175<DT><b><a name="relocated_maps">relocated_maps</a>
10176(default: empty)</b></DT><DD>
10177
10178<p>
10179Optional lookup tables with new contact information for users or
10180domains that no longer exist.  The table format and lookups are
10181documented in <a href="relocated.5.html">relocated(5)</a>.
10182</p>
10183
10184<p>
10185Specify zero or more "type:name" lookup tables, separated by
10186whitespace or comma. Tables will be searched in the specified order
10187until a match is found.
10188</p>
10189
10190<p>
10191If you use this feature, run "<b>postmap /etc/postfix/relocated</b>" to
10192build the necessary DBM or DB file after change, then "<b>postfix
10193reload</b>" to make the changes visible.
10194</p>
10195
10196<p>
10197Examples:
10198</p>
10199
10200<pre>
10201<a href="postconf.5.html#relocated_maps">relocated_maps</a> = <a href="DATABASE_README.html#types">dbm</a>:/etc/postfix/relocated
10202<a href="postconf.5.html#relocated_maps">relocated_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/relocated
10203</pre>
10204
10205
10206</DD>
10207
10208<DT><b><a name="remote_header_rewrite_domain">remote_header_rewrite_domain</a>
10209(default: empty)</b></DT><DD>
10210
10211<p> Rewrite or add message headers in mail from remote clients if
10212the <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter value is non-empty,
10213updating incomplete addresses with the domain specified in the
10214<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter, and adding missing headers.
10215</p>
10216
10217<p> The
10218<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> parameter controls what clients Postfix
10219considers local. </p>
10220
10221<p> Examples:  </p>
10222
10223<p> The safe setting: append "domain.invalid" to incomplete header
10224addresses from remote SMTP clients, so that those addresses cannot
10225be confused with local addresses. </p>
10226
10227<blockquote>
10228<pre>
10229<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> = domain.invalid
10230</pre>
10231</blockquote>
10232
10233<p> The default, purist, setting: don't rewrite headers from remote
10234clients at all. </p>
10235
10236<blockquote>
10237<pre>
10238<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> =
10239</pre>
10240</blockquote>
10241
10242
10243</DD>
10244
10245<DT><b><a name="require_home_directory">require_home_directory</a>
10246(default: no)</b></DT><DD>
10247
10248<p>
10249Require that a <a href="local.8.html">local(8)</a> recipient's home directory exists
10250before mail delivery is attempted. By default this test is disabled.
10251It can be useful for environments that import home directories to
10252the mail server (IMPORTING HOME DIRECTORIES IS NOT RECOMMENDED).
10253</p>
10254
10255
10256</DD>
10257
10258<DT><b><a name="reset_owner_alias">reset_owner_alias</a>
10259(default: no)</b></DT><DD>
10260
10261<p> Reset the <a href="local.8.html">local(8)</a> delivery agent's idea of the owner-alias
10262attribute, when delivering mail to a child alias that does not have
10263its own owner alias. </p>
10264
10265<p> This feature is available in Postfix 2.8 and later. With older
10266Postfix releases, the behavior is as if this parameter is set to
10267"yes". </p>
10268
10269<p> As documented in <a href="aliases.5.html">aliases(5)</a>, when an alias <i>name</i> has a
10270companion alias named owner-<i>name</i>, this will replace the
10271envelope sender address, so that delivery errors will be
10272reported to the owner alias instead of the sender. This configuration
10273is recommended for mailing lists. <p>
10274
10275<p> A less known property of the owner alias is that it also forces
10276the <a href="local.8.html">local(8)</a> delivery agent to write local and remote addresses
10277from alias expansion to a new queue file, instead of attempting to
10278deliver mail to local addresses as soon as they come out of alias
10279expansion.  </p>
10280
10281<p> Writing local addresses from alias expansion to a new queue
10282file allows for robust handling of temporary delivery errors: errors
10283with one local member have no effect on deliveries to other members
10284of the list.  On the other hand, delivery to local addresses as
10285soon as they come out of alias expansion is fragile: a temporary
10286error with one local address from alias expansion will cause the
10287entire alias to be expanded repeatedly until the error goes away,
10288or until the message expires in the queue.  In that case, a problem
10289with one list member results in multiple message deliveries to other
10290list members. </p>
10291
10292<p> The default behavior of Postfix 2.8 and later is to keep the
10293owner-alias attribute of the parent alias, when delivering mail to
10294a child alias that does not have its own owner alias. Then, local
10295addresses from that child alias will be written to a new queue file,
10296and a temporary error with one local address will not affect delivery
10297to other mailing list members. </p>
10298
10299<p> Unfortunately, older Postfix releases reset the owner-alias
10300attribute when delivering mail to a child alias that does not have
10301its own owner alias. To be precise, this resets only the decision
10302to create a new queue file, not the decision to override the envelope
10303sender address. The <a href="local.8.html">local(8)</a> delivery agent then attempts to
10304deliver local addresses as soon as they come out of child alias
10305expansion.  If delivery to any address from child alias expansion
10306fails with a temporary error condition, the entire mailing list may
10307be expanded repeatedly until the mail expires in the queue, resulting
10308in multiple deliveries of the same message to mailing list members.
10309</p>
10310
10311
10312</DD>
10313
10314<DT><b><a name="resolve_dequoted_address">resolve_dequoted_address</a>
10315(default: yes)</b></DT><DD>
10316
10317<p> Resolve a recipient address safely instead of correctly, by
10318looking inside quotes.  </p>
10319
10320<p> By default, the Postfix address resolver does not quote the
10321address localpart as per <a href="https://tools.ietf.org/html/rfc822">RFC 822</a>, so that additional @ or % or !
10322operators remain visible. This behavior is safe but it is also
10323technically incorrect.  </p>
10324
10325<p> If you specify "<a href="postconf.5.html#resolve_dequoted_address">resolve_dequoted_address</a> = no", then
10326the Postfix
10327resolver will not know about additional @ etc. operators in the
10328address localpart. This opens opportunities for obscure mail relay
10329attacks with user@domain@domain addresses when Postfix provides
10330backup MX service for Sendmail systems.  </p>
10331
10332
10333</DD>
10334
10335<DT><b><a name="resolve_null_domain">resolve_null_domain</a>
10336(default: no)</b></DT><DD>
10337
10338<p> Resolve an address that ends in the "@" null domain as if the
10339local hostname were specified, instead of rejecting the address as
10340invalid.  </p>
10341
10342<p> This feature is available in Postfix 2.1 and later.
10343Earlier versions always resolve the null domain as the local
10344hostname.  </p>
10345
10346<p> The Postfix SMTP server uses this feature to reject mail from
10347or to addresses that end in the "@" null domain, and from addresses
10348that rewrite into a form that ends in the "@" null domain.  </p>
10349
10350
10351</DD>
10352
10353<DT><b><a name="resolve_numeric_domain">resolve_numeric_domain</a>
10354(default: no)</b></DT><DD>
10355
10356<p> Resolve "user@ipaddress" as "user@[ipaddress]", instead of
10357rejecting the address as invalid.  </p>
10358
10359<p> This feature is available in Postfix 2.3 and later.
10360
10361
10362</DD>
10363
10364<DT><b><a name="respectful_logging">respectful_logging</a>
10365(default: see 'postconf -d' output)</b></DT><DD>
10366
10367<p> Avoid logging that implies white is better than black. Instead
10368use 'allowlist', 'denylist', and variations of those words. </p>
10369
10370<p> This feature is available in Postfix 3.6 and later. </p>
10371
10372
10373</DD>
10374
10375<DT><b><a name="rewrite_service_name">rewrite_service_name</a>
10376(default: rewrite)</b></DT><DD>
10377
10378<p>
10379The name of the address rewriting service. This service rewrites
10380addresses to standard form and resolves them to a (delivery method,
10381next-hop host, recipient) triple.
10382</p>
10383
10384<p>
10385This feature is available in Postfix 2.0 and later.
10386</p>
10387
10388
10389</DD>
10390
10391<DT><b><a name="sample_directory">sample_directory</a>
10392(default: /etc/postfix)</b></DT><DD>
10393
10394<p>
10395The name of the directory with example Postfix configuration files.
10396Starting with Postfix 2.1, these files have been replaced with the
10397<a href="postconf.5.html">postconf(5)</a> manual page.
10398</p>
10399
10400
10401</DD>
10402
10403<DT><b><a name="send_cyrus_sasl_authzid">send_cyrus_sasl_authzid</a>
10404(default: no)</b></DT><DD>
10405
10406<p> When authenticating to a remote SMTP or LMTP server with the
10407default setting "no", send no SASL authoriZation ID (authzid); send
10408only the SASL authentiCation ID (authcid) plus the authcid's password.
10409</p>
10410
10411<p> The non-default setting "yes" enables the behavior of older
10412Postfix versions.  These always send a SASL authzid that is equal
10413to the SASL authcid, but this causes interoperability problems
10414with some SMTP servers. </p>
10415
10416<p> This feature is available in Postfix 2.4.4 and later. </p>
10417
10418
10419</DD>
10420
10421<DT><b><a name="sender_based_routing">sender_based_routing</a>
10422(default: no)</b></DT><DD>
10423
10424<p>
10425This parameter should not be used. It was replaced by <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>
10426in Postfix version 2.3.
10427</p>
10428
10429
10430</DD>
10431
10432<DT><b><a name="sender_bcc_maps">sender_bcc_maps</a>
10433(default: empty)</b></DT><DD>
10434
10435<p> Optional BCC (blind carbon-copy) address lookup tables, indexed
10436by envelope sender address.  The BCC address (multiple results are not
10437supported) is added when mail enters from outside of Postfix.  </p>
10438
10439<p>
10440Specify zero or more "type:name" lookup tables, separated by
10441whitespace or comma. Tables will be searched in the specified order
10442until a match is found.
10443</p>
10444
10445<p>
10446The table search order is as follows:
10447</p>
10448
10449<ul>
10450
10451<li> Look up the "user+extension@domain.tld" address including the
10452optional address extension.
10453
10454<li> Look up the "user@domain.tld" address without the optional
10455address extension.
10456
10457<li> Look up the "user+extension" address local part when the
10458sender domain equals $<a href="postconf.5.html#myorigin">myorigin</a>, $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>
10459or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
10460
10461<li> Look up the "user" address local part when the sender domain
10462equals $<a href="postconf.5.html#myorigin">myorigin</a>, $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
10463
10464<li> Look up the "@domain.tld" part.
10465
10466</ul>
10467
10468<p>
10469Note: with Postfix 2.3 and later the BCC address is added as if it
10470was specified with NOTIFY=NONE. The sender will not be notified
10471when the BCC address is undeliverable, as long as all down-stream
10472software implements <a href="https://tools.ietf.org/html/rfc3461">RFC 3461</a>.
10473</p>
10474
10475<p>
10476Note: with Postfix 2.2 and earlier the sender will be notified
10477when the BCC address is undeliverable.
10478</p>
10479
10480<p> Note: automatic BCC recipients are produced only for new mail.
10481To avoid mailer loops, automatic BCC recipients are not generated
10482after Postfix forwards mail internally, or after Postfix generates
10483mail itself. </p>
10484
10485<p>
10486Example:
10487</p>
10488
10489<pre>
10490<a href="postconf.5.html#sender_bcc_maps">sender_bcc_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/sender_bcc
10491</pre>
10492
10493<p>
10494After a change, run "<b>postmap /etc/postfix/sender_bcc</b>".
10495</p>
10496
10497<p>
10498This feature is available in Postfix 2.1 and later.
10499</p>
10500
10501
10502</DD>
10503
10504<DT><b><a name="sender_canonical_classes">sender_canonical_classes</a>
10505(default: envelope_sender, header_sender)</b></DT><DD>
10506
10507<p> What addresses are subject to <a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> address
10508mapping.  By default, <a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> address mapping is
10509applied to envelope sender addresses, and to header sender addresses.
10510</p>
10511
10512<p> Specify one or more of: envelope_sender, header_sender </p>
10513
10514<p> This feature is available in Postfix 2.2 and later. </p>
10515
10516
10517</DD>
10518
10519<DT><b><a name="sender_canonical_maps">sender_canonical_maps</a>
10520(default: empty)</b></DT><DD>
10521
10522<p>
10523Optional address mapping lookup tables for envelope and header
10524sender addresses.
10525The table format and lookups are documented in <a href="canonical.5.html">canonical(5)</a>.
10526</p>
10527
10528<p>
10529Example: you want to rewrite the SENDER address "user@ugly.example"
10530to "user@pretty.example", while still being able to send mail to
10531the RECIPIENT address "user@ugly.example".
10532</p>
10533
10534<p>
10535Note: $<a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> is processed before $<a href="postconf.5.html#canonical_maps">canonical_maps</a>.
10536</p>
10537
10538<p>
10539Example:
10540</p>
10541
10542<pre>
10543<a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/sender_canonical
10544</pre>
10545
10546
10547</DD>
10548
10549<DT><b><a name="sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a>
10550(default: empty)</b></DT><DD>
10551
10552<p> A sender-dependent override for the global <a href="postconf.5.html#default_transport">default_transport</a>
10553parameter setting. The tables are searched by the envelope sender
10554address and @domain. A lookup result of DUNNO terminates the search
10555without overriding the global <a href="postconf.5.html#default_transport">default_transport</a> parameter setting.
10556This information is overruled with the <a href="transport.5.html">transport(5)</a> table. </p>
10557
10558<p>
10559Specify zero or more "type:name" lookup tables, separated by
10560whitespace or comma. Tables will be searched in the specified order
10561until a match is found.
10562</p>
10563
10564<p> Note: this overrides <a href="postconf.5.html#default_transport">default_transport</a>, not <a href="postconf.5.html#transport_maps">transport_maps</a>, and
10565therefore the expected syntax is that of <a href="postconf.5.html#default_transport">default_transport</a>, not the
10566syntax of <a href="postconf.5.html#transport_maps">transport_maps</a>.  Specifically, this does not support the
10567<a href="postconf.5.html#transport_maps">transport_maps</a> syntax for null transport, null nexthop, or null
10568email addresses. </p>
10569
10570<p> For safety reasons, this feature does not allow $number
10571substitutions in regular expression maps. </p>
10572
10573<p> This feature is available in Postfix 2.7 and later.  </p>
10574
10575
10576</DD>
10577
10578<DT><b><a name="sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>
10579(default: empty)</b></DT><DD>
10580
10581<p> A sender-dependent override for the global <a href="postconf.5.html#relayhost">relayhost</a> parameter
10582setting. The tables are searched by the envelope sender address and
10583@domain. A lookup result of DUNNO terminates the search without
10584overriding the global <a href="postconf.5.html#relayhost">relayhost</a> parameter setting (Postfix 2.6 and
10585later). This information is overruled with <a href="postconf.5.html#relay_transport">relay_transport</a>,
10586<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a>, <a href="postconf.5.html#default_transport">default_transport</a> and with
10587the <a href="transport.5.html">transport(5)</a> table. </p>
10588
10589<p>
10590Specify zero or more "type:name" lookup tables, separated by
10591whitespace or comma. Tables will be searched in the specified order
10592until a match is found.
10593</p>
10594
10595<p> For safety reasons, this feature does not allow $number
10596substitutions in regular expression maps. </p>
10597
10598<p>
10599This feature is available in Postfix 2.3 and later.
10600</p>
10601
10602
10603</DD>
10604
10605<DT><b><a name="sendmail_fix_line_endings">sendmail_fix_line_endings</a>
10606(default: always)</b></DT><DD>
10607
10608<p> Controls how the Postfix sendmail command converts email message
10609line endings from &lt;CR&gt;&lt;LF&gt; into UNIX format (&lt;LF&gt;).
10610</p>
10611
10612<dl>
10613
10614<dt> <b>always</b> </dt> <dd> Always convert message lines ending
10615in &lt;CR&gt;&lt;LF&gt;. This setting is the default with Postfix
106162.9 and later. </dd>
10617
10618<dt> <b>strict</b> </dt> <dd> Convert message lines ending in
10619&lt;CR&gt;&lt;LF&gt; only if the first input line ends in
10620&lt;CR&gt;&lt;LF&gt;. This setting is backwards-compatible with
10621Postfix 2.8 and earlier. </dd>
10622
10623<dt> <b>never</b> </dt> <dd> Never convert message lines ending in
10624&lt;CR&gt;&lt;LF&gt;. This setting exists for completeness only.
10625</dd>
10626
10627</dl>
10628
10629<p> This feature is available in Postfix 2.9 and later. </p>
10630
10631
10632</DD>
10633
10634<DT><b><a name="sendmail_path">sendmail_path</a>
10635(default: see "postconf -d" output)</b></DT><DD>
10636
10637<p>
10638A Sendmail compatibility feature that specifies the location of
10639the Postfix <a href="sendmail.1.html">sendmail(1)</a> command. This command can be used to
10640submit mail into the Postfix queue.
10641</p>
10642
10643
10644</DD>
10645
10646<DT><b><a name="service_name">service_name</a>
10647(read-only)</b></DT><DD>
10648
10649<p> The <a href="master.5.html">master.cf</a> service name of a Postfix daemon process. This
10650can be used to distinguish the logging from different services that
10651use the same program name. </p>
10652
10653<p> Example <a href="master.5.html">master.cf</a> entries: </p>
10654
10655<pre>
10656# Distinguish inbound MTA logging from submission and smtps logging.
10657smtp      inet  n       -       n       -       -       smtpd
10658submission inet n       -       n       -       -       smtpd
10659    -o <a href="postconf.5.html#syslog_name">syslog_name</a>=postfix/$<a href="postconf.5.html#service_name">service_name</a>
10660smtps     inet  n       -       n       -       -       smtpd
10661    -o <a href="postconf.5.html#syslog_name">syslog_name</a>=postfix/$<a href="postconf.5.html#service_name">service_name</a>
10662</pre>
10663
10664<pre>
10665# Distinguish outbound MTA logging from inbound relay logging.
10666smtp      unix  -       -       n       -       -       smtp
10667relay     unix  -       -       n       -       -       smtp
10668    -o <a href="postconf.5.html#syslog_name">syslog_name</a>=postfix/$<a href="postconf.5.html#service_name">service_name</a>
10669</pre>
10670
10671
10672</DD>
10673
10674<DT><b><a name="service_throttle_time">service_throttle_time</a>
10675(default: 60s)</b></DT><DD>
10676
10677<p>
10678How long the Postfix <a href="master.8.html">master(8)</a> waits before forking a server that
10679appears to be malfunctioning.
10680</p>
10681
10682<p> Specify a non-zero time value (an integral value plus an optional
10683one-letter suffix that specifies the time unit).  Time units: s
10684(seconds), m (minutes), h (hours), d (days), w (weeks).
10685The default time unit is s (seconds).  </p>
10686
10687
10688</DD>
10689
10690<DT><b><a name="setgid_group">setgid_group</a>
10691(default: postdrop)</b></DT><DD>
10692
10693<p>
10694The group ownership of set-gid Postfix commands and of group-writable
10695Postfix directories. When this parameter value is changed you need
10696to re-run "<b>postfix set-permissions</b>" (with Postfix version 2.0 and
10697earlier: "<b>/etc/postfix/post-install set-permissions</b>".
10698</p>
10699
10700
10701</DD>
10702
10703<DT><b><a name="shlib_directory">shlib_directory</a>
10704(default: see 'postconf -d' output)</b></DT><DD>
10705
10706<p> The location of Postfix dynamically-linked libraries
10707(libpostfix-*.so), and the default location of Postfix database
10708plugins (postfix-*.so) that have a relative pathname in the
10709dynamicmaps.cf file.  The <a href="postconf.5.html#shlib_directory">shlib_directory</a> parameter defaults to
10710"no" when Postfix dynamically-linked libraries and database plugins
10711are disabled at compile time, otherwise it typically defaults to
10712/usr/lib/postfix or /usr/local/lib/postfix.  </p>
10713
10714<p> Notes: </p>
10715
10716<ul>
10717
10718<li> <p> The directory specified with <a href="postconf.5.html#shlib_directory">shlib_directory</a> should contain
10719only Postfix-related files. Postfix dynamically-linked libraries
10720and database plugins should not be installed in a "public" system
10721directory such as /usr/lib or /usr/local/lib. Linking Postfix
10722dynamically-linked library files or database plugins into non-Postfix
10723programs is not supported.  Postfix dynamically-linked libraries
10724and database plugins implement a Postfix-internal API that changes
10725without maintaining compatibility.  </p>
10726
10727<li> <p> You can change the <a href="postconf.5.html#shlib_directory">shlib_directory</a> value after Postfix is
10728built. However, you may have to run ldconfig or equivalent to prevent
10729Postfix programs from failing because the libpostfix-*.so files are
10730not found.  No ldconfig command is needed if you keep the libpostfix-*.so
10731files in the compiled-in default $<a href="postconf.5.html#shlib_directory">shlib_directory</a> location. </p>
10732
10733</ul>
10734
10735<p> This feature is available in Postfix 3.0 and later. </p>
10736
10737
10738</DD>
10739
10740<DT><b><a name="show_user_unknown_table_name">show_user_unknown_table_name</a>
10741(default: yes)</b></DT><DD>
10742
10743<p>
10744Display the name of the recipient table in the "User unknown"
10745responses.  The extra detail makes troubleshooting easier but also
10746reveals information that is nobody else's business.
10747</p>
10748
10749<p>
10750This feature is available in Postfix 2.0 and later.
10751</p>
10752
10753
10754</DD>
10755
10756<DT><b><a name="showq_service_name">showq_service_name</a>
10757(default: showq)</b></DT><DD>
10758
10759<p>
10760The name of the <a href="showq.8.html">showq(8)</a> service. This service produces mail queue
10761status reports.
10762</p>
10763
10764<p>
10765This feature is available in Postfix 2.0 and later.
10766</p>
10767
10768
10769</DD>
10770
10771<DT><b><a name="smtp_address_preference">smtp_address_preference</a>
10772(default: any)</b></DT><DD>
10773
10774<p> The address type ("ipv6", "ipv4" or "any") that the Postfix
10775SMTP client will try first, when a destination has IPv6 and IPv4
10776addresses with equal MX preference. This feature has no effect
10777unless the <a href="postconf.5.html#inet_protocols">inet_protocols</a> setting enables both IPv4 and IPv6. </p>
10778
10779<p> Postfix SMTP client address preference has evolved. With Postfix
107802.8 the default is "ipv6"; earlier implementations are hard-coded
10781to prefer IPv6 over IPv4. </p>
10782
10783<p> Notes for mail delivery between sites that have both IPv4 and
10784IPv6 connectivity: </p>
10785
10786<ul>
10787
10788<li> <p> The setting "<a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> = ipv6" is unsafe.
10789It can fail to deliver mail when there is an outage that affects
10790IPv6, while the destination is still reachable over IPv4. </p>
10791
10792<li> <p> The setting "<a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> = any" is safe. With
10793this, mail will eventually be delivered even if there is an outage
10794that affects IPv6 or IPv4, as long as it does not affect both. </p>
10795
10796</ul>
10797
10798<p> This feature is available in Postfix 2.8 and later.  </p>
10799
10800
10801</DD>
10802
10803<DT><b><a name="smtp_address_verify_target">smtp_address_verify_target</a>
10804(default: rcpt)</b></DT><DD>
10805
10806<p> In the context of email address verification, the SMTP protocol
10807stage that determines whether an email address is deliverable.
10808Specify one of "rcpt" or "data".  The latter is needed with remote
10809SMTP servers that reject recipients after the DATA command. Use
10810<a href="postconf.5.html#transport_maps">transport_maps</a> to apply this feature selectively:  </p>
10811
10812<blockquote>
10813<pre>
10814/etc/postfix/<a href="postconf.5.html">main.cf</a>:
10815    <a href="postconf.5.html#transport_maps">transport_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/transport
10816</pre>
10817</blockquote>
10818
10819<blockquote>
10820<pre>
10821/etc/postfix/transport:
10822    smtp-domain-that-verifies-after-data    smtp-data-target:
10823    lmtp-domain-that-verifies-after-data    lmtp-data-target:
10824</pre>
10825</blockquote>
10826
10827<blockquote>
10828<pre>
10829/etc/postfix/<a href="master.5.html">master.cf</a>:
10830    smtp-data-target    unix    -    -    n    -    -    smtp
10831        -o <a href="postconf.5.html#smtp_address_verify_target">smtp_address_verify_target</a>=data
10832    lmtp-data-target    unix    -    -    n    -    -    lmtp
10833        -o <a href="postconf.5.html#lmtp_address_verify_target">lmtp_address_verify_target</a>=data
10834</pre>
10835</blockquote>
10836
10837<p> Unselective use of the "data" target does no harm, but will
10838result in unnecessary "lost connection after DATA" events at remote
10839SMTP/LMTP servers. </p>
10840
10841<p> This feature is available in Postfix 3.0 and later.  </p>
10842
10843
10844</DD>
10845
10846<DT><b><a name="smtp_always_send_ehlo">smtp_always_send_ehlo</a>
10847(default: yes)</b></DT><DD>
10848
10849<p>
10850Always send EHLO at the start of an SMTP session.
10851</p>
10852
10853<p>
10854With "<a href="postconf.5.html#smtp_always_send_ehlo">smtp_always_send_ehlo</a> = no", the Postfix SMTP client sends
10855EHLO only when
10856the word "ESMTP" appears in the server greeting banner (example:
10857220 spike.porcupine.org ESMTP Postfix).
10858</p>
10859
10860
10861</DD>
10862
10863<DT><b><a name="smtp_balance_inet_protocols">smtp_balance_inet_protocols</a>
10864(default: yes)</b></DT><DD>
10865
10866<p> When a remote destination resolves to a combination of IPv4 and
10867IPv6 addresses, ensure that the Postfix SMTP client can try both
10868address types before it runs into the <a href="postconf.5.html#smtp_mx_address_limit">smtp_mx_address_limit</a>. </p>
10869
10870<p> This avoids an interoperability problem when a destination resolves
10871to primarily IPv6 addresses, the smtp_address_limit feature eliminates
10872most or all IPv4 addresses, and the destination is not reachable over
10873IPv6. </p>
10874
10875<p> This feature is available in Postfix 3.3 and later. </p>
10876
10877
10878</DD>
10879
10880<DT><b><a name="smtp_bind_address">smtp_bind_address</a>
10881(default: empty)</b></DT><DD>
10882
10883<p>
10884An optional numerical network address that the Postfix SMTP client
10885should bind to when making an IPv4 connection.
10886</p>
10887
10888<p>
10889This can be specified in the <a href="postconf.5.html">main.cf</a> file for all SMTP clients, or
10890it can be specified in the <a href="master.5.html">master.cf</a> file for a specific client,
10891for example:
10892</p>
10893
10894<blockquote>
10895<pre>
10896/etc/postfix/<a href="master.5.html">master.cf</a>:
10897    smtp ... smtp -o <a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a>=11.22.33.44
10898</pre>
10899</blockquote>
10900
10901<p> See <a href="postconf.5.html#smtp_bind_address_enforce">smtp_bind_address_enforce</a> for how Postfix should handle
10902errors (Postfix 3.7 and later). </p>
10903
10904<p> Note 1: when <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> specifies no more than one IPv4
10905address, and that address is a non-loopback address, it is
10906automatically used as the <a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a>.  This supports virtual
10907IP hosting, but can be a problem on multi-homed firewalls. See the
10908<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> documentation for more detail. </p>
10909
10910<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
10911but this form is not required here. </p>
10912
10913
10914</DD>
10915
10916<DT><b><a name="smtp_bind_address6">smtp_bind_address6</a>
10917(default: empty)</b></DT><DD>
10918
10919<p>
10920An optional numerical network address that the Postfix SMTP client
10921should bind to when making an IPv6 connection.
10922</p>
10923
10924<p> This feature is available in Postfix 2.2 and later. </p>
10925
10926<p>
10927This can be specified in the <a href="postconf.5.html">main.cf</a> file for all SMTP clients, or
10928it can be specified in the <a href="master.5.html">master.cf</a> file for a specific client,
10929for example:
10930</p>
10931
10932<blockquote>
10933<pre>
10934/etc/postfix/<a href="master.5.html">master.cf</a>:
10935    smtp ... smtp -o <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a>=1:2:3:4:5:6:7:8
10936</pre>
10937</blockquote>
10938
10939<p> See <a href="postconf.5.html#smtp_bind_address_enforce">smtp_bind_address_enforce</a> for how Postfix should handle
10940errors (Postfix 3.7 and later). </p>
10941
10942<p> Note 1: when <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> specifies no more than one IPv6
10943address, and that address is a non-loopback address, it is
10944automatically used as the <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a>.  This supports virtual
10945IP hosting, but can be a problem on multi-homed firewalls. See the
10946<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> documentation for more detail. </p>
10947
10948<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
10949but this form is not recommended here. </p>
10950
10951
10952</DD>
10953
10954<DT><b><a name="smtp_bind_address_enforce">smtp_bind_address_enforce</a>
10955(default: no)</b></DT><DD>
10956
10957<p> Defer delivery when the Postfix SMTP client cannot apply the
10958<a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> or <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> setting. By default, the
10959Postfix SMTP client will continue delivery after logging a warning.
10960</p>
10961
10962<p> This feature is available in Postfix 3.7 and later. </p>
10963
10964
10965</DD>
10966
10967<DT><b><a name="smtp_body_checks">smtp_body_checks</a>
10968(default: empty)</b></DT><DD>
10969
10970<p> Restricted <a href="header_checks.5.html">body_checks(5)</a> tables for the Postfix SMTP client.
10971These tables are searched while mail is being delivered.  Actions
10972that change the delivery time or destination are not available.
10973</p>
10974
10975<p> This feature is available in Postfix 2.5 and later. </p>
10976
10977
10978</DD>
10979
10980<DT><b><a name="smtp_cname_overrides_servername">smtp_cname_overrides_servername</a>
10981(default: version dependent)</b></DT><DD>
10982
10983<p> When the remote SMTP servername is a DNS CNAME, replace the
10984servername with the result from CNAME expansion for the purpose of
10985logging, SASL password lookup, TLS
10986policy decisions, or TLS certificate verification. The value "no"
10987hardens Postfix <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> hostname-based policies against
10988false hostname information in DNS CNAME records, and makes SASL
10989password file lookups more predictable. This is the default setting
10990as of Postfix 2.3. </p>
10991
10992<p> When DNS CNAME records are validated with secure DNS lookups
10993(<a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a> = dnssec), they are always allowed to
10994override the above servername (Postfix 2.11 and later). </p>
10995
10996<p> This feature is available in Postfix 2.2.9 and later. </p>
10997
10998
10999</DD>
11000
11001<DT><b><a name="smtp_connect_timeout">smtp_connect_timeout</a>
11002(default: 30s)</b></DT><DD>
11003
11004<p>
11005The Postfix SMTP client time limit for completing a TCP connection, or
11006zero (use the operating system built-in time limit).
11007</p>
11008
11009<p>
11010When no connection can be made within the deadline, the Postfix
11011SMTP client
11012tries the next address on the mail exchanger list. Specify 0 to
11013disable the time limit (i.e. use whatever timeout is implemented by
11014the operating system).
11015</p>
11016
11017<p> Specify a non-negative time value (an integral value plus an optional
11018one-letter suffix that specifies the time unit).  Time units: s
11019(seconds), m (minutes), h (hours), d (days), w (weeks).
11020The default time unit is s (seconds).  </p>
11021
11022
11023</DD>
11024
11025<DT><b><a name="smtp_connection_cache_destinations">smtp_connection_cache_destinations</a>
11026(default: empty)</b></DT><DD>
11027
11028<p> Permanently enable SMTP connection caching for the specified
11029destinations.  With SMTP connection caching, a connection is not
11030closed immediately after completion of a mail transaction.  Instead,
11031the connection is kept open for up to $<a href="postconf.5.html#smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a>
11032seconds.  This allows connections to be reused for other deliveries,
11033and can improve mail delivery performance. </p>
11034
11035<p> Specify a comma or white space separated list of destinations
11036or pseudo-destinations: </p>
11037
11038<ul>
11039
11040<li> if mail is sent without a <a href="postconf.5.html#relayhost">relay host</a>: a domain name (the
11041right-hand side of an email address, without the [] around a numeric
11042IP address),
11043
11044<li> if mail is sent via a <a href="postconf.5.html#relayhost">relay host</a>: a <a href="postconf.5.html#relayhost">relay host</a> name (without
11045[] or non-default TCP port), as specified in <a href="postconf.5.html">main.cf</a> or in the
11046transport map,
11047
11048<li> if mail is sent via a UNIX-domain socket: a pathname (without
11049the unix: prefix),
11050
11051<li> a /file/name with domain names and/or <a href="postconf.5.html#relayhost">relay host</a> names as
11052defined above,
11053
11054<li> a "<a href="DATABASE_README.html">type:table</a>" with domain names and/or <a href="postconf.5.html#relayhost">relay host</a> names on
11055the left-hand side.  The right-hand side result from "<a href="DATABASE_README.html">type:table</a>"
11056lookups is ignored.
11057
11058</ul>
11059
11060<p> This feature is available in Postfix 2.2 and later. </p>
11061
11062
11063</DD>
11064
11065<DT><b><a name="smtp_connection_cache_on_demand">smtp_connection_cache_on_demand</a>
11066(default: yes)</b></DT><DD>
11067
11068<p> Temporarily enable SMTP connection caching while a destination
11069has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.  With SMTP connection
11070caching, a connection is not closed immediately after completion
11071of a mail transaction.  Instead, the connection is kept open for
11072up to $<a href="postconf.5.html#smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a> seconds.  This allows
11073connections to be reused for other deliveries, and can improve mail
11074delivery performance. </p>
11075
11076<p> This feature is available in Postfix 2.2 and later. </p>
11077
11078
11079</DD>
11080
11081<DT><b><a name="smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a>
11082(default: 2s)</b></DT><DD>
11083
11084<p> When SMTP connection caching is enabled, the amount of time that
11085an unused SMTP client socket is kept open before it is closed.  Do
11086not specify larger values without permission from the remote sites.
11087</p>
11088
11089<p> This feature is available in Postfix 2.2 and later. </p>
11090
11091
11092</DD>
11093
11094<DT><b><a name="smtp_connection_reuse_count_limit">smtp_connection_reuse_count_limit</a>
11095(default: 0)</b></DT><DD>
11096
11097<p> When SMTP connection caching is enabled, the number of times
11098that an SMTP session may be reused before it is closed, or zero (no
11099limit).  With a reuse count limit of N, a connection is used up to
11100N+1 times.  </p>
11101
11102<p> NOTE: This feature is unsafe. When a high-volume destination
11103has multiple inbound MTAs, then the slowest inbound MTA will attract
11104the most connections to that destination.  This limitation does not
11105exist with the <a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> feature. </p>
11106
11107<p> This feature is available in Postfix 2.11. </p>
11108
11109
11110</DD>
11111
11112<DT><b><a name="smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a>
11113(default: 300s)</b></DT><DD>
11114
11115<p> The amount of time during which Postfix will use an SMTP
11116connection repeatedly.  The timer starts when the connection is
11117initiated (i.e. it includes the connect, greeting and helo latency,
11118in addition to the latencies of subsequent mail delivery transactions).
11119</p>
11120
11121<p> This feature addresses a performance stability problem with
11122remote SMTP servers. This problem is not specific to Postfix: it
11123can happen when any MTA sends large amounts of SMTP email to a site
11124that has multiple MX hosts. </p>
11125
11126<p> The problem starts when one of a set of MX hosts becomes slower
11127than the rest.  Even though SMTP clients connect to fast and slow
11128MX hosts with equal probability, the slow MX host ends up with more
11129simultaneous inbound connections than the faster MX hosts, because
11130the slow MX host needs more time to serve each client request. </p>
11131
11132<p> The slow MX host becomes a connection attractor.  If one MX
11133host becomes N times slower than the rest, it dominates mail delivery
11134latency unless there are more than N fast MX hosts to counter the
11135effect. And if the number of MX hosts is smaller than N, the mail
11136delivery latency becomes effectively that of the slowest MX host
11137divided by the total number of MX hosts. </p>
11138
11139<p> The solution uses connection caching in a way that differs from
11140Postfix version 2.2.  By limiting the amount of time during which a connection
11141can be used repeatedly (instead of limiting the number of deliveries
11142over that connection), Postfix not only restores fairness in the
11143distribution of simultaneous connections across a set of MX hosts,
11144it also favors deliveries over connections that perform well, which
11145is exactly what we want.  </p>
11146
11147<p> The default reuse time limit, 300s, is comparable to the various
11148smtp transaction timeouts which are fair estimates of maximum excess
11149latency for a slow delivery.  Note that hosts may accept thousands
11150of messages over a single connection within the default connection
11151reuse time limit. This number is much larger than the default Postfix
11152version 2.2 limit of 10 messages per cached connection. It may prove necessary
11153to lower the limit to avoid interoperability issues with MTAs that
11154exhibit bugs when many messages are delivered via a single connection.
11155A lower reuse time limit risks losing the benefit of connection
11156reuse when the average connection and mail delivery latency exceeds
11157the reuse time limit.  </p>
11158
11159<p> This feature is available in Postfix 2.3 and later. </p>
11160
11161
11162</DD>
11163
11164<DT><b><a name="smtp_data_done_timeout">smtp_data_done_timeout</a>
11165(default: 600s)</b></DT><DD>
11166
11167<p>
11168The Postfix SMTP client time limit for sending the SMTP ".", and
11169for receiving the remote SMTP server response.
11170</p>
11171
11172<p>
11173When no response is received within the deadline, a warning is
11174logged that the mail may be delivered multiple times.
11175</p>
11176
11177<p> Specify a non-zero time value (an integral value plus an optional
11178one-letter suffix that specifies the time unit).  Time units: s
11179(seconds), m (minutes), h (hours), d (days), w (weeks).
11180The default time unit is s (seconds).  </p>
11181
11182
11183</DD>
11184
11185<DT><b><a name="smtp_data_init_timeout">smtp_data_init_timeout</a>
11186(default: 120s)</b></DT><DD>
11187
11188<p>
11189The Postfix SMTP client time limit for sending the SMTP DATA command,
11190and for receiving the remote SMTP server response.
11191</p>
11192
11193<p>
11194Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
11195The default time unit is s (seconds).
11196</p>
11197
11198
11199</DD>
11200
11201<DT><b><a name="smtp_data_xfer_timeout">smtp_data_xfer_timeout</a>
11202(default: 180s)</b></DT><DD>
11203
11204<p>
11205The Postfix SMTP client time limit for sending the SMTP message content.
11206When the connection makes no progress for more than $<a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a>
11207seconds the Postfix SMTP client terminates the transfer.
11208</p>
11209
11210<p>
11211Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
11212The default time unit is s (seconds).
11213</p>
11214
11215
11216</DD>
11217
11218<DT><b><a name="smtp_defer_if_no_mx_address_found">smtp_defer_if_no_mx_address_found</a>
11219(default: no)</b></DT><DD>
11220
11221<p>
11222Defer mail delivery when no MX record resolves to an IP address.
11223</p>
11224
11225<p>
11226The default (no) is to return the mail as undeliverable. With older
11227Postfix versions the default was to keep trying to deliver the mail
11228until someone fixed the MX record or until the mail was too old.
11229</p>
11230
11231<p>
11232Note: the Postfix SMTP client always ignores MX records with equal
11233or worse preference
11234than the local MTA itself.
11235</p>
11236
11237<p>
11238This feature is available in Postfix 2.1 and later.
11239</p>
11240
11241
11242</DD>
11243
11244<DT><b><a name="smtp_delivery_status_filter">smtp_delivery_status_filter</a>
11245(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
11246
11247<p> Optional filter for the <a href="smtp.8.html">smtp(8)</a> delivery agent to change the
11248delivery status code or explanatory text of successful or unsuccessful
11249deliveries.  See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details.  </p>
11250
11251<p> NOTE: This feature modifies Postfix SMTP client error or non-error
11252messages that may or may not be derived from remote SMTP server
11253responses.  In contrast, the <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> feature modifies
11254remote SMTP server responses only.  </p>
11255
11256
11257</DD>
11258
11259<DT><b><a name="smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a>
11260(default: $<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concurrency_limit</a>)</b></DT><DD>
11261
11262<p> The maximal number of parallel deliveries to the same destination
11263via the smtp message delivery transport. This limit is enforced by
11264the queue manager. The message delivery transport name is the first
11265field in the entry in the <a href="master.5.html">master.cf</a> file.  </p>
11266
11267
11268</DD>
11269
11270<DT><b><a name="smtp_destination_recipient_limit">smtp_destination_recipient_limit</a>
11271(default: $<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b></DT><DD>
11272
11273<p> The maximal number of recipients per message for the smtp
11274message delivery transport. This limit is enforced by the queue
11275manager. The message delivery transport name is the first field in
11276the entry in the <a href="master.5.html">master.cf</a> file.  </p>
11277
11278<p> Setting this parameter to a value of 1 changes the meaning of
11279<a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> from concurrency per domain
11280into concurrency per recipient.  </p>
11281
11282
11283</DD>
11284
11285<DT><b><a name="smtp_discard_ehlo_keyword_address_maps">smtp_discard_ehlo_keyword_address_maps</a>
11286(default: empty)</b></DT><DD>
11287
11288<p> Lookup tables, indexed by the remote SMTP server address, with
11289case insensitive lists of EHLO keywords (pipelining, starttls, auth,
11290etc.) that the Postfix SMTP client will ignore in the EHLO response from a
11291remote SMTP server. See <a href="postconf.5.html#smtp_discard_ehlo_keywords">smtp_discard_ehlo_keywords</a> for details. The
11292table is not indexed by hostname for consistency with
11293<a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_keyword_address_maps</a>. </p>
11294
11295<p>
11296Specify zero or more "type:name" lookup tables, separated by
11297whitespace or comma. Tables will be searched in the specified order
11298until a match is found.
11299</p>
11300
11301<p> This feature is available in Postfix 2.2 and later. </p>
11302
11303
11304</DD>
11305
11306<DT><b><a name="smtp_discard_ehlo_keywords">smtp_discard_ehlo_keywords</a>
11307(default: empty)</b></DT><DD>
11308
11309<p> A case insensitive list of EHLO keywords (pipelining, starttls,
11310auth, etc.) that the Postfix SMTP client will ignore in the EHLO
11311response from a remote SMTP server. </p>
11312
11313<p> This feature is available in Postfix 2.2 and later. </p>
11314
11315<p> Notes: </p>
11316
11317<ul>
11318
11319<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
11320this action from being logged. </p>
11321
11322<li> <p> Use the <a href="postconf.5.html#smtp_discard_ehlo_keyword_address_maps">smtp_discard_ehlo_keyword_address_maps</a> feature to
11323discard EHLO keywords selectively. </p>
11324
11325</ul>
11326
11327
11328</DD>
11329
11330<DT><b><a name="smtp_dns_reply_filter">smtp_dns_reply_filter</a>
11331(default: empty)</b></DT><DD>
11332
11333<p> Optional filter for Postfix SMTP client DNS lookup results.
11334Specify zero or more lookup tables.  The lookup tables are searched
11335in the given order for a match with the DNS lookup result, converted
11336to the following form: </p>
11337
11338<pre>
11339    <i>name ttl class type preference value</i>
11340</pre>
11341
11342<p> The <i>class</i> field is always "IN", the <i>preference</i>
11343field exists only for MX records, the names of hosts, domains, etc.
11344end in ".", and those names are in ASCII form (xn--mumble form in
11345the case of UTF8 names).  </p>
11346
11347<p> When a match is found, the table lookup result specifies an
11348action.  By default, the table query and the action name are
11349case-insensitive.  Currently, only the <b>IGNORE</b> action is
11350implemented.  </p>
11351
11352<p> Notes: </p>
11353
11354<ul>
11355
11356<li> <p> Postfix DNS reply filters have no effect on implicit DNS
11357lookups through nsswitch.conf or equivalent mechanisms.  </p>
11358
11359<li> <p> The Postfix SMTP/LMTP client uses <a href="postconf.5.html#smtp_dns_reply_filter">smtp_dns_reply_filter</a>
11360and <a href="postconf.5.html#lmtp_dns_reply_filter">lmtp_dns_reply_filter</a> only to discover a remote SMTP or LMTP
11361service (record types MX, A, AAAA, and TLSA).  These lookups are
11362also made to implement the features <a href="postconf.5.html#reject_unverified_sender">reject_unverified_sender</a> and
11363<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a>.  </p>
11364
11365<li> <p> The Postfix SMTP/LMTP client defers mail delivery when
11366a filter removes all lookup results from a successful query.  </p>
11367
11368<li> <p> Postfix SMTP server uses <a href="postconf.5.html#smtpd_dns_reply_filter">smtpd_dns_reply_filter</a> only to
11369look up MX, A, AAAA, and TXT records to implement the features
11370<a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a>, <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a>,
11371<a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a>, reject_rbl_*, and reject_rhsbl_*.
11372</p>
11373
11374<li> <p> The Postfix SMTP server logs a warning or defers mail
11375delivery when a filter removes all lookup results from a successful
11376query.  </p>
11377
11378</ul>
11379
11380<p> Example: ignore Google AAAA records in Postfix SMTP client DNS
11381lookups, because Google sometimes hard-rejects mail from IPv6 clients
11382with valid PTR etc. records. </p>
11383
11384<pre>
11385/etc/postfix/<a href="postconf.5.html">main.cf</a>:
11386    <a href="postconf.5.html#smtp_dns_reply_filter">smtp_dns_reply_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_dns_reply_filter
11387</pre>
11388
11389<pre>
11390/etc/postfix/smtp_dns_reply_filter:
11391    # /domain ttl IN AAAA address/ action, all case-insensitive.
11392    # Note: the domain name ends in ".".
11393    /^\S+\.google\.com\.\s+\S+\s+\S+\s+AAAA\s+/ IGNORE
11394</pre>
11395
11396<p> This feature is available in Postfix 3.0 and later. </p>
11397
11398
11399</DD>
11400
11401<DT><b><a name="smtp_dns_resolver_options">smtp_dns_resolver_options</a>
11402(default: empty)</b></DT><DD>
11403
11404<p> DNS Resolver options for the Postfix SMTP client.  Specify zero
11405or more of the following options, separated by comma or whitespace.
11406Option names are case-sensitive. Some options refer to domain names
11407that are specified in the file /etc/resolv.conf or equivalent. </p>
11408
11409<dl>
11410
11411<dt><b>res_defnames</b></dt>
11412
11413<dd> Append the current domain name to single-component names (those
11414that do not contain a "." character). This can produce incorrect
11415results, and is the hard-coded behavior prior to Postfix 2.8. </dd>
11416
11417<dt><b>res_dnsrch</b></dt>
11418
11419<dd> Search for host names in the current domain and in parent
11420domains. This can produce incorrect results and is therefore not
11421recommended. </dd>
11422
11423</dl>
11424
11425<p> This feature is available in Postfix 2.8 and later.  </p>
11426
11427
11428</DD>
11429
11430<DT><b><a name="smtp_dns_support_level">smtp_dns_support_level</a>
11431(default: empty)</b></DT><DD>
11432
11433<p> Level of DNS support in the Postfix SMTP client.  With
11434"<a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a>" left at its empty default value, the legacy
11435"<a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a>" parameter controls whether DNS is enabled in
11436the Postfix SMTP client, otherwise the legacy parameter is ignored.
11437</p>
11438
11439<p> Specify one of the following: </p>
11440
11441<dl>
11442
11443<dt><b>disabled</b></dt>
11444
11445<dd>Disable DNS lookups.  No MX lookups are performed and hostname
11446to address lookups are unconditionally "native".  This setting is
11447not appropriate for hosts that deliver mail to the public Internet.
11448Some obsolete how-to documents recommend disabling DNS lookups in
11449some configurations with content_filters.  This is no longer required
11450and strongly discouraged.  </dd>
11451
11452<dt><b>enabled</b></dt>
11453
11454<dd>Enable DNS lookups.  Nexthop destination domains not enclosed
11455in "[]" will be subject to MX lookups.  If "dns" and "native" are
11456included in the "<a href="postconf.5.html#smtp_host_lookup">smtp_host_lookup</a>" parameter value, DNS will be
11457queried first to resolve MX-host A records, followed by "native"
11458lookups if no answer is found in DNS.  </dd>
11459
11460<dt><b>dnssec</b></dt>
11461
11462<dd>Enable <a href="https://tools.ietf.org/html/rfc4033">DNSSEC</a>
11463lookups.  The "dnssec" setting differs from the "enabled" setting
11464above in the following ways: <ul> <li>Any MX lookups will set
11465RES_USE_DNSSEC and RES_USE_EDNS0 to request DNSSEC-validated
11466responses. If the MX response is DNSSEC-validated the corresponding
11467hostnames are considered validated.  <li> The address lookups of
11468validated hostnames are also validated, (provided of course
11469"<a href="postconf.5.html#smtp_host_lookup">smtp_host_lookup</a>" includes "dns", see below).  <li>Temporary
11470failures in DNSSEC-enabled hostname-to-address resolution block any
11471"native" lookups.  Additional "native" lookups only happen when
11472DNSSEC lookups hard-fail (NODATA or NXDOMAIN).  </ul> </dd>
11473
11474</dl>
11475
11476<p> The Postfix SMTP client considers non-MX "[nexthop]" and
11477"[nexthop]:port" destinations equivalent to statically-validated
11478MX records of the form "nexthop.  IN MX 0 nexthop."  Therefore,
11479with "dnssec" support turned on, validated hostname-to-address
11480lookups apply to the nexthop domain of any "[nexthop]" or
11481"[nexthop]:port" destination.  This is also true for LMTP "inet:host"
11482and "inet:host:port" destinations, as LMTP hostnames are never
11483subject to MX lookups.  </p>
11484
11485<p>The "dnssec" setting is recommended only if you plan to use the
11486<a href="TLS_README.html#client_tls_dane">dane</a> or <a
11487href="TLS_README.html#client_tls_dane">dane-only</a> TLS security
11488level, otherwise enabling DNSSEC support in Postfix offers no
11489additional security.  Postfix DNSSEC support relies on an upstream
11490recursive nameserver that validates DNSSEC signatures.  Such a DNS
11491server will always filter out forged DNS responses, even when Postfix
11492itself is not configured to use DNSSEC. </p>
11493
11494<p> When using Postfix DANE support the "<a href="postconf.5.html#smtp_host_lookup">smtp_host_lookup</a>" parameter
11495should include "dns", as <a
11496href="https://tools.ietf.org/html/rfc7672">DANE</a> is not applicable
11497to hosts resolved via "native" lookups.  </p>
11498
11499<p> As mentioned above, Postfix is not a validating <a
11500href="https://tools.ietf.org/html/rfc4035#section-4.9">stub
11501resolver</a>; it relies on the system's configured DNSSEC-validating
11502<a href="https://tools.ietf.org/html/rfc4035#section-3.2">recursive
11503nameserver</a> to perform all DNSSEC validation.  Since this
11504nameserver's DNSSEC-validated responses will be fully trusted, it
11505is strongly recommended that the MTA host have a local DNSSEC-validating
11506recursive caching nameserver listening on a loopback address, and
11507be configured to use only this nameserver for all lookups.  Otherwise,
11508Postfix may remain subject to man-in-the-middle attacks that forge
11509responses from the recursive nameserver</p>
11510
11511<p>DNSSEC support requires a version of Postfix compiled against a
11512reasonably-modern DNS resolver(3) library that implements the
11513RES_USE_DNSSEC and RES_USE_EDNS0 resolver options. </p>
11514
11515<p> This feature is available in Postfix 2.11 and later.  </p>
11516
11517
11518</DD>
11519
11520<DT><b><a name="smtp_enforce_tls">smtp_enforce_tls</a>
11521(default: no)</b></DT><DD>
11522
11523<p> Enforcement mode: require that remote SMTP servers use TLS
11524encryption, and never send mail in the clear.  This also requires
11525that the remote SMTP server hostname matches the information in
11526the remote server certificate, and that the remote SMTP server
11527certificate was issued by a CA that is trusted by the Postfix SMTP
11528client. If the certificate doesn't verify or the hostname doesn't
11529match, delivery is deferred and mail stays in the queue.  </p>
11530
11531<p> The server hostname is matched against all names provided as
11532dNSNames in the SubjectAlternativeName.  If no dNSNames are specified,
11533the CommonName is checked.  The behavior may be changed with the
11534<a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> option.  </p>
11535
11536<p> This option is useful only if you are definitely sure that you
11537will only connect to servers that support <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a> _and_ that
11538provide valid server certificates.  Typical use is for clients that
11539send all their email to a dedicated mailhub.  </p>
11540
11541<p> This feature is available in Postfix 2.2 and later. With
11542Postfix 2.3 and later use <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> instead. </p>
11543
11544
11545</DD>
11546
11547<DT><b><a name="smtp_fallback_relay">smtp_fallback_relay</a>
11548(default: $<a href="postconf.5.html#fallback_relay">fallback_relay</a>)</b></DT><DD>
11549
11550<p> Optional list of relay destinations that will be used when an
11551SMTP destination is not found, or when delivery fails due to a
11552non-permanent error. With Postfix 2.2 and earlier this parameter
11553is called <a href="postconf.5.html#fallback_relay">fallback_relay</a>. </p>
11554
11555<p> By default, <a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a> is empty, mail is returned to
11556the sender when a destination is not found, and delivery is deferred
11557after it fails due to a non-permanent error. </p>
11558
11559<p> With bulk email deliveries, it can be beneficial to run the
11560fallback relay MTA on the same host, so that it can reuse the sender
11561IP address.  This speeds up deliveries that are delayed by IP-based
11562reputation systems (greylist, etc.). </p>
11563
11564<p> The fallback relays must be SMTP destinations. Specify a domain,
11565host, host:port, [host]:port, [address] or [address]:port; the form
11566[host] turns off MX lookups.  If you specify multiple SMTP
11567destinations, Postfix will try them in the specified order.  </p>
11568
11569<p> To prevent mailer loops between MX hosts and fall-back hosts,
11570Postfix version 2.2 and later will not use the fallback relays for
11571destinations that it is MX host for (assuming DNS lookup is turned on).
11572</p>
11573
11574
11575</DD>
11576
11577<DT><b><a name="smtp_generic_maps">smtp_generic_maps</a>
11578(default: empty)</b></DT><DD>
11579
11580<p> Optional lookup tables that perform address rewriting in the
11581Postfix SMTP client, typically to transform a locally valid address into
11582a globally valid address when sending mail across the Internet.
11583This is needed when the local machine does not have its own Internet
11584domain name, but uses something like <i>localdomain.local</i>
11585instead.  </p>
11586
11587<p>
11588Specify zero or more "type:name" lookup tables, separated by
11589whitespace or comma. Tables will be searched in the specified order
11590until a match is found.
11591</p>
11592
11593<p> The table format and lookups are documented in <a href="generic.5.html">generic(5)</a>;
11594examples are shown in the <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> and
11595<a href="STANDARD_CONFIGURATION_README.html">STANDARD_CONFIGURATION_README</a> documents. </p>
11596
11597<p> This feature is available in Postfix 2.2 and later.  </p>
11598
11599
11600</DD>
11601
11602<DT><b><a name="smtp_header_checks">smtp_header_checks</a>
11603(default: empty)</b></DT><DD>
11604
11605<p> Restricted <a href="header_checks.5.html">header_checks(5)</a> tables for the Postfix SMTP client.
11606These tables are searched while mail is being delivered.  Actions
11607that change the delivery time or destination are not available.
11608</p>
11609
11610<p> This feature is available in Postfix 2.5 and later. </p>
11611
11612
11613</DD>
11614
11615<DT><b><a name="smtp_helo_name">smtp_helo_name</a>
11616(default: $<a href="postconf.5.html#myhostname">myhostname</a>)</b></DT><DD>
11617
11618<p>
11619The hostname to send in the SMTP HELO or EHLO command.
11620</p>
11621
11622<p>
11623The default value is the machine hostname.  Specify a hostname or
11624[ip.add.re.ss].
11625</p>
11626
11627<p>
11628This information can be specified in the <a href="postconf.5.html">main.cf</a> file for all SMTP
11629clients, or it can be specified in the <a href="master.5.html">master.cf</a> file for a specific
11630client, for example:
11631</p>
11632
11633<blockquote>
11634<pre>
11635/etc/postfix/<a href="master.5.html">master.cf</a>:
11636    mysmtp ... smtp -o <a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a>=foo.bar.com
11637</pre>
11638</blockquote>
11639
11640<p>
11641This feature is available in Postfix 2.0 and later.
11642</p>
11643
11644
11645</DD>
11646
11647<DT><b><a name="smtp_helo_timeout">smtp_helo_timeout</a>
11648(default: 300s)</b></DT><DD>
11649
11650<p>
11651The Postfix SMTP client time limit for sending the HELO or EHLO command,
11652and for receiving the initial remote SMTP server response.
11653</p>
11654
11655<p> Specify a non-zero time value (an integral value plus an optional
11656one-letter suffix that specifies the time unit).  Time units: s
11657(seconds), m (minutes), h (hours), d (days), w (weeks).
11658The default time unit is s (seconds).  </p>
11659
11660
11661</DD>
11662
11663<DT><b><a name="smtp_host_lookup">smtp_host_lookup</a>
11664(default: dns)</b></DT><DD>
11665
11666<p>
11667What mechanisms the Postfix SMTP client uses to look up a host's
11668IP address.  This parameter is ignored when DNS lookups are disabled
11669(see: <a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> and <a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a>).  The "dns"
11670mechanism is always tried before "native" if both are listed.
11671</p>
11672
11673<p>
11674Specify one of the following:
11675</p>
11676
11677<dl>
11678
11679<dt><b>dns</b></dt>
11680
11681<dd>Hosts can be found in the DNS (preferred).  </dd>
11682
11683<dt><b>native</b></dt>
11684
11685<dd>Use the native naming service only (nsswitch.conf, or equivalent
11686mechanism).  </dd>
11687
11688<dt><b>dns, native</b></dt>
11689
11690<dd>Use the native service for hosts not found in the DNS.  </dd>
11691
11692</dl>
11693
11694<p>
11695This feature is available in Postfix 2.1 and later.
11696</p>
11697
11698
11699</DD>
11700
11701<DT><b><a name="smtp_line_length_limit">smtp_line_length_limit</a>
11702(default: 998)</b></DT><DD>
11703
11704<p>
11705The maximal length of message header and body lines that Postfix
11706will send via SMTP. This limit does not include the &lt;CR&gt;&lt;LF&gt;
11707at the end of each line.  Longer lines are broken by inserting
11708"&lt;CR&gt;&lt;LF&gt;&lt;SPACE&gt;", to minimize the damage to MIME
11709formatted mail. Specify zero to disable this limit.
11710</p>
11711
11712<p>
11713The Postfix limit of 998 characters not including &lt;CR&gt;&lt;LF&gt;
11714is consistent with the SMTP limit of 1000 characters including
11715&lt;CR&gt;&lt;LF&gt;.  The Postfix limit was 990 with Postfix 2.8
11716and earlier.
11717</p>
11718
11719
11720</DD>
11721
11722<DT><b><a name="smtp_mail_timeout">smtp_mail_timeout</a>
11723(default: 300s)</b></DT><DD>
11724
11725<p>
11726The Postfix SMTP client time limit for sending the MAIL FROM command,
11727and for receiving the remote SMTP server response.
11728</p>
11729
11730<p> Specify a non-zero time value (an integral value plus an optional
11731one-letter suffix that specifies the time unit).  Time units: s
11732(seconds), m (minutes), h (hours), d (days), w (weeks).
11733The default time unit is s (seconds).  </p>
11734
11735
11736</DD>
11737
11738<DT><b><a name="smtp_mime_header_checks">smtp_mime_header_checks</a>
11739(default: empty)</b></DT><DD>
11740
11741<p> Restricted mime_<a href="header_checks.5.html">header_checks(5)</a> tables for the Postfix SMTP
11742client. These tables are searched while mail is being delivered.
11743Actions that change the delivery time or destination are not
11744available.  </p>
11745
11746<p> This feature is available in Postfix 2.5 and later. </p>
11747
11748
11749</DD>
11750
11751<DT><b><a name="smtp_min_data_rate">smtp_min_data_rate</a>
11752(default: 500)</b></DT><DD>
11753
11754<p> The minimum plaintext data transfer rate in bytes/second for
11755DATA requests, when deadlines are enabled with <a href="postconf.5.html#smtp_per_request_deadline">smtp_per_request_deadline</a>.
11756After a write operation transfers N plaintext message bytes (possibly
11757after TLS encryption), and after the DATA request deadline is
11758decremented by the elapsed time of that write operation, the DATA
11759request deadline is incremented by N/smtp_min_data_rate seconds.
11760However, the deadline will never be incremented beyond the time
11761limit specified with <a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a>.  </p>
11762
11763<p> This feature is available in Postfix 3.7 and later. </p>
11764
11765
11766</DD>
11767
11768<DT><b><a name="smtp_mx_address_limit">smtp_mx_address_limit</a>
11769(default: 5)</b></DT><DD>
11770
11771<p>
11772The maximal number of MX (mail exchanger) IP addresses that can
11773result from Postfix SMTP client mail exchanger lookups, or zero (no
11774limit). Prior to
11775Postfix version 2.3, this limit was disabled by default.
11776</p>
11777
11778<p>
11779This feature is available in Postfix 2.1 and later.
11780</p>
11781
11782
11783</DD>
11784
11785<DT><b><a name="smtp_mx_session_limit">smtp_mx_session_limit</a>
11786(default: 2)</b></DT><DD>
11787
11788<p> The maximal number of SMTP sessions per delivery request before
11789the Postfix SMTP client
11790gives up or delivers to a fall-back <a href="postconf.5.html#relayhost">relay host</a>, or zero (no
11791limit). This restriction ignores sessions that fail to complete the
11792SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to
11793complete the EHLO and TLS handshake (Postfix version 2.3 and later).  </p>
11794
11795<p> This feature is available in Postfix 2.1 and later.  </p>
11796
11797
11798</DD>
11799
11800<DT><b><a name="smtp_nested_header_checks">smtp_nested_header_checks</a>
11801(default: empty)</b></DT><DD>
11802
11803<p> Restricted nested_<a href="header_checks.5.html">header_checks(5)</a> tables for the Postfix SMTP
11804client. These tables are searched while mail is being delivered.
11805Actions that change the delivery time or destination are not
11806available.  </p>
11807
11808<p> This feature is available in Postfix 2.5 and later. </p>
11809
11810
11811</DD>
11812
11813<DT><b><a name="smtp_never_send_ehlo">smtp_never_send_ehlo</a>
11814(default: no)</b></DT><DD>
11815
11816<p> Never send EHLO at the start of an SMTP session. See also the
11817<a href="postconf.5.html#smtp_always_send_ehlo">smtp_always_send_ehlo</a> parameter.  </p>
11818
11819
11820</DD>
11821
11822<DT><b><a name="smtp_per_record_deadline">smtp_per_record_deadline</a>
11823(default: no)</b></DT><DD>
11824
11825<p> Change the behavior of the smtp_*_timeout time limits, from a
11826time limit per read or write system call, to a time limit to send
11827or receive a complete record (an SMTP command line, SMTP response
11828line, SMTP message content line, or TLS protocol message).  This
11829limits the impact from hostile peers that trickle data one byte at
11830a time.  </p>
11831
11832<p> Note: when per-record deadlines are enabled, a short timeout
11833may cause problems with TLS over very slow network connections.
11834The reasons are that a TLS protocol message can be up to 16 kbytes
11835long (with TLSv1), and that an entire TLS protocol message must be
11836sent or received within the per-record deadline.  </p>
11837
11838<p> This feature is available in Postfix 2.9-3.6. With older
11839Postfix releases, the behavior is as if this parameter is set to
11840"no". Postfix 3.7 and later use <a href="postconf.5.html#smtp_per_request_deadline">smtp_per_request_deadline</a>. </p>
11841
11842
11843</DD>
11844
11845<DT><b><a name="smtp_per_request_deadline">smtp_per_request_deadline</a>
11846(default: no)</b></DT><DD>
11847
11848<p> Change the behavior of the smtp_*_timeout time limits, from a
11849time limit per plaintext or TLS read or write call, to a combined
11850time limit for sending a complete SMTP request and for receiving a
11851complete SMTP response. The deadline limits only the time spent
11852waiting for plaintext or TLS read or write calls, not time spent
11853elsewhere. The per-request deadline limits the impact from hostile
11854peers that trickle data one byte at a time. </p>
11855
11856<p> See <a href="postconf.5.html#smtp_min_data_rate">smtp_min_data_rate</a> for how the per-request deadline is
11857managed during the DATA phase. </p>
11858
11859<p> Note: when per-request deadlines are enabled, a short time limit
11860may cause problems with TLS over very slow network connections. The
11861reason is that a TLS protocol message can be up to 16 kbytes long
11862(with TLSv1), and that an entire TLS protocol message must be
11863transferred within the per-request deadline. </p>
11864
11865<p> This feature is available in Postfix 3.7 and later. A weaker
11866feature, called <a href="postconf.5.html#smtp_per_record_deadline">smtp_per_record_deadline</a>, is available with Postfix
118672.9-3.6. </p>
11868
11869<p> This feature is available in Postfix 3.7 and later. </p>
11870
11871
11872</DD>
11873
11874<DT><b><a name="smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a>
11875(default: 10s)</b></DT><DD>
11876
11877<p>
11878How long the Postfix SMTP client pauses before sending
11879".&lt;CR&gt;&lt;LF&gt;" in order to work around the PIX firewall
11880"&lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;" bug.
11881</p>
11882
11883<p>
11884Choosing too short a time makes this workaround ineffective when
11885sending large messages over slow network connections.
11886</p>
11887
11888<p> Specify a non-zero time value (an integral value plus an optional
11889one-letter suffix that specifies the time unit).  Time units: s
11890(seconds), m (minutes), h (hours), d (days), w (weeks).
11891The default time unit is s (seconds).  </p>
11892
11893
11894</DD>
11895
11896<DT><b><a name="smtp_pix_workaround_maps">smtp_pix_workaround_maps</a>
11897(default: empty)</b></DT><DD>
11898
11899<p> Lookup tables, indexed by the remote SMTP server address, with
11900per-destination workarounds for CISCO PIX firewall bugs.  The table
11901is not indexed by hostname for consistency with
11902<a href="postconf.5.html#smtp_discard_ehlo_keyword_address_maps">smtp_discard_ehlo_keyword_address_maps</a>. </p>
11903
11904<p>
11905Specify zero or more "type:name" lookup tables, separated by
11906whitespace or comma. Tables will be searched in the specified order
11907until a match is found.
11908</p>
11909
11910<p> This feature is available in Postfix 2.4 and later. </p>
11911
11912
11913</DD>
11914
11915<DT><b><a name="smtp_pix_workaround_threshold_time">smtp_pix_workaround_threshold_time</a>
11916(default: 500s)</b></DT><DD>
11917
11918<p> How long a message must be queued before the Postfix SMTP client
11919turns on the PIX firewall "&lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;"
11920bug workaround for delivery through firewalls with "smtp fixup"
11921mode turned on.  </p>
11922
11923<p> Specify a non-negative time value (an integral value plus an optional
11924one-letter suffix that specifies the time unit).  Time units: s
11925(seconds), m (minutes), h (hours), d (days), w (weeks).
11926The default time unit is s (seconds).  </p>
11927
11928<p>
11929By default, the workaround is turned off for mail that is queued
11930for less than 500 seconds. In other words, the workaround is normally
11931turned off for the first delivery attempt.
11932</p>
11933
11934<p>
11935Specify 0 to enable the PIX firewall
11936"&lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;" bug workaround upon the
11937first delivery attempt.
11938</p>
11939
11940
11941</DD>
11942
11943<DT><b><a name="smtp_pix_workarounds">smtp_pix_workarounds</a>
11944(default: disable_esmtp, delay_dotcrlf)</b></DT><DD>
11945
11946<p> A list that specifies zero or more workarounds for CISCO PIX
11947firewall bugs. These workarounds are implemented by the Postfix
11948SMTP client. Workaround names are separated by comma or space, and
11949are case insensitive.  This parameter setting can be overruled with
11950per-destination <a href="postconf.5.html#smtp_pix_workaround_maps">smtp_pix_workaround_maps</a> settings. </p>
11951
11952<dl>
11953
11954<dt><b>delay_dotcrlf</b><dd> Insert a delay before sending
11955".&lt;CR&gt;&lt;LF&gt;" after the end of the message content.  The
11956delay is subject to the <a href="postconf.5.html#smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a> and
11957<a href="postconf.5.html#smtp_pix_workaround_threshold_time">smtp_pix_workaround_threshold_time</a> parameter settings. </dd>
11958
11959<dt><b>disable_esmtp</b><dd> Disable all extended SMTP commands:
11960send HELO instead of EHLO. </dd>
11961
11962</dl>
11963
11964<p> This feature is available in Postfix 2.4 and later. The default
11965settings are backwards compatible with earlier Postfix versions.
11966</p>
11967
11968
11969</DD>
11970
11971<DT><b><a name="smtp_quit_timeout">smtp_quit_timeout</a>
11972(default: 300s)</b></DT><DD>
11973
11974<p>
11975The Postfix SMTP client time limit for sending the QUIT command,
11976and for receiving the remote SMTP server response.
11977</p>
11978
11979<p> Specify a non-zero time value (an integral value plus an optional
11980one-letter suffix that specifies the time unit).  Time units: s
11981(seconds), m (minutes), h (hours), d (days), w (weeks).
11982The default time unit is s (seconds).  </p>
11983
11984
11985</DD>
11986
11987<DT><b><a name="smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a>
11988(default: yes)</b></DT><DD>
11989
11990<p>
11991Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO commands
11992as required
11993by <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. This includes putting quotes around an address localpart
11994that ends in ".".
11995</p>
11996
11997<p>
11998The default is to comply with <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. If you have to send mail to
11999a broken SMTP server, configure a special SMTP client in <a href="master.5.html">master.cf</a>:
12000</p>
12001
12002<blockquote>
12003<pre>
12004/etc/postfix/<a href="master.5.html">master.cf</a>:
12005    broken-smtp . . . smtp -o <a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a>=no
12006</pre>
12007</blockquote>
12008
12009<p>
12010and route mail for the destination in question to the "broken-smtp"
12011message delivery with a <a href="transport.5.html">transport(5)</a> table.
12012</p>
12013
12014<p>
12015This feature is available in Postfix 2.1 and later.
12016</p>
12017
12018
12019</DD>
12020
12021<DT><b><a name="smtp_randomize_addresses">smtp_randomize_addresses</a>
12022(default: yes)</b></DT><DD>
12023
12024<p>
12025Randomize the order of equal-preference MX host addresses.  This
12026is a performance feature of the Postfix SMTP client.
12027</p>
12028
12029
12030</DD>
12031
12032<DT><b><a name="smtp_rcpt_timeout">smtp_rcpt_timeout</a>
12033(default: 300s)</b></DT><DD>
12034
12035<p>
12036The Postfix SMTP client time limit for sending the SMTP RCPT TO
12037command, and for receiving the remote SMTP server response.
12038</p>
12039
12040<p> Specify a non-zero time value (an integral value plus an optional
12041one-letter suffix that specifies the time unit).  Time units: s
12042(seconds), m (minutes), h (hours), d (days), w (weeks).
12043The default time unit is s (seconds).  </p>
12044
12045
12046</DD>
12047
12048<DT><b><a name="smtp_reply_filter">smtp_reply_filter</a>
12049(default: empty)</b></DT><DD>
12050
12051<p> A mechanism to transform replies from remote SMTP servers one
12052line at a time.  This is a last-resort tool to work around server
12053replies that break interoperability with the Postfix SMTP client.
12054Other uses involve fault injection to test Postfix's handling of
12055invalid responses. </p>
12056
12057<p> Notes: </p>
12058
12059<ul>
12060
12061<li> <p> In the case of a multi-line reply, the Postfix SMTP client
12062uses the final reply line's numerical SMTP reply code and enhanced
12063status code.  </p>
12064
12065<li> <p> The numerical SMTP reply code (XYZ) takes precedence over
12066the enhanced status code (X.Y.Z).  When the enhanced status code
12067initial digit differs from the SMTP reply code initial digit, or
12068when no enhanced status code is present, the Postfix SMTP client
12069uses a generic enhanced status code (X.0.0) instead. </p>
12070
12071</ul>
12072
12073<p> Specify the name of a "<a href="DATABASE_README.html">type:table</a>" lookup table. The search
12074string is a single SMTP reply line as received from the remote SMTP
12075server, except that the trailing &lt;CR&gt;&lt;LF&gt; are removed.
12076When the lookup succeeds, the result replaces the single SMTP reply
12077line. </p>
12078
12079<p> Examples: </p>
12080
12081<pre>
12082/etc/postfix/<a href="postconf.5.html">main.cf</a>:
12083    <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/reply_filter
12084</pre>
12085
12086<pre>
12087/etc/postfix/reply_filter:
12088    # Transform garbage into "250-filler..." so that it looks like
12089    # one line from a multi-line reply. It does not matter what we
12090    # substitute here as long it has the right syntax.  The Postfix
12091    # SMTP client will use the final line's numerical SMTP reply
12092    # code and enhanced status code.
12093    !/^([2-5][0-9][0-9]($|[- ]))/ 250-filler for garbage
12094</pre>
12095
12096<p> This feature is available in Postfix 2.7. </p>
12097
12098
12099</DD>
12100
12101<DT><b><a name="smtp_rset_timeout">smtp_rset_timeout</a>
12102(default: 20s)</b></DT><DD>
12103
12104<p> The Postfix SMTP client time limit for sending the RSET command,
12105and for receiving the remote SMTP server response. The SMTP client
12106sends RSET in
12107order to finish a recipient address probe, or to verify that a
12108cached session is still usable.  </p>
12109
12110<p> Specify a non-zero time value (an integral value plus an optional
12111one-letter suffix that specifies the time unit).  Time units: s
12112(seconds), m (minutes), h (hours), d (days), w (weeks).
12113The default time unit is s (seconds).  </p>
12114
12115<p> This feature is available in Postfix 2.1 and later.  </p>
12116
12117
12118</DD>
12119
12120<DT><b><a name="smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a>
12121(default: empty)</b></DT><DD>
12122
12123<p> An optional table to prevent repeated SASL authentication
12124failures with the same remote SMTP server hostname, username and
12125password. Each table (key, value) pair contains a server name, a
12126username and password, and the full server response. This information
12127is stored when a remote SMTP server rejects an authentication attempt
12128with a 535 reply code.  As long as the <a href="postconf.5.html#smtp_sasl_password_maps">smtp_sasl_password_maps</a>
12129information does not change, and as long as the <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a>
12130information does not expire (see <a href="postconf.5.html#smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a>) the
12131Postfix SMTP client avoids SASL authentication attempts with the
12132same server, username and password, and instead bounces or defers
12133mail as controlled with the <a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> configuration
12134parameter.  </p>
12135
12136<p> Use a per-destination delivery concurrency of 1 (for example,
12137"<a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> = 1",
12138"<a href="postconf.5.html#relay_destination_concurrency_limit">relay_destination_concurrency_limit</a> = 1", etc.), otherwise multiple
12139delivery agents may experience a login failure at the same time.
12140</p>
12141
12142<p> The table must be accessed via the proxywrite service, i.e. the
12143map name must start with "<a href="proxymap.8.html">proxy</a>:". The table should be stored under
12144the directory specified with the <a href="postconf.5.html#data_directory">data_directory</a> parameter. </p>
12145
12146<p> This feature uses cryptographic hashing to protect plain-text
12147passwords, and requires that Postfix is compiled with TLS support.
12148</p>
12149
12150<p> Example: </p>
12151
12152<pre>
12153<a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> = <a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html#types">btree</a>:/var/db/postfix/sasl_auth_cache
12154</pre>
12155
12156<p> This feature is available in Postfix 2.5 and later. </p>
12157
12158
12159</DD>
12160
12161<DT><b><a name="smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a>
12162(default: 90d)</b></DT><DD>
12163
12164<p> The maximal age of an <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> entry before it
12165is removed. </p>
12166
12167<p> Specify a non-negative time value (an integral value plus an optional
12168one-letter suffix that specifies the time unit).  Time units: s
12169(seconds), m (minutes), h (hours), d (days), w (weeks).
12170The default time unit is d (days).  </p>
12171
12172<p> This feature is available in Postfix 2.5 and later. </p>
12173
12174
12175</DD>
12176
12177<DT><b><a name="smtp_sasl_auth_enable">smtp_sasl_auth_enable</a>
12178(default: no)</b></DT><DD>
12179
12180<p>
12181Enable SASL authentication in the Postfix SMTP client.  By default,
12182the Postfix SMTP client uses no authentication.
12183</p>
12184
12185<p>
12186Example:
12187</p>
12188
12189<pre>
12190<a href="postconf.5.html#smtp_sasl_auth_enable">smtp_sasl_auth_enable</a> = yes
12191</pre>
12192
12193
12194</DD>
12195
12196<DT><b><a name="smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a>
12197(default: yes)</b></DT><DD>
12198
12199<p> When a remote SMTP server rejects a SASL authentication request
12200with a 535 reply code, defer mail delivery instead of returning
12201mail as undeliverable. The latter behavior was hard-coded prior to
12202Postfix version 2.5. </p>
12203
12204<p> Note: the setting "yes" overrides the global <a href="postconf.5.html#soft_bounce">soft_bounce</a>
12205parameter, but the setting "no" does not. </p>
12206
12207<p> Example: </p>
12208
12209<pre>
12210# Default as of Postfix 2.5
12211<a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> = yes
12212# The old hard-coded default
12213<a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> = no
12214</pre>
12215
12216<p> This feature is available in Postfix 2.5 and later. </p>
12217
12218
12219</DD>
12220
12221<DT><b><a name="smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a>
12222(default: empty)</b></DT><DD>
12223
12224<p>
12225If non-empty, a Postfix SMTP client filter for the remote SMTP
12226server's list of offered SASL mechanisms.  Different client and
12227server implementations may support different mechanism lists; by
12228default, the Postfix SMTP client will use the intersection of the
12229two. <a href="postconf.5.html#smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a> specifies an optional third mechanism
12230list to intersect with. </p>
12231
12232<p> Specify mechanism names, "/file/name" patterns or "<a href="DATABASE_README.html">type:table</a>"
12233lookup tables. The right-hand side result from "<a href="DATABASE_README.html">type:table</a>" lookups
12234is ignored. Specify "!pattern" to exclude a mechanism name from the
12235list. The form "!/file/name" is supported only in Postfix version
122362.4 and later. </p>
12237
12238<p> This feature is available in Postfix 2.2 and later. </p>
12239
12240<p>
12241Examples:
12242</p>
12243
12244<pre>
12245<a href="postconf.5.html#smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a> = plain, login
12246<a href="postconf.5.html#smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a> = /etc/postfix/smtp_mechs
12247<a href="postconf.5.html#smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a> = !gssapi, !login, <a href="DATABASE_README.html#types">static</a>:rest
12248</pre>
12249
12250
12251</DD>
12252
12253<DT><b><a name="smtp_sasl_password_maps">smtp_sasl_password_maps</a>
12254(default: empty)</b></DT><DD>
12255
12256<p>
12257Optional Postfix SMTP client lookup tables with one username:password
12258entry per sender, remote hostname or next-hop domain. Per-sender
12259lookup is done only when sender-dependent authentication is enabled.
12260If no username:password entry is found, then the Postfix SMTP client
12261will not attempt to authenticate to the remote host.
12262</p>
12263
12264<p>
12265The Postfix SMTP client opens the lookup table before going to
12266chroot jail, so you can leave the password file in /etc/postfix.
12267</p>
12268
12269<p>
12270Specify zero or more "type:name" lookup tables, separated by
12271whitespace or comma. Tables will be searched in the specified order
12272until a match is found.
12273</p>
12274
12275
12276</DD>
12277
12278<DT><b><a name="smtp_sasl_path">smtp_sasl_path</a>
12279(default: empty)</b></DT><DD>
12280
12281<p> Implementation-specific information that the Postfix SMTP client
12282passes through to
12283the SASL plug-in implementation that is selected with
12284<b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.  Typically this specifies the name of a
12285configuration file or rendezvous point. </p>
12286
12287<p> This feature is available in Postfix 2.3 and later. </p>
12288
12289
12290</DD>
12291
12292<DT><b><a name="smtp_sasl_security_options">smtp_sasl_security_options</a>
12293(default: noplaintext, noanonymous)</b></DT><DD>
12294
12295<p> Postfix SMTP client SASL security options; as of Postfix 2.3
12296the list of available
12297features depends on the SASL client implementation that is selected
12298with <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.  </p>
12299
12300<p> The following security features are defined for the <b>cyrus</b>
12301client SASL implementation: </p>
12302
12303<p>
12304Specify zero or more of the following:
12305</p>
12306
12307<dl>
12308
12309<dt><b>noplaintext</b></dt>
12310
12311<dd>Disallow methods that use plaintext passwords. </dd>
12312
12313<dt><b>noactive</b></dt>
12314
12315<dd>Disallow methods subject to active (non-dictionary) attack.
12316</dd>
12317
12318<dt><b>nodictionary</b></dt>
12319
12320<dd>Disallow methods subject to passive (dictionary) attack. </dd>
12321
12322<dt><b>noanonymous</b></dt>
12323
12324<dd>Disallow methods that allow anonymous authentication. </dd>
12325
12326<dt><b>mutual_auth</b></dt>
12327
12328<dd>Only allow methods that provide mutual authentication (not
12329available with SASL version 1). </dd>
12330
12331</dl>
12332
12333<p>
12334Example:
12335</p>
12336
12337<pre>
12338<a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> = noplaintext
12339</pre>
12340
12341
12342</DD>
12343
12344<DT><b><a name="smtp_sasl_tls_security_options">smtp_sasl_tls_security_options</a>
12345(default: $<a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a>)</b></DT><DD>
12346
12347<p> The SASL authentication security options that the Postfix SMTP
12348client uses for TLS encrypted SMTP sessions. </p>
12349
12350<p> This feature is available in Postfix 2.2 and later.  </p>
12351
12352
12353</DD>
12354
12355<DT><b><a name="smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a>
12356(default: $<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_security_options</a>)</b></DT><DD>
12357
12358<p> The SASL authentication security options that the Postfix SMTP
12359client uses for TLS encrypted SMTP sessions with a verified server
12360certificate. </p>
12361
12362<p> When mail is sent to the public MX host for the recipient's
12363domain, server certificates are by default optional, and delivery
12364proceeds even if certificate verification fails. For delivery via
12365a submission service that requires SASL authentication, it may be
12366appropriate to send plaintext passwords only when the connection
12367to the server is strongly encrypted <b>and</b> the server identity
12368is verified. </p>
12369
12370<p> The <a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> parameter makes it
12371possible to only enable plaintext mechanisms when a secure connection
12372to the server is available. Submission servers subject to this
12373policy must either have verifiable certificates or offer suitable
12374non-plaintext SASL mechanisms. </p>
12375
12376<p> This feature is available in Postfix 2.6 and later. </p>
12377
12378
12379</DD>
12380
12381<DT><b><a name="smtp_sasl_type">smtp_sasl_type</a>
12382(default: cyrus)</b></DT><DD>
12383
12384<p> The SASL plug-in type that the Postfix SMTP client should use
12385for authentication.  The available types are listed with the
12386"<b>postconf -A</b>" command. </p>
12387
12388<p> This feature is available in Postfix 2.3 and later. </p>
12389
12390
12391</DD>
12392
12393<DT><b><a name="smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a>
12394(default: no)</b></DT><DD>
12395
12396<p> Whether or not to append the "AUTH=&lt;&gt;" option to the MAIL
12397FROM command in SASL-authenticated SMTP sessions. The default is
12398not to send this, to avoid problems with broken remote SMTP servers.
12399Before Postfix 2.9 the behavior is as if "<a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a>
12400= yes".
12401
12402<p> This feature is available in Postfix 2.9 and later. </p>
12403
12404
12405</DD>
12406
12407<DT><b><a name="smtp_send_xforward_command">smtp_send_xforward_command</a>
12408(default: no)</b></DT><DD>
12409
12410<p>
12411Send the non-standard XFORWARD command when the Postfix SMTP server
12412EHLO response announces XFORWARD support.
12413</p>
12414
12415<p>
12416This allows a Postfix SMTP delivery agent, used for injecting mail
12417into
12418a content filter, to forward the name, address, protocol and HELO
12419name of the original client to the content filter and downstream
12420queuing SMTP server. This can produce more useful logging than
12421localhost[127.0.0.1] etc.
12422</p>
12423
12424<p>
12425This feature is available in Postfix 2.1 and later.
12426</p>
12427
12428
12429</DD>
12430
12431<DT><b><a name="smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a>
12432(default: no)</b></DT><DD>
12433
12434<p>
12435Enable sender-dependent authentication in the Postfix SMTP client; this is
12436available only with SASL authentication, and disables SMTP connection
12437caching to ensure that mail from different senders will use the
12438appropriate credentials.  </p>
12439
12440<p>
12441This feature is available in Postfix 2.3 and later.
12442</p>
12443
12444
12445</DD>
12446
12447<DT><b><a name="smtp_skip_4xx_greeting">smtp_skip_4xx_greeting</a>
12448(default: yes)</b></DT><DD>
12449
12450<p>
12451Skip SMTP servers that greet with a 4XX status code (go away, try
12452again later).
12453</p>
12454
12455<p>
12456By default, the Postfix SMTP client moves on the next mail exchanger.
12457Specify
12458"<a href="postconf.5.html#smtp_skip_4xx_greeting">smtp_skip_4xx_greeting</a> = no" if Postfix should defer delivery
12459immediately.
12460</p>
12461
12462<p> This feature is available in Postfix 2.0 and earlier.
12463Later Postfix versions always skip remote SMTP servers that greet
12464with a
124654XX status code. </p>
12466
12467
12468</DD>
12469
12470<DT><b><a name="smtp_skip_5xx_greeting">smtp_skip_5xx_greeting</a>
12471(default: yes)</b></DT><DD>
12472
12473<p>
12474Skip remote SMTP servers that greet with a 5XX status code.
12475</p>
12476
12477<p> By default, the Postfix SMTP client moves on the next mail
12478exchanger. Specify "<a href="postconf.5.html#smtp_skip_5xx_greeting">smtp_skip_5xx_greeting</a> = no" if Postfix should
12479bounce the mail immediately. Caution: the latter behavior appears
12480to contradict <a href="https://tools.ietf.org/html/rfc2821">RFC 2821</a>. </p>
12481
12482
12483</DD>
12484
12485<DT><b><a name="smtp_skip_quit_response">smtp_skip_quit_response</a>
12486(default: yes)</b></DT><DD>
12487
12488<p>
12489Do not wait for the response to the SMTP QUIT command.
12490</p>
12491
12492
12493</DD>
12494
12495<DT><b><a name="smtp_starttls_timeout">smtp_starttls_timeout</a>
12496(default: 300s)</b></DT><DD>
12497
12498<p> Time limit for Postfix SMTP client write and read operations
12499during TLS startup and shutdown handshake procedures. </p>
12500
12501<p> Specify a non-zero time value (an integral value plus an optional
12502one-letter suffix that specifies the time unit).  Time units: s
12503(seconds), m (minutes), h (hours), d (days), w (weeks).
12504The default time unit is s (seconds).  </p>
12505
12506<p> This feature is available in Postfix 2.2 and later.  </p>
12507
12508
12509</DD>
12510
12511<DT><b><a name="smtp_tcp_port">smtp_tcp_port</a>
12512(default: smtp)</b></DT><DD>
12513
12514<p>
12515The default TCP port that the Postfix SMTP client connects to.
12516Specify a symbolic name (see services(5)) or a numeric port.
12517</p>
12518
12519
12520</DD>
12521
12522<DT><b><a name="smtp_tls_CAfile">smtp_tls_CAfile</a>
12523(default: empty)</b></DT><DD>
12524
12525<p> A file containing CA certificates of root CAs trusted to sign
12526either remote SMTP server certificates or intermediate CA certificates.
12527These are loaded into memory before the <a href="smtp.8.html">smtp(8)</a> client enters the
12528chroot jail. If the number of trusted roots is large, consider using
12529<a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> instead, but note that the latter directory must be
12530present in the chroot jail if the <a href="smtp.8.html">smtp(8)</a> client is chrooted. This
12531file may also be used to augment the client certificate trust chain,
12532but it is best to include all the required certificates directly in
12533$<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> (or, Postfix &ge; 3.4 $<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a>). </p>
12534
12535<p> Specify "<a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> = /path/to/system_CA_file" to use
12536ONLY the system-supplied default Certification Authority certificates.
12537</p>
12538
12539<p> Specify "<a href="postconf.5.html#tls_append_default_CA">tls_append_default_CA</a> = no" to prevent Postfix from
12540appending the system-supplied default CAs and trusting third-party
12541certificates. </p>
12542
12543<p> Example: </p>
12544
12545<pre>
12546<a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> = /etc/postfix/CAcert.pem
12547</pre>
12548
12549<p> This feature is available in Postfix 2.2 and later.  </p>
12550
12551
12552</DD>
12553
12554<DT><b><a name="smtp_tls_CApath">smtp_tls_CApath</a>
12555(default: empty)</b></DT><DD>
12556
12557<p> Directory with PEM format Certification Authority certificates
12558that the Postfix SMTP client uses to verify a remote SMTP server
12559certificate.  Don't forget to create the necessary "hash" links
12560with, for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs".
12561</p>
12562
12563<p> To use this option in chroot mode, this directory (or a copy)
12564must be inside the chroot jail. </p>
12565
12566<p> Specify "<a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> = /path/to/system_CA_directory" to
12567use ONLY the system-supplied default Certification Authority certificates.
12568</p>
12569
12570<p> Specify "<a href="postconf.5.html#tls_append_default_CA">tls_append_default_CA</a> = no" to prevent Postfix from
12571appending the system-supplied default CAs and trusting third-party
12572certificates. </p>
12573
12574<p> Example: </p>
12575
12576<pre>
12577<a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> = /etc/postfix/certs
12578</pre>
12579
12580<p> This feature is available in Postfix 2.2 and later.  </p>
12581
12582
12583</DD>
12584
12585<DT><b><a name="smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a>
12586(default: no)</b></DT><DD>
12587
12588<p> Try to detect a mail hijacking attack based on a TLS protocol
12589vulnerability (CVE-2009-3555), where an attacker prepends malicious
12590HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client TLS session.
12591The attack would succeed with non-Postfix SMTP servers that reply
12592to the malicious HELO, MAIL, RCPT, DATA commands after negotiating
12593the Postfix SMTP client TLS session.  </p>
12594
12595<p> This feature is available in Postfix 2.7. </p>
12596
12597
12598</DD>
12599
12600<DT><b><a name="smtp_tls_cert_file">smtp_tls_cert_file</a>
12601(default: empty)</b></DT><DD>
12602
12603<p> File with the Postfix SMTP client RSA certificate in PEM format.
12604This file may also contain the Postfix SMTP client private RSA key, and
12605these may be the same as the Postfix SMTP server RSA certificate and key
12606file.  With Postfix &ge; 3.4 the preferred way to configure client keys
12607and certificates is via the "<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a>" parameter. </p>
12608
12609<p> Do not configure client certificates unless you <b>must</b> present
12610client TLS certificates to one or more servers. Client certificates are
12611not usually needed, and can cause problems in configurations that work
12612well without them. The recommended setting is to let the defaults stand: </p>
12613
12614<blockquote>
12615<pre>
12616<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> =
12617<a href="postconf.5.html#smtp_tls_key_file">smtp_tls_key_file</a> =
12618<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> =
12619<a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> =
12620# Obsolete DSA parameters
12621<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> =
12622<a href="postconf.5.html#smtp_tls_dkey_file">smtp_tls_dkey_file</a> =
12623# Postfix &ge; 3.4 interface
12624<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a> =
12625</pre>
12626</blockquote>
12627
12628<p> The best way to use the default settings is to comment out the above
12629parameters in <a href="postconf.5.html">main.cf</a> if present. </p>
12630
12631<p> To enable remote SMTP servers to verify the Postfix SMTP client
12632certificate, the issuing CA certificates must be made available to the
12633server. You should include the required certificates in the client
12634certificate file, the client certificate first, then the issuing
12635CA(s) (bottom-up order). </p>
12636
12637<p> Example: the certificate for "client.example.com" was issued by
12638"intermediate CA" which itself has a certificate issued by "root CA".
12639As the "root" super-user create the client.pem file with: </p>
12640
12641<blockquote>
12642<pre>
12643# <b>umask 077</b>
12644# <b>cat client_key.pem client_cert.pem intermediate_CA.pem &gt; chain.pem </b>
12645</pre>
12646</blockquote>
12647
12648<p> If you also want to verify remote SMTP server certificates issued by
12649these CAs, you can add the CA certificates to the <a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a>, in
12650which case it is not necessary to have them in the <a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>,
12651<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (obsolete) or <a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>. </p>
12652
12653<p> A certificate supplied here must be usable as an SSL client certificate
12654and hence pass the "openssl verify -purpose sslclient ..." test. </p>
12655
12656<p> Example: </p>
12657
12658<pre>
12659<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> = /etc/postfix/chain.pem
12660</pre>
12661
12662<p> This feature is available in Postfix 2.2 and later.  </p>
12663
12664
12665</DD>
12666
12667<DT><b><a name="smtp_tls_chain_files">smtp_tls_chain_files</a>
12668(default: empty)</b></DT><DD>
12669
12670<p> List of one or more PEM files, each holding one or more private keys
12671directly followed by a corresponding certificate chain.  The file names
12672are separated by commas and/or whitespace.  This parameter obsoletes the
12673legacy algorithm-specific key and certificate file settings.  When this
12674parameter is non-empty, the legacy parameters are ignored, and a warning
12675is logged if any are also non-empty.  </p>
12676
12677<p> With the proliferation of multiple private key algorithms&mdash;which,
12678as of OpenSSL 1.1.1, include DSA (obsolete), RSA, ECDSA, Ed25519
12679and Ed448&mdash;it is increasingly impractical to use separate
12680parameters to configure the key and certificate chain for each
12681algorithm.  Therefore, Postfix now supports storing multiple keys and
12682corresponding certificate chains in a single file or in a set of files.
12683
12684<p> Each key must appear <b>immediately before</b> the corresponding
12685certificate, optionally followed by additional issuer certificates that
12686complete the certificate chain for that key.  When multiple files are
12687specified, they are equivalent to a single file that is concatenated
12688from those files in the given order.  Thus, while a key must always
12689precede its certificate and issuer chain, it can be in a separate file,
12690so long as that file is listed immediately before the file that holds
12691the corresponding certificate chain.  Once all the files are
12692concatenated, the sequence of PEM objects must be: <i>key1, cert1,
12693[chain1], key2, cert2, [chain2], ..., keyN, certN, [chainN].</i> </p>
12694
12695<p> Storing the private key in the same file as the corresponding
12696certificate is more reliable.  With the key and certificate in separate
12697files, there is a chance that during key rollover a Postfix process
12698might load a private key and certificate from separate files that don't
12699match.  Various operational errors may even result in a persistent
12700broken configuration in which the certificate does not match the private
12701key. </p>
12702
12703<p> The file or files must contain at most one key of each type.  If,
12704for example, two or more RSA keys and corresponding chains are listed,
12705depending on the version of OpenSSL either only the last one will be
12706used or a configuration error may be detected.  Note that while
12707"Ed25519" and "Ed448" are considered separate algorithms, the various
12708ECDSA curves (typically one of prime256v1, secp384r1 or secp521r1) are
12709considered as different parameters of a single "ECDSA" algorithm, so it
12710is not presently possible to configure keys for more than one ECDSA
12711curve.  </p>
12712
12713<p>
12714Example (separate files for each key and corresponding certificate chain):
12715</p>
12716<blockquote>
12717<pre>
12718/etc/postfix/<a href="postconf.5.html">main.cf</a>:
12719    <a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a> =
12720        ${<a href="postconf.5.html#config_directory">config_directory</a>}/ed25519.pem,
12721        ${<a href="postconf.5.html#config_directory">config_directory</a>}/ed448.pem,
12722        ${<a href="postconf.5.html#config_directory">config_directory</a>}/rsa.pem
12723</pre>
12724</blockquote>
12725
12726<blockquote>
12727<pre>
12728/etc/postfix/ed25519.pem:
12729    -----BEGIN PRIVATE KEY-----
12730    MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
12731    -----END PRIVATE KEY-----
12732    -----BEGIN CERTIFICATE-----
12733    MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
12734    ...
12735    nC0egv51YPDWxEHom4QA
12736    -----END CERTIFICATE-----
12737</pre>
12738</blockquote>
12739
12740<blockquote>
12741<pre>
12742/etc/postfix/ed448.pem:
12743    -----BEGIN PRIVATE KEY-----
12744    MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
12745    LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
12746    -----END PRIVATE KEY-----
12747    -----BEGIN CERTIFICATE-----
12748    MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
12749    ...
12750    pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
12751    -----END CERTIFICATE-----
12752</pre>
12753</blockquote>
12754
12755<blockquote>
12756<pre>
12757/etc/postfix/rsa.pem:
12758    -----BEGIN PRIVATE KEY-----
12759    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
12760    ...
12761    ahQkZ3+krcaJvDSMgvu0tDc=
12762    -----END PRIVATE KEY-----
12763    -----BEGIN CERTIFICATE-----
12764    MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
12765    ...
12766    Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
12767    -----END CERTIFICATE-----
12768</pre>
12769</blockquote>
12770
12771<p>
12772Example (all keys and certificates in a single file):
12773</p>
12774<blockquote>
12775<pre>
12776/etc/postfix/<a href="postconf.5.html">main.cf</a>:
12777    <a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a> = ${<a href="postconf.5.html#config_directory">config_directory</a>}/chains.pem
12778</pre>
12779</blockquote>
12780
12781<blockquote>
12782<pre>
12783/etc/postfix/chains.pem:
12784    -----BEGIN PRIVATE KEY-----
12785    MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
12786    -----END PRIVATE KEY-----
12787    -----BEGIN CERTIFICATE-----
12788    MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
12789    ...
12790    nC0egv51YPDWxEHom4QA
12791    -----END CERTIFICATE-----
12792    -----BEGIN PRIVATE KEY-----
12793    MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
12794    LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
12795    -----END PRIVATE KEY-----
12796    -----BEGIN CERTIFICATE-----
12797    MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
12798    ...
12799    pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
12800    -----END CERTIFICATE-----
12801    -----BEGIN PRIVATE KEY-----
12802    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
12803    ...
12804    ahQkZ3+krcaJvDSMgvu0tDc=
12805    -----END PRIVATE KEY-----
12806    -----BEGIN CERTIFICATE-----
12807    MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
12808    ...
12809    Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
12810    -----END CERTIFICATE-----
12811</pre>
12812</blockquote>
12813
12814<p> This feature is available in Postfix 3.4 and later.  </p>
12815
12816
12817</DD>
12818
12819<DT><b><a name="smtp_tls_cipherlist">smtp_tls_cipherlist</a>
12820(default: empty)</b></DT><DD>
12821
12822<p> Obsolete Postfix &lt; 2.3 control for the Postfix SMTP client TLS
12823cipher list. As this feature applies to all TLS security levels, it is easy
12824to create interoperability problems by choosing a non-default cipher
12825list. Do not use a non-default TLS cipher list on hosts that deliver email
12826to the public Internet: you will be unable to send email to servers that
12827only support the ciphers you exclude. Using a restricted cipher list
12828may be more appropriate for an internal MTA, where one can exert some
12829control over the TLS software and settings of the peer servers. </p>
12830
12831<p> <b>Note:</b> do not use "" quotes around the parameter value. </p>
12832
12833<p> This feature is available in Postfix version 2.2. It is not used with
12834Postfix 2.3 and later; use <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> instead. </p>
12835
12836
12837</DD>
12838
12839<DT><b><a name="smtp_tls_ciphers">smtp_tls_ciphers</a>
12840(default: medium)</b></DT><DD>
12841
12842<p> The minimum TLS cipher grade that the Postfix SMTP client
12843will use with opportunistic TLS encryption. Cipher types listed in
12844<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> are excluded from the base definition of
12845the selected cipher grade.   The default value is "medium" for
12846Postfix releases after the middle of 2015, "export" for older
12847releases.  </p>
12848
12849<p> When TLS is mandatory the cipher grade is chosen via the
12850<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> configuration parameter, see there for syntax
12851details. See <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> for information on how to configure
12852ciphers on a per-destination basis. </p>
12853
12854<p> This feature is available in Postfix 2.6 and later. With earlier Postfix
12855releases only the <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> parameter is implemented,
12856and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p>
12857
12858
12859</DD>
12860
12861<DT><b><a name="smtp_tls_connection_reuse">smtp_tls_connection_reuse</a>
12862(default: no)</b></DT><DD>
12863
12864<p> Try to make multiple deliveries per TLS-encrypted connection.
12865This uses the <a href="tlsproxy.8.html">tlsproxy(8)</a> service to encrypt an SMTP connection,
12866uses the <a href="scache.8.html">scache(8)</a> service to save that connection, and relies on
12867hints from the <a href="qmgr.8.html">qmgr(8)</a> daemon. </p>
12868
12869<p> See "<a href="TLS_README.html#client_tls_reuse">Client-side
12870TLS connection reuse</a>" for background details. </p>
12871
12872<p> This feature is available in Postfix 3.4 and later.  </p>
12873
12874
12875</DD>
12876
12877<DT><b><a name="smtp_tls_dane_insecure_mx_policy">smtp_tls_dane_insecure_mx_policy</a>
12878(default: see "postconf -d" output)</b></DT><DD>
12879
12880<p> The TLS policy for MX hosts with "secure" TLSA records when the
12881nexthop destination security level is <b>dane</b>, but the MX
12882record was found via an "insecure" MX lookup.  The choices are:
12883</p>
12884
12885<dl>
12886<dt><b>may</b></dt>
12887<dd> The TLSA records will be ignored and TLS will be optional.  If
12888the MX host does not appear to support STARTTLS, or the STARTTLS
12889handshake fails, mail may be sent in the clear. </dd>
12890<dt><b>encrypt</b></dt>
12891<dd> The TLSA records will signal a requirement to use TLS.  While
12892TLS encryption will be required, authentication will not be performed.
12893</dd>
12894<dt><b>dane</b></dt>
12895<dd>The TLSA records will be used just as with "secure" MX records.
12896TLS encryption will be required, and, if at least one of the TLSA
12897records is "usable", authentication will be required.  When
12898authentication succeeds, it will be logged only as "Trusted", not
12899"Verified", because the MX host name could have been forged.  </dd>
12900</dl>
12901
12902<p> The default setting for Postfix &ge; 3.6 is "dane" with
12903"<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = dane", otherwise "may". This behavior
12904was backported to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21.
12905With earlier Postfix versions the default setting was always "dane".
12906</p>
12907
12908<p> Though with "insecure" MX records an active attacker can
12909compromise SMTP transport security by returning forged MX records,
12910such attacks are "tamper-evident" since any forged MX hostnames
12911will be recorded in the mail logs.  Attackers who place a high value
12912on staying hidden may be deterred from forging MX records. </p>
12913
12914<p>
12915This feature is available in Postfix 3.1 and later. The <b>may</b>
12916policy is backwards-compatible with earlier Postfix versions.
12917</p>
12918
12919
12920</DD>
12921
12922<DT><b><a name="smtp_tls_dcert_file">smtp_tls_dcert_file</a>
12923(default: empty)</b></DT><DD>
12924
12925<p> File with the Postfix SMTP client DSA certificate in PEM format.
12926This file may also contain the Postfix SMTP client private DSA key.
12927The DSA algorithm is obsolete and should not be used. </p>
12928
12929<p> See the discussion under <a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> for more details.
12930</p>
12931
12932<p> Example: </p>
12933
12934<pre>
12935<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> = /etc/postfix/client-dsa.pem
12936</pre>
12937
12938<p> This feature is available in Postfix 2.2 and later.  </p>
12939
12940
12941</DD>
12942
12943<DT><b><a name="smtp_tls_dkey_file">smtp_tls_dkey_file</a>
12944(default: $<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a>)</b></DT><DD>
12945
12946<p> File with the Postfix SMTP client DSA private key in PEM format.
12947This file may be combined with the Postfix SMTP client DSA certificate
12948file specified with $<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a>. The DSA algorithm is obsolete
12949and should not be used. </p>
12950
12951<p> The private key must be accessible without a pass-phrase, i.e. it
12952must not be encrypted. File permissions should grant read-only
12953access to the system superuser account ("root"), and no access
12954to anyone else. </p>
12955
12956<p> This feature is available in Postfix 2.2 and later.  </p>
12957
12958
12959</DD>
12960
12961<DT><b><a name="smtp_tls_eccert_file">smtp_tls_eccert_file</a>
12962(default: empty)</b></DT><DD>
12963
12964<p> File with the Postfix SMTP client ECDSA certificate in PEM format.
12965This file may also contain the Postfix SMTP client ECDSA private key.
12966With Postfix &ge; 3.4 the preferred way to configure client keys and
12967certificates is via the "<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a>" parameter. </p>
12968
12969<p> See the discussion under <a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> for more details.
12970</p>
12971
12972<p> Example: </p>
12973
12974<pre>
12975<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> = /etc/postfix/ecdsa-ccert.pem
12976</pre>
12977
12978<p> This feature is available in Postfix 2.6 and later, when Postfix is
12979compiled and linked with OpenSSL 1.0.0 or later. </p>
12980
12981
12982</DD>
12983
12984<DT><b><a name="smtp_tls_eckey_file">smtp_tls_eckey_file</a>
12985(default: $<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b></DT><DD>
12986
12987<p> File with the Postfix SMTP client ECDSA private key in PEM format.
12988This file may be combined with the Postfix SMTP client ECDSA certificate
12989file specified with $<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>.  With Postfix &ge; 3.4 the
12990preferred way to configure client keys and certificates is via the
12991"<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a>" parameter. </p>
12992
12993<p> The private key must be accessible without a pass-phrase, i.e. it
12994must not be encrypted. File permissions should grant read-only
12995access to the system superuser account ("root"), and no access
12996to anyone else. </p>
12997
12998<p> This feature is available in Postfix 2.6 and later, when Postfix is
12999compiled and linked with OpenSSL 1.0.0 or later. </p>
13000
13001
13002</DD>
13003
13004<DT><b><a name="smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>
13005(default: yes)</b></DT><DD>
13006
13007<p> With mandatory TLS encryption, require that the remote SMTP
13008server hostname matches the information in the remote SMTP server
13009certificate.  As of <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a> the requirements for hostname checking
13010for MTA clients are not specified. </p>
13011
13012<p> This option can be set to "no" to disable strict peer name
13013checking. This setting has no effect on sessions that are controlled
13014via the <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> table.  </p>
13015
13016<p> Disabling the hostname verification can make sense in a closed
13017environment where special CAs are created.  If not used carefully,
13018this option opens the danger of a "man-in-the-middle" attack (the
13019CommonName of this attacker will be logged). </p>
13020
13021<p> This feature is available in Postfix 2.2 and later. With
13022Postfix 2.3 and later use <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> instead. </p>
13023
13024
13025</DD>
13026
13027<DT><b><a name="smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a>
13028(default: empty)</b></DT><DD>
13029
13030<p> List of ciphers or cipher types to exclude from the Postfix
13031SMTP client cipher
13032list at all TLS security levels. This is not an OpenSSL cipherlist, it is
13033a simple list separated by whitespace and/or commas. The elements are a
13034single cipher, or one or more "+" separated cipher properties, in which
13035case only ciphers matching <b>all</b> the properties are excluded. </p>
13036
13037<p> Examples (some of these will cause problems): </p>
13038
13039<blockquote>
13040<pre>
13041<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> = aNULL
13042<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> = MD5, DES
13043<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> = DES+MD5
13044<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> = AES256-SHA, DES-CBC3-MD5
13045<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> = kEDH+aRSA
13046</pre>
13047</blockquote>
13048
13049<p> The first setting disables anonymous ciphers. The next setting
13050disables ciphers that use the MD5 digest algorithm or the (single) DES
13051encryption algorithm. The next setting disables ciphers that use MD5 and
13052DES together.  The next setting disables the two ciphers "AES256-SHA"
13053and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
13054key exchange with RSA authentication. </p>
13055
13056<p> This feature is available in Postfix 2.3 and later. </p>
13057
13058
13059</DD>
13060
13061<DT><b><a name="smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a>
13062(default: empty)</b></DT><DD>
13063
13064<p> List of acceptable remote SMTP server certificate fingerprints for
13065the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a></b> =
13066fingerprint). At this security level, Certification Authorities are not
13067used, and certificate expiration times are ignored. Instead, server
13068certificates are verified directly via their certificate fingerprint
13069or public key fingerprint (Postfix 2.9 and later). The fingerprint
13070is a message digest of the server certificate (or public key). The
13071digest algorithm is selected via the <b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a></b>
13072parameter. </p>
13073
13074<p> The colons between each pair of nibbles in the fingerprint value
13075are optional (Postfix &ge; 3.6). These were required in earlier
13076Postfix releases. </p>
13077
13078<p> When an <b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a></b> table entry specifies the
13079"fingerprint" security level, any "match" attributes in that entry specify
13080the list of valid fingerprints for the corresponding destination. Multiple
13081fingerprints can be combined with a "|" delimiter in a single match
13082attribute, or multiple match attributes can be employed. </p>
13083
13084<p> Example: Certificate fingerprint verification with internal mailhub.
13085Two matching fingerprints are listed. The <a href="postconf.5.html#relayhost">relayhost</a> may be multiple
13086physical hosts behind a load-balancer, each with its own private/public
13087key and self-signed certificate. Alternatively, a single <a href="postconf.5.html#relayhost">relayhost</a> may
13088be in the process of switching from one set of private/public keys to
13089another, and both keys are trusted just prior to the transition. </p>
13090
13091<blockquote>
13092<pre>
13093<a href="postconf.5.html#relayhost">relayhost</a> = [mailhub.example.com]
13094<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = fingerprint
13095<a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> = sha256
13096<a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> =
13097    cd:fc:d8:db:f8:c4:82:96:6c:...:28:71:e8:f5:8d:a5:0d:9b:d4:a6
13098    dd:5c:ef:f5:c3:bc:64:25:36:...:99:36:06:ce:40:ef:de:2e:ad:a4
13099</pre>
13100</blockquote>
13101
13102<p> Example: Certificate fingerprint verification with selected destinations.
13103As in the example above, we show two matching fingerprints: </p>
13104
13105<blockquote>
13106<pre>
13107/etc/postfix/<a href="postconf.5.html">main.cf</a>:
13108    <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/tls_policy
13109    <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> = sha256
13110</pre>
13111</blockquote>
13112
13113<blockquote>
13114<pre>
13115/etc/postfix/tls_policy:
13116    example.com fingerprint
13117        match=51:e9:af:2e:1e:40:1f:...:64:0a:30:35:2d:09:16:31:5a:eb:82:76
13118        match=b6:b4:72:34:e2:59:cd:...:c2:ca:63:0d:4d:cc:2c:7d:84:de:e6:2f
13119</pre>
13120</blockquote>
13121
13122<p> This feature is available in Postfix 2.5 and later. </p>
13123
13124
13125</DD>
13126
13127<DT><b><a name="smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a>
13128(default: see "postconf -d" output)</b></DT><DD>
13129
13130<p> The message digest algorithm used to construct remote SMTP server
13131certificate fingerprints. At the "fingerprint" TLS security level
13132(<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a></b> = fingerprint), the server certificate is
13133verified by directly matching its certificate fingerprint or its public
13134key fingerprint (Postfix 2.9 and later). The fingerprint is the
13135message digest of the server certificate (or its public key)
13136using the selected
13137algorithm. With a digest algorithm resistant to "second pre-image"
13138attacks, it is not feasible to create a new public key and a matching
13139certificate (or public/private key-pair) that has the same fingerprint. </p>
13140
13141<p> The default algorithm is <b>sha256</b> with Postfix &ge; 3.6
13142and the <b><a href="postconf.5.html#compatibility_level">compatibility_level</a></b> set to 3.6 or higher. With Postfix
13143&le; 3.5, the default algorithm is <b>md5</b>. </p>
13144
13145<p> The best-practice algorithm is now <b>sha256</b>. Recent advances in hash
13146function cryptanalysis have led to md5 and sha1 being deprecated in favor of
13147sha256.  However, as long as there are no known "second pre-image" attacks
13148against the older algorithms, their use in this context, though not
13149recommended, is still likely safe.  </p>
13150
13151<p> While additional digest algorithms are often available with OpenSSL's
13152libcrypto, only those used by libssl in SSL cipher suites are available to
13153Postfix.  You'll likely find support for md5, sha1, sha256 and sha512. </p>
13154
13155<p> To find the fingerprint of a specific certificate file, with a
13156specific digest algorithm, run:
13157</p>
13158
13159<blockquote>
13160<pre>
13161$ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem
13162</pre>
13163</blockquote>
13164
13165<p> The text to the right of the "=" sign is the desired fingerprint.
13166For example: </p>
13167
13168<blockquote>
13169<pre>
13170$ openssl x509 -noout -fingerprint -sha256 -in cert.pem
13171SHA256 Fingerprint=D4:6A:AB:19:24:...:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
13172</pre>
13173</blockquote>
13174
13175<p> To extract the public key fingerprint from an X.509 certificate,
13176you need to extract the public key from the certificate and compute
13177the appropriate digest of its DER (ASN.1) encoding. With OpenSSL
13178the "-pubkey" option of the "x509" command extracts the public
13179key always in "PEM" format. We pipe the result to another OpenSSL
13180command that converts the key to DER and then to the "dgst" command
13181to compute the fingerprint. </p>
13182
13183<p> The actual command to transform the key to DER format depends on the
13184version of OpenSSL used. As of OpenSSL 1.0.0, the "pkey" command supports
13185all key types. </p>
13186<blockquote>
13187<pre>
13188# OpenSSL &ge; 1.0 with SHA-256 fingerprints.
13189$ openssl x509 -in cert.pem -noout -pubkey |
13190    openssl pkey -pubin -outform DER |
13191    openssl dgst -sha256 -c
13192(stdin)= 64:3f:1f:f6:e5:1e:d4:2a:56:...:fc:09:1a:61:98:b5:bc:7c:60:58
13193</pre>
13194</blockquote>
13195
13196<p> The Postfix SMTP server and client log the peer (leaf) certificate
13197fingerprint and the public key fingerprint when the TLS loglevel is 2 or
13198higher. </p>
13199
13200<p> This feature is available in Postfix 2.5 and later. </p>
13201
13202
13203</DD>
13204
13205<DT><b><a name="smtp_tls_force_insecure_host_tlsa_lookup">smtp_tls_force_insecure_host_tlsa_lookup</a>
13206(default: no)</b></DT><DD>
13207
13208<p> Lookup the associated DANE TLSA RRset even when a hostname is
13209not an alias and its address records lie in an unsigned zone.  This
13210is unlikely to ever yield DNSSEC validated results, since child
13211zones of unsigned zones are also unsigned in the absence of DLV or
13212locally configured non-root trust-anchors.  We anticipate that such
13213mechanisms will not be used for just the "_tcp" subdomain of a host.
13214Suppressing the TLSA RRset lookup reduces latency and avoids potential
13215interoperability problems with nameservers for unsigned zones that
13216are not prepared to handle the new TLSA RRset.  </p>
13217
13218<p> This feature is available in Postfix 2.11. </p>
13219
13220
13221</DD>
13222
13223<DT><b><a name="smtp_tls_key_file">smtp_tls_key_file</a>
13224(default: $<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>)</b></DT><DD>
13225
13226<p> File with the Postfix SMTP client RSA private key in PEM format.
13227This file may be combined with the Postfix SMTP client RSA certificate
13228file specified with $<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>.  With Postfix &ge; 3.4 the
13229preferred way to configure client keys and certificates is via the
13230"<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a>" parameter. </p>
13231
13232<p> The private key must be accessible without a pass-phrase, i.e. it
13233must not be encrypted. File permissions should grant read-only
13234access to the system superuser account ("root"), and no access
13235to anyone else. </p>
13236
13237<p> Example: </p>
13238
13239<pre>
13240<a href="postconf.5.html#smtp_tls_key_file">smtp_tls_key_file</a> = $<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>
13241</pre>
13242
13243<p> This feature is available in Postfix 2.2 and later.  </p>
13244
13245
13246</DD>
13247
13248<DT><b><a name="smtp_tls_loglevel">smtp_tls_loglevel</a>
13249(default: 0)</b></DT><DD>
13250
13251<p> Enable additional Postfix SMTP client logging of TLS activity.
13252Each logging level also includes the information that is logged at
13253a lower logging level.  </p>
13254
13255<dl compact>
13256
13257<dt> </dt> <dd> 0 Disable logging of TLS activity. </dd>
13258
13259<dt> </dt> <dd> 1 Log only a summary message on TLS handshake completion
13260&mdash; no logging of remote SMTP server certificate trust-chain
13261verification errors if server certificate verification is not required.
13262With Postfix 2.8 and earlier, log the summary message and unconditionally
13263log trust-chain verification errors.  </dd>
13264
13265<dt> </dt> <dd> 2 Also log levels during TLS negotiation.  </dd>
13266
13267<dt> </dt> <dd> 3 Also log the hexadecimal and ASCII dump of the
13268TLS negotiation process.  </dd>
13269
13270<dt> </dt> <dd> 4 Also log the hexadecimal and ASCII dump of complete
13271transmission after STARTTLS. </dd>
13272
13273</dl>
13274
13275<p> Do not use "<a href="postconf.5.html#smtp_tls_loglevel">smtp_tls_loglevel</a> = 2" or higher except in case of
13276problems. Use of loglevel 4 is strongly discouraged. </p>
13277
13278<p> This feature is available in Postfix 2.2 and later.  </p>
13279
13280
13281</DD>
13282
13283<DT><b><a name="smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>
13284(default: medium)</b></DT><DD>
13285
13286<p> The minimum TLS cipher grade that the Postfix SMTP client will
13287use with
13288mandatory TLS encryption.  The default value "medium" is suitable
13289for most destinations with which you may want to enforce TLS, and
13290is beyond the reach of today's cryptanalytic methods. See
13291<a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> for information on how to configure ciphers
13292on a per-destination basis. </p>
13293
13294<p> The following cipher grades are supported: </p>
13295
13296<dl>
13297<dt><b>high</b></dt>
13298<dd> Enable only "HIGH" grade OpenSSL ciphers.  This setting may
13299be appropriate when all mandatory TLS destinations (e.g. when all
13300mail is routed to a suitably capable <a href="postconf.5.html#relayhost">relayhost</a>) support at least one
13301"HIGH" grade cipher. The underlying cipherlist is specified via the
13302<a href="postconf.5.html#tls_high_cipherlist">tls_high_cipherlist</a> configuration parameter, which you are strongly
13303encouraged not to change. </dd>
13304
13305<dt><b>medium</b></dt>
13306<dd> Enable "MEDIUM" grade or better OpenSSL ciphers.
13307The underlying cipherlist is specified via the <a href="postconf.5.html#tls_medium_cipherlist">tls_medium_cipherlist</a>
13308configuration parameter, which you are strongly encouraged not to change.
13309</dd>
13310
13311<dt><b>null</b></dt>
13312<dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication
13313without encryption.  This setting is only appropriate in the rare case
13314that all servers are prepared to use NULL ciphers (not normally enabled
13315in TLS servers). A plausible use-case is an LMTP server listening on a
13316UNIX-domain socket that is configured to support "NULL" ciphers. The
13317underlying cipherlist is specified via the <a href="postconf.5.html#tls_null_cipherlist">tls_null_cipherlist</a>
13318configuration parameter, which you are strongly encouraged not to
13319change. </dd>
13320
13321<dt><b>low</b></dt>
13322<dd> Enable "LOW" grade or stronger OpenSSL ciphers.  In Postfix
13323&ge; 3.8 this cipher grade is always identical to "medium".  Recent
13324versions of OpenSSL do not support any "LOW" grade ciphers.  In
13325earlier Postfix releases the underlying cipherlist was specified
13326via the <a href="postconf.5.html#tls_low_cipherlist">tls_low_cipherlist</a> configuration parameter, which you are
13327strongly encouraged not to change.  This obsolete cipher grade
13328SHOULD NOT be used.  </dd>
13329
13330<dt><b>export</b></dt>
13331<dd> Enable "EXPORT" grade or stronger OpenSSL ciphers.  In Postfix
13332&ge; 3.8 this cipher grade is always identical to "medium".  Recent
13333versions of OpenSSL do not support any "EXPORT" grade ciphers.  In
13334earlier Postfix releases the underlying cipherlist was specified
13335via the <a href="postconf.5.html#tls_export_cipherlist">tls_export_cipherlist</a> configuration parameter, which you are
13336strongly encouraged not to change.  This obsolete cipher grade
13337SHOULD NOT be used.  </dd>
13338
13339</dl>
13340
13341<p> The underlying cipherlists for grades other than "null" include
13342anonymous ciphers, but these are automatically filtered out if the
13343Postfix SMTP client is configured to verify server certificates.
13344You are very unlikely to need to take any steps to exclude anonymous
13345ciphers, they are excluded automatically as necessary.  If you must
13346exclude anonymous ciphers at the "may" or "encrypt" security levels,
13347when the Postfix SMTP client does not need or use peer certificates, set
13348"<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> = aNULL". To exclude anonymous ciphers only when
13349TLS is enforced, set "<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> = aNULL". </p>
13350
13351<p> This feature is available in Postfix 2.3 and later. </p>
13352
13353
13354</DD>
13355
13356<DT><b><a name="smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>
13357(default: empty)</b></DT><DD>
13358
13359<p> Additional list of ciphers or cipher types to exclude from the
13360Postfix SMTP client cipher list at mandatory TLS security levels. This list
13361works in addition to the exclusions listed with <a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a>
13362(see there for syntax details).  </p>
13363
13364<p> Starting with Postfix 2.6, the mandatory cipher exclusions can be
13365specified on a per-destination basis via the TLS policy "exclude"
13366attribute. See <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> for notes and examples. </p>
13367
13368<p> This feature is available in Postfix 2.3 and later. </p>
13369
13370
13371</DD>
13372
13373<DT><b><a name="smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>
13374(default: see "postconf -d" output)</b></DT><DD>
13375
13376<p> TLS protocols that the Postfix SMTP client will use with mandatory
13377TLS encryption.  In <a href="postconf.5.html">main.cf</a> the values are separated by whitespace,
13378commas or colons. In the policy table "protocols" attribute (see
13379<a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>) the only valid separator is colon. An empty value
13380means allow all protocols. </p>
13381
13382<p> The valid protocol names (see SSL_get_version(3)) are "SSLv2",
13383"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3".  Starting with
13384Postfix 3.6, the default value is "&gt;=TLSv1", which sets TLS 1.0 as
13385the lowest supported TLS protocol version (see below).  Older releases
13386use the "!" exclusion syntax, also described below.  </p>
13387
13388<p> As of Postfix 3.6, the preferred way to limit the range of
13389acceptable protocols is to set a lowest acceptable TLS protocol version
13390and/or a highest acceptable TLS protocol version.  To set the lower
13391bound include an element of the form: "&gt;=<i>version</i>" where
13392<i>version</i> is a either one of the TLS protocol names listed above,
13393or a hexadecimal number corresponding to the desired TLS protocol
13394version (0301 for TLS 1.0, 0302 for TLS 1.1, etc.).  For the upper
13395bound, use "&lt;=<i>version</i>".  There must be no whitespace between
13396the "&gt;=" or "&lt;=" symbols and the protocol name or number. </p>
13397
13398<p> Hexadecimal protocol numbers make it possible to specify protocol
13399bounds for TLS versions that are known to OpenSSL, but might not be
13400known to Postfix.  They cannot be used with the legacy exclusion syntax.
13401Leading "0" or "0x" prefixes are supported, but not required.
13402Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
13403"TLSv1".  Hexadecimal versions unknown to OpenSSL will fail to set the
13404upper or lower bound, and a warning will be logged.  Hexadecimal
13405versions should only be used when Postfix is linked with some future
13406version of OpenSSL that supports TLS 1.4 or later, but Postfix does not
13407yet support a symbolic name for that protocol version. </p>
13408
13409<p>Hexadecimal example (Postfix &ge; 3.6):</p>
13410<blockquote>
13411<pre>
13412# Allow only TLS 1.2 through (hypothetical) TLS 1.4, once supported
13413# in some future version of OpenSSL (presently a warning is logged).
13414<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = &gt;=TLSv1.2, &lt;=0305
13415# Allow only TLS 1.2 and up:
13416<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = &gt;=0x0303
13417</pre>
13418</blockquote>
13419
13420<p> With Postfix &lt; 3.6 there is no support for a minimum or maximum
13421version, and the protocol range is configured via protocol exclusions.
13422To require at least TLS 1.0, set "<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = !SSLv2,
13423!SSLv3". Listing the protocols to include, rather than the protocols to
13424exclude, is supported, but not recommended.  The exclusion syntax more
13425accurately matches the underlying OpenSSL interface.  </p>
13426
13427<p> When using the exclusion syntax, take care to ensure that the range
13428of protocols supported by the Postfix SMTP client is contiguous.  When
13429a protocol version is enabled, disabling any higher version implicitly
13430disables all versions above that higher version.  Thus, for example: </p>
13431
13432<blockquote>
13433<pre>
13434<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = !SSLv2, !SSLv3, !TLSv1.1
13435</pre>
13436</blockquote>
13437
13438<p> also disables any protocol versions higher than TLSv1.1 leaving
13439only "TLSv1" enabled.  </p>
13440
13441<p> Support for "TLSv1.3" was introduced in OpenSSL 1.1.1.  Disabling
13442this protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch
13443releases &ge; 3.0.14, 3.1.10, 3.2.7 and 3.3.2).  </p>
13444
13445<p> While the vast majority of SMTP servers with DANE TLSA records now
13446support at least TLS 1.2, a few still only support TLS 1.0.  If you use
13447"dane" or "dane-only" it is best not to disable TLSv1, except perhaps
13448via the policy table for destinations which you are sure will support
13449"TLSv1.2".  </p>
13450
13451<p> See the documentation of the <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> parameter and
13452<a href="TLS_README.html">TLS_README</a> for more information about security levels. </p>
13453
13454<p> Example: </p>
13455<pre>
13456# Preferred syntax with Postfix &ge; 3.6:
13457<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = &gt;=TLSv1.2, &lt;=TLSv1.3
13458# Legacy syntax:
13459<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
13460</pre>
13461
13462<p> This feature is available in Postfix 2.3 and later. </p>
13463
13464
13465</DD>
13466
13467<DT><b><a name="smtp_tls_note_starttls_offer">smtp_tls_note_starttls_offer</a>
13468(default: no)</b></DT><DD>
13469
13470<p> Log the hostname of a remote SMTP server that offers STARTTLS,
13471when TLS is not already enabled for that server. </p>
13472
13473<p> The logfile record looks like:  </p>
13474
13475<pre>
13476postfix/smtp[pid]:  Host offered STARTTLS: [name.of.host]
13477</pre>
13478
13479<p> This feature is available in Postfix 2.2 and later.  </p>
13480
13481
13482</DD>
13483
13484<DT><b><a name="smtp_tls_per_site">smtp_tls_per_site</a>
13485(default: empty)</b></DT><DD>
13486
13487<p> Optional lookup tables with the Postfix SMTP client TLS usage
13488policy by next-hop destination and by remote SMTP server hostname.
13489When both lookups succeed, the more specific per-site policy (NONE,
13490MUST, etc.) overrides the less specific one (MAY), and the more secure
13491per-site policy (MUST, etc.) overrides the less secure one (NONE).
13492With Postfix 2.3 and later <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> is strongly discouraged:
13493use <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> instead. </p>
13494
13495<p> Use of the bare hostname as the per-site table lookup key is
13496discouraged. Always use the full destination nexthop (enclosed in
13497[] with a possible ":port" suffix). A recipient domain or MX-enabled
13498transport next-hop with no port suffix may look like a bare hostname,
13499but is still a suitable <i>destination</i>. </p>
13500
13501<p> Specify a next-hop destination or server hostname on the left-hand
13502side; no wildcards are allowed. The next-hop destination is either
13503the recipient domain, or the destination specified with a <a href="transport.5.html">transport(5)</a>
13504table, the <a href="postconf.5.html#relayhost">relayhost</a> parameter, or the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter.
13505On the right hand side specify one of the following keywords:  </p>
13506
13507<dl>
13508
13509<dt> NONE </dt> <dd> Don't use TLS at all. This overrides a less
13510specific <b>MAY</b> lookup result from the alternate host or next-hop
13511lookup key, and overrides the global <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a>, <a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a>,
13512and <a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> settings. </dd>
13513
13514<dt> MAY </dt> <dd> Try to use TLS if the server announces support,
13515otherwise use an unencrypted connection. This has less precedence
13516than a more specific result (including <b>NONE</b>) from the alternate
13517host or next-hop lookup key, and has less precedence than the more
13518specific global "<a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> = yes" or "<a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>
13519= yes".  </dd>
13520
13521<dt> MUST_NOPEERMATCH </dt> <dd> Require TLS encryption, but do not
13522require that the remote SMTP server hostname matches the information
13523in the remote SMTP server certificate, or that the server certificate
13524was issued by a trusted CA. This overrides a less secure <b>NONE</b>
13525or a less specific <b>MAY</b> lookup result from the alternate host
13526or next-hop lookup key, and overrides the global <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a>,
13527<a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> and <a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> settings.  </dd>
13528
13529<dt> MUST </dt> <dd> Require TLS encryption, require that the remote
13530SMTP server hostname matches the information in the remote SMTP
13531server certificate, and require that the remote SMTP server certificate
13532was issued by a trusted CA. This overrides a less secure <b>NONE</b>
13533or <b>MUST_NOPEERMATCH</b> or a less specific <b>MAY</b> lookup
13534result from the alternate host or next-hop lookup key, and overrides
13535the global <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a>, <a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> and <a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>
13536settings.  </dd>
13537
13538</dl>
13539
13540<p> The above keywords correspond to the "none", "may", "encrypt" and
13541"verify" security levels for the new <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> parameter
13542introduced in Postfix 2.3. Starting with Postfix 2.3, and independently
13543of how the policy is specified, the <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> and
13544<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> parameters apply when TLS encryption
13545is mandatory. Connections for which encryption is optional typically
13546enable all "export" grade and better ciphers (see <a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>
13547and <a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a>). </p>
13548
13549<p> As long as no secure DNS lookup mechanism is available, false
13550hostnames in MX or CNAME responses can change the server hostname
13551that Postfix uses for TLS policy lookup and server certificate
13552verification. Even with a perfect match between the server hostname and
13553the server certificate, there is no guarantee that Postfix is connected
13554to the right server.  See <a href="TLS_README.html">TLS_README</a> (Closing a DNS loophole with obsolete
13555per-site TLS policies) for a possible work-around. </p>
13556
13557<p> This feature is available in Postfix 2.2 and later. With
13558Postfix 2.3 and later use <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> instead. </p>
13559
13560
13561</DD>
13562
13563<DT><b><a name="smtp_tls_policy_maps">smtp_tls_policy_maps</a>
13564(default: empty)</b></DT><DD>
13565
13566<p> Optional lookup tables with the Postfix SMTP client TLS security
13567policy by next-hop destination; when a non-empty value is specified,
13568this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.  See
13569<a href="TLS_README.html">TLS_README</a> for a more detailed discussion of TLS security levels.
13570</p>
13571
13572<p>
13573Specify zero or more "type:name" lookup tables, separated by
13574whitespace or comma. Tables will be searched in the specified order
13575until a match is found.
13576</p>
13577
13578<p> The TLS policy table is indexed by the full next-hop destination,
13579which is either the recipient domain, or the verbatim next-hop
13580specified in the transport table, $<a href="postconf.5.html#local_transport">local_transport</a>, $<a href="postconf.5.html#virtual_transport">virtual_transport</a>,
13581$<a href="postconf.5.html#relay_transport">relay_transport</a> or $<a href="postconf.5.html#default_transport">default_transport</a>. This includes any enclosing
13582square brackets and any non-default destination server port suffix. The
13583LMTP socket type prefix (inet: or unix:) is not included in the lookup
13584key. </p>
13585
13586<p> Only the next-hop domain, or $<a href="postconf.5.html#myhostname">myhostname</a> with LMTP over UNIX-domain
13587sockets, is used as the nexthop name for certificate verification. The
13588port and any enclosing square brackets are used in the table lookup key,
13589but are not used for server name verification. </p>
13590
13591<p> When the lookup key is a domain name without enclosing square brackets
13592or any <i>:port</i> suffix (typically the recipient domain), and the full
13593domain is not found in the table, just as with the <a href="transport.5.html">transport(5)</a> table,
13594the parent domain starting with a leading "." is matched recursively. This
13595allows one to specify a security policy for a recipient domain and all
13596its sub-domains. </p>
13597
13598<p> The lookup result is a security level, followed by an optional list
13599of whitespace and/or comma separated name=value attributes that override
13600related <a href="postconf.5.html">main.cf</a> settings. The TLS security levels in order of increasing
13601security are: </p>
13602
13603<dl>
13604
13605<dt><b><a href="TLS_README.html#client_tls_none">none</a></b></dt>
13606<dd>No TLS. No additional attributes are supported at this level. </dd>
13607
13608<dt><b><a href="TLS_README.html#client_tls_may">may</a></b></dt>
13609<dd>Opportunistic TLS. Since sending in the clear is acceptable,
13610demanding stronger than default TLS security merely reduces
13611interoperability. The optional "ciphers", "exclude", and "protocols"
13612attributes (available for opportunistic TLS with Postfix &ge; 2.6)
13613and "connection_reuse" attribute (Postfix &ge; 3.4) override the
13614"<a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>", "<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a>", "<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a>",
13615and
13616"<a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a>" configuration parameters. In the policy table,
13617multiple ciphers, protocols or excluded ciphers must be separated by colons,
13618as attribute values may not contain whitespace or commas. When opportunistic
13619TLS handshakes fail, Postfix retries the connection with TLS disabled.
13620This allows mail delivery to sites with non-interoperable TLS
13621implementations.</dd>
13622
13623<dt><b><a href="TLS_README.html#client_tls_encrypt">encrypt</a></b></dt>
13624<dd>Mandatory TLS encryption. At this level
13625and higher, the optional "protocols" attribute overrides the <a href="postconf.5.html">main.cf</a>
13626<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> parameter, the optional "ciphers" attribute
13627overrides the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> parameter, the
13628optional "exclude" attribute (Postfix &ge; 2.6) overrides the <a href="postconf.5.html">main.cf</a>
13629<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> parameter, and the optional
13630"connection_reuse" attribute (Postfix &ge; 3.4) overrides the
13631<a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a> parameter. In the policy table,
13632multiple ciphers, protocols or excluded ciphers must be separated by colons,
13633as attribute values may not contain whitespace or commas. </dd>
13634
13635<dt><b><a href="TLS_README.html#client_tls_dane">dane</a></b></dt>
13636<dd>Opportunistic DANE TLS.  The TLS policy for the destination is
13637obtained via TLSA records in DNSSEC.  If no TLSA records are found,
13638the effective security level used is <a
13639href="TLS_README.html#client_tls_may">may</a>.  If TLSA records are
13640found, but none are usable, the effective security level is <a
13641href="TLS_README.html#client_tls_encrypt">encrypt</a>.  When usable
13642TLSA records are obtained for the remote SMTP server, the
13643server certificate must match the TLSA records.  <a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a> (DANE)
13644TLS authentication and DNSSEC support is available with Postfix
136452.11 and later. The optional "connection_reuse" attribute (Postfix
13646&ge; 3.4) overrides the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a> parameter.
13647When the effective security level used is <a
13648href="TLS_README.html#client_tls_may">may</a>, the optional "ciphers",
13649"exclude", and "protocols" attributes (Postfix &ge; 2.6) override the
13650"<a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>", "<a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a>", and "<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a>"
13651configuration parameters.
13652When the effective security level used is <a
13653href="TLS_README.html#client_tls_encrypt">encrypt</a>, the optional "ciphers",
13654"exclude", and "protocols" attributes (Postfix &ge; 2.6) override the
13655"<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>", "<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>", and
13656"<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>" configuration parameters.
13657</dd>
13658
13659<dt><b><a href="TLS_README.html#client_tls_dane">dane-only</a></b></dt>
13660<dd>Mandatory DANE TLS.  The TLS policy for the destination is
13661obtained via TLSA records in DNSSEC.  If no TLSA records are found,
13662or none are usable, no connection is made to the server.  When
13663usable TLSA records are obtained for the remote SMTP server, the
13664server certificate must match the TLSA records.  <a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a> (DANE) TLS
13665authentication and DNSSEC support is available with Postfix 2.11
13666and later. The optional "ciphers", "exclude", and "protocols" attributes
13667(Postfix &ge; 2.6) override the "<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>",
13668"<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>", and "<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>"
13669configuration parameters. The optional "connection_reuse" attribute
13670(Postfix &ge; 3.4) overrides the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a> parameter.
13671</dd>
13672
13673<dt><b><a href="TLS_README.html#client_tls_fprint">fingerprint</a></b></dt>
13674<dd>Certificate fingerprint
13675verification. Available with Postfix 2.5 and later. At this security
13676level, there are no trusted Certification Authorities. The certificate
13677trust chain, expiration date, ... are not checked. Instead,
13678the optional "match" attribute, or else the <a href="postconf.5.html">main.cf</a>
13679<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a></b> parameter, lists the certificate
13680fingerprints or the public key fingerprint (Postfix 2.9 and later)
13681of the valid server certificate. The digest
13682algorithm used to calculate the fingerprint is selected by the
13683<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a></b> parameter. Multiple fingerprints can
13684be combined with a "|" delimiter in a single match attribute, or multiple
13685match attributes can be employed. The ":" character is not used as a
13686delimiter as it occurs between each pair of fingerprint (hexadecimal)
13687digits. The optional "ciphers", "exclude", and "protocols" attributes
13688(Postfix &ge; 2.6) override the "<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>",
13689"<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>", and "<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>"
13690configuration parameters. The optional "connection_reuse" attribute
13691(Postfix &ge; 3.4) overrides the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a>
13692parameter. </dd>
13693
13694<dt><b><a href="TLS_README.html#client_tls_verify">verify</a></b></dt>
13695<dd>Mandatory TLS verification.  At this security
13696level, DNS MX lookups are trusted to be secure enough, and the name
13697verified in the server certificate is usually obtained indirectly via
13698unauthenticated DNS MX lookups.  The optional "match" attribute overrides
13699the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> parameter. In the policy table,
13700multiple match patterns and strategies must be separated by colons.
13701In practice explicit control over matching is more common with the
13702"secure" policy, described below. The optional "ciphers", "exclude",
13703and "protocols" attributes (Postfix &ge; 2.6) override the
13704"<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>", "<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>", and
13705"<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>" configuration parameters. The optional
13706"connection_reuse" attribute (Postfix &ge; 3.4) overrides the <a href="postconf.5.html">main.cf</a>
13707<a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a> parameter. </dd>
13708
13709<dt><b><a href="TLS_README.html#client_tls_secure">secure</a></b></dt>
13710<dd>Secure-channel TLS. At this security level, DNS
13711MX lookups, though potentially used to determine the candidate next-hop
13712gateway IP addresses, are <b>not</b> trusted to be secure enough for TLS
13713peername verification. Instead, the default name verified in the server
13714certificate is obtained directly from the next-hop, or is explicitly
13715specified via the optional "match" attribute which overrides the
13716<a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> parameter. In the policy table,
13717multiple match patterns and strategies must be separated by colons.
13718The match attribute is most useful when multiple domains are supported by
13719a common server: the policy entries for additional domains specify matching
13720rules for the primary domain certificate. While transport table overrides
13721that route the secondary domains to the primary nexthop also allow secure
13722verification, they risk delivery to the wrong destination when domains
13723change hands or are re-assigned to new gateways. With the "match"
13724attribute approach, routing is not perturbed, and mail is deferred if
13725verification of a new MX host fails. The optional "ciphers", "exclude",
13726and "protocols" attributes (Postfix &ge; 2.6) override the
13727"<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>", "<a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a>", and
13728"<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a>" configuration parameters. The optional
13729"connection_reuse" attribute (Postfix &ge; 3.4) overrides the <a href="postconf.5.html">main.cf</a>
13730<a href="postconf.5.html#smtp_tls_connection_reuse">smtp_tls_connection_reuse</a> parameter. </dd>
13731
13732</dl>
13733
13734<p>
13735Example:
13736</p>
13737
13738<pre>
13739/etc/postfix/<a href="postconf.5.html">main.cf</a>:
13740    <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/tls_policy
13741    # Postfix 2.5 and later.
13742    #
13743    # The default digest is sha256 with Postfix &ge; 3.6 and
13744    # compatibility level &ge; 3.
13745    #
13746    <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> = sha256
13747</pre>
13748
13749<pre>
13750/etc/postfix/tls_policy:
13751    example.edu                 none
13752    example.mil                 may
13753    example.gov                 encrypt protocols=TLSv1
13754    example.com                 verify ciphers=high
13755    example.net                 secure
13756    .example.net                secure match=.example.net:example.net
13757    [mail.example.org]:587      secure match=nexthop
13758    # Postfix 2.5 and later
13759    [thumb.example.org]          fingerprint
13760        match=b6:b4:72:34:e2:59:cd:...:c2:ca:63:0d:4d:cc:2c:7d:84:de:e6:2f
13761        match=51:e9:af:2e:1e:40:1f:...:64:0a:30:35:2d:09:16:31:5a:eb:82:76
13762</pre>
13763
13764<p> <b>Note:</b> The "hostname" strategy if listed in a non-default
13765setting of <a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> or in the "match" attribute
13766in the policy table can render the "secure" level vulnerable to
13767DNS forgery. Do not use the "hostname" strategy for secure-channel
13768configurations in environments where DNS security is not assured. </p>
13769
13770<p> This feature is available in Postfix 2.3 and later. </p>
13771
13772
13773</DD>
13774
13775<DT><b><a name="smtp_tls_protocols">smtp_tls_protocols</a>
13776(default: see postconf -d output)</b></DT><DD>
13777
13778<p> TLS protocols that the Postfix SMTP client will use with
13779opportunistic TLS encryption.  In <a href="postconf.5.html">main.cf</a> the values are separated by
13780whitespace, commas or colons. In the policy table "protocols" attribute
13781(see <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>) the only valid separator is colon.  An empty
13782value means allow all protocols. </p>
13783
13784<p> The valid protocol names (see SSL_get_version(3)) are "SSLv2",
13785"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3".  Starting with
13786Postfix 3.6, the default value is "&gt;=TLSv1", which sets TLS 1.0 as
13787the lowest supported TLS protocol version (see below).  Older releases
13788use the "!" exclusion syntax, also described below.  </p>
13789
13790<p> As of Postfix 3.6, the preferred way to limit the range of
13791acceptable protocols is to set the lowest acceptable TLS protocol
13792version and/or the highest acceptable TLS protocol version.  To set the
13793lower bound include an element of the form: "&gt;=<i>version</i>" where
13794<i>version</i> is either one of the TLS protocol names listed above,
13795or a hexadecimal number corresponding to the desired TLS protocol
13796version (0301 for TLS 1.0, 0302 for TLS 1.1, etc.).  For the upper
13797bound, use "&lt;=<i>version</i>".  There must be no whitespace between
13798the "&gt;=" or "&lt;=" symbols and the protocol name or number. </p>
13799
13800<p> Hexadecimal protocol numbers make it possible to specify protocol
13801bounds for TLS versions that are known to OpenSSL, but might not be
13802known to Postfix.  They cannot be used with the legacy exclusion syntax.
13803Leading "0" or "0x" prefixes are supported, but not required.
13804Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
13805"TLSv1".  Hexadecimal versions unknown to OpenSSL will fail to set the
13806upper or lower bound, and a warning will be logged.  Hexadecimal
13807versions should only be used when Postfix is linked with some future
13808version of OpenSSL that supports TLS 1.4 or later, but Postfix does not
13809yet support a symbolic name for that protocol version. </p>
13810
13811<p>Hexadecimal example (Postfix &ge; 3.6):</p>
13812<blockquote>
13813<pre>
13814# Allow only TLS 1.0 through (hypothetical) TLS 1.4, once supported
13815# in some future version of OpenSSL (presently a warning is logged).
13816<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = &gt;=TLSv1, &lt;=0305
13817# Allow only TLS 1.0 and up:
13818<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = &gt;=0x0301
13819</pre>
13820</blockquote>
13821
13822<p> With Postfix &lt; 3.6 there is no support for a minimum or maximum
13823version, and the protocol range is configured via protocol exclusions.
13824To require at least TLS 1.0, set "<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = !SSLv2, !SSLv3".
13825Listing the protocols to include, rather than protocols to exclude, is
13826supported, but not recommended.  The exclusion form more accurately
13827matches the underlying OpenSSL interface.  </p>
13828
13829<p> When using the exclusion syntax, take care to ensure that the range of
13830protocols advertised by an SSL/TLS client is contiguous.  When a protocol
13831version is enabled, disabling any higher version implicitly disables all
13832versions above that higher version.  Thus, for example:
13833</p>
13834<blockquote>
13835<pre>
13836<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = !SSLv2, !SSLv3, !TLSv1.1
13837</pre>
13838</blockquote>
13839<p> also disables any protocols version higher than TLSv1.1 leaving
13840only "TLSv1" enabled.  </p>
13841
13842<p> Support for "TLSv1.3" was introduced in OpenSSL 1.1.1.  Disabling
13843this protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch
13844releases &ge; 3.0.14, 3.1.10, 3.2.7 and 3.3.2).  </p>
13845
13846<p> Example: </p>
13847<pre>
13848# Preferred syntax with Postfix &ge; 3.6:
13849<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = &gt;=TLSv1, &lt;=TLSv1.3
13850# Legacy syntax:
13851<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = !SSLv2, !SSLv3
13852</pre>
13853
13854<p> This feature is available in Postfix 2.6 and later. </p>
13855
13856
13857</DD>
13858
13859<DT><b><a name="smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a>
13860(default: 9)</b></DT><DD>
13861
13862<p> The verification depth for remote SMTP server certificates. A depth
13863of 1 is sufficient if the issuing CA is listed in a local CA file. </p>
13864
13865<p> The default verification depth is 9 (the OpenSSL default) for
13866compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
13867the default value was 5, but the limit was not actually enforced. If
13868you have set this to a lower non-default value, certificates with longer
13869trust chains may now fail to verify. Certificate chains with 1 or 2
13870CAs are common, deeper chains are more rare and any number between 5
13871and 9 should suffice in practice. You can choose a lower number if,
13872for example, you trust certificates directly signed by an issuing CA
13873but not any CAs it delegates to. </p>
13874
13875<p> This feature is available in Postfix 2.2 and later.  </p>
13876
13877
13878</DD>
13879
13880<DT><b><a name="smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a>
13881(default: nexthop, dot-nexthop)</b></DT><DD>
13882
13883<p> How the Postfix SMTP client verifies the server certificate
13884peername for the "secure" TLS security level. In a "secure" TLS policy table
13885($<a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>) entry the optional "match" attribute
13886overrides this <a href="postconf.5.html">main.cf</a> setting. </p>
13887
13888<p> This parameter specifies one or more patterns or strategies separated
13889by commas, whitespace or colons.  In the policy table the only valid
13890separator is the colon character. </p>
13891
13892<p> For a description of the pattern and strategy syntax see the
13893<a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> parameter. The "hostname" strategy should
13894be avoided in this context, as in the absence of a secure global DNS, using
13895the results of MX lookups in certificate verification is not immune to active
13896(man-in-the-middle) attacks on DNS. </p>
13897
13898<p>
13899Sample <a href="postconf.5.html">main.cf</a> setting:
13900</p>
13901
13902<blockquote>
13903<pre>
13904<a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> = nexthop
13905</pre>
13906</blockquote>
13907
13908<p>
13909Sample policy table override:
13910</p>
13911
13912<blockquote>
13913<pre>
13914example.net     secure match=example.com:.example.com
13915.example.net    secure match=example.com:.example.com
13916</pre>
13917</blockquote>
13918
13919<p> This feature is available in Postfix 2.3 and later. </p>
13920
13921
13922</DD>
13923
13924<DT><b><a name="smtp_tls_security_level">smtp_tls_security_level</a>
13925(default: empty)</b></DT><DD>
13926
13927<p> The default SMTP TLS security level for the Postfix SMTP client.
13928When a non-empty value is specified, this overrides the obsolete
13929parameters <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a>, <a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a>, and <a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>;
13930when no value is specified for <a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> or the obsolete
13931parameters, the default SMTP TLS security level is
13932<a href="TLS_README.html#client_tls_none">none</a>. </p>
13933
13934<p> Specify one of the following security levels: </p>
13935
13936<dl>
13937
13938<dt><b><a href="TLS_README.html#client_tls_none">none</a></b></dt>
13939<dd> No TLS. TLS will not be used unless enabled for specific
13940destinations via <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>. </dd>
13941
13942<dt><b><a href="TLS_README.html#client_tls_may">may</a></b></dt>
13943<dd> Opportunistic TLS. Use TLS if this is supported by the remote
13944SMTP server, otherwise use plaintext. Since
13945sending in the clear is acceptable, demanding stronger than default TLS
13946security merely reduces interoperability.
13947The "<a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>" and "<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a>" (Postfix &ge; 2.6)
13948configuration parameters provide control over the protocols and
13949cipher grade used with opportunistic TLS.  With earlier releases the
13950opportunistic TLS cipher grade is always "export" and no protocols
13951are disabled.
13952When TLS handshakes fail, the connection is retried with TLS disabled.
13953This allows mail delivery to sites with non-interoperable TLS
13954implementations. </dd>
13955
13956<dt><b><a href="TLS_README.html#client_tls_encrypt">encrypt</a></b></dt>
13957<dd>Mandatory TLS encryption. Since a minimum
13958level of security is intended, it is reasonable to be specific about
13959sufficiently secure protocol versions and ciphers. At this security level
13960and higher, the <a href="postconf.5.html">main.cf</a> parameters <a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> and
13961<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> specify the TLS protocols and minimum
13962cipher grade which the administrator considers secure enough for
13963mandatory encrypted sessions. This security level is not an appropriate
13964default for systems delivering mail to the Internet. </dd>
13965
13966<dt><b><a href="TLS_README.html#client_tls_dane">dane</a></b></dt>
13967<dd>Opportunistic DANE TLS.  At this security level, the TLS policy
13968for the destination is obtained via DNSSEC.  For TLSA policy to be
13969in effect, the destination domain's containing DNS zone must be
13970signed and the Postfix SMTP client's operating system must be
13971configured to send its DNS queries to a recursive DNS nameserver
13972that is able to validate the signed records.  Each MX host's DNS
13973zone should also be signed, and should publish DANE TLSA (<a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a>)
13974records that specify how that MX host's TLS certificate is to be
13975verified.  TLSA records do not preempt the normal SMTP MX host
13976selection algorithm, if some MX hosts support TLSA and others do
13977not, TLS security will vary from delivery to delivery.  It is up
13978to the domain owner to configure their MX hosts and their DNS
13979sensibly.  To configure the Postfix SMTP client for DNSSEC lookups
13980see the documentation for the <a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a> <a href="postconf.5.html">main.cf</a>
13981parameter.  When DNSSEC-validated TLSA records are not found the
13982effective tls security level is "may".  When TLSA records are found,
13983but are all unusable the effective security level is "encrypt".  For
13984purposes of protocol and cipher selection, the "dane" security level
13985is treated like a "mandatory" TLS security level, and weak ciphers
13986and protocols are disabled.  Since DANE authenticates server
13987certificates the "aNULL" cipher-suites are transparently excluded
13988at this level, no need to configure this manually.  <a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a> (DANE)
13989TLS authentication is available with Postfix 2.11 and later.  </dd>
13990
13991<dt><b><a href="TLS_README.html#client_tls_dane">dane-only</a></b></dt>
13992<dd>Mandatory DANE TLS.  This is just like "dane" above, but DANE
13993TLSA authentication is required.  There is no fallback to "may" or
13994"encrypt" when TLSA records are missing or unusable.  <a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a>
13995(DANE) TLS authentication is available with Postfix 2.11 and later.
13996</dd>
13997
13998<dt><b><a href="TLS_README.html#client_tls_fprint">fingerprint</a></b></dt>
13999<dd>Certificate fingerprint verification.
14000At this security level, there are no trusted Certification Authorities.
14001The certificate trust chain, expiration date, etc., are
14002not checked. Instead, the <b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a></b>
14003parameter lists the certificate fingerprint or public key fingerprint
14004(Postfix 2.9 and later) of the valid server certificate. The digest
14005algorithm used to calculate the fingerprint is selected by the
14006<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a></b> parameter. Available with Postfix
140072.5 and later.  </dd>
14008
14009<dt><b><a href="TLS_README.html#client_tls_verify">verify</a></b></dt>
14010<dd>Mandatory TLS verification. At this security
14011level, DNS MX lookups are trusted to be secure enough, and the name
14012verified in the server certificate is usually obtained indirectly
14013via unauthenticated DNS MX lookups. The <a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a>
14014parameter controls how the server name is verified. In practice explicit
14015control over matching is more common at the "secure" level, described
14016below. This security level is not an appropriate default for systems
14017delivering mail to the Internet. </dd>
14018
14019<dt><b><a href="TLS_README.html#client_tls_secure">secure</a></b></dt>
14020<dd>Secure-channel TLS.  At this security level,
14021DNS MX lookups, though potentially used to determine the candidate
14022next-hop gateway IP addresses, are <b>not</b> trusted to be secure enough
14023for TLS peername verification. Instead, the default name verified in
14024the server certificate is obtained from the next-hop domain as specified
14025in the <a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> configuration parameter. The default
14026matching rule is that a server certificate matches when its name is equal
14027to or is a sub-domain of the nexthop domain. This security level is not
14028an appropriate default for systems delivering mail to the Internet. </dd>
14029
14030</dl>
14031
14032<p>
14033Examples:
14034</p>
14035
14036<pre>
14037# No TLS. Formerly: <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a>=no and <a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a>=no.
14038<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = none
14039</pre>
14040
14041<pre>
14042# Opportunistic TLS.
14043<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = may
14044# Do not tweak opportunistic ciphers or protocols unless it is essential
14045# to do so (if a security vulnerability is found in the SSL library that
14046# can be mitigated by disabling a particular protocol or raising the
14047# cipher grade).
14048<a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a> = medium
14049<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = &gt;=TLSv1
14050# Legacy (Postfix &lt; 3.6) syntax:
14051<a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> = !SSLv2, !SSLv3
14052</pre>
14053
14054<pre>
14055# Mandatory (high-grade) TLS encryption.
14056<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = encrypt
14057<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> = high
14058</pre>
14059
14060<pre>
14061# Authenticated TLS 1.2 or better matching the nexthop domain or a
14062# subdomain.
14063<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = secure
14064<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> = high
14065<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = &gt;=TLSv1.2
14066<a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> = nexthop, dot-nexthop
14067</pre>
14068
14069<pre>
14070# Certificate fingerprint verification (Postfix &ge; 2.5).
14071# The CA-less "fingerprint" security level only scales to a limited
14072# number of destinations. As a global default rather than a per-site
14073# setting, this is practical only when mail for all recipients is sent
14074# to a central mail hub.
14075<a href="postconf.5.html#relayhost">relayhost</a> = [mailhub.example.com]
14076<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = fingerprint
14077<a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> = &gt;=TLSv1.2
14078<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> = high
14079<a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> =
14080    3D:95:34:51:...:40:99:C0:C1
14081    EC:3B:2D:B0:...:A3:9D:72:F6
14082</pre>
14083
14084<p> This feature is available in Postfix 2.3 and later. </p>
14085
14086
14087</DD>
14088
14089<DT><b><a name="smtp_tls_servername">smtp_tls_servername</a>
14090(default: empty)</b></DT><DD>
14091
14092<p> Optional name to send to the remote SMTP server in the TLS Server
14093Name Indication (SNI) extension.  The SNI extension is always on when
14094DANE is used to authenticate the server, and in that case the SNI name
14095sent is the one required by <a href="https://tools.ietf.org/html/rfc7672">RFC7672</a> and this parameter is ignored. </p>
14096
14097<p> Some SMTP servers use the received SNI name to select an appropriate
14098certificate chain to present to the client.  While this may improve
14099interoperability with such servers, it may reduce interoperability with
14100other servers that choose to abort the connection when they don't have a
14101certificate chain configured for the requested name.  Such servers
14102should select a default certificate chain and continue the handshake,
14103but some may not.  Therefore, absent DANE, no SNI name is sent by
14104default. </p>
14105
14106<p> The SNI name must be either a valid DNS hostname, or else one of the
14107special values <b>hostname</b> or <b>nexthop</b>, which select either the
14108remote hostname or the nexthop domain respectively.  DNS names for SNI must be
14109in A-label (punycode) form.  Invalid DNS names log a configuration error
14110warning and mail delivery is deferred.  </p>
14111
14112<p> Except when using a <a href="postconf.5.html#relayhost">relayhost</a> to forward all email, the only
14113sensible non-empty <a href="postconf.5.html">main.cf</a> setting for this parameter is
14114<b>hostname</b>.  Other non-empty values are only practical on a
14115per-destination basis via the <b>servername</b> attribute of the Postfix
14116TLS <a href="TLS_README.html#client_tls_policy">policy table</a>.  When
14117in doubt, leave this parameter empty, and configure per-destination SNI
14118as needed. </p>
14119
14120<p> This feature is available in Postfix 3.4 and later.  </p>
14121
14122
14123</DD>
14124
14125<DT><b><a name="smtp_tls_session_cache_database">smtp_tls_session_cache_database</a>
14126(default: empty)</b></DT><DD>
14127
14128<p> Name of the file containing the optional Postfix SMTP client
14129TLS session cache. Specify a database type that supports enumeration,
14130such as <b>btree</b> or <b>sdbm</b>; there is no need to support
14131concurrent access.  The file is created if it does not exist. The <a href="smtp.8.html">smtp(8)</a>
14132daemon does not use this parameter directly, rather the cache is
14133implemented indirectly in the <a href="tlsmgr.8.html">tlsmgr(8)</a> daemon. This means that
14134per-smtp-instance <a href="master.5.html">master.cf</a> overrides of this parameter are not effective.
14135Note that each of the cache databases supported by <a href="tlsmgr.8.html">tlsmgr(8)</a> daemon:
14136$<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a>, $<a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a>
14137(and with Postfix 2.3 and later $<a href="postconf.5.html#lmtp_tls_session_cache_database">lmtp_tls_session_cache_database</a>), needs to
14138be stored separately. It is not at this time possible to store multiple
14139caches in a single database. </p>
14140
14141<p> Note: <b>dbm</b> databases are not suitable. TLS
14142session objects are too large. </p>
14143
14144<p> As of version 2.5, Postfix no longer uses root privileges when
14145opening this file. The file should now be stored under the Postfix-owned
14146<a href="postconf.5.html#data_directory">data_directory</a>. As a migration aid, an attempt to open the file
14147under a non-Postfix directory is redirected to the Postfix-owned
14148<a href="postconf.5.html#data_directory">data_directory</a>, and a warning is logged. </p>
14149
14150<p> Example: </p>
14151
14152<pre>
14153<a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> = <a href="DATABASE_README.html#types">btree</a>:/var/db/postfix/smtp_scache
14154</pre>
14155
14156<p> This feature is available in Postfix 2.2 and later.  </p>
14157
14158
14159</DD>
14160
14161<DT><b><a name="smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a>
14162(default: 3600s)</b></DT><DD>
14163
14164<p> The expiration time of Postfix SMTP client TLS session cache
14165information.  A cache cleanup is performed periodically
14166every $<a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a> seconds. As with
14167$<a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a>, this parameter is implemented in the
14168<a href="tlsmgr.8.html">tlsmgr(8)</a> daemon and therefore per-smtp-instance <a href="master.5.html">master.cf</a> overrides
14169are not possible. </p>
14170
14171<p> As of Postfix 2.11 this setting cannot exceed 100 days.  If set
14172&le; 0, session caching is disabled.  If set to a positive value
14173less than 2 minutes, the minimum value of 2 minutes is used instead.  </p>
14174
14175<p> Specify a non-zero time value (an integral value plus an optional
14176one-letter suffix that specifies the time unit).  Time units: s
14177(seconds), m (minutes), h (hours), d (days), w (weeks).
14178The default time unit is s (seconds).  </p>
14179
14180<p> This feature is available in Postfix 2.2 and later.  </p>
14181
14182
14183</DD>
14184
14185<DT><b><a name="smtp_tls_trust_anchor_file">smtp_tls_trust_anchor_file</a>
14186(default: empty)</b></DT><DD>
14187
14188<p> Zero or more PEM-format files with trust-anchor certificates
14189and/or public keys.  If the parameter is not empty the root CAs in
14190CAfile and CApath are no longer trusted.  Rather, the Postfix SMTP
14191client will only trust certificate-chains signed by one of the
14192trust-anchors contained in the chosen files.  The specified
14193trust-anchor certificates and public keys are not subject to
14194expiration, and need not be (self-signed) root CAs.  They may, if
14195desired, be intermediate certificates. Therefore, these certificates
14196also may be found "in the middle" of the trust chain presented by
14197the remote SMTP server, and any untrusted issuing parent certificates
14198will be ignored.  Specify a list of pathnames separated by comma
14199or whitespace.  </p>
14200
14201<p>  Whether specified in <a href="postconf.5.html">main.cf</a>, or on a per-destination basis,
14202the trust-anchor PEM file must be accessible to the Postfix SMTP
14203client in the chroot jail if applicable.  The trust-anchor file
14204should contain only certificates and public keys, no private key
14205material, and must be readable by the non-privileged $<a href="postconf.5.html#mail_owner">mail_owner</a>
14206user.  This allows destinations to be bound to a set of specific
14207CAs or public keys without trusting the same CAs for all destinations.
14208</p>
14209
14210<p> The <a href="postconf.5.html">main.cf</a> parameter supports single-purpose Postfix installations
14211that send mail to a fixed set of SMTP peers.  At most sites, if
14212trust-anchor files are used at all, they will be specified on a
14213per-destination basis via the "tafile" attribute of the "verify"
14214and "secure" levels in <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>.  </p>
14215
14216<p> The underlying mechanism is in support of <a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a> (DANE TLSA),
14217which defines mechanisms for an SMTP client MTA to securely determine
14218server TLS certificates via DNS.  </p>
14219
14220<p> If you want your trust anchors to be public keys, with OpenSSL
14221you can extract a single PEM public key from a PEM X.509 file
14222containing a single certificate, as follows: </p>
14223
14224<blockquote>
14225<pre>
14226$ openssl x509 -in cert.pem -out ta-key.pem -noout -pubkey
14227</pre>
14228</blockquote>
14229
14230<p> This feature is available in Postfix 2.11 and later.  </p>
14231
14232
14233</DD>
14234
14235<DT><b><a name="smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a>
14236(default: hostname)</b></DT><DD>
14237
14238<p> How the Postfix SMTP client verifies the server certificate
14239peername for the
14240"verify" TLS security level. In a "verify" TLS policy table
14241($<a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>) entry the optional "match" attribute
14242overrides this <a href="postconf.5.html">main.cf</a> setting. </p>
14243
14244<p> This parameter specifies one or more patterns or strategies separated
14245by commas, whitespace or colons.  In the policy table the only valid
14246separator is the colon character. </p>
14247
14248<p> Patterns specify domain names, or domain name suffixes: </p>
14249
14250<dl>
14251
14252<dt><i>example.com</i></dt> <dd> Match the <i>example.com</i> domain,
14253i.e. one of the names in the server certificate must be <i>example.com</i>.
14254Upper and lower case distinctions are ignored. </dd>
14255
14256<dt><i>.example.com</i></dt>
14257<dd> Match subdomains of the <i>example.com</i> domain, i.e. match
14258a name in the server certificate that consists of a non-zero number of
14259labels followed by a <i>.example.com</i> suffix. Case distinctions are
14260ignored.</dd>
14261
14262</dl>
14263
14264<p> Strategies specify a transformation from the next-hop domain
14265to the expected name in the server certificate: </p>
14266
14267<dl>
14268
14269<dt>nexthop</dt>
14270<dd> Match against the next-hop domain, which is either the recipient
14271domain, or the transport next-hop configured for the domain stripped of
14272any optional socket type prefix, enclosing square brackets and trailing
14273port. When MX lookups are not suppressed, this is the original nexthop
14274domain prior to the MX lookup, not the result of the MX lookup. For
14275LMTP delivery via UNIX-domain sockets, the verified next-hop name is
14276$<a href="postconf.5.html#myhostname">myhostname</a>.  This strategy is suitable for use with the "secure"
14277policy. Case is ignored.</dd>
14278
14279<dt>dot-nexthop</dt>
14280<dd> As above, but match server certificate names that are subdomains
14281of the next-hop domain. Case is ignored.</dd>
14282
14283<dt>hostname</dt> <dd> Match against the hostname of the server, often
14284obtained via an unauthenticated DNS MX lookup. For LMTP delivery via
14285UNIX-domain sockets, the verified name is $<a href="postconf.5.html#myhostname">myhostname</a>. This matches
14286the verification strategy of the "MUST" keyword in the obsolete
14287<a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> table, and is suitable for use with the "verify"
14288security level. When the next-hop name is enclosed in square brackets
14289to suppress MX lookups, the "hostname" strategy is the same as the
14290"nexthop" strategy. Case is ignored.</dd>
14291
14292</dl>
14293
14294<p>
14295Sample <a href="postconf.5.html">main.cf</a> setting:
14296</p>
14297
14298<pre>
14299<a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> = hostname, nexthop, dot-nexthop
14300</pre>
14301
14302<p>
14303Sample policy table override:
14304</p>
14305
14306<pre>
14307example.com     verify  match=hostname:nexthop
14308.example.com    verify  match=example.com:.example.com:hostname
14309</pre>
14310
14311<p> This feature is available in Postfix 2.3 and later. </p>
14312
14313
14314</DD>
14315
14316<DT><b><a name="smtp_tls_wrappermode">smtp_tls_wrappermode</a>
14317(default: no)</b></DT><DD>
14318
14319<p> Request that the Postfix SMTP client connects using the
14320SUBMISSIONS/SMTPS protocol instead of using the STARTTLS command. </p>
14321
14322<p> This mode requires "<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = encrypt" or
14323stronger. </p>
14324
14325<p> Example: deliver all remote mail via a provider's server
14326"mail.example.com".  </p>
14327
14328<pre>
14329/etc/postfix/<a href="postconf.5.html">main.cf</a>:
14330    # Client-side SMTPS requires "encrypt" or stronger.
14331    <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = encrypt
14332    <a href="postconf.5.html#smtp_tls_wrappermode">smtp_tls_wrappermode</a> = yes
14333    # The [] suppress MX lookups.
14334    <a href="postconf.5.html#relayhost">relayhost</a> = [mail.example.com]:465
14335</pre>
14336
14337<p> More examples are in <a href="TLS_README.html">TLS_README</a>, including examples for older
14338Postfix versions. </p>
14339
14340<p> This feature is available in Postfix 3.0 and later.  </p>
14341
14342
14343</DD>
14344
14345<DT><b><a name="smtp_use_tls">smtp_use_tls</a>
14346(default: no)</b></DT><DD>
14347
14348<p> Opportunistic mode: use TLS when a remote SMTP server announces
14349STARTTLS support, otherwise send the mail in the clear. Beware:
14350some SMTP servers offer STARTTLS even if it is not configured.  With
14351Postfix &lt; 2.3, if the TLS handshake fails, and no other server is
14352available, delivery is deferred and mail stays in the queue. If this
14353is a concern for you, use the <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> feature instead.  </p>
14354
14355<p> This feature is available in Postfix 2.2 and later. With
14356Postfix 2.3 and later use <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> instead. </p>
14357
14358
14359</DD>
14360
14361<DT><b><a name="smtp_xforward_timeout">smtp_xforward_timeout</a>
14362(default: 300s)</b></DT><DD>
14363
14364<p>
14365The Postfix SMTP client time limit for sending the XFORWARD command,
14366and for receiving the remote SMTP server response.
14367</p>
14368
14369<p> Specify a non-zero time value (an integral value plus an optional
14370one-letter suffix that specifies the time unit).  Time units: s
14371(seconds), m (minutes), h (hours), d (days), w (weeks).
14372The default time unit is s (seconds).  </p>
14373
14374<p>
14375This feature is available in Postfix 2.1 and later.
14376</p>
14377
14378
14379</DD>
14380
14381<DT><b><a name="smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a>
14382(default: $<a href="postconf.5.html#authorized_verp_clients">authorized_verp_clients</a>)</b></DT><DD>
14383
14384<p> What remote SMTP clients are allowed to specify the XVERP command.
14385This command requests that mail be delivered one recipient at a
14386time with a per recipient return address.  </p>
14387
14388<p> By default, no clients are allowed to specify XVERP.  </p>
14389
14390<p> This parameter was renamed with Postfix version 2.1. The default value
14391is backwards compatible with Postfix version 2.0.  </p>
14392
14393<p> Specify a list of network/netmask patterns, separated by commas
14394and/or whitespace. The mask specifies the number of bits in the
14395network part of a host address. You can also specify hostnames or
14396.domain names (the initial dot causes the domain to match any name
14397below it),  "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns.  A "/file/name"
14398pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table
14399is matched when a table entry matches a lookup string (the lookup
14400result is ignored).  Continue long lines by starting the next line
14401with whitespace. Specify "!pattern" to exclude an address or network
14402block from the list. The form "!/file/name" is supported only in
14403Postfix version 2.4 and later.  </p>
14404
14405<p> Note: IP version 6 address information must be specified inside
14406<tt>[]</tt> in the <a href="postconf.5.html#smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a> value, and in
14407files specified with "/file/name".  IP version 6 addresses contain
14408the ":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
14409pattern.  </p>
14410
14411
14412</DD>
14413
14414<DT><b><a name="smtpd_authorized_xclient_hosts">smtpd_authorized_xclient_hosts</a>
14415(default: empty)</b></DT><DD>
14416
14417<p>
14418What remote SMTP clients are allowed to use the XCLIENT feature.  This
14419command overrides remote SMTP client information that is used for access
14420control. Typical use is for SMTP-based content filters, fetchmail-like
14421programs, or SMTP server access rule testing. See the <a href="XCLIENT_README.html">XCLIENT_README</a>
14422document for details.
14423</p>
14424
14425<p>
14426This feature is available in Postfix 2.1 and later.
14427</p>
14428
14429<p>
14430By default, no clients are allowed to specify XCLIENT.
14431</p>
14432
14433<p>
14434Specify a list of network/netmask patterns, separated by commas
14435and/or whitespace. The mask specifies the number of bits in the
14436network part of a host address. You can also specify hostnames or
14437.domain names (the initial dot causes the domain to match any name
14438below it),  "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns.  A "/file/name"
14439pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table
14440is matched when a table entry matches a lookup string (the lookup
14441result is ignored).  Continue long lines by starting the next line
14442with whitespace. Specify "!pattern" to exclude an address or network
14443block from the list. The form "!/file/name" is supported only in
14444Postfix version 2.4 and later.  </p>
14445
14446<p> Note: IP version 6 address information must be specified inside
14447<tt>[]</tt> in the <a href="postconf.5.html#smtpd_authorized_xclient_hosts">smtpd_authorized_xclient_hosts</a> value, and in
14448files specified with "/file/name".  IP version 6 addresses contain
14449the ":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
14450pattern.  </p>
14451
14452
14453</DD>
14454
14455<DT><b><a name="smtpd_authorized_xforward_hosts">smtpd_authorized_xforward_hosts</a>
14456(default: empty)</b></DT><DD>
14457
14458<p>
14459What remote SMTP clients are allowed to use the XFORWARD feature.  This
14460command forwards information that is used to improve logging after
14461SMTP-based content filters. See the <a href="XFORWARD_README.html">XFORWARD_README</a> document for
14462details.
14463</p>
14464
14465<p>
14466This feature is available in Postfix 2.1 and later.
14467</p>
14468
14469<p>
14470By default, no clients are allowed to specify XFORWARD.
14471</p>
14472
14473<p>
14474Specify a list of network/netmask patterns, separated by commas
14475and/or whitespace. The mask specifies the number of bits in the
14476network part of a host address. You can also specify hostnames or
14477.domain names (the initial dot causes the domain to match any name
14478below it),  "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns.  A "/file/name"
14479pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table
14480is matched when a table entry matches a lookup string (the lookup
14481result is ignored).  Continue long lines by starting the next line
14482with whitespace. Specify "!pattern" to exclude an address or network
14483block from the list. The form "!/file/name" is supported only in
14484Postfix version 2.4 and later.  </p>
14485
14486<p> Note: IP version 6 address information must be specified inside
14487<tt>[]</tt> in the <a href="postconf.5.html#smtpd_authorized_xforward_hosts">smtpd_authorized_xforward_hosts</a> value, and in
14488files specified with "/file/name".  IP version 6 addresses contain
14489the ":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
14490pattern.  </p>
14491
14492
14493</DD>
14494
14495<DT><b><a name="smtpd_banner">smtpd_banner</a>
14496(default: $<a href="postconf.5.html#myhostname">myhostname</a> ESMTP $<a href="postconf.5.html#mail_name">mail_name</a>)</b></DT><DD>
14497
14498<p>
14499The text that follows the 220 status code in the SMTP greeting
14500banner. Some people like to see the mail version advertised. By
14501default, Postfix shows no version.
14502</p>
14503
14504<p>
14505You MUST specify $<a href="postconf.5.html#myhostname">myhostname</a> at the start of the text. This is
14506required by the SMTP protocol.
14507</p>
14508
14509<p>
14510Example:
14511</p>
14512
14513<pre>
14514<a href="postconf.5.html#smtpd_banner">smtpd_banner</a> = $<a href="postconf.5.html#myhostname">myhostname</a> ESMTP $<a href="postconf.5.html#mail_name">mail_name</a> ($<a href="postconf.5.html#mail_version">mail_version</a>)
14515</pre>
14516
14517
14518</DD>
14519
14520<DT><b><a name="smtpd_client_auth_rate_limit">smtpd_client_auth_rate_limit</a>
14521(default: 0)</b></DT><DD>
14522
14523<p>
14524The maximal number of AUTH commands that any client is allowed to
14525send to this service per time unit, regardless of whether or not
14526Postfix actually accepts those commands.  The time unit is specified
14527with the <a href="postconf.5.html#anvil_rate_time_unit">anvil_rate_time_unit</a> configuration parameter.
14528</p>
14529
14530<p>
14531By default, there is no limit on the number of AUTH commands that a
14532client may send.
14533</p>
14534
14535<p>
14536To disable this feature, specify a limit of 0.
14537</p>
14538
14539<p>
14540WARNING: The purpose of this feature is to limit abuse. It must
14541not be used to regulate legitimate mail traffic.
14542</p>
14543
14544<p>
14545This feature is available in Postfix 3.1 and later.
14546</p>
14547
14548
14549</DD>
14550
14551<DT><b><a name="smtpd_client_connection_count_limit">smtpd_client_connection_count_limit</a>
14552(default: 50)</b></DT><DD>
14553
14554<p>
14555How many simultaneous connections any client is allowed to
14556make to this service.  By default, the limit is set to half
14557the default process limit value.
14558</p>
14559
14560<p>
14561To disable this feature, specify a limit of 0.
14562</p>
14563
14564<p>
14565WARNING: The purpose of this feature is to limit abuse. It must
14566not be used to regulate legitimate mail traffic.
14567</p>
14568
14569<p>
14570This feature is available in Postfix 2.2 and later.
14571</p>
14572
14573
14574</DD>
14575
14576<DT><b><a name="smtpd_client_connection_rate_limit">smtpd_client_connection_rate_limit</a>
14577(default: 0)</b></DT><DD>
14578
14579<p>
14580The maximal number of connection attempts any client is allowed to
14581make to this service per time unit.  The time unit is specified
14582with the <a href="postconf.5.html#anvil_rate_time_unit">anvil_rate_time_unit</a> configuration parameter.
14583</p>
14584
14585<p>
14586By default, a client can make as many connections per time unit as
14587Postfix can accept.
14588</p>
14589
14590<p>
14591To disable this feature, specify a limit of 0.
14592</p>
14593
14594<p>
14595WARNING: The purpose of this feature is to limit abuse. It must
14596not be used to regulate legitimate mail traffic.
14597</p>
14598
14599<p>
14600This feature is available in Postfix 2.2 and later.
14601</p>
14602
14603<p>
14604Example:
14605</p>
14606
14607<pre>
14608<a href="postconf.5.html#smtpd_client_connection_rate_limit">smtpd_client_connection_rate_limit</a> = 1000
14609</pre>
14610
14611
14612</DD>
14613
14614<DT><b><a name="smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a>
14615(default: $<a href="postconf.5.html#mynetworks">mynetworks</a>)</b></DT><DD>
14616
14617<p>
14618Clients that are excluded from smtpd_client_*_count/rate_limit
14619restrictions. See the <a href="postconf.5.html#mynetworks">mynetworks</a> parameter
14620description for the parameter value syntax.
14621</p>
14622
14623<p>
14624By default, clients in trusted networks are excluded. Specify a
14625list of network blocks, hostnames or .domain names (the initial
14626dot causes the domain to match any name below it).
14627</p>
14628
14629<p> Note: IP version 6 address information must be specified inside
14630<tt>[]</tt> in the <a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a> value, and
14631in files specified with "/file/name".  IP version 6 addresses
14632contain the ":" character, and would otherwise be confused with a
14633"<a href="DATABASE_README.html">type:table</a>" pattern.  </p>
14634
14635<p> Pattern matching of domain names is controlled by the presence
14636or absence of "<a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a>" in the
14637<a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> parameter value (Postfix 3.0 and
14638later).  </p>
14639
14640<p>
14641This feature is available in Postfix 2.2 and later.
14642</p>
14643
14644
14645</DD>
14646
14647<DT><b><a name="smtpd_client_ipv4_prefix_length">smtpd_client_ipv4_prefix_length</a>
14648(default: 32)</b></DT><DD>
14649
14650<p> Aggregate smtpd_client_*_count and smtpd_client_*_rate statistics
14651by IPv4 network blocks with the specified network prefix. Aggregation
14652uses fewer <a href="anvil.8.html">anvil(8)</a> resources to maintain counters. By default,
14653aggregation is disabled for IPv4. </p>
14654
14655<p> This feature is available in Postfix 3.8 and later. </p>
14656
14657
14658</DD>
14659
14660<DT><b><a name="smtpd_client_ipv6_prefix_length">smtpd_client_ipv6_prefix_length</a>
14661(default: 84)</b></DT><DD>
14662
14663<p> Aggregate smtpd_client_*_count and smtpd_client_*_rate statistics
14664by IPv6 network blocks with the specified network prefix. Aggregation
14665uses fewer the <a href="anvil.8.html">anvil(8)</a> resources to maintain counters. By default,
14666aggregation is enabled for IPv6.  </p>
14667
14668<p> This feature is available in Postfix 3.8 and later. </p>
14669
14670
14671</DD>
14672
14673<DT><b><a name="smtpd_client_message_rate_limit">smtpd_client_message_rate_limit</a>
14674(default: 0)</b></DT><DD>
14675
14676<p>
14677The maximal number of message delivery requests that any client is
14678allowed to make to this service per time unit, regardless of whether
14679or not Postfix actually accepts those messages.  The time unit is
14680specified with the <a href="postconf.5.html#anvil_rate_time_unit">anvil_rate_time_unit</a> configuration parameter.
14681</p>
14682
14683<p>
14684By default, a client can send as many message delivery requests
14685per time unit as Postfix can accept.
14686</p>
14687
14688<p>
14689To disable this feature, specify a limit of 0.
14690</p>
14691
14692<p>
14693WARNING: The purpose of this feature is to limit abuse. It must
14694not be used to regulate legitimate mail traffic.
14695</p>
14696
14697<p>
14698This feature is available in Postfix 2.2 and later.
14699</p>
14700
14701<p>
14702Example:
14703</p>
14704
14705<pre>
14706<a href="postconf.5.html#smtpd_client_message_rate_limit">smtpd_client_message_rate_limit</a> = 1000
14707</pre>
14708
14709
14710</DD>
14711
14712<DT><b><a name="smtpd_client_new_tls_session_rate_limit">smtpd_client_new_tls_session_rate_limit</a>
14713(default: 0)</b></DT><DD>
14714
14715<p>
14716The maximal number of new (i.e., uncached) TLS sessions that a
14717remote SMTP client is allowed to negotiate with this service per
14718time unit.  The time unit is specified with the <a href="postconf.5.html#anvil_rate_time_unit">anvil_rate_time_unit</a>
14719configuration parameter.
14720</p>
14721
14722<p>
14723By default, a remote SMTP client can negotiate as many new TLS
14724sessions per time unit as Postfix can accept.
14725</p>
14726
14727<p>
14728To disable this feature, specify a limit of 0. Otherwise, specify
14729a limit that is at least the per-client concurrent session limit,
14730or else legitimate client sessions may be rejected.
14731</p>
14732
14733<p>
14734WARNING: The purpose of this feature is to limit abuse. It must
14735not be used to regulate legitimate mail traffic.
14736</p>
14737
14738<p>
14739This feature is available in Postfix 2.3 and later.
14740</p>
14741
14742<p>
14743Example:
14744</p>
14745
14746<pre>
14747<a href="postconf.5.html#smtpd_client_new_tls_session_rate_limit">smtpd_client_new_tls_session_rate_limit</a> = 100
14748</pre>
14749
14750
14751</DD>
14752
14753<DT><b><a name="smtpd_client_port_logging">smtpd_client_port_logging</a>
14754(default: no)</b></DT><DD>
14755
14756<p> Enable logging of the remote SMTP client port in addition to
14757the hostname and IP address. The logging format is "host[address]:port".
14758</p>
14759
14760<p> This feature is available in Postfix 2.5 and later. </p>
14761
14762
14763</DD>
14764
14765<DT><b><a name="smtpd_client_recipient_rate_limit">smtpd_client_recipient_rate_limit</a>
14766(default: 0)</b></DT><DD>
14767
14768<p>
14769The maximal number of recipient addresses that any client is allowed
14770to send to this service per time unit, regardless of whether or not
14771Postfix actually accepts those recipients.  The time unit is specified
14772with the <a href="postconf.5.html#anvil_rate_time_unit">anvil_rate_time_unit</a> configuration parameter.
14773</p>
14774
14775<p>
14776By default, a client can send as many recipient addresses per time
14777unit as Postfix can accept.
14778</p>
14779
14780<p>
14781To disable this feature, specify a limit of 0.
14782</p>
14783
14784<p>
14785WARNING: The purpose of this feature is to limit abuse. It must
14786not be used to regulate legitimate mail traffic.
14787</p>
14788
14789<p>
14790This feature is available in Postfix 2.2 and later.
14791</p>
14792
14793<p>
14794Example:
14795</p>
14796
14797<pre>
14798<a href="postconf.5.html#smtpd_client_recipient_rate_limit">smtpd_client_recipient_rate_limit</a> = 1000
14799</pre>
14800
14801
14802</DD>
14803
14804<DT><b><a name="smtpd_client_restrictions">smtpd_client_restrictions</a>
14805(default: empty)</b></DT><DD>
14806
14807<p>
14808Optional restrictions that the Postfix SMTP server applies in the
14809context of a client connection request.
14810See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
14811restriction lists" for a discussion of evaluation context and time.
14812</p>
14813
14814<p>
14815The default is to allow all connection requests.
14816</p>
14817
14818<p>
14819Specify a list of restrictions, separated by commas and/or whitespace.
14820Continue long lines by starting the next line with whitespace.
14821Restrictions are applied in the order as specified; the first
14822restriction that matches wins.
14823</p>
14824
14825<p>
14826The following restrictions are specific to client hostname or
14827client network address information.
14828</p>
14829
14830<dl>
14831
14832<dt><b><a name="check_ccert_access">check_ccert_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14833
14834<dd> By default use the remote SMTP client certificate fingerprint
14835or the public key
14836fingerprint (Postfix 2.9 and later) as the lookup key for the specified
14837<a href="access.5.html">access(5)</a> database; with Postfix version 2.2, also require that the
14838remote SMTP client certificate is verified successfully.
14839The fingerprint digest algorithm is configurable via the
14840<a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> parameter (hard-coded as md5 prior to
14841Postfix version 2.5).  This feature requires "<a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>
14842= yes" and is available with Postfix version
148432.2 and later. </dd>
14844
14845<dd> The default algorithm is <b>sha256</b> with Postfix &ge; 3.6
14846and the <b><a href="postconf.5.html#compatibility_level">compatibility_level</a></b> set to 3.6 or higher. With Postfix
14847&le; 3.5, the default algorithm is <b>md5</b>.  The best-practice
14848algorithm is now <b>sha256</b>. Recent advances in hash function
14849cryptanalysis have led to md5 and sha1 being deprecated in favor of
14850sha256.  However, as long as there are no known "second pre-image"
14851attacks against the older algorithms, their use in this context, though
14852not recommended, is still likely safe.  </dd>
14853
14854<dd> Alternatively, <a href="postconf.5.html#check_ccert_access">check_ccert_access</a> accepts an explicit search
14855order (Postfix 3.5 and later). The default search order as described
14856above corresponds with: </dd>
14857
14858<dd> <a href="postconf.5.html#check_ccert_access">check_ccert_access</a> { <a href="DATABASE_README.html">type:table</a>, { search_order = cert_fingerprint,
14859pubkey_fingerprint } } </dd>
14860
14861<dd> The commas are optional. </dd>
14862
14863<dt><b><a name="check_client_access">check_client_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14864
14865<dd>Search the specified access database for the client hostname,
14866parent domains, client IP address, or networks obtained by stripping
14867least significant octets. See the <a href="access.5.html">access(5)</a> manual page for details. </dd>
14868
14869<dt><b><a name="check_client_a_access">check_client_a_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14870
14871<dd>Search the specified <a href="access.5.html">access(5)</a> database for the IP addresses for the
14872client hostname, and execute the corresponding action.  Note: a result
14873of "OK" is not allowed for safety reasons. Instead, use DUNNO in order
14874to exclude specific hosts from denylists.  This feature is available
14875in Postfix 3.0 and later.  </dd>
14876
14877<dt><b><a name="check_client_mx_access">check_client_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14878
14879<dd>Search the specified <a href="access.5.html">access(5)</a> database for the MX hosts for the
14880client hostname, and execute the corresponding action.  If no MX
14881record is found, look up A or AAAA records, just like the Postfix
14882SMTP client would. Note: a result
14883of "OK" is not allowed for safety reasons. Instead, use DUNNO in order
14884to exclude specific hosts from denylists.  This feature is available
14885in Postfix 2.7 and later.  </dd>
14886
14887<dt><b><a name="check_client_ns_access">check_client_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14888
14889<dd>Search the specified <a href="access.5.html">access(5)</a> database for the DNS servers for
14890the client hostname, and execute the corresponding action.  Note: a
14891result of "OK" is not allowed for safety reasons. Instead, use DUNNO
14892in order to exclude specific hosts from denylists.  This feature is
14893available in Postfix 2.7 and later.  </dd>
14894
14895<dt><b><a name="check_reverse_client_hostname_access">check_reverse_client_hostname_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14896
14897<dd>Search the specified access database for the unverified reverse
14898client hostname, parent domains, client IP address, or networks
14899obtained by stripping least significant octets. See the <a href="access.5.html">access(5)</a>
14900manual page for details.  Note: a result of "OK" is not allowed for
14901safety reasons.  Instead, use DUNNO in order to exclude specific
14902hosts from denylists.  This feature is available in Postfix 2.6
14903and later.</dd>
14904
14905<dt><b><a name="check_reverse_client_hostname_a_access">check_reverse_client_hostname_a_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14906
14907<dd>Search the specified <a href="access.5.html">access(5)</a> database for the IP addresses for the
14908unverified reverse client hostname, and execute the corresponding
14909action.  Note: a result of "OK" is not allowed for safety reasons.
14910Instead, use DUNNO in order to exclude specific hosts from denylists.
14911This feature is available in Postfix 3.0 and later.  </dd>
14912
14913<dt><b><a name="check_reverse_client_hostname_mx_access">check_reverse_client_hostname_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14914
14915<dd>Search the specified <a href="access.5.html">access(5)</a> database for the MX hosts for the
14916unverified reverse client hostname, and execute the corresponding
14917action.  If no MX record is found, look up A or AAAA records, just
14918like the Postfix SMTP client would.
14919Note: a result of "OK" is not allowed for safety reasons.
14920Instead, use DUNNO in order to exclude specific hosts from denylists.
14921This feature is available in Postfix 2.7 and later.  </dd>
14922
14923<dt><b><a name="check_reverse_client_hostname_ns_access">check_reverse_client_hostname_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14924
14925<dd>Search the specified <a href="access.5.html">access(5)</a> database for the DNS servers for
14926the unverified reverse client hostname, and execute the corresponding
14927action.  Note: a result of "OK" is not allowed for safety reasons.
14928Instead, use DUNNO in order to exclude specific hosts from denylists.
14929This feature is available in Postfix 2.7 and later.  </dd>
14930
14931<dt><b><a name="check_sasl_access">check_sasl_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
14932
14933<dd> Use the remote SMTP client SASL user name as the lookup key for
14934the specified <a href="access.5.html">access(5)</a> database. The lookup key has the form
14935"username@domainname" when the <a href="postconf.5.html#smtpd_sasl_local_domain">smtpd_sasl_local_domain</a> parameter
14936value is non-empty.  Unlike the <a href="postconf.5.html#check_client_access">check_client_access</a> feature,
14937<a href="postconf.5.html#check_sasl_access">check_sasl_access</a> does not perform matches of parent domains or IP
14938subnet ranges.  This feature is available with Postfix version 2.11
14939and later. </dd>
14940
14941<dt><b><a name="permit_inet_interfaces">permit_inet_interfaces</a></b></dt>
14942
14943<dd>Permit the request when the client IP address matches
14944$<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>. </dd>
14945
14946<dt><b><a name="permit_mynetworks">permit_mynetworks</a></b></dt>
14947
14948<dd>Permit the request when the client IP address matches any
14949network or network address listed in  $<a href="postconf.5.html#mynetworks">mynetworks</a>. </dd>
14950
14951<dt><b><a name="permit_sasl_authenticated">permit_sasl_authenticated</a></b></dt>
14952
14953<dd> Permit the request when the client is successfully
14954authenticated via the <a href="https://tools.ietf.org/html/rfc4954">RFC 4954</a> (AUTH) protocol. </dd>
14955
14956<dt><b><a name="permit_tls_all_clientcerts">permit_tls_all_clientcerts</a></b></dt>
14957
14958<dd> Permit the request when the remote SMTP client certificate is
14959verified successfully.  This option must be used only if a special
14960CA issues the certificates and only this CA is listed as a trusted
14961CA. Otherwise, clients with a third-party certificate would also
14962be allowed to relay.  Specify "<a href="postconf.5.html#tls_append_default_CA">tls_append_default_CA</a> = no" when the
14963trusted CA is specified with <a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> or <a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a>,
14964to prevent Postfix from appending the system-supplied default CAs.
14965This feature requires "<a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a> = yes" and is available
14966with Postfix version 2.2 and later.</dd>
14967
14968<dt><b><a name="permit_tls_clientcerts">permit_tls_clientcerts</a></b></dt>
14969
14970<dd>Permit the request when the remote SMTP client certificate
14971fingerprint or public key fingerprint (Postfix 2.9 and later) is
14972listed in $<a href="postconf.5.html#relay_clientcerts">relay_clientcerts</a>.
14973The fingerprint digest algorithm is configurable via the
14974<a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> parameter (hard-coded as md5 prior to
14975Postfix version 2.5).  This feature requires "<a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>
14976= yes" and is available with Postfix version 2.2 and later.</dd>
14977
14978<dd> The default algorithm is <b>sha256</b> with Postfix &ge; 3.6
14979and the <b><a href="postconf.5.html#compatibility_level">compatibility_level</a></b> set to 3.6 or higher. With Postfix
14980&le; 3.5, the default algorithm is <b>md5</b>.  The best-practice
14981algorithm is now <b>sha256</b>. Recent advances in hash function
14982cryptanalysis have led to md5 and sha1 being deprecated in favor of
14983sha256.  However, as long as there are no known "second pre-image"
14984attacks against the older algorithms, their use in this context, though
14985not recommended, is still likely safe.  </dd>
14986
14987<dt><b><a name="reject_rbl_client">reject_rbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
14988
14989<dd>Reject the request when the reversed client network address is
14990listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
14991(Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
14992or a pattern inside "[]" that contains one or more ";"-separated
14993numbers or number..number ranges (Postfix version 2.8 and later).
14994If no "<i>=d.d.d.d</i>" is specified, reject the request when the
14995reversed client network address is listed with any A record under
14996<i>rbl_domain</i>. <br>
14997The <a href="postconf.5.html#maps_rbl_reject_code">maps_rbl_reject_code</a> parameter specifies the response code for
14998rejected requests (default:  554), the <a href="postconf.5.html#default_rbl_reply">default_rbl_reply</a>  parameter
14999specifies the default server reply, and the <a href="postconf.5.html#rbl_reply_maps">rbl_reply_maps</a>  parameter
15000specifies tables with server replies indexed by <i>rbl_domain</i>.
15001This feature is available in Postfix 2.0 and later.  </dd>
15002
15003<dt><b><a name="permit_dnswl_client">permit_dnswl_client <i>dnswl_domain=d.d.d.d</i></a></b></dt>
15004
15005<dd>Accept the request when the reversed client network address is
15006listed with the A record "<i>d.d.d.d</i>" under <i>dnswl_domain</i>.
15007Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
15008one or more ";"-separated numbers or number..number ranges.
15009If no "<i>=d.d.d.d</i>" is specified, accept the request when the
15010reversed client network address is listed with any A record under
15011<i>dnswl_domain</i>. <br> For safety, <a href="postconf.5.html#permit_dnswl_client">permit_dnswl_client</a> is silently
15012ignored when it would override <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>.  The
15013result is DEFER_IF_REJECT when allowlist lookup fails.  This feature
15014is available in Postfix 2.8 and later.  </dd>
15015
15016<dt><b><a name="reject_rhsbl_client">reject_rhsbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
15017
15018<dd>Reject the request when the client hostname is listed with the
15019A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
150202.1 and later only).  Each "<i>d</i>" is a number, or a pattern
15021inside "[]" that contains one or more ";"-separated numbers or
15022number..number ranges (Postfix version 2.8 and later).  If no
15023"<i>=d.d.d.d</i>" is specified, reject the request when the client
15024hostname is listed with
15025any A record under <i>rbl_domain</i>. See the <a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a>
15026description above for additional RBL related configuration parameters.
15027This feature is available in Postfix 2.0 and later; with Postfix
15028version 2.8 and later, <a href="postconf.5.html#reject_rhsbl_reverse_client">reject_rhsbl_reverse_client</a> will usually
15029produce better results.  </dd>
15030
15031<dt><b><a name="permit_rhswl_client">permit_rhswl_client <i>rhswl_domain=d.d.d.d</i></a></b></dt>
15032
15033<dd>Accept the request when the client hostname is listed with the
15034A record "<i>d.d.d.d</i>" under <i>rhswl_domain</i>.  Each "<i>d</i>"
15035is a number, or a pattern inside "[]" that contains one or more
15036";"-separated numbers or number..number ranges. If no
15037"<i>=d.d.d.d</i>" is specified, accept the request when the client
15038hostname is listed with any A record under <i>rhswl_domain</i>.
15039<br> Caution: client name allowlisting is fragile, since the client
15040name lookup can fail due to temporary outages.  Client name
15041allowlisting should be used only to reduce false positives in e.g.
15042DNS-based blocklists, and not for making access rule exceptions.
15043<br> For safety, <a href="postconf.5.html#permit_rhswl_client">permit_rhswl_client</a> is silently ignored when it
15044would override <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>.  The result is DEFER_IF_REJECT
15045when allowlist lookup fails.  This feature is available in Postfix
150462.8 and later.  </dd>
15047
15048<dt><b><a name="reject_rhsbl_reverse_client">reject_rhsbl_reverse_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
15049
15050<dd>Reject the request when the unverified reverse client hostname
15051is listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>.
15052Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
15053one or more ";"-separated numbers or number..number ranges.
15054If no "<i>=d.d.d.d</i>" is specified, reject the request when the
15055unverified reverse client hostname is listed with any A record under
15056<i>rbl_domain</i>. See the <a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a> description above for
15057additional RBL related configuration parameters.  This feature is
15058available in Postfix 2.8 and later.  </dd>
15059
15060<dt><b><a name="reject_unknown_client_hostname">reject_unknown_client_hostname</a></b> (with Postfix &lt; 2.3: reject_unknown_client)</dt>
15061
15062<dd>Reject the request when 1) the client IP address-&gt;name mapping
15063fails, or 2) the name-&gt;address mapping fails, or 3) the name-&gt;address
15064mapping does not match the client IP address.  <br> This is a
15065stronger restriction than the <a href="postconf.5.html#reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a>
15066feature, which triggers only under condition 1) above. <br> The
15067<a href="postconf.5.html#unknown_client_reject_code">unknown_client_reject_code</a> parameter specifies the response code
15068for rejected requests (default: 450). The reply is always 450 in
15069case the address-&gt;name or name-&gt;address lookup failed due to
15070a temporary problem. </dd>
15071
15072<dt><b><a name="reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a></b></dt>
15073
15074<dd>Reject the request when the client IP address has no address-&gt;name
15075mapping. <br> This is a weaker restriction than the
15076<a href="postconf.5.html#reject_unknown_client_hostname">reject_unknown_client_hostname</a> feature, which requires not only
15077that the address-&gt;name and name-&gt;address mappings exist, but
15078also that the two mappings reproduce the client IP address.  <br>
15079The <a href="postconf.5.html#unknown_client_reject_code">unknown_client_reject_code</a> parameter specifies the response
15080code for rejected requests (default: 450).  The reply is always 450
15081in case the address-&gt;name lookup failed due to a temporary
15082problem. <br> This feature is available in Postfix 2.3 and
15083later.  </dd>
15084
15085</dl>
15086
15087<p>
15088In addition, you can use any of the following <a name="generic">
15089generic</a> restrictions.  These restrictions are applicable in
15090any SMTP command context.
15091</p>
15092
15093<dl>
15094
15095<dt><b><a name="check_policy_service">check_policy_service <i>servername</i></a></b></dt>
15096
15097<dd>Query the specified policy server. See the <a href="SMTPD_POLICY_README.html">SMTPD_POLICY_README</a>
15098document for details. This feature is available in Postfix 2.1
15099and later. </dd>
15100
15101<dt><b><a name="defer">defer</a></b></dt>
15102
15103<dd>Defer the request. The client is told to try again later. This
15104restriction is useful at the end of a restriction list, to make
15105the default policy explicit. <br> The <a href="postconf.5.html#defer_code">defer_code</a> parameter specifies
15106the SMTP server reply code (default: 450).</dd>
15107
15108<dt><b><a name="defer_if_permit">defer_if_permit</a></b></dt>
15109
15110<dd>Defer the request if some later restriction would result in an
15111explicit or implicit PERMIT action.  This is useful when a denylisting
15112feature fails due to a temporary problem.  This feature is available
15113in Postfix version 2.1 and later.  </dd>
15114
15115<dt><b><a name="defer_if_reject">defer_if_reject</a></b></dt>
15116
15117<dd>Defer the request if some later restriction would result in a
15118REJECT action.  This is useful when an allowlisting feature fails
15119due to a temporary problem.  This feature is available in Postfix
15120version 2.1 and later.  </dd>
15121
15122<dt><b><a name="permit">permit</a></b></dt>
15123
15124<dd>Permit the request. This restriction is useful at the end of
15125a restriction list, to make the default policy explicit.</dd>
15126
15127<dt><b><a name="reject_multi_recipient_bounce">reject_multi_recipient_bounce</a></b></dt>
15128
15129<dd>Reject the request when the envelope sender is the null address,
15130and the message has multiple envelope recipients. This usage has
15131rare but legitimate applications: under certain conditions,
15132multi-recipient mail that was posted with the DSN option NOTIFY=NEVER
15133may be forwarded with the null sender address.
15134<br> Note: this restriction can only work reliably
15135when used in <a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> or
15136<a href="postconf.5.html#smtpd_end_of_data_restrictions">smtpd_end_of_data_restrictions</a>, because the total number of
15137recipients is not known at an earlier stage of the SMTP conversation.
15138Use at the RCPT stage will only reject the second etc.  recipient.
15139<br>
15140The <a href="postconf.5.html#multi_recipient_bounce_reject_code">multi_recipient_bounce_reject_code</a> parameter specifies the
15141response code for rejected requests (default:  550).  This feature
15142is available in Postfix 2.1 and later. </dd>
15143
15144<dt><b><a name="reject_plaintext_session">reject_plaintext_session</a></b></dt>
15145
15146<dd>Reject the request when the connection is not encrypted. This
15147restriction should not be used before the client has had a chance
15148to negotiate encryption with the AUTH or STARTTLS commands.
15149<br>
15150The <a href="postconf.5.html#plaintext_reject_code">plaintext_reject_code</a> parameter specifies the response
15151code for rejected requests (default:  450).  This feature is available
15152in Postfix 2.3 and later. </dd>
15153
15154<dt><b><a name="reject_unauth_pipelining">reject_unauth_pipelining</a></b></dt>
15155
15156<dd>Reject the request when the client sends SMTP commands ahead
15157of time where it is not allowed, or when the client sends SMTP
15158commands ahead of time without knowing that Postfix actually supports
15159ESMTP command pipelining. This stops mail from bulk mail software
15160that improperly uses ESMTP command pipelining in order to speed up
15161deliveries.
15162<br> With Postfix 2.6 and later, the SMTP server sets a per-session
15163flag whenever it detects illegal pipelining, including pipelined
15164HELO or EHLO commands. The <a href="postconf.5.html#reject_unauth_pipelining">reject_unauth_pipelining</a> feature simply
15165tests whether the flag was set at any point in time during the
15166session.
15167<br> With older Postfix versions, <a href="postconf.5.html#reject_unauth_pipelining">reject_unauth_pipelining</a> checks
15168the current status of the input read queue, and its usage is not
15169recommended in contexts other than <a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a>.  </dd>
15170
15171<dt><b><a name="reject">reject</a></b></dt>
15172
15173<dd>Reject the request. This restriction is useful at the end of
15174a restriction list, to make the default policy explicit.  The
15175<a href="postconf.5.html#reject_code">reject_code</a> configuration parameter specifies the response code for
15176rejected requests (default: 554).</dd>
15177
15178<dt><b><a name="sleep">sleep <i>seconds</i></a></b></dt>
15179
15180<dd>Pause for the specified number of seconds and proceed with
15181the next restriction in the list, if any. This may stop zombie
15182mail when used as:
15183<pre>
15184/etc/postfix/<a href="postconf.5.html">main.cf</a>:
15185    <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> =
15186        sleep 1, <a href="postconf.5.html#reject_unauth_pipelining">reject_unauth_pipelining</a>
15187    <a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> = no
15188</pre>
15189This feature is available in Postfix 2.3. </dd>
15190
15191<dt><b><a name="warn_if_reject">warn_if_reject</a></b></dt>
15192
15193<dd> A safety net for testing. When "<a href="postconf.5.html#warn_if_reject">warn_if_reject</a>" is placed
15194before a reject-type restriction, access table query, or
15195<a href="postconf.5.html#check_policy_service">check_policy_service</a> query, this logs a "reject_warning" message
15196instead of rejecting a request (when a reject-type restriction fails
15197due to a temporary error, this logs a "reject_warning" message for
15198any implicit "<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" actions that would normally prevent
15199mail from being accepted by some later access restriction). This
15200feature has no effect on <a href="postconf.5.html#defer_if_reject">defer_if_reject</a> restrictions.  </dd>
15201
15202</dl>
15203
15204<p>
15205Other restrictions that are valid in this context:
15206</p>
15207
15208<ul>
15209
15210<li> SMTP command specific restrictions that are described under
15211the <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>, <a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> or
15212<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> parameters. When helo, sender or
15213recipient restrictions are listed under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>,
15214they have effect only with "<a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> = yes", so that
15215$<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> is evaluated at the time of the RCPT TO
15216command.
15217
15218</ul>
15219
15220<p>
15221Example:
15222</p>
15223
15224<pre>
15225<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#reject_unknown_client_hostname">reject_unknown_client_hostname</a>
15226</pre>
15227
15228
15229</DD>
15230
15231<DT><b><a name="smtpd_command_filter">smtpd_command_filter</a>
15232(default: empty)</b></DT><DD>
15233
15234<p> A mechanism to transform commands from remote SMTP clients.
15235This is a last-resort tool to work around client commands that break
15236interoperability with the Postfix SMTP server.  Other uses involve
15237fault injection to test Postfix's handling of invalid commands.
15238</p>
15239
15240<p> Specify the name of a "<a href="DATABASE_README.html">type:table</a>" lookup table. The search
15241string is the SMTP command as received from the remote SMTP client,
15242except that initial whitespace and the trailing &lt;CR&gt;&lt;LF&gt;
15243are removed.  The result value is executed by the Postfix SMTP
15244server.  </p>
15245
15246<p> There is no need to use <a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a> for the following
15247cases: </p>
15248
15249<ul>
15250
15251<li> <p> Use "<a href="postconf.5.html#resolve_numeric_domain">resolve_numeric_domain</a> = yes" to accept
15252"<i>user@ipaddress</i>". </p>
15253
15254<li> <p> Postfix already accepts the correct form
15255"<i>user@[ipaddress]</i>". Use <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> or <a href="postconf.5.html#canonical_maps">canonical_maps</a>
15256to translate these into domain names if necessary.  </p>
15257
15258<li> <p> Use "<a href="postconf.5.html#strict_rfc821_envelopes">strict_rfc821_envelopes</a> = no" to accept "RCPT TO:&lt;<i>User
15259Name &lt;user@example.com&gt;&gt;</i>". Postfix will ignore the "<i>User
15260Name</i>" part and deliver to the <i>&lt;user@example.com&gt;</i> address.
15261</p>
15262
15263</ul>
15264
15265<p> Examples of problems that can be solved with the <a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a>
15266feature: </p>
15267
15268<pre>
15269/etc/postfix/<a href="postconf.5.html">main.cf</a>:
15270    <a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/command_filter
15271</pre>
15272
15273<pre>
15274/etc/postfix/command_filter:
15275    # Work around clients that send malformed HELO commands.
15276    /^HELO\s*$/ HELO domain.invalid
15277</pre>
15278
15279<pre>
15280    # Work around clients that send empty lines.
15281    /^\s*$/     NOOP
15282</pre>
15283
15284<pre>
15285    # Work around clients that send RCPT TO:&lt;'user@domain'&gt;.
15286    # WARNING: do not lose the parameters that follow the address.
15287    /^(RCPT\s+TO:\s*&lt;)'([^[:space:]]+)'(&gt;.*)/     $1$2$3
15288</pre>
15289
15290<pre>
15291    # Append XVERP to MAIL FROM commands to request VERP-style delivery.
15292    # See <a href="VERP_README.html">VERP_README</a> for more information on how to use Postfix VERP.
15293    /^(MAIL\s+FROM:\s*&lt;listname@example\.com&gt;.*)/   $1 XVERP
15294</pre>
15295
15296<pre>
15297    # Bounce-never mail sink. Use <a href="postconf.5.html#notify_classes">notify_classes</a>=bounce,resource,software
15298    # to send bounced mail to the postmaster (with message body removed).
15299    /^(RCPT\s+TO:\s*&lt;.*&gt;.*)\s+NOTIFY=\S+(.*)/     $1 NOTIFY=NEVER$2
15300    /^(RCPT\s+TO:.*)/                             $1 NOTIFY=NEVER
15301</pre>
15302
15303<p> This feature is available in Postfix 2.7. </p>
15304
15305
15306</DD>
15307
15308<DT><b><a name="smtpd_data_restrictions">smtpd_data_restrictions</a>
15309(default: empty)</b></DT><DD>
15310
15311<p>
15312Optional access restrictions that the Postfix SMTP server applies
15313in the context of the SMTP DATA command.
15314See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
15315restriction lists" for a discussion of evaluation context and time.
15316</p>
15317
15318<p>
15319This feature is available in Postfix 2.0 and later.
15320</p>
15321
15322<p>
15323Specify a list of restrictions, separated by commas and/or whitespace.
15324Continue long lines by starting the next line with whitespace.
15325Restrictions are applied in the order as specified; the first
15326restriction that matches wins.
15327</p>
15328
15329<p>
15330The following restrictions are valid in this context:
15331</p>
15332
15333<ul>
15334
15335<li><a href="#generic">Generic</a> restrictions that can be used
15336in any SMTP command context, described under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>.
15337
15338<li>SMTP command specific restrictions described under
15339<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>, <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>,
15340<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> or <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
15341
15342<li>However, no recipient information is available in the case of
15343multi-recipient mail. Acting on only one recipient would be misleading,
15344because any decision will affect all recipients equally. Acting on
15345all recipients would require a possibly very large amount of memory,
15346and would also be misleading for the reasons mentioned before.
15347
15348</ul>
15349
15350<p>
15351Examples:
15352</p>
15353
15354<pre>
15355<a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> = <a href="postconf.5.html#reject_unauth_pipelining">reject_unauth_pipelining</a>
15356<a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> = <a href="postconf.5.html#reject_multi_recipient_bounce">reject_multi_recipient_bounce</a>
15357</pre>
15358
15359
15360</DD>
15361
15362<DT><b><a name="smtpd_delay_open_until_valid_rcpt">smtpd_delay_open_until_valid_rcpt</a>
15363(default: yes)</b></DT><DD>
15364
15365<p> Postpone the start of an SMTP mail transaction until a valid
15366RCPT TO command is received. Specify "no" to create a mail transaction
15367as soon as the Postfix SMTP server receives a valid MAIL FROM
15368command. </p>
15369
15370<p> With sites that reject lots of mail, the default setting reduces
15371the use of
15372disk, CPU and memory resources. The downside is that rejected
15373recipients are logged with NOQUEUE instead of a mail transaction
15374ID. This complicates the logfile analysis of multi-recipient mail.
15375</p>
15376
15377<p> This feature is available in Postfix 2.3 and later. </p>
15378
15379
15380</DD>
15381
15382<DT><b><a name="smtpd_delay_reject">smtpd_delay_reject</a>
15383(default: yes)</b></DT><DD>
15384
15385<p>
15386Wait until the RCPT TO command before evaluating
15387$<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>, $<a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> and
15388$<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a>, or wait until the ETRN command before
15389evaluating $<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> and $<a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>.
15390</p>
15391
15392<p>
15393This feature is turned on by default because some clients apparently
15394mis-behave when the Postfix SMTP server rejects commands before
15395RCPT TO.
15396</p>
15397
15398<p>
15399The default setting has one major benefit: it allows Postfix to log
15400recipient address information when rejecting a client name/address
15401or sender address, so that it is possible to find out whose mail
15402is being rejected.
15403</p>
15404
15405
15406</DD>
15407
15408<DT><b><a name="smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_keyword_address_maps</a>
15409(default: empty)</b></DT><DD>
15410
15411<p> Lookup tables, indexed by the remote SMTP client address, with
15412case insensitive lists of EHLO keywords (pipelining, starttls, auth,
15413etc.) that the Postfix SMTP server will not send in the EHLO response
15414to a
15415remote SMTP client. See <a href="postconf.5.html#smtpd_discard_ehlo_keywords">smtpd_discard_ehlo_keywords</a> for details.
15416The tables are not searched by hostname for robustness reasons.  </p>
15417
15418<p>
15419Specify zero or more "type:name" lookup tables, separated by
15420whitespace or comma. Tables will be searched in the specified order
15421until a match is found.
15422</p>
15423
15424<p> This feature is available in Postfix 2.2 and later. </p>
15425
15426
15427</DD>
15428
15429<DT><b><a name="smtpd_discard_ehlo_keywords">smtpd_discard_ehlo_keywords</a>
15430(default: empty)</b></DT><DD>
15431
15432<p> A case insensitive list of EHLO keywords (pipelining, starttls,
15433auth, etc.) that the Postfix SMTP server will not send in the EHLO
15434response
15435to a remote SMTP client. </p>
15436
15437<p> This feature is available in Postfix 2.2 and later. </p>
15438
15439<p> Notes: </p>
15440
15441<ul>
15442
15443<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
15444this action from being logged. </p>
15445
15446<li> <p> Use the <a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_keyword_address_maps</a> feature
15447to discard EHLO keywords selectively.  </p>
15448
15449</ul>
15450
15451
15452</DD>
15453
15454<DT><b><a name="smtpd_dns_reply_filter">smtpd_dns_reply_filter</a>
15455(default: empty)</b></DT><DD>
15456
15457<p> Optional filter for Postfix SMTP server DNS lookup results.
15458See <a href="postconf.5.html#smtp_dns_reply_filter">smtp_dns_reply_filter</a> for details including an example.
15459</p>
15460
15461<p> This feature is available in Postfix 3.0 and later. </p>
15462
15463
15464</DD>
15465
15466<DT><b><a name="smtpd_end_of_data_restrictions">smtpd_end_of_data_restrictions</a>
15467(default: empty)</b></DT><DD>
15468
15469<p> Optional access restrictions that the Postfix SMTP server
15470applies in the context of the SMTP END-OF-DATA command.
15471See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
15472restriction lists" for a discussion of evaluation context and time.
15473</p>
15474
15475<p> This feature is available in Postfix 2.2 and later. </p>
15476
15477<p> See <a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> for details and limitations. </p>
15478
15479
15480</DD>
15481
15482<DT><b><a name="smtpd_enforce_tls">smtpd_enforce_tls</a>
15483(default: no)</b></DT><DD>
15484
15485<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients,
15486and require that clients use TLS encryption.  According to <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a>
15487this MUST NOT be applied in case of a publicly-referenced SMTP
15488server.  This option is therefore off by default. </p>
15489
15490<p> Note 1: "<a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a> = yes" implies "<a href="postconf.5.html#smtpd_tls_auth_only">smtpd_tls_auth_only</a> = yes". </p>
15491
15492<p> Note 2: when invoked via "<b>sendmail -bs</b>", Postfix will never offer
15493STARTTLS due to insufficient privileges to access the server private
15494key. This is intended behavior. </p>
15495
15496<p> This feature is available in Postfix 2.2 and later. With
15497Postfix 2.3 and later use <a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a> instead. </p>
15498
15499
15500</DD>
15501
15502<DT><b><a name="smtpd_error_sleep_time">smtpd_error_sleep_time</a>
15503(default: 1s)</b></DT><DD>
15504
15505<p>With Postfix version 2.1 and later: the SMTP server response delay after
15506a client has made more than $<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> errors, and
15507fewer than $<a href="postconf.5.html#smtpd_hard_error_limit">smtpd_hard_error_limit</a> errors, without delivering mail.
15508</p>
15509
15510<p>With Postfix version 2.0 and earlier: the SMTP server delay
15511before sending a reject (4xx or 5xx) response, when the client has
15512made fewer than $<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> errors without delivering
15513mail. When the client has made $<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> or more errors,
15514delay all responses with the larger of (number of errors) seconds
15515or $<a href="postconf.5.html#smtpd_error_sleep_time">smtpd_error_sleep_time</a>. </p>
15516
15517<p> Specify a non-negative time value (an integral value plus an optional
15518one-letter suffix that specifies the time unit).  Time units: s
15519(seconds), m (minutes), h (hours), d (days), w (weeks).
15520The default time unit is s (seconds).  </p>
15521
15522
15523</DD>
15524
15525<DT><b><a name="smtpd_etrn_restrictions">smtpd_etrn_restrictions</a>
15526(default: empty)</b></DT><DD>
15527
15528<p>
15529Optional restrictions that the Postfix SMTP server applies in the
15530context of a client ETRN command.
15531See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
15532restriction lists" for a discussion of evaluation context and time.
15533</p>
15534
15535<p>
15536The Postfix ETRN implementation accepts only destinations that are
15537eligible for the Postfix "fast flush" service. See the <a href="ETRN_README.html">ETRN_README</a>
15538file for details.
15539</p>
15540
15541<p>
15542Specify a list of restrictions, separated by commas and/or whitespace.
15543Continue long lines by starting the next line with whitespace.
15544Restrictions are applied in the order as specified; the first
15545restriction that matches wins.
15546</p>
15547
15548<p>
15549The following restrictions are specific to the domain name information
15550received with the ETRN command.
15551</p>
15552
15553<dl>
15554
15555<dt><b><a name="check_etrn_access">check_etrn_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
15556
15557<dd>Search the specified access database for the ETRN domain name
15558or its parent domains. See the <a href="access.5.html">access(5)</a> manual page for details.
15559</dd>
15560
15561</dl>
15562
15563<p>
15564Other restrictions that are valid in this context:
15565</p>
15566
15567<ul>
15568
15569<li><a href="#generic">Generic</a> restrictions that can be used
15570in any SMTP command context, described under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>.
15571
15572<li>SMTP command specific restrictions described under
15573<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> and <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>.
15574
15575</ul>
15576
15577<p>
15578Example:
15579</p>
15580
15581<pre>
15582<a href="postconf.5.html#smtpd_etrn_restrictions">smtpd_etrn_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, reject
15583</pre>
15584
15585
15586</DD>
15587
15588<DT><b><a name="smtpd_expansion_filter">smtpd_expansion_filter</a>
15589(default: see "postconf -d" output)</b></DT><DD>
15590
15591<p>
15592What characters are allowed in $name expansions of RBL reply
15593templates. Characters not in the allowed set are replaced by "_".
15594Use C like escapes to specify special characters such as whitespace.
15595</p>
15596
15597<p>
15598The <a href="postconf.5.html#smtpd_expansion_filter">smtpd_expansion_filter</a> value is not subject to Postfix configuration
15599parameter $name expansion.
15600</p>
15601
15602<p>
15603This feature is available in Postfix 2.0 and later.
15604</p>
15605
15606
15607</DD>
15608
15609<DT><b><a name="smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a>
15610(default: Postfix &lt; 3.9: no)</b></DT><DD>
15611
15612<p> Reply with "Error: bare &lt;LF&gt; received" and disconnect
15613when a remote SMTP client sends a line ending in &lt;LF&gt;, violating
15614the <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a> requirement that lines must end in &lt;CR&gt;&lt;LF&gt;.
15615This feature is disbled by default with Postfix &lt; 3.9. Use
15616<a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a> to exclude non-standard clients
15617such as netcat. Specify "<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = no" to disable
15618(not recommended for an Internet-connected MTA). </p>
15619
15620<p> See <a href="https://www.postfix.org/smtp-smuggling.html">
15621https://www.postfix.org/smtp-smuggling.html</a> for details.
15622
15623<p> Example: </p>
15624
15625<blockquote>
15626<pre>
15627# Disconnect remote SMTP clients that send bare newlines, but allow
15628# local clients with non-standard SMTP implementations such as netcat,
15629# fax machines, or load balancer health checks.
15630#
15631<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = yes
15632<a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a> = $<a href="postconf.5.html#mynetworks">mynetworks</a>
15633</pre>
15634</blockquote>
15635
15636<p> This feature is available in Postfix &ge; 3.9, 3.8.4, 3.7.9,
156373.6.13, and 3.5.23. </p>
15638
15639
15640</DD>
15641
15642<DT><b><a name="smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a>
15643(default: $<a href="postconf.5.html#mynetworks">mynetworks</a>)</b></DT><DD>
15644
15645<p> Exclude the specified clients from <a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a>
15646enforcement. It uses the same syntax and parent-domain matching
15647behavior as <a href="postconf.5.html#mynetworks">mynetworks</a>. </p>
15648
15649<p> Example: </p>
15650
15651<blockquote>
15652<pre>
15653# Disconnect remote SMTP clients that send bare newlines, but allow
15654# local clients with non-standard SMTP implementations such as netcat,
15655# fax machines, or load balancer health checks.
15656#
15657<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = yes
15658<a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a> = $<a href="postconf.5.html#mynetworks">mynetworks</a>
15659</pre>
15660</blockquote>
15661
15662<p> This feature is available in Postfix &ge; 3.9, 3.8.4, 3.7.9,
156633.6.13, and 3.5.23. </p>
15664
15665
15666</DD>
15667
15668<DT><b><a name="smtpd_forbid_unauth_pipelining">smtpd_forbid_unauth_pipelining</a>
15669(default: Postfix &ge; 3.9: yes)</b></DT><DD>
15670
15671<p> Disconnect remote SMTP clients that violate <a href="https://tools.ietf.org/html/rfc2920">RFC 2920</a> (or 5321)
15672command pipelining constraints. The server replies with "554 5.5.0
15673Error: SMTP protocol synchronization" and logs the unexpected remote
15674SMTP client input. Specify "<a href="postconf.5.html#smtpd_forbid_unauth_pipelining">smtpd_forbid_unauth_pipelining</a> = yes"
15675to enable. This feature is enabled by default with Postfix &ge;
156763.9.  </p>
15677
15678<p> This feature is available in Postfix &ge; 3.9, 3.8.1, 3.7.6,
156793.6.10, and 3.5.20. </p>
15680
15681
15682</DD>
15683
15684<DT><b><a name="smtpd_forbidden_commands">smtpd_forbidden_commands</a>
15685(default: CONNECT GET POST <a href="regexp_table.5.html">regexp</a>:{{/^[^A-Z]/ Bogus}})</b></DT><DD>
15686
15687<p>
15688List of commands that cause the Postfix SMTP server to immediately
15689terminate the session with a 221 code. This can be used to disconnect
15690clients that obviously attempt to abuse the system. In addition to the
15691commands listed in this parameter, commands that follow the "Label:"
15692format of message headers will also cause a disconnect. With Postfix
15693versions 3.6 and earlier, the default value is "CONNECT GET POST".
15694</p>
15695
15696<p>
15697This feature is available in Postfix 2.2 and later.
15698</p>
15699
15700<p>
15701Support for inline regular expressions was added in Postfix version
157023.7. See <a href="regexp_table.5.html">regexp_table(5)</a> for a description of the syntax and features.
15703</p>
15704
15705
15706</DD>
15707
15708<DT><b><a name="smtpd_hard_error_limit">smtpd_hard_error_limit</a>
15709(default: normal: 20, overload: 1)</b></DT><DD>
15710
15711<p>
15712The maximal number of errors a remote SMTP client is allowed to
15713make without delivering mail. The Postfix SMTP server disconnects
15714when the limit is reached. Normally the default limit is 20, but
15715it changes under overload to just 1. With Postfix 2.5 and earlier,
15716the SMTP server always allows up to 20 errors by default.
15717Valid values are greater than zero.
15718
15719</p>
15720
15721
15722</DD>
15723
15724<DT><b><a name="smtpd_helo_required">smtpd_helo_required</a>
15725(default: no)</b></DT><DD>
15726
15727<p>
15728Require that a remote SMTP client introduces itself with the HELO
15729or EHLO command before sending the MAIL command or other commands
15730that require EHLO negotiation.
15731</p>
15732
15733<p>
15734Example:
15735</p>
15736
15737<pre>
15738<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes
15739</pre>
15740
15741
15742</DD>
15743
15744<DT><b><a name="smtpd_helo_restrictions">smtpd_helo_restrictions</a>
15745(default: empty)</b></DT><DD>
15746
15747<p>
15748Optional restrictions that the Postfix SMTP server applies in the
15749context of a client HELO command.
15750See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
15751restriction lists" for a discussion of evaluation context and time.
15752</p>
15753
15754<p>
15755The default is to permit everything.
15756</p>
15757
15758<p> Note: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce this
15759restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can
15760simply skip <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> by not sending HELO or EHLO).
15761</p>
15762
15763<p>
15764Specify a list of restrictions, separated by commas and/or whitespace.
15765Continue long lines by starting the next line with whitespace.
15766Restrictions are applied in the order as specified; the first
15767restriction that matches wins.
15768</p>
15769
15770<p>
15771The following restrictions are specific to the hostname information
15772received with the HELO or EHLO command.
15773</p>
15774
15775<dl>
15776
15777<dt><b><a name="check_helo_access">check_helo_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
15778
15779<dd>Search the specified <a href="access.5.html">access(5)</a> database for the HELO or EHLO
15780hostname or parent domains, and execute the corresponding action.
15781Note: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce this
15782restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can
15783simply skip <a href="postconf.5.html#check_helo_access">check_helo_access</a> by not sending HELO or EHLO).  </dd>
15784
15785<dt><b><a name="check_helo_a_access">check_helo_a_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
15786
15787<dd>Search the specified <a href="access.5.html">access(5)</a> database for the IP addresses for
15788the HELO or EHLO hostname, and execute the corresponding action.
15789Note 1: a result of "OK" is not allowed for safety reasons. Instead,
15790use DUNNO in order to exclude specific hosts from denylists.  Note
157912: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce this
15792restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can
15793simply skip check_helo_a_access by not sending HELO or EHLO).  This
15794feature is available in Postfix 3.0 and later.
15795</dd>
15796
15797<dt><b><a name="check_helo_mx_access">check_helo_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
15798
15799<dd>Search the specified <a href="access.5.html">access(5)</a> database for the MX hosts for
15800the HELO or EHLO hostname, and execute the corresponding action.
15801If no MX record is found, look up A or AAAA records, just like the
15802Postfix SMTP client would.
15803Note 1: a result of "OK" is not allowed for safety reasons. Instead,
15804use DUNNO in order to exclude specific hosts from denylists.  Note
158052: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce this
15806restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can
15807simply skip <a href="postconf.5.html#check_helo_mx_access">check_helo_mx_access</a> by not sending HELO or EHLO).  This
15808feature is available in Postfix 2.1 and later.
15809</dd>
15810
15811<dt><b><a name="check_helo_ns_access">check_helo_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
15812
15813<dd>Search the specified <a href="access.5.html">access(5)</a> database for the DNS servers
15814for the HELO or EHLO hostname, and execute the corresponding action.
15815Note 1: a result of "OK" is not allowed for safety reasons. Instead,
15816use DUNNO in order to exclude specific hosts from denylists.  Note
158172: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce this
15818restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can
15819simply skip <a href="postconf.5.html#check_helo_ns_access">check_helo_ns_access</a> by not sending HELO or EHLO). This
15820feature is available in Postfix 2.1 and later.
15821</dd>
15822
15823<dt><b><a name="reject_invalid_helo_hostname">reject_invalid_helo_hostname</a></b> (with Postfix &lt; 2.3: reject_invalid_hostname)</dt>
15824
15825<dd>Reject the request when the HELO or EHLO hostname is malformed.
15826Note: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce
15827this restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can simply
15828skip <a href="postconf.5.html#reject_invalid_helo_hostname">reject_invalid_helo_hostname</a> by not sending HELO or EHLO).
15829<br> The <a href="postconf.5.html#invalid_hostname_reject_code">invalid_hostname_reject_code</a> specifies the response code
15830for rejected requests (default: 501).</dd>
15831
15832<dt><b><a name="reject_non_fqdn_helo_hostname">reject_non_fqdn_helo_hostname</a></b> (with Postfix &lt; 2.3: reject_non_fqdn_hostname)</dt>
15833
15834<dd>Reject the request when the HELO or EHLO hostname is not in
15835fully-qualified domain or address literal form, as required by the
15836RFC. Note: specify
15837"<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully enforce this restriction
15838(without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a client can simply skip
15839<a href="postconf.5.html#reject_non_fqdn_helo_hostname">reject_non_fqdn_helo_hostname</a> by not sending HELO or EHLO).  <br>
15840The <a href="postconf.5.html#non_fqdn_reject_code">non_fqdn_reject_code</a> parameter specifies the response code for
15841rejected requests (default: 504).</dd>
15842
15843<dt><b><a name="reject_rhsbl_helo">reject_rhsbl_helo <i>rbl_domain=d.d.d.d</i></a></b></dt>
15844
15845<dd>Reject the request when the HELO or EHLO hostname is
15846listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
15847(Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
15848or a pattern inside "[]" that contains one or more ";"-separated
15849numbers or number..number ranges (Postfix version 2.8 and later).
15850If no "<i>=d.d.d.d</i>" is
15851specified, reject the request when the HELO or EHLO hostname is
15852listed with any A record under <i>rbl_domain</i>. See the
15853<a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a> description for additional RBL related configuration
15854parameters.  Note: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully
15855enforce this restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a
15856client can simply skip <a href="postconf.5.html#reject_rhsbl_helo">reject_rhsbl_helo</a> by not sending HELO or
15857EHLO). This feature is available in Postfix 2.0
15858and later.  </dd>
15859
15860<dt><b><a name="reject_unknown_helo_hostname">reject_unknown_helo_hostname</a></b> (with Postfix &lt; 2.3: reject_unknown_hostname)</dt>
15861
15862<dd>Reject the request when the HELO or EHLO hostname has no DNS A
15863or MX record. <br> The reply is specified with the
15864<a href="postconf.5.html#unknown_hostname_reject_code">unknown_hostname_reject_code</a> parameter (default: 450) or
15865<a href="postconf.5.html#unknown_helo_hostname_tempfail_action">unknown_helo_hostname_tempfail_action</a> (default: <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>).
15866See the respective parameter descriptions for details. <br>
15867Note: specify "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes" to fully
15868enforce this restriction (without "<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> = yes", a
15869client can simply skip <a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a> by not sending
15870HELO or EHLO). </dd>
15871
15872</dl>
15873
15874<p>
15875Other restrictions that are valid in this context:
15876</p>
15877
15878<ul>
15879
15880<li> <a href="#generic">Generic</a> restrictions that can be used
15881in any SMTP command context, described under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>.
15882
15883<li> Client hostname or network address specific restrictions
15884described under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>.
15885
15886<li> SMTP command specific restrictions described under
15887<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> or <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.  When
15888sender or recipient restrictions are listed under <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>,
15889they have effect only with "<a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> = yes", so that
15890$<a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> is evaluated at the time of the RCPT TO
15891command.
15892
15893</ul>
15894
15895<p>
15896Examples:
15897</p>
15898
15899<pre>
15900<a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#reject_invalid_helo_hostname">reject_invalid_helo_hostname</a>
15901<a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a>
15902</pre>
15903
15904
15905</DD>
15906
15907<DT><b><a name="smtpd_history_flush_threshold">smtpd_history_flush_threshold</a>
15908(default: 100)</b></DT><DD>
15909
15910<p>
15911The maximal number of lines in the Postfix SMTP server command history
15912before it is flushed upon receipt of EHLO, RSET, or end of DATA.
15913</p>
15914
15915
15916</DD>
15917
15918<DT><b><a name="smtpd_junk_command_limit">smtpd_junk_command_limit</a>
15919(default: normal: 100, overload: 1)</b></DT><DD>
15920
15921<p>
15922The number of junk commands (NOOP, VRFY, ETRN or RSET) that a remote
15923SMTP client can send before the Postfix SMTP server starts to
15924increment the error counter with each junk command.  The junk
15925command count is reset after mail is delivered.  See also the
15926<a href="postconf.5.html#smtpd_error_sleep_time">smtpd_error_sleep_time</a> and <a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> configuration
15927parameters.  Normally the default limit is 100, but it changes under
15928overload to just 1. With Postfix 2.5 and earlier, the SMTP server
15929always allows up to 100 junk commands by default.  </p>
15930
15931
15932</DD>
15933
15934<DT><b><a name="smtpd_log_access_permit_actions">smtpd_log_access_permit_actions</a>
15935(default: empty)</b></DT><DD>
15936
15937<p> Enable logging of the named "permit" actions in SMTP server
15938access lists (by default, the SMTP server logs "reject" actions but
15939not "permit" actions).  This feature does not affect conditional
15940actions such as "<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>". </p>
15941
15942<p> Specify a list of "permit" action names, "/file/name" or
15943"<a href="DATABASE_README.html">type:table</a>" patterns, separated by commas and/or whitespace. The
15944list is matched left to right, and the search stops on the first
15945match. A "/file/name" pattern is replaced by its contents; a
15946"<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name matches a lookup
15947key (the lookup result is ignored).  Continue long lines by starting
15948the next line with whitespace. Specify "!pattern" to exclude a name
15949from the list. </p>
15950
15951<p> Examples: </p>
15952
15953<pre>
15954/etc/postfix/<a href="postconf.5.html">main.cf</a>:
15955    # Log all "permit" actions.
15956    <a href="postconf.5.html#smtpd_log_access_permit_actions">smtpd_log_access_permit_actions</a> = <a href="DATABASE_README.html#types">static</a>:all
15957</pre>
15958
15959<pre>
15960/etc/postfix/<a href="postconf.5.html">main.cf</a>:
15961    # Log "<a href="postconf.5.html#permit_dnswl_client">permit_dnswl_client</a>" only.
15962    <a href="postconf.5.html#smtpd_log_access_permit_actions">smtpd_log_access_permit_actions</a> = <a href="postconf.5.html#permit_dnswl_client">permit_dnswl_client</a>
15963</pre>
15964
15965<p> This feature is available in Postfix 2.10 and later.  </p>
15966
15967
15968</DD>
15969
15970<DT><b><a name="smtpd_milter_maps">smtpd_milter_maps</a>
15971(default: empty)</b></DT><DD>
15972
15973<p> Lookup tables with Milter settings per remote SMTP client IP
15974address.  The lookup result overrides the <a href="postconf.5.html#smtpd_milters">smtpd_milters</a> setting,
15975and has the same syntax. </p>
15976
15977<p> Note: lookup tables cannot return empty responses. Specify a
15978lookup result of DISABLE (case does not matter) to indicate that
15979Milter support should be disabled. </p>
15980
15981<p> Example to disable Milters for local clients: </p>
15982
15983<pre>
15984/etc/postfix/<a href="postconf.5.html">main.cf</a>:
15985    <a href="postconf.5.html#smtpd_milter_maps">smtpd_milter_maps</a> = <a href="cidr_table.5.html">cidr</a>:/etc/postfix/smtpd_milter_map
15986    <a href="postconf.5.html#smtpd_milters">smtpd_milters</a> = inet:host:port, { inet:host:port, ... }, ...
15987</pre>
15988
15989<pre>
15990/etc/postfix/smtpd_milter_map:
15991    # Disable Milters for local clients.
15992    127.0.0.0/8    DISABLE
15993    192.168.0.0/16 DISABLE
15994    ::/64          DISABLE
15995    2001:db8::/32  DISABLE
15996</pre>
15997
15998<p> This feature is available in Postfix 3.2 and later.  </p>
15999
16000
16001</DD>
16002
16003<DT><b><a name="smtpd_milters">smtpd_milters</a>
16004(default: empty)</b></DT><DD>
16005
16006<p> A list of Milter (mail filter) applications for new mail that
16007arrives via the Postfix <a href="smtpd.8.html">smtpd(8)</a> server. Specify space or comma as
16008separator. See the <a href="MILTER_README.html">MILTER_README</a> document for details.  </p>
16009
16010<p> This feature is available in Postfix 2.3 and later. </p>
16011
16012
16013</DD>
16014
16015<DT><b><a name="smtpd_min_data_rate">smtpd_min_data_rate</a>
16016(default: 500)</b></DT><DD>
16017
16018<p> The minimum plaintext data transfer rate in bytes/second for
16019DATA and BDAT requests, when deadlines are enabled with
16020<a href="postconf.5.html#smtpd_per_request_deadline">smtpd_per_request_deadline</a>. After a read operation transfers N
16021plaintext message bytes (possibly after TLS decryption), and after
16022the DATA or BDAT request deadline is decremented by the elapsed
16023time of that read operation, the DATA or BDAT request deadline is
16024incremented by N/smtpd_min_data_rate seconds. However, the deadline
16025will never be incremented beyond the time limit specified with
16026<a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a>.  </p>
16027
16028<p> This feature is available in Postfix 3.7 and later. </p>
16029
16030
16031</DD>
16032
16033<DT><b><a name="smtpd_noop_commands">smtpd_noop_commands</a>
16034(default: empty)</b></DT><DD>
16035
16036<p>
16037List of commands that the Postfix SMTP server replies to with "250
16038Ok", without doing any syntax checks and without changing state.
16039This list overrides any commands built into the Postfix SMTP server.
16040</p>
16041
16042
16043</DD>
16044
16045<DT><b><a name="smtpd_null_access_lookup_key">smtpd_null_access_lookup_key</a>
16046(default: &lt;&gt;)</b></DT><DD>
16047
16048<p>
16049The lookup key to be used in SMTP <a href="access.5.html">access(5)</a> tables instead of the
16050null sender address.
16051</p>
16052
16053
16054</DD>
16055
16056<DT><b><a name="smtpd_peername_lookup">smtpd_peername_lookup</a>
16057(default: yes)</b></DT><DD>
16058
16059<p> Attempt to look up the remote SMTP client hostname, and verify that
16060the name matches the client IP address. A client name is set to
16061"unknown" when it cannot be looked up or verified, or when name
16062lookup is disabled.  Turning off name lookup reduces delays due to
16063DNS lookup and increases the maximal inbound delivery rate. </p>
16064
16065<p> This feature is available in Postfix 2.3 and later.  </p>
16066
16067
16068</DD>
16069
16070<DT><b><a name="smtpd_per_record_deadline">smtpd_per_record_deadline</a>
16071(default: normal: no, overload: yes)</b></DT><DD>
16072
16073<p> Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> and <a href="postconf.5.html#smtpd_starttls_timeout">smtpd_starttls_timeout</a>
16074time limits, from a
16075time limit per read or write system call, to a time limit to send
16076or receive a complete record (an SMTP command line, SMTP response
16077line, SMTP message content line, or TLS protocol message).  This
16078limits the impact from hostile peers that trickle data one byte at
16079a time.  </p>
16080
16081<p> Note: when per-record deadlines are enabled, a short timeout
16082may cause problems with TLS over very slow network connections.
16083The reasons are that a TLS protocol message can be up to 16 kbytes
16084long (with TLSv1), and that an entire TLS protocol message must be
16085sent or received within the per-record deadline.  </p>
16086
16087<p> This feature is available in Postfix 2.9-3.6. With older
16088Postfix releases, the behavior is as if this parameter is set to
16089"no". Postfix 3.7 and later use <a href="postconf.5.html#smtpd_per_request_deadline">smtpd_per_request_deadline</a>. </p>
16090
16091
16092</DD>
16093
16094<DT><b><a name="smtpd_per_request_deadline">smtpd_per_request_deadline</a>
16095(default: normal: no, overload: yes)</b></DT><DD>
16096
16097<p> Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> and <a href="postconf.5.html#smtpd_starttls_timeout">smtpd_starttls_timeout</a>
16098time limits, from a time limit per plaintext or TLS read or write
16099call, to a combined time limit for receiving a complete SMTP request
16100and for sending a complete SMTP response. The deadline limits only
16101the time spent waiting for plaintext or TLS read or write calls,
16102not time spent elsewhere. The per-request deadline limits the impact
16103from hostile peers that trickle data one byte at a time. </p>
16104
16105<p> See <a href="postconf.5.html#smtpd_min_data_rate">smtpd_min_data_rate</a> for how the per-request deadline is
16106managed during the DATA and BDAT phase. </p>
16107
16108<p> Note: when per-request deadlines are enabled, a short time limit
16109may cause problems with TLS over very slow network connections. The
16110reason is that a TLS protocol message can be up to 16 kbytes long
16111(with TLSv1), and that an entire TLS protocol message must be
16112transferred within the per-request deadline. </p>
16113
16114<p> This feature is available in Postfix 3.7 and later. A weaker
16115feature, called <a href="postconf.5.html#smtpd_per_record_deadline">smtpd_per_record_deadline</a>, is available with Postfix
161162.9-3.6. With older Postfix releases, the behavior is as if this
16117parameter is set to "no". </p>
16118
16119<p> This feature is available in Postfix 3.7 and later. </p>
16120
16121
16122</DD>
16123
16124<DT><b><a name="smtpd_policy_service_default_action">smtpd_policy_service_default_action</a>
16125(default: 451 4.3.5 Server configuration problem)</b></DT><DD>
16126
16127<p> The default action when an SMTPD policy service request fails.
16128Specify "DUNNO" to behave as if the failed  SMTPD policy service
16129request was not sent, and to continue processing other access
16130restrictions, if any. </p>
16131
16132<p> Limitations: </p>
16133
16134<ul>
16135
16136<li> <p>  This parameter may specify any value that would be a valid
16137SMTPD policy server response (or <a href="access.5.html">access(5)</a> map lookup result).  An
16138<a href="access.5.html">access(5)</a> map or policy server in this parameter value may need to
16139be declared in advance with a restriction_class setting.  </p>
16140
16141<li> <p> If the specified action invokes another <a href="postconf.5.html#check_policy_service">check_policy_service</a>
16142request, that request will have the built-in default action. </p>
16143
16144</ul>
16145
16146<p> This feature is available in Postfix 3.0 and later. </p>
16147
16148
16149</DD>
16150
16151<DT><b><a name="smtpd_policy_service_max_idle">smtpd_policy_service_max_idle</a>
16152(default: 300s)</b></DT><DD>
16153
16154<p>
16155The time after which an idle SMTPD policy service connection is
16156closed.
16157</p>
16158
16159<p> Specify a non-zero time value (an integral value plus an optional
16160one-letter suffix that specifies the time unit).  Time units: s
16161(seconds), m (minutes), h (hours), d (days), w (weeks).
16162The default time unit is s (seconds).  </p>
16163
16164<p>
16165This feature is available in Postfix 2.1 and later.
16166</p>
16167
16168
16169</DD>
16170
16171<DT><b><a name="smtpd_policy_service_max_ttl">smtpd_policy_service_max_ttl</a>
16172(default: 1000s)</b></DT><DD>
16173
16174<p>
16175The time after which an active SMTPD policy service connection is
16176closed.
16177</p>
16178
16179<p> Specify a non-zero time value (an integral value plus an optional
16180one-letter suffix that specifies the time unit).  Time units: s
16181(seconds), m (minutes), h (hours), d (days), w (weeks).
16182The default time unit is s (seconds).  </p>
16183
16184<p>
16185This feature is available in Postfix 2.1 and later.
16186</p>
16187
16188
16189</DD>
16190
16191<DT><b><a name="smtpd_policy_service_policy_context">smtpd_policy_service_policy_context</a>
16192(default: empty)</b></DT><DD>
16193
16194<p> Optional information that the Postfix SMTP server specifies in
16195the "policy_context" attribute of a policy service request (originally,
16196to share the same service endpoint among multiple <a href="postconf.5.html#check_policy_service">check_policy_service</a>
16197clients).  </p>
16198
16199<p>
16200This feature is available in Postfix 3.1 and later.
16201</p>
16202
16203
16204</DD>
16205
16206<DT><b><a name="smtpd_policy_service_request_limit">smtpd_policy_service_request_limit</a>
16207(default: 0)</b></DT><DD>
16208
16209<p>
16210The maximal number of requests per SMTPD policy service connection,
16211or zero (no limit). Once a connection reaches this limit, the
16212connection is closed and the next request will be sent over a new
16213connection. This is a workaround to avoid error-recovery delays
16214with policy servers that cannot maintain a persistent connection.
16215</p>
16216
16217<p>
16218This feature is available in Postfix 3.0 and later.
16219</p>
16220
16221
16222</DD>
16223
16224<DT><b><a name="smtpd_policy_service_retry_delay">smtpd_policy_service_retry_delay</a>
16225(default: 1s)</b></DT><DD>
16226
16227<p> The delay between attempts to resend a failed SMTPD policy
16228service request. Specify a value greater than zero. </p>
16229
16230<p> Specify a non-zero time value (an integral value plus an optional
16231one-letter suffix that specifies the time unit).  Time units: s
16232(seconds), m (minutes), h (hours), d (days), w (weeks).
16233The default time unit is s (seconds).  </p>
16234
16235<p> This feature is available in Postfix 3.0 and later. </p>
16236
16237
16238</DD>
16239
16240<DT><b><a name="smtpd_policy_service_timeout">smtpd_policy_service_timeout</a>
16241(default: 100s)</b></DT><DD>
16242
16243<p>
16244The time limit for connecting to, writing to, or receiving from a
16245delegated SMTPD policy server.
16246</p>
16247
16248<p> Specify a non-zero time value (an integral value plus an optional
16249one-letter suffix that specifies the time unit).  Time units: s
16250(seconds), m (minutes), h (hours), d (days), w (weeks).
16251The default time unit is s (seconds).  </p>
16252
16253<p>
16254This feature is available in Postfix 2.1 and later.
16255</p>
16256
16257
16258</DD>
16259
16260<DT><b><a name="smtpd_policy_service_try_limit">smtpd_policy_service_try_limit</a>
16261(default: 2)</b></DT><DD>
16262
16263<p> The maximal number of attempts to send an SMTPD policy service
16264request before giving up. Specify a value greater than zero. </p>
16265
16266<p> This feature is available in Postfix 3.0 and later. </p>
16267
16268
16269</DD>
16270
16271<DT><b><a name="smtpd_proxy_ehlo">smtpd_proxy_ehlo</a>
16272(default: $<a href="postconf.5.html#myhostname">myhostname</a>)</b></DT><DD>
16273
16274<p>
16275How the Postfix SMTP server announces itself to the proxy filter.
16276By default, the Postfix hostname is used.
16277</p>
16278
16279<p>
16280This feature is available in Postfix 2.1 and later.
16281</p>
16282
16283
16284</DD>
16285
16286<DT><b><a name="smtpd_proxy_filter">smtpd_proxy_filter</a>
16287(default: empty)</b></DT><DD>
16288
16289<p> The hostname and TCP port of the mail filtering proxy server.
16290The proxy receives all mail from the Postfix SMTP server, and is
16291supposed to give the result to another Postfix SMTP server process.
16292</p>
16293
16294<p> Specify "host:port" or "inet:host:port" for a TCP endpoint, or
16295"unix:pathname" for a UNIX-domain endpoint. The host can be specified
16296as an IP address or as a symbolic name; no MX lookups are done.
16297When no "host" or "host:" is specified, the local machine is
16298assumed.  Pathname interpretation is relative to the Postfix queue
16299directory.  </p>
16300
16301<p> This feature is available in Postfix 2.1 and later.  </p>
16302
16303<p> The "inet:" and "unix:" prefixes are available in Postfix 2.3
16304and later.  </p>
16305
16306
16307</DD>
16308
16309<DT><b><a name="smtpd_proxy_options">smtpd_proxy_options</a>
16310(default: empty)</b></DT><DD>
16311
16312<p>
16313List of options that control how the Postfix SMTP server
16314communicates with a before-queue content filter. Specify zero or
16315more of the following, separated by comma or whitespace.  </p>
16316
16317<dl>
16318
16319<dt><b>speed_adjust</b></dt>
16320
16321<dd> <p> Do not connect to a before-queue content filter until an entire
16322message has been received. This reduces the number of simultaneous
16323before-queue content filter processes. </p>
16324
16325<p> NOTE 1: A filter must not <i>selectively</i> reject recipients
16326of a multi-recipient message.  Rejecting all recipients is OK, as
16327is accepting all recipients. </p>
16328
16329<p> NOTE 2: This feature increases the minimum amount of free queue
16330space by $<a href="postconf.5.html#message_size_limit">message_size_limit</a>. The extra space is needed to save the
16331message to a temporary file. </p> </dd>
16332
16333</dl>
16334
16335<p>
16336This feature is available in Postfix 2.7 and later.
16337</p>
16338
16339
16340</DD>
16341
16342<DT><b><a name="smtpd_proxy_timeout">smtpd_proxy_timeout</a>
16343(default: 100s)</b></DT><DD>
16344
16345<p>
16346The time limit for connecting to a proxy filter and for sending or
16347receiving information.  When a connection fails the client gets a
16348generic error message while more detailed information is logged to
16349the maillog file.
16350</p>
16351
16352<p> Specify a non-zero time value (an integral value plus an optional
16353one-letter suffix that specifies the time unit).  Time units: s
16354(seconds), m (minutes), h (hours), d (days), w (weeks).
16355The default time unit is s (seconds).  </p>
16356
16357<p>
16358This feature is available in Postfix 2.1 and later.
16359</p>
16360
16361
16362</DD>
16363
16364<DT><b><a name="smtpd_recipient_limit">smtpd_recipient_limit</a>
16365(default: 1000)</b></DT><DD>
16366
16367<p>
16368The maximal number of recipients that the Postfix SMTP server
16369accepts per message delivery request.
16370</p>
16371
16372
16373</DD>
16374
16375<DT><b><a name="smtpd_recipient_overshoot_limit">smtpd_recipient_overshoot_limit</a>
16376(default: 1000)</b></DT><DD>
16377
16378<p> The number of recipients that a remote SMTP client can send in
16379excess of the limit specified with $<a href="postconf.5.html#smtpd_recipient_limit">smtpd_recipient_limit</a>, before
16380the Postfix SMTP server increments the per-session error count
16381for each excess recipient.  </p>
16382
16383
16384</DD>
16385
16386<DT><b><a name="smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>
16387(default: see "postconf -d" output)</b></DT><DD>
16388
16389<p>
16390Optional restrictions that the Postfix SMTP server applies in the
16391context of a client RCPT TO command, after <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
16392See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
16393restriction lists" for a discussion of evaluation context and time.
16394</p>
16395
16396<p> With Postfix versions before 2.10, the rules for relay permission
16397and spam blocking were combined under <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>,
16398resulting in error-prone configuration.  As of Postfix 2.10, relay
16399permission rules are preferably implemented with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>,
16400so that a permissive spam blocking policy under
16401<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> will no longer result in a permissive
16402mail relay policy.  </p>
16403
16404<p> For backwards compatibility, sites that migrate from Postfix
16405versions before 2.10 can set <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> to the empty
16406value, and use <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> exactly as before. </p>
16407
16408<p>
16409IMPORTANT: Either the <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> or the
16410<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> parameter must specify
16411at least one of the following restrictions. Otherwise Postfix will
16412refuse to receive mail:
16413</p>
16414
16415<blockquote>
16416<pre>
16417reject, <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
16418</pre>
16419</blockquote>
16420
16421<blockquote>
16422<pre>
16423defer, <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>, <a href="postconf.5.html#defer_unauth_destination">defer_unauth_destination</a>
16424</pre>
16425</blockquote>
16426
16427<p>
16428Specify a list of restrictions, separated by commas and/or whitespace.
16429Continue long lines by starting the next line with whitespace.
16430Restrictions are applied in the order as specified; the first
16431restriction that matches wins.
16432</p>
16433
16434<p>
16435The following restrictions are specific to the recipient address
16436that is received with the RCPT TO command.
16437</p>
16438
16439<dl>
16440
16441<dt><b><a name="check_recipient_access">check_recipient_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
16442
16443<dd>Search the specified <a href="access.5.html">access(5)</a> database for the resolved RCPT
16444TO address, domain, parent domains, or localpart@, and execute the
16445corresponding action.  </dd>
16446
16447<dt><b><a name="check_recipient_a_access">check_recipient_a_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
16448
16449<dd>Search the specified <a href="access.5.html">access(5)</a> database for the IP addresses for
16450the RCPT TO domain, and execute the corresponding action.  Note:
16451a result of "OK" is not allowed for safety reasons. Instead, use
16452DUNNO in order to exclude specific hosts from denylists.  This
16453feature is available in Postfix 3.0 and later. </dd>
16454
16455<dt><b><a name="check_recipient_mx_access">check_recipient_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
16456
16457<dd>Search the specified <a href="access.5.html">access(5)</a> database for the MX hosts for
16458the RCPT TO domain, and execute the corresponding action.  If no
16459MX record is found, look up A or AAAA records, just like the Postfix
16460SMTP client would. Note:
16461a result of "OK" is not allowed for safety reasons. Instead, use
16462DUNNO in order to exclude specific hosts from denylists.  This
16463feature is available in Postfix 2.1 and later. </dd>
16464
16465<dt><b><a name="check_recipient_ns_access">check_recipient_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
16466
16467<dd>Search the specified <a href="access.5.html">access(5)</a> database for the DNS servers
16468for the RCPT TO domain, and execute the corresponding action.
16469Note: a result of "OK" is not allowed for safety reasons. Instead,
16470use DUNNO in order to exclude specific hosts from denylists.  This
16471feature is available in Postfix 2.1 and later.  </dd>
16472
16473<dt><b><a name="permit_auth_destination">permit_auth_destination</a></b></dt>
16474
16475<dd>Permit the request when one of the following is true:
16476
16477<ul>
16478
16479<li> Postfix is a mail forwarder: the resolved RCPT TO domain matches
16480$<a href="postconf.5.html#relay_domains">relay_domains</a> or a subdomain thereof, and the address contains no
16481sender-specified routing (user@elsewhere@domain),
16482
16483<li> Postfix is the final destination: the resolved RCPT TO domain
16484matches $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>, $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>,
16485$<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, or $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>, and the address
16486contains no sender-specified routing (user@elsewhere@domain).
16487
16488</ul></dd>
16489
16490<dt><b><a name="permit_mx_backup">permit_mx_backup</a></b></dt>
16491
16492<dd>Permit the request when the local mail system is a backup MX for
16493the RCPT TO domain, or when the domain is an authorized destination
16494(see <a href="postconf.5.html#permit_auth_destination">permit_auth_destination</a> for definition).
16495
16496<ul>
16497
16498<li> Safety: <a href="postconf.5.html#permit_mx_backup">permit_mx_backup</a> does not accept addresses that have
16499sender-specified routing information (example: user@elsewhere@domain).
16500
16501<li> Safety: <a href="postconf.5.html#permit_mx_backup">permit_mx_backup</a> can be vulnerable to mis-use when
16502access is not restricted with <a href="postconf.5.html#permit_mx_backup_networks">permit_mx_backup_networks</a>.
16503
16504<li> Safety: as of Postfix version 2.3, <a href="postconf.5.html#permit_mx_backup">permit_mx_backup</a> no longer
16505accepts the address when the local mail system is a primary MX for
16506the recipient domain.  Exception: <a href="postconf.5.html#permit_mx_backup">permit_mx_backup</a> accepts the address
16507when it specifies an authorized destination (see <a href="postconf.5.html#permit_auth_destination">permit_auth_destination</a>
16508for definition).
16509
16510<li> Limitation: mail may be rejected in case of a temporary DNS
16511lookup problem with Postfix prior to version 2.0.
16512
16513</ul></dd>
16514
16515<dt><b><a name="reject_non_fqdn_recipient">reject_non_fqdn_recipient</a></b></dt>
16516
16517<dd>Reject the request when the RCPT TO address specifies a
16518domain that is not in
16519fully-qualified domain form, as required by the RFC. <br> The
16520<a href="postconf.5.html#non_fqdn_reject_code">non_fqdn_reject_code</a> parameter specifies the response code for
16521rejected requests (default: 504). </dd>
16522
16523<dt><b><a name="reject_rhsbl_recipient">reject_rhsbl_recipient <i>rbl_domain=d.d.d.d</i></a></b></dt>
16524
16525<dd>Reject the request when the RCPT TO domain is listed with the
16526A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
165272.1 and later only).  Each "<i>d</i>" is a number, or a pattern
16528inside "[]" that contains one or more ";"-separated numbers or
16529number..number ranges (Postfix version 2.8 and later). If no
16530"<i>=d.d.d.d</i>" is specified, reject
16531the request when the RCPT TO domain is listed with
16532any A record under <i>rbl_domain</i>. <br> The <a href="postconf.5.html#maps_rbl_reject_code">maps_rbl_reject_code</a>
16533parameter specifies the response code for rejected requests (default:
16534554); the <a href="postconf.5.html#default_rbl_reply">default_rbl_reply</a> parameter specifies the default server
16535reply; and the <a href="postconf.5.html#rbl_reply_maps">rbl_reply_maps</a> parameter specifies tables with server
16536replies indexed by <i>rbl_domain</i>.  This feature is available
16537in Postfix version 2.0 and later.</dd>
16538
16539<dt><b><a name="reject_unauth_destination">reject_unauth_destination</a></b></dt>
16540
16541<dd>Reject the request unless one of the following is true:
16542
16543<ul>
16544
16545<li> Postfix is a mail forwarder: the resolved RCPT TO domain matches
16546$<a href="postconf.5.html#relay_domains">relay_domains</a> or a subdomain thereof, and contains no sender-specified
16547routing (user@elsewhere@domain),
16548
16549<li> Postfix is the final destination: the resolved RCPT TO domain
16550matches $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>, $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>,
16551$<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, or $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>, and contains
16552no sender-specified routing (user@elsewhere@domain).
16553
16554</ul>The <a href="postconf.5.html#relay_domains_reject_code">relay_domains_reject_code</a> parameter specifies the response
16555code for rejected requests (default: 554). </dd>
16556
16557<dt><b><a name="defer_unauth_destination">defer_unauth_destination</a></b></dt>
16558
16559<dd> Reject the same requests as <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>, with a
16560non-permanent error code.  This feature is available in Postfix
165612.10 and later.</dd>
16562
16563<dt><b><a name="reject_unknown_recipient_domain">reject_unknown_recipient_domain</a></b></dt>
16564
16565<dd>Reject the request when Postfix is not final destination for
16566the recipient domain, and the RCPT TO domain has 1) no DNS MX and
16567no DNS A
16568record or 2) a malformed MX record such as a record with
16569a zero-length MX hostname (Postfix version 2.3 and later). <br> The
16570reply is specified with the <a href="postconf.5.html#unknown_address_reject_code">unknown_address_reject_code</a> parameter
16571(default: 450), <a href="postconf.5.html#unknown_address_tempfail_action">unknown_address_tempfail_action</a> (default:
16572<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>), or 556 (nullmx, Postfix 3.0 and
16573later). See the respective parameter descriptions for details.
16574</dd>
16575
16576<dt><b><a name="reject_unlisted_recipient">reject_unlisted_recipient</a></b> (with Postfix version 2.0: check_recipient_maps)</dt>
16577
16578<dd> Reject the request when the RCPT TO address is not listed in
16579the list of valid recipients for its domain class. See the
16580<a href="postconf.5.html#smtpd_reject_unlisted_recipient">smtpd_reject_unlisted_recipient</a> parameter description for details.
16581This feature is available in Postfix 2.1 and later.</dd>
16582
16583<dt><b><a name="reject_unverified_recipient">reject_unverified_recipient</a></b></dt>
16584
16585<dd>Reject the request when mail to the RCPT TO address is known
16586to bounce, or when the recipient address destination is not reachable.
16587Address verification information is managed by the <a href="verify.8.html">verify(8)</a> server;
16588see the <a href="ADDRESS_VERIFICATION_README.html">ADDRESS_VERIFICATION_README</a> file for details.  <br> The
16589<a href="postconf.5.html#unverified_recipient_reject_code">unverified_recipient_reject_code</a> parameter specifies the numerical
16590response code when an address is known to bounce (default: 450,
16591change it to 550 when you are confident that it is safe to do so).
16592<br>The <a href="postconf.5.html#unverified_recipient_defer_code">unverified_recipient_defer_code</a> parameter specifies the
16593numerical response code when an address probe failed due to a
16594temporary problem (default: 450). <br> The
16595<a href="postconf.5.html#unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a> parameter specifies the action
16596after address probe failure due to a temporary problem (default:
16597<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>). <br> This feature breaks for aliased addresses
16598with "<a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a> = no" (Postfix &le; 3.2). <br>
16599This feature is available in Postfix 2.1 and later. </dd>
16600
16601</dl>
16602
16603<p>
16604Other restrictions that are valid in this context:
16605</p>
16606
16607<ul>
16608
16609<li><a href="#generic">Generic</a> restrictions that can be used
16610in any SMTP command context, described under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>.
16611
16612<li>SMTP command specific restrictions described under
16613<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>, <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> and
16614<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a>.
16615
16616</ul>
16617
16618<p>
16619Example:
16620</p>
16621
16622<pre>
16623# The Postfix before 2.10 default mail relay policy. Later Postfix
16624# versions implement this preferably with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
16625<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
16626</pre>
16627
16628
16629</DD>
16630
16631<DT><b><a name="smtpd_reject_footer">smtpd_reject_footer</a>
16632(default: empty)</b></DT><DD>
16633
16634<p> Optional information that is appended after each Postfix SMTP
16635server
166364XX or 5XX response. </p>
16637
16638<p> The following example uses "\c" at the start of the template
16639(supported in Postfix 2.10 and later) to suppress the line break
16640between the reply text and the footer text. With earlier Postfix
16641versions, the footer text always begins on a new line, and the "\c"
16642is output literally. </p>
16643
16644<pre>
16645/etc/postfix/<a href="postconf.5.html">main.cf</a>:
16646    <a href="postconf.5.html#smtpd_reject_footer">smtpd_reject_footer</a> = \c. For assistance, call 800-555-0101.
16647     Please provide the following information in your problem report:
16648     time ($localtime), client ($client_address) and server
16649     ($server_name).
16650</pre>
16651
16652<p> Server response: </p>
16653
16654<pre>
16655    550-5.5.1 &lt;user@example&gt; Recipient address rejected: User
16656    unknown. For assistance, call 800-555-0101. Please provide the
16657    following information in your problem report: time (Jan 4 15:42:00),
16658    client (192.168.1.248) and server (mail1.example.com).
16659</pre>
16660
16661<p> Note: the above text is meant to make it easier to find the
16662Postfix logfile records for a failed SMTP session. The text itself
16663is not logged to the Postfix SMTP server's maillog file. </p>
16664
16665<p> Be sure to keep the text as short as possible. Long text may
16666be truncated before it is logged to the remote SMTP client's maillog
16667file, or before it is returned to the sender in a delivery status
16668notification.  </p>
16669
16670<p> The template text is not subject to Postfix configuration
16671parameter $name expansion. Instead, this feature supports a limited
16672number of $name attributes in the footer text. These attributes are
16673replaced with their current value for the SMTP session. </p>
16674
16675<p> Note: specify $$name in footer text that is looked up from
16676<a href="regexp_table.5.html">regexp</a>: or <a href="pcre_table.5.html">pcre</a>:-based <a href="postconf.5.html#smtpd_reject_footer_maps">smtpd_reject_footer_maps</a>, otherwise the
16677Postfix server will not use the footer text and will log a warning
16678instead. </p>
16679
16680<dl>
16681
16682<dt> <b>client_address</b> </dt> <dd> The Client IP address that
16683is logged in the maillog file. </dd>
16684
16685<dt> <b>client_port</b> </dt> <dd> The client TCP port that is
16686logged in the maillog file. </dd>
16687
16688<dt> <b>localtime</b> </dt> <dd> The server local time (Mmm dd
16689hh:mm:ss) that is logged in the maillog file. </dd>
16690
16691<dt> <b>server_name</b> </dt> <dd> The server's <a href="postconf.5.html#myhostname">myhostname</a> value.
16692This attribute is made available for sites with multiple MTAs
16693(perhaps behind a load-balancer), where the server name can help
16694the server support team to quickly find the right log files.  </dd>
16695
16696</dl>
16697
16698<p> Notes: </p>
16699
16700<ul>
16701
16702<li> <p> NOT SUPPORTED are other attributes such as sender, recipient,
16703or <a href="postconf.5.html">main.cf</a> parameters.  </p>
16704
16705<li> <p> For safety reasons, text that does not match
16706$<a href="postconf.5.html#smtpd_expansion_filter">smtpd_expansion_filter</a> is censored. </p>
16707
16708</ul>
16709
16710<p> This feature supports the two-character sequence \n as a request
16711for a line break in the footer text. Postfix automatically inserts
16712after each line break the three-digit SMTP reply code (and optional
16713enhanced status code) from the original Postfix reject message.
16714</p>
16715
16716<p> To work around mail software that mis-handles multi-line replies,
16717specify the two-character sequence \c at the start of the template.
16718This suppresses the line break between the reply text and the footer
16719text (Postfix 2.10 and later).  </p>
16720
16721<p> This feature is available in Postfix 2.8 and later. </p>
16722
16723
16724</DD>
16725
16726<DT><b><a name="smtpd_reject_footer_maps">smtpd_reject_footer_maps</a>
16727(default: empty)</b></DT><DD>
16728
16729<p> Lookup tables, indexed by the complete Postfix SMTP server 4xx or
167305xx response, with reject footer templates. See <a href="postconf.5.html#smtpd_reject_footer">smtpd_reject_footer</a>
16731for details. </p>
16732
16733<p>
16734Specify zero or more "type:name" lookup tables, separated by
16735whitespace or comma. Tables will be searched in the specified order
16736until a match is found.
16737</p>
16738
16739<p> This feature is available in Postfix 3.4 and later. </p>
16740
16741
16742</DD>
16743
16744<DT><b><a name="smtpd_reject_unlisted_recipient">smtpd_reject_unlisted_recipient</a>
16745(default: yes)</b></DT><DD>
16746
16747<p>
16748Request that the Postfix SMTP server rejects mail for unknown
16749recipient addresses, even when no explicit <a href="postconf.5.html#reject_unlisted_recipient">reject_unlisted_recipient</a>
16750access restriction is specified. This prevents the Postfix queue
16751from filling up with undeliverable MAILER-DAEMON messages.
16752</p>
16753
16754<p> An address is considered "unknown" when 1) it does not match a
16755<a href="virtual.5.html">virtual(5)</a> alias or <a href="canonical.5.html">canonical(5)</a> mapping, and 2) the address is not
16756valid for its address class. For a definition of class-based address
16757validation, see <a href="ADDRESS_CLASS_README.html#classes">
16758ADDRESS_CLASS_README</a>. </p>
16759
16760<p>
16761This feature is available in Postfix 2.1 and later.
16762</p>
16763
16764
16765</DD>
16766
16767<DT><b><a name="smtpd_reject_unlisted_sender">smtpd_reject_unlisted_sender</a>
16768(default: no)</b></DT><DD>
16769
16770<p> Request that the Postfix SMTP server rejects mail from unknown
16771sender addresses, even when no explicit <a href="postconf.5.html#reject_unlisted_sender">reject_unlisted_sender</a>
16772access restriction is specified. This can slow down an explosion
16773of forged mail from worms or viruses. </p>
16774
16775<p> An address is considered "unknown" when 1) it does not match a
16776<a href="virtual.5.html">virtual(5)</a> alias or <a href="canonical.5.html">canonical(5)</a> mapping, and 2) the address is not
16777valid for its address class. For a definition of class-based address
16778validation, see <a href="ADDRESS_CLASS_README.html#classes">
16779ADDRESS_CLASS_README</a>. </p>
16780
16781<p>
16782This feature is available in Postfix 2.1 and later.
16783</p>
16784
16785
16786</DD>
16787
16788<DT><b><a name="smtpd_relay_before_recipient_restrictions">smtpd_relay_before_recipient_restrictions</a>
16789(default: see "postconf -d" output)</b></DT><DD>
16790
16791<p> Evaluate <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> before <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
16792Historically, <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> was evaluated after
16793<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>, contradicting documented behavior. </p>
16794
16795<p> Background: the <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> feature is primarily
16796designed to enforce a mail relaying policy, while
16797<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> is primarily designed to enforce spam
16798blocking policy. Both are evaluated while replying to the RCPT TO
16799command, and both support the same features. </p>
16800
16801<p> This feature is available in Postfix 3.6 and later. </p>
16802
16803
16804</DD>
16805
16806<DT><b><a name="smtpd_relay_restrictions">smtpd_relay_restrictions</a>
16807(default: <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>, <a href="postconf.5.html#defer_unauth_destination">defer_unauth_destination</a>)</b></DT><DD>
16808
16809<p> Access restrictions for mail relay control that the Postfix
16810SMTP server applies in the context of the RCPT TO command, before
16811<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
16812See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
16813restriction lists" for a discussion of evaluation context and time.
16814</p>
16815
16816<p> With Postfix versions before 2.10, the rules for relay permission
16817and spam blocking were combined under <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>,
16818resulting in error-prone configuration.  As of Postfix 2.10, relay
16819permission rules are preferably implemented with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>,
16820so that a permissive spam blocking policy under
16821<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> will no longer result in a permissive
16822mail relay policy.  </p>
16823
16824<p> For backwards compatibility, sites that migrate from Postfix
16825versions before 2.10 can set <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> to the empty
16826value, and use <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> exactly as before. </p>
16827
16828<p>
16829By default, the Postfix SMTP server accepts:
16830</p>
16831
16832<ul>
16833
16834<li> Mail from clients whose IP address matches $<a href="postconf.5.html#mynetworks">mynetworks</a>, or:
16835
16836<li> Mail from clients who are SASL authenticated, or:
16837
16838<li> Mail to remote destinations that match $<a href="postconf.5.html#relay_domains">relay_domains</a>, except
16839for addresses that contain sender-specified routing
16840(user@elsewhere@domain), or:
16841
16842<li> Mail to local destinations that match $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>
16843or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>, $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, or
16844$<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.
16845
16846</ul>
16847
16848<p>
16849IMPORTANT: Either the <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> or the
16850<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> parameter must specify
16851at least one of the following restrictions. Otherwise Postfix will
16852refuse to receive mail:
16853</p>
16854
16855<blockquote>
16856<pre>
16857reject, <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
16858</pre>
16859</blockquote>
16860
16861<blockquote>
16862<pre>
16863defer, <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>, <a href="postconf.5.html#defer_unauth_destination">defer_unauth_destination</a>
16864</pre>
16865</blockquote>
16866
16867<p>
16868Specify a list of restrictions, separated by commas and/or whitespace.
16869Continue long lines by starting the next line with whitespace.
16870The same restrictions are available as documented under
16871<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
16872</p>
16873
16874<p> This feature is available in Postix 2.10 and later. </p>
16875
16876
16877</DD>
16878
16879<DT><b><a name="smtpd_restriction_classes">smtpd_restriction_classes</a>
16880(default: empty)</b></DT><DD>
16881
16882<p>
16883User-defined aliases for groups of access restrictions. The aliases
16884can be specified in <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> etc., and on the
16885right-hand side of a Postfix <a href="access.5.html">access(5)</a> table.
16886</p>
16887
16888<p>
16889One major application is for implementing per-recipient UCE control.
16890See the <a href="RESTRICTION_CLASS_README.html">RESTRICTION_CLASS_README</a> document for other examples.
16891</p>
16892
16893
16894</DD>
16895
16896<DT><b><a name="smtpd_sasl_application_name">smtpd_sasl_application_name</a>
16897(default: smtpd)</b></DT><DD>
16898
16899<p>
16900The application name that the Postfix SMTP server uses for SASL
16901server initialization. This
16902controls the name of the SASL configuration file. The default value
16903is <b>smtpd</b>, corresponding to a SASL configuration file named
16904<b>smtpd.conf</b>.
16905</p>
16906
16907<p>
16908This feature is available in Postfix 2.1 and 2.2. With Postfix 2.3
16909it was renamed to <a href="postconf.5.html#smtpd_sasl_path">smtpd_sasl_path</a>.
16910</p>
16911
16912
16913</DD>
16914
16915<DT><b><a name="smtpd_sasl_auth_enable">smtpd_sasl_auth_enable</a>
16916(default: no)</b></DT><DD>
16917
16918<p>
16919Enable SASL authentication in the Postfix SMTP server. By default,
16920the Postfix SMTP server does not use authentication.
16921</p>
16922
16923<p>
16924If a remote SMTP client is authenticated, the <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>
16925access restriction can be used to permit relay access, like this:
16926</p>
16927
16928<blockquote>
16929<pre>
16930# With Postfix 2.10 and later, the mail relay policy is
16931# preferably specified under <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
16932<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> =
16933    <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>, ...
16934</pre>
16935
16936<pre>
16937# With Postfix before 2.10, the relay policy can be
16938# specified only under <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
16939<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
16940    <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>, ...
16941</pre>
16942</blockquote>
16943
16944<p> To reject all SMTP connections from unauthenticated clients,
16945specify "<a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> = yes" (which is the default) and use:
16946</p>
16947
16948<blockquote>
16949<pre>
16950<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> = <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>, reject
16951</pre>
16952</blockquote>
16953
16954<p>
16955See the <a href="SASL_README.html">SASL_README</a> file for SASL configuration and operation details.
16956</p>
16957
16958
16959</DD>
16960
16961<DT><b><a name="smtpd_sasl_authenticated_header">smtpd_sasl_authenticated_header</a>
16962(default: no)</b></DT><DD>
16963
16964<p> Report the SASL authenticated user name in the <a href="smtpd.8.html">smtpd(8)</a> Received
16965message header.  </p>
16966
16967<p> This feature is available in Postfix 2.3 and later.  </p>
16968
16969
16970</DD>
16971
16972<DT><b><a name="smtpd_sasl_exceptions_networks">smtpd_sasl_exceptions_networks</a>
16973(default: empty)</b></DT><DD>
16974
16975<p>
16976What remote SMTP clients the Postfix SMTP server will not offer
16977AUTH support to.
16978</p>
16979
16980<p>
16981Some clients (Netscape 4 at least) have a bug that causes them to
16982require a login and password whenever AUTH is offered, whether it's
16983necessary or not. To work around this, specify, for example,
16984$<a href="postconf.5.html#mynetworks">mynetworks</a> to prevent Postfix from offering AUTH to local clients.
16985</p>
16986
16987<p>
16988Specify a list of network/netmask patterns, separated by commas
16989and/or whitespace. The mask specifies the number of bits in the
16990network part of a host address. You can also specify "/file/name" or
16991"<a href="DATABASE_README.html">type:table</a>" patterns.  A "/file/name" pattern is replaced by its
16992contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a table entry
16993matches a lookup string (the lookup result is ignored).  Continue
16994long lines by starting the next line with whitespace. Specify
16995"!pattern" to exclude an address or network block from the list.
16996The form "!/file/name" is supported only in Postfix version 2.4 and
16997later.  </p>
16998
16999<p> Note: IP version 6 address information must be specified inside
17000<tt>[]</tt> in the <a href="postconf.5.html#smtpd_sasl_exceptions_networks">smtpd_sasl_exceptions_networks</a> value, and in
17001files specified with "/file/name".  IP version 6 addresses contain
17002the ":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
17003pattern.  </p>
17004
17005<p>
17006Example:
17007</p>
17008
17009<pre>
17010<a href="postconf.5.html#smtpd_sasl_exceptions_networks">smtpd_sasl_exceptions_networks</a> = $<a href="postconf.5.html#mynetworks">mynetworks</a>
17011</pre>
17012
17013<p>
17014This feature is available in Postfix 2.1 and later.
17015</p>
17016
17017
17018</DD>
17019
17020<DT><b><a name="smtpd_sasl_local_domain">smtpd_sasl_local_domain</a>
17021(default: empty)</b></DT><DD>
17022
17023<p>
17024The name of the Postfix SMTP server's local SASL authentication
17025realm.
17026</p>
17027
17028<p>
17029By default, the local authentication realm name is the null string.
17030</p>
17031
17032<p>
17033Examples:
17034</p>
17035
17036<pre>
17037<a href="postconf.5.html#smtpd_sasl_local_domain">smtpd_sasl_local_domain</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
17038<a href="postconf.5.html#smtpd_sasl_local_domain">smtpd_sasl_local_domain</a> = $<a href="postconf.5.html#myhostname">myhostname</a>
17039</pre>
17040
17041
17042</DD>
17043
17044<DT><b><a name="smtpd_sasl_mechanism_filter">smtpd_sasl_mechanism_filter</a>
17045(default: !external, <a href="DATABASE_README.html#types">static</a>:rest)</b></DT><DD>
17046
17047<p> If non-empty, a filter for the SASL mechanism names that the
17048Postfix SMTP server will announce in the EHLO response. By default,
17049the Postfix SMTP server will not announce the EXTERNAL mechanism,
17050because Postfix support for that is not implemented. </p>
17051
17052<p> Specify mechanism names, "/file/name" patterns, or "<a href="DATABASE_README.html">type:table</a>"
17053lookup tables, separated by comma or whitespace. The right-hand
17054side result from "<a href="DATABASE_README.html">type:table</a>" lookups is ignored. Specify "!pattern"
17055to exclude a mechanism name from the list. </p>
17056
17057<p>
17058Examples:
17059</p>
17060
17061<pre>
17062<a href="postconf.5.html#smtpd_sasl_mechanism_filter">smtpd_sasl_mechanism_filter</a> = !external, !gssapi, <a href="DATABASE_README.html#types">static</a>:rest
17063<a href="postconf.5.html#smtpd_sasl_mechanism_filter">smtpd_sasl_mechanism_filter</a> = login, plain
17064<a href="postconf.5.html#smtpd_sasl_mechanism_filter">smtpd_sasl_mechanism_filter</a> = /etc/postfix/smtpd_mechs
17065</pre>
17066
17067<p> This feature is available in Postfix 3.6 and later. </p>
17068
17069
17070</DD>
17071
17072<DT><b><a name="smtpd_sasl_path">smtpd_sasl_path</a>
17073(default: smtpd)</b></DT><DD>
17074
17075<p> Implementation-specific information that the Postfix SMTP server
17076passes through to
17077the SASL plug-in implementation that is selected with
17078<b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b>.  Typically this specifies the name of a
17079configuration file or rendezvous point. </p>
17080
17081<p> This feature is available in Postfix 2.3 and later. In earlier
17082releases it was called <b><a href="postconf.5.html#smtpd_sasl_application_name">smtpd_sasl_application_name</a></b>. </p>
17083
17084
17085</DD>
17086
17087<DT><b><a name="smtpd_sasl_response_limit">smtpd_sasl_response_limit</a>
17088(default: 12288)</b></DT><DD>
17089
17090<p> The maximum length of a SASL client's response to a server challenge.
17091When the client's "initial response" is longer than the normal limit for
17092SMTP commands, the client must omit its initial response, and wait for an
17093empty server challenge; it can then send what would have been its "initial
17094response" as a response to the empty server challenge.  <a href="https://tools.ietf.org/html/rfc4954">RFC4954</a> requires the
17095server to accept client responses up to at least 12288 octets of
17096base64-encoded text.  The default value is therefore also the minimum value
17097accepted for this parameter.</p>
17098
17099<p> This feature is available in Postfix 3.4 and later. Prior versions use
17100"<a href="postconf.5.html#line_length_limit">line_length_limit</a>", which may need to be raised to accommodate larger client
17101responses, as may be needed with GSSAPI authentication of Windows AD users
17102who are members of many groups. </p>
17103
17104
17105</DD>
17106
17107<DT><b><a name="smtpd_sasl_security_options">smtpd_sasl_security_options</a>
17108(default: noanonymous)</b></DT><DD>
17109
17110<p> Postfix SMTP server SASL security options; as of Postfix 2.3
17111the list of available
17112features depends on the SASL server implementation that is selected
17113with <b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b>.  </p>
17114
17115<p> The following security features are defined for the <b>cyrus</b>
17116server SASL implementation: </p>
17117
17118<p>
17119Restrict what authentication mechanisms the Postfix SMTP server
17120will offer to the client.  The list of available authentication
17121mechanisms is system dependent.
17122</p>
17123
17124<p>
17125Specify zero or more of the following:
17126</p>
17127
17128<dl>
17129
17130<dt><b>noplaintext</b></dt>
17131
17132<dd>Disallow methods that use plaintext passwords. </dd>
17133
17134<dt><b>noactive</b></dt>
17135
17136<dd>Disallow methods subject to active (non-dictionary) attack. </dd>
17137
17138<dt><b>nodictionary</b></dt>
17139
17140<dd>Disallow methods subject to passive (dictionary) attack. </dd>
17141
17142<dt><b>noanonymous</b></dt>
17143
17144<dd>Disallow methods that allow anonymous authentication. </dd>
17145
17146<dt><b>forward_secrecy</b></dt>
17147
17148<dd>Only allow methods that support forward secrecy (Dovecot only).
17149</dd>
17150
17151<dt><b>mutual_auth</b></dt>
17152
17153<dd>Only allow methods that provide mutual authentication (not available
17154with Cyrus SASL version 1). </dd>
17155
17156</dl>
17157
17158<p>
17159By default, the Postfix SMTP server accepts plaintext passwords but
17160not anonymous logins.
17161</p>
17162
17163<p>
17164Warning: it appears that clients try authentication methods in the
17165order as advertised by the server (e.g., PLAIN ANONYMOUS CRAM-MD5)
17166which means that if you disable plaintext passwords, clients will
17167log in anonymously, even when they should be able to use CRAM-MD5.
17168So, if you disable plaintext logins, disable anonymous logins too.
17169Postfix treats anonymous login as no authentication.
17170</p>
17171
17172<p>
17173Example:
17174</p>
17175
17176<pre>
17177<a href="postconf.5.html#smtpd_sasl_security_options">smtpd_sasl_security_options</a> = noanonymous, noplaintext
17178</pre>
17179
17180
17181</DD>
17182
17183<DT><b><a name="smtpd_sasl_service">smtpd_sasl_service</a>
17184(default: smtp)</b></DT><DD>
17185
17186<p> The service name that is passed to the SASL plug-in that is
17187selected with <b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b> and <b><a href="postconf.5.html#smtpd_sasl_path">smtpd_sasl_path</a></b>.
17188</p>
17189
17190<p> This feature is available in Postfix 2.11 and later. Prior
17191versions behave as if "<b>smtp</b>" is specified. </p>
17192
17193
17194</DD>
17195
17196<DT><b><a name="smtpd_sasl_tls_security_options">smtpd_sasl_tls_security_options</a>
17197(default: $<a href="postconf.5.html#smtpd_sasl_security_options">smtpd_sasl_security_options</a>)</b></DT><DD>
17198
17199<p> The SASL authentication security options that the Postfix SMTP
17200server uses for TLS encrypted SMTP sessions. </p>
17201
17202<p> This feature is available in Postfix 2.2 and later.  </p>
17203
17204
17205</DD>
17206
17207<DT><b><a name="smtpd_sasl_type">smtpd_sasl_type</a>
17208(default: cyrus)</b></DT><DD>
17209
17210<p> The SASL plug-in type that the Postfix SMTP server should use
17211for authentication. The available types are listed with the
17212"<b>postconf -a</b>" command. </p>
17213
17214<p> This feature is available in Postfix 2.3 and later. </p>
17215
17216
17217</DD>
17218
17219<DT><b><a name="smtpd_sender_login_maps">smtpd_sender_login_maps</a>
17220(default: empty)</b></DT><DD>
17221
17222<p>
17223Optional lookup table with the SASL login names that own the sender
17224(MAIL FROM) addresses.
17225</p>
17226
17227<p>
17228Specify zero or more "type:name" lookup tables, separated by
17229whitespace or comma. Tables will be searched in the specified order
17230until a match is found.  With lookups from
17231indexed files such as DB or DBM, or from networked tables such as
17232NIS, LDAP or SQL, the following search operations are done with a
17233sender address of <i>user@domain</i>:  </p>
17234
17235<dl>
17236
17237<dt> 1) <i>user@domain</i> </dt>
17238
17239<dd>This table lookup is always done and has the highest precedence. </dd>
17240
17241<dt> 2) <i>user</i> </dt>
17242
17243<dd>This table lookup is done only when the <i>domain</i> part of the
17244sender address matches $<a href="postconf.5.html#myorigin">myorigin</a>, $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>
17245or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>. </dd>
17246
17247<dt> 3) <i>@domain</i> </dt>
17248
17249<dd>This table lookup is done last and has the lowest precedence. </dd>
17250
17251</dl>
17252
17253<p>
17254In all cases the result of table lookup must be either "not found"
17255or a list of SASL login names separated by comma and/or whitespace.
17256</p>
17257
17258
17259</DD>
17260
17261<DT><b><a name="smtpd_sender_restrictions">smtpd_sender_restrictions</a>
17262(default: empty)</b></DT><DD>
17263
17264<p>
17265Optional restrictions that the Postfix SMTP server applies in the
17266context of a client MAIL FROM command.
17267See <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a>, section "Delayed evaluation of SMTP access
17268restriction lists" for a discussion of evaluation context and time.
17269</p>
17270
17271<p>
17272The default is to permit everything.
17273</p>
17274
17275<p>
17276Specify a list of restrictions, separated by commas and/or whitespace.
17277Continue long lines by starting the next line with whitespace.
17278Restrictions are applied in the order as specified; the first
17279restriction that matches wins.
17280</p>
17281
17282<p>
17283The following restrictions are specific to the sender address
17284received with the MAIL FROM command.
17285</p>
17286
17287<dl>
17288
17289<dt><b><a name="check_sender_access">check_sender_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
17290
17291<dd>Search the specified <a href="access.5.html">access(5)</a> database for the MAIL FROM
17292address, domain, parent domains, or localpart@, and execute the
17293corresponding action. </dd>
17294
17295<dt><b><a name="check_sender_a_access">check_sender_a_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
17296
17297<dd>Search the specified <a href="access.5.html">access(5)</a> database for the IP addresses for
17298the MAIL FROM domain, and execute the corresponding action.  Note:
17299a result of "OK" is not allowed for safety reasons. Instead, use
17300DUNNO in order to exclude specific hosts from denylists.  This
17301feature is available in Postfix 3.0 and later. </dd>
17302
17303<dt><b><a name="check_sender_mx_access">check_sender_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
17304
17305<dd>Search the specified <a href="access.5.html">access(5)</a> database for the MX hosts for
17306the MAIL FROM domain, and execute the corresponding action.  If no
17307MX record is found, look up A or AAAA records, just like the Postfix
17308SMTP client would. Note:
17309a result of "OK" is not allowed for safety reasons. Instead, use
17310DUNNO in order to exclude specific hosts from denylists.  This
17311feature is available in Postfix 2.1 and later. </dd>
17312
17313<dt><b><a name="check_sender_ns_access">check_sender_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
17314
17315<dd>Search the specified <a href="access.5.html">access(5)</a> database for the DNS servers
17316for the MAIL FROM domain, and execute the corresponding action.
17317Note: a result of "OK" is not allowed for safety reasons. Instead,
17318use DUNNO in order to exclude specific hosts from denylists.  This
17319feature is available in Postfix 2.1 and later.  </dd>
17320
17321<dt><b><a name="reject_authenticated_sender_login_mismatch">reject_authenticated_sender_login_mismatch</a></b></dt>
17322
17323<dd> Reject the request when the client is authenticated with SASL,
17324but either the MAIL FROM address is not listed in $<a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a>,
17325or the SASL login name is not an owner for that address.
17326<br>
17327This prevents an authenticated client from using a MAIL FROM address
17328that they do not explicitly own.
17329<br>
17330This feature is available in Postfix version 2.1 and later. </dd>
17331
17332<dt><b><a name="reject_known_sender_login_mismatch">reject_known_sender_login_mismatch</a></b></dt>
17333
17334<dd> When the client is authenticated with SASL, reject the request
17335when the MAIL FROM address is listed in $<a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a>,
17336but the SASL login name is not an owner for that address.
17337<br>
17338When the client is not authenticated with SASL, reject the request
17339when SASL is enabled, and the MAIL FROM address is listed in
17340$<a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a>.
17341<br>
17342This protects any MAIL FROM address that is listed in
17343$<a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a>, while still allowing a client to use any
17344unlisted MAIL FROM address.
17345<br>
17346This feature is available in Postfix version 2.11 and later.</dd>
17347
17348<dt><b><a name="reject_non_fqdn_sender">reject_non_fqdn_sender</a></b></dt>
17349
17350<dd>Reject the request when the MAIL FROM address specifies a
17351domain that is not in
17352fully-qualified domain form as required by the RFC. <br> The
17353<a href="postconf.5.html#non_fqdn_reject_code">non_fqdn_reject_code</a> parameter specifies the response code for
17354rejected requests (default: 504). </dd>
17355
17356<dt><b><a name="reject_rhsbl_sender">reject_rhsbl_sender <i>rbl_domain=d.d.d.d</i></a></b></dt>
17357
17358<dd>Reject the request when the MAIL FROM domain is listed with
17359the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix
17360version 2.1 and later only).  Each "<i>d</i>" is a number, or a
17361pattern inside "[]" that contains one or more ";"-separated numbers
17362or number..number ranges (Postfix version 2.8 and later). If no
17363"<i>=d.d.d.d</i>" is specified,
17364reject the request when the MAIL FROM domain is
17365listed with any A record under <i>rbl_domain</i>. <br> The
17366<a href="postconf.5.html#maps_rbl_reject_code">maps_rbl_reject_code</a> parameter specifies the response code for
17367rejected requests (default:  554); the <a href="postconf.5.html#default_rbl_reply">default_rbl_reply</a> parameter
17368specifies the default server reply; and the <a href="postconf.5.html#rbl_reply_maps">rbl_reply_maps</a> parameter
17369specifies tables with server replies indexed by <i>rbl_domain</i>.
17370This feature is available in Postfix 2.0 and later.</dd>
17371
17372<dt><b><a name="reject_sender_login_mismatch">reject_sender_login_mismatch</a></b></dt>
17373
17374<dd> As of Postfix 2.1, this is an alias for
17375"<a href="postconf.5.html#reject_authenticated_sender_login_mismatch">reject_authenticated_sender_login_mismatch</a>,
17376<a href="postconf.5.html#reject_unauthenticated_sender_login_mismatch">reject_unauthenticated_sender_login_mismatch</a>".</dd>
17377
17378<dt><b><a name="reject_unauthenticated_sender_login_mismatch">reject_unauthenticated_sender_login_mismatch</a></b></dt>
17379
17380<dd> Reject the request when SASL is enabled, the MAIL FROM address
17381is listed in $<a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a>, but the client is not
17382authenticated with SASL.
17383<br>
17384With SASL enabled, this prevents an unauthenticated client from
17385using any MAIL FROM address that is listed in $<a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a>.
17386<br>
17387This feature is available in Postfix version 2.1 and later.</dd>
17388
17389<dt><b><a name="reject_unknown_sender_domain">reject_unknown_sender_domain</a></b></dt>
17390
17391<dd>Reject the request when Postfix is not the final destination for
17392the sender address, and the MAIL FROM domain has 1) no DNS MX and
17393no DNS A
17394record, or 2) a malformed MX record such as a record with
17395a zero-length MX hostname (Postfix version 2.3 and later). <br> The
17396reply is specified with the <a href="postconf.5.html#unknown_address_reject_code">unknown_address_reject_code</a> parameter
17397(default: 450), <a href="postconf.5.html#unknown_address_tempfail_action">unknown_address_tempfail_action</a> (default:
17398<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>), or 550 (nullmx, Postfix 3.0 and
17399later). See the respective parameter descriptions for details.
17400</dd>
17401
17402<dt><b><a name="reject_unlisted_sender">reject_unlisted_sender</a></b></dt>
17403
17404<dd>Reject the request when the MAIL FROM address is not listed in
17405the list of valid recipients for its domain class. See the
17406<a href="postconf.5.html#smtpd_reject_unlisted_sender">smtpd_reject_unlisted_sender</a> parameter description for details.
17407This feature is available in Postfix 2.1 and later.</dd>
17408
17409<dt><b><a name="reject_unverified_sender">reject_unverified_sender</a></b></dt>
17410
17411<dd>Reject the request when mail to the MAIL FROM address is known to
17412bounce, or when the sender address destination is not reachable.
17413Address verification information is managed by the <a href="verify.8.html">verify(8)</a> server;
17414see the <a href="ADDRESS_VERIFICATION_README.html">ADDRESS_VERIFICATION_README</a> file for details. <br> The
17415<a href="postconf.5.html#unverified_sender_reject_code">unverified_sender_reject_code</a> parameter specifies the numerical
17416response code when an address is known to bounce (default: 450,
17417change into 550 when you are confident that it is safe to do so).
17418<br>The <a href="postconf.5.html#unverified_sender_defer_code">unverified_sender_defer_code</a> specifies the numerical response
17419code when an address probe failed due to a temporary problem
17420(default: 450).  <br> The <a href="postconf.5.html#unverified_sender_tempfail_action">unverified_sender_tempfail_action</a> parameter
17421specifies the action after address probe failure due to a temporary
17422problem (default: <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>).  <br> This feature breaks for
17423aliased addresses with "<a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a> = no" (Postfix
17424&le; 3.2).  <br> This feature is available in Postfix 2.1 and later.
17425</dd>
17426
17427</dl>
17428
17429<p>
17430Other restrictions that are valid in this context:
17431</p>
17432
17433<ul>
17434
17435<li> <a href="#generic">Generic</a> restrictions that can be used
17436in any SMTP command context, described under <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>.
17437
17438<li> SMTP command specific restrictions described under
17439<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> and <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>.
17440
17441<li> SMTP command specific restrictions described under
17442<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>. When recipient restrictions are listed
17443under <a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a>, they have effect only with
17444"<a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> = yes", so that $<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> is
17445evaluated at the time of the RCPT TO command.
17446
17447</ul>
17448
17449<p>
17450Examples:
17451</p>
17452
17453<pre>
17454<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> = <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a>
17455<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> = <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a>,
17456    <a href="postconf.5.html#check_sender_access">check_sender_access</a> <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/access
17457</pre>
17458
17459
17460</DD>
17461
17462<DT><b><a name="smtpd_service_name">smtpd_service_name</a>
17463(default: smtpd)</b></DT><DD>
17464
17465<p> The internal service that <a href="postscreen.8.html">postscreen(8)</a> hands off allowed
17466connections to. In a future version there may be different
17467classes of SMTP service. </p>
17468
17469<p> This feature is available in Postfix 2.8. </p>
17470
17471
17472</DD>
17473
17474<DT><b><a name="smtpd_soft_error_limit">smtpd_soft_error_limit</a>
17475(default: 10)</b></DT><DD>
17476
17477<p>
17478The number of errors a remote SMTP client is allowed to make without
17479delivering mail before the Postfix SMTP server slows down all its
17480responses.
17481</p>
17482
17483<ul>
17484
17485<li><p>With Postfix version 2.1 and later, when the error count
17486is &gt; $<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a>, the Postfix SMTP server
17487delays all responses by $<a href="postconf.5.html#smtpd_error_sleep_time">smtpd_error_sleep_time</a>. </p>
17488
17489<li><p>With Postfix versions 2.0 and earlier, when the error count
17490is &gt; $<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a>, the Postfix SMTP server delays all
17491responses by the larger of (number of errors) seconds or
17492$<a href="postconf.5.html#smtpd_error_sleep_time">smtpd_error_sleep_time</a>. </p>
17493
17494<li><p>With Postfix versions 2.0 and earlier, when the error count
17495is &le; $<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a>, the Postfix SMTP server delays 4XX
17496and 5XX responses by $<a href="postconf.5.html#smtpd_error_sleep_time">smtpd_error_sleep_time</a>. </p>
17497
17498</ul>
17499
17500
17501</DD>
17502
17503<DT><b><a name="smtpd_starttls_timeout">smtpd_starttls_timeout</a>
17504(default: see "postconf -d" output)</b></DT><DD>
17505
17506<p> The time limit for Postfix SMTP server write and read operations
17507during TLS startup and shutdown handshake procedures. The current
17508default value is stress-dependent. Before Postfix version 2.8, it
17509was fixed at 300s. </p>
17510
17511<p> Specify a non-zero time value (an integral value plus an optional
17512one-letter suffix that specifies the time unit).  Time units: s
17513(seconds), m (minutes), h (hours), d (days), w (weeks).
17514The default time unit is s (seconds).  </p>
17515
17516<p> This feature is available in Postfix 2.2 and later.  </p>
17517
17518
17519</DD>
17520
17521<DT><b><a name="smtpd_timeout">smtpd_timeout</a>
17522(default: normal: 300s, overload: 10s)</b></DT><DD>
17523
17524<p> When the Postfix SMTP server wants to send an SMTP server
17525response, how long the Postfix SMTP server will wait for an underlying
17526network write operation to complete; and when the Postfix SMTP
17527server Postfix wants to receive an SMTP client request, how long
17528the Postfix SMTP server will wait for an underlying network read
17529operation to complete. See the <a href="postconf.5.html#smtpd_per_request_deadline">smtpd_per_request_deadline</a> for how
17530this time limit may be enforced (with Postfix 2.9-3.6 see
17531<a href="postconf.5.html#smtpd_per_record_deadline">smtpd_per_record_deadline</a>). </p>
17532
17533<p> Normally the default limit
17534is 300s, but it changes under overload to just 10s. With Postfix
175352.5 and earlier, the SMTP server always uses a time limit of 300s
17536by default.
17537</p>
17538
17539<p>
17540Note: if you set SMTP time limits to very large values you may have
17541to update the global <a href="postconf.5.html#ipc_timeout">ipc_timeout</a> parameter.
17542</p>
17543
17544<p> Specify a non-zero time value (an integral value plus an optional
17545one-letter suffix that specifies the time unit).  Time units: s
17546(seconds), m (minutes), h (hours), d (days), w (weeks).
17547The default time unit is s (seconds).  </p>
17548
17549
17550</DD>
17551
17552<DT><b><a name="smtpd_tls_CAfile">smtpd_tls_CAfile</a>
17553(default: empty)</b></DT><DD>
17554
17555<p> A file containing (PEM format) CA certificates of root CAs trusted
17556to sign either remote SMTP client certificates or intermediate CA
17557certificates.  These are loaded into memory before the <a href="smtpd.8.html">smtpd(8)</a> server
17558enters the chroot jail. If the number of trusted roots is large, consider
17559using <a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> instead, but note that the latter directory must
17560be present in the chroot jail if the <a href="smtpd.8.html">smtpd(8)</a> server is chrooted. This
17561file may also be used to augment the server certificate trust chain,
17562but it is best to include all the required certificates directly in the
17563server certificate file. </p>
17564
17565<p> Specify "<a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> = /path/to/system_CA_file" to use ONLY
17566the system-supplied default Certification Authority certificates.
17567</p>
17568
17569<p> Specify "<a href="postconf.5.html#tls_append_default_CA">tls_append_default_CA</a> = no" to prevent Postfix from
17570appending the system-supplied default CAs and trusting third-party
17571certificates. </p>
17572
17573<p> By default (see <a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>), client certificates are not
17574requested, and <a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> should remain empty. If you do make use
17575of client certificates, the distinguished names (DNs) of the Certification
17576Authorities listed in <a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> are sent to the remote SMTP client
17577in the client certificate request message. MUAs with multiple client
17578certificates may use the list of preferred Certification Authorities
17579to select the correct client certificate.  You may want to put your
17580"preferred" CA or CAs in this file, and install other trusted CAs in
17581$<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a>. </p>
17582
17583<p> Example: </p>
17584
17585<pre>
17586<a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> = /etc/postfix/CAcert.pem
17587</pre>
17588
17589<p> This feature is available in Postfix 2.2 and later.  </p>
17590
17591
17592</DD>
17593
17594<DT><b><a name="smtpd_tls_CApath">smtpd_tls_CApath</a>
17595(default: empty)</b></DT><DD>
17596
17597<p> A directory containing (PEM format) CA certificates of root CAs
17598trusted to sign either remote SMTP client certificates or intermediate CA
17599certificates. Do not forget to create the necessary "hash" links with,
17600for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". To use
17601<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> in chroot mode, this directory (or a copy) must be
17602inside the chroot jail. </p>
17603
17604<p> Specify "<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> = /path/to/system_CA_directory" to
17605use ONLY the system-supplied default Certification Authority certificates.
17606</p>
17607
17608<p> Specify "<a href="postconf.5.html#tls_append_default_CA">tls_append_default_CA</a> = no" to prevent Postfix from
17609appending the system-supplied default CAs and trusting third-party
17610certificates. </p>
17611
17612<p> By default (see <a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>), client certificates are
17613not requested, and <a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> should remain empty. In contrast
17614to <a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a>, DNs of Certification Authorities installed
17615in $<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> are not included in the client certificate
17616request message. MUAs with multiple client certificates may use the
17617list of preferred Certification Authorities to select the correct
17618client certificate.  You may want to put your "preferred" CA or
17619CAs in $<a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a>, and install the remaining trusted CAs in
17620$<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a>. </p>
17621
17622<p> Example: </p>
17623
17624<pre>
17625<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> = /etc/postfix/certs
17626</pre>
17627
17628<p> This feature is available in Postfix 2.2 and later.  </p>
17629
17630
17631</DD>
17632
17633<DT><b><a name="smtpd_tls_always_issue_session_ids">smtpd_tls_always_issue_session_ids</a>
17634(default: yes)</b></DT><DD>
17635
17636<p> Force the Postfix SMTP server to issue a TLS session id, even
17637when TLS session caching is turned off (<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a>
17638is empty). This behavior is compatible with Postfix &lt; 2.3. </p>
17639
17640<p> With Postfix 2.3 and later the Postfix SMTP server can disable
17641session id generation when TLS session caching is turned off. This
17642keeps remote SMTP clients from caching sessions that almost certainly cannot
17643be re-used.  </p>
17644
17645<p> By default, the Postfix SMTP server always generates TLS session
17646ids. This works around a known defect in mail client applications
17647such as MS Outlook, and may also prevent interoperability issues
17648with other MTAs. </p>
17649
17650<p> Example: </p>
17651
17652<pre>
17653<a href="postconf.5.html#smtpd_tls_always_issue_session_ids">smtpd_tls_always_issue_session_ids</a> = no
17654</pre>
17655
17656<p> This feature is available in Postfix 2.3 and later. </p>
17657
17658
17659</DD>
17660
17661<DT><b><a name="smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>
17662(default: no)</b></DT><DD>
17663
17664<p> Ask a remote SMTP client for a client certificate. This
17665information is needed for certificate based mail relaying with,
17666for example, the <a href="postconf.5.html#permit_tls_clientcerts">permit_tls_clientcerts</a> feature. </p>
17667
17668<p> Some clients such as Netscape will either complain if no
17669certificate is available (for the list of CAs in $<a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a>)
17670or will offer multiple client certificates to choose from. This
17671may be annoying, so this option is "off" by default. </p>
17672
17673<p> This feature is available in Postfix 2.2 and later.  </p>
17674
17675
17676</DD>
17677
17678<DT><b><a name="smtpd_tls_auth_only">smtpd_tls_auth_only</a>
17679(default: no)</b></DT><DD>
17680
17681<p> When TLS encryption is optional in the Postfix SMTP server, do
17682not announce or accept SASL authentication over unencrypted
17683connections. </p>
17684
17685<p> This feature is available in Postfix 2.2 and later.  </p>
17686
17687
17688</DD>
17689
17690<DT><b><a name="smtpd_tls_ccert_verifydepth">smtpd_tls_ccert_verifydepth</a>
17691(default: 9)</b></DT><DD>
17692
17693<p> The verification depth for remote SMTP client certificates. A
17694depth of 1 is sufficient if the issuing CA is listed in a local CA
17695file. </p>
17696
17697<p> The default verification depth is 9 (the OpenSSL default) for
17698compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
17699the default value was 5, but the limit was not actually enforced. If
17700you have set this to a lower non-default value, certificates with longer
17701trust chains may now fail to verify. Certificate chains with 1 or 2
17702CAs are common, deeper chains are more rare and any number between 5
17703and 9 should suffice in practice. You can choose a lower number if,
17704for example, you trust certificates directly signed by an issuing CA
17705but not any CAs it delegates to. </p>
17706
17707<p> This feature is available in Postfix 2.2 and later.  </p>
17708
17709
17710</DD>
17711
17712<DT><b><a name="smtpd_tls_cert_file">smtpd_tls_cert_file</a>
17713(default: empty)</b></DT><DD>
17714
17715<p> File with the Postfix SMTP server RSA certificate in PEM format.
17716This file may also contain the Postfix SMTP server private RSA key.
17717With Postfix &ge; 3.4 the preferred way to configure server keys and
17718certificates is via the "<a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a>" parameter. </p>
17719
17720<p> Public Internet MX hosts without certificates signed by a "reputable"
17721CA must generate, and be prepared to present to most clients, a
17722self-signed or private-CA signed certificate. The client will not be
17723able to authenticate the server, but unless it is running Postfix 2.3 or
17724similar software, it will still insist on a server certificate. </p>
17725
17726<p> For servers that are <b>not</b> public Internet MX hosts, Postfix
17727supports configurations with no certificates. This entails the use of
17728just the anonymous TLS ciphers, which are not supported by typical SMTP
17729clients. Since some clients may not fall back to plain text after a TLS
17730handshake failure, a certificate-less Postfix SMTP server will be unable
17731to receive email from some TLS-enabled clients. To avoid accidental
17732configurations with no certificates, Postfix enables certificate-less
17733operation only when the administrator explicitly sets
17734"<a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a> = none". This ensures that new Postfix SMTP server
17735configurations will not accidentally enable TLS without certificates.  </p>
17736
17737<p> Note that server certificates are not optional in TLS 1.3. To run
17738without certificates you'd have to disable the TLS 1.3 protocol by
17739including '!TLSv1.3' in "<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a>" and perhaps also
17740"<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a>".  It is simpler instead to just
17741configure a certificate chain.  Certificate-less operation is not
17742recommended. <p>
17743
17744<p> Both RSA and DSA certificates are supported.  When both types
17745are present, the cipher used determines which certificate will be
17746presented to the client.  For Netscape and OpenSSL clients without
17747special cipher choices the RSA certificate is preferred. </p>
17748
17749<p> To enable a remote SMTP client to verify the Postfix SMTP server
17750certificate, the issuing CA certificates must be made available to the
17751client. You should include the required certificates in the server
17752certificate file, the server certificate first, then the issuing
17753CA(s) (bottom-up order). </p>
17754
17755<p> Example: the certificate for "server.example.com" was issued by
17756"intermediate CA" which itself has a certificate of "root CA".
17757Create the server.pem file with "cat server_cert.pem intermediate_CA.pem
17758root_CA.pem &gt; server.pem". </p>
17759
17760<p> If you also want to verify client certificates issued by these
17761CAs, you can add the CA certificates to the <a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a>, in which
17762case it is not necessary to have them in the <a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a>,
17763<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a> (obsolete) or <a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>. </p>
17764
17765<p> A certificate supplied here must be usable as an SSL server certificate
17766and hence pass the "openssl verify -purpose sslserver ..." test. </p>
17767
17768<p> Example: </p>
17769
17770<pre>
17771<a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a> = /etc/postfix/server.pem
17772</pre>
17773
17774<p> This feature is available in Postfix 2.2 and later.  </p>
17775
17776
17777</DD>
17778
17779<DT><b><a name="smtpd_tls_chain_files">smtpd_tls_chain_files</a>
17780(default: empty)</b></DT><DD>
17781
17782<p> List of one or more PEM files, each holding one or more private keys
17783directly followed by a corresponding certificate chain.  The file names
17784are separated by commas and/or whitespace.  This parameter obsoletes the
17785legacy algorithm-specific key and certificate file settings.  When this
17786parameter is non-empty, the legacy parameters are ignored, and a warning
17787is logged if any are also non-empty.  </p>
17788
17789<p> With the proliferation of multiple private key algorithms&mdash;which,
17790as of OpenSSL 1.1.1, include DSA (obsolete), RSA, ECDSA, Ed25519
17791and Ed448&mdash;it is increasingly impractical to use separate
17792parameters to configure the key and certificate chain for each
17793algorithm.  Therefore, Postfix now supports storing multiple keys and
17794corresponding certificate chains in a single file or in a set of files.
17795
17796<p> Each key must appear <b>immediately before</b> the corresponding
17797certificate, optionally followed by additional issuer certificates that
17798complete the certificate chain for that key.  When multiple files are
17799specified, they are equivalent to a single file that is concatenated
17800from those files in the given order.  Thus, while a key must always
17801precede its certificate and issuer chain, it can be in a separate file,
17802so long as that file is listed immediately before the file that holds
17803the corresponding certificate chain.  Once all the files are
17804concatenated, the sequence of PEM objects must be: <i>key1, cert1,
17805[chain1], key2, cert2, [chain2], ..., keyN, certN, [chainN].</i> </p>
17806
17807<p> Storing the private key in the same file as the corresponding
17808certificate is more reliable.  With the key and certificate in separate
17809files, there is a chance that during key rollover a Postfix process
17810might load a private key and certificate from separate files that don't
17811match.  Various operational errors may even result in a persistent
17812broken configuration in which the certificate does not match the private
17813key. </p>
17814
17815<p> The file or files must contain at most one key of each type.  If,
17816for example, two or more RSA keys and corresponding chains are listed,
17817depending on the version of OpenSSL either only the last one will be
17818used or a configuration error may be detected.  Note that while
17819"Ed25519" and "Ed448" are considered separate algorithms, the various
17820ECDSA curves (typically one of prime256v1, secp384r1 or secp521r1) are
17821considered as different parameters of a single "ECDSA" algorithm, so it
17822is not presently possible to configure keys for more than one ECDSA
17823curve.  </p>
17824
17825<p> RSA is still the most widely supported algorithm.  Presently (late
178262018), ECDSA support is common, but not yet universal, and Ed25519 and
17827Ed448 support is mostly absent.  Therefore, an RSA key should generally
17828be configured, along with any additional keys for the other algorithms
17829when desired.  </p>
17830
17831<p>
17832Example (separate files for each key and corresponding certificate chain):
17833</p>
17834<blockquote>
17835<pre>
17836/etc/postfix/<a href="postconf.5.html">main.cf</a>:
17837    <a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a> =
17838        ${<a href="postconf.5.html#config_directory">config_directory</a>}/ed25519.pem,
17839        ${<a href="postconf.5.html#config_directory">config_directory</a>}/ed448.pem,
17840        ${<a href="postconf.5.html#config_directory">config_directory</a>}/rsa.pem
17841</pre>
17842</blockquote>
17843
17844<blockquote>
17845<pre>
17846/etc/postfix/ed25519.pem:
17847    -----BEGIN PRIVATE KEY-----
17848    MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
17849    -----END PRIVATE KEY-----
17850    -----BEGIN CERTIFICATE-----
17851    MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
17852    ...
17853    nC0egv51YPDWxEHom4QA
17854    -----END CERTIFICATE-----
17855</pre>
17856</blockquote>
17857
17858<blockquote>
17859<pre>
17860/etc/postfix/ed448.pem:
17861    -----BEGIN PRIVATE KEY-----
17862    MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
17863    LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
17864    -----END PRIVATE KEY-----
17865    -----BEGIN CERTIFICATE-----
17866    MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
17867    ...
17868    pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
17869    -----END CERTIFICATE-----
17870</pre>
17871</blockquote>
17872
17873<blockquote>
17874<pre>
17875/etc/postfix/rsa.pem:
17876    -----BEGIN PRIVATE KEY-----
17877    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
17878    ...
17879    ahQkZ3+krcaJvDSMgvu0tDc=
17880    -----END PRIVATE KEY-----
17881    -----BEGIN CERTIFICATE-----
17882    MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
17883    ...
17884    Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
17885    -----END CERTIFICATE-----
17886</pre>
17887</blockquote>
17888
17889<p>
17890Example (all keys and certificates in a single file):
17891</p>
17892<blockquote>
17893<pre>
17894/etc/postfix/<a href="postconf.5.html">main.cf</a>:
17895    <a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a> = ${<a href="postconf.5.html#config_directory">config_directory</a>}/chains.pem
17896</pre>
17897</blockquote>
17898
17899<blockquote>
17900<pre>
17901/etc/postfix/chains.pem:
17902    -----BEGIN PRIVATE KEY-----
17903    MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
17904    -----END PRIVATE KEY-----
17905    -----BEGIN CERTIFICATE-----
17906    MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
17907    ...
17908    nC0egv51YPDWxEHom4QA
17909    -----END CERTIFICATE-----
17910    -----BEGIN PRIVATE KEY-----
17911    MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
17912    LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
17913    -----END PRIVATE KEY-----
17914    -----BEGIN CERTIFICATE-----
17915    MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
17916    ...
17917    pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
17918    -----END CERTIFICATE-----
17919    -----BEGIN PRIVATE KEY-----
17920    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
17921    ...
17922    ahQkZ3+krcaJvDSMgvu0tDc=
17923    -----END PRIVATE KEY-----
17924    -----BEGIN CERTIFICATE-----
17925    MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
17926    ...
17927    Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
17928    -----END CERTIFICATE-----
17929</pre>
17930</blockquote>
17931
17932<p> This feature is available in Postfix 3.4 and later.  </p>
17933
17934
17935</DD>
17936
17937<DT><b><a name="smtpd_tls_cipherlist">smtpd_tls_cipherlist</a>
17938(default: empty)</b></DT><DD>
17939
17940<p> Obsolete Postfix &lt; 2.3 control for the Postfix SMTP server TLS
17941cipher list. It is easy to create interoperability problems by choosing
17942a non-default cipher list. Do not use a non-default TLS cipherlist for
17943MX hosts on the public Internet. Clients that begin the TLS handshake,
17944but are unable to agree on a common cipher, may not be able to send any
17945email to the SMTP server. Using a restricted cipher list may be more
17946appropriate for a dedicated MSA or an internal mailhub, where one can
17947exert some control over the TLS software and settings of the connecting
17948clients. </p>
17949
17950<p> <b>Note:</b> do not use "" quotes around the parameter value. </p>
17951
17952<p>This feature is available with Postfix version 2.2. It is not used with
17953Postfix 2.3 and later; use <a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a> instead. </p>
17954
17955
17956</DD>
17957
17958<DT><b><a name="smtpd_tls_ciphers">smtpd_tls_ciphers</a>
17959(default: medium)</b></DT><DD>
17960
17961<p> The minimum TLS cipher grade that the Postfix SMTP server
17962will use with opportunistic TLS encryption. Cipher types listed in
17963<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> are excluded from the base definition of
17964the selected cipher grade.  The default value is "medium" for Postfix
17965releases after the middle of 2015, "export" for older releases.
17966</p>
17967
17968<p> When TLS is mandatory the cipher grade is chosen via the
17969<a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a> configuration parameter, see there for syntax
17970details. </p>
17971
17972<p> This feature is available in Postfix 2.6 and later. With earlier Postfix
17973releases only the <a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a> parameter is implemented,
17974and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p>
17975
17976
17977</DD>
17978
17979<DT><b><a name="smtpd_tls_dcert_file">smtpd_tls_dcert_file</a>
17980(default: empty)</b></DT><DD>
17981
17982<p> File with the Postfix SMTP server DSA certificate in PEM format.
17983This file may also contain the Postfix SMTP server private DSA key.
17984The DSA algorithm is obsolete and should not be used. </p>
17985
17986<p> See the discussion under <a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a> for more details.
17987</p>
17988
17989<p> Example: </p>
17990
17991<pre>
17992<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a> = /etc/postfix/server-dsa.pem
17993</pre>
17994
17995<p> This feature is available in Postfix 2.2 and later.  </p>
17996
17997
17998</DD>
17999
18000<DT><b><a name="smtpd_tls_dh1024_param_file">smtpd_tls_dh1024_param_file</a>
18001(default: empty)</b></DT><DD>
18002
18003<p> File with DH parameters that the Postfix SMTP server should
18004use with non-export EDH ciphers. </p>
18005
18006<p> With Postfix &ge; 3.7, built with OpenSSL version is 3.0.0 or later, if the
18007parameter value is either empty or "<b>auto</b>", then the DH parameter
18008selection is delegated to the OpenSSL library, which selects appropriate
18009parameters based on the TLS handshake.  This choice is likely to be the most
18010interoperable with SMTP clients using various TLS libraries, and custom local
18011parameters are no longer recommended when using Postfix &ge; 3.7 built against
18012OpenSSL 3.0.0.  </p>
18013
18014<p> The best-practice choice of parameters uses a 2048-bit prime.  This is fine,
18015despite the historical "1024" in the parameter name.  Do not be tempted to use
18016much larger values, performance degrades quickly, and you may also cease to
18017interoperate with some mainstream SMTP clients.  As of Postfix 3.1, the
18018compiled-in default prime is 2048-bits, and it is not strictly necessary,
18019though perhaps somewhat beneficial to generate custom DH parameters. </p>
18020
18021<p> Instead of using the exact same parameter sets as distributed
18022with other TLS packages, it is more secure to generate your own
18023set of parameters with something like the following commands:  </p>
18024
18025<blockquote>
18026<pre>
18027openssl dhparam -out /etc/postfix/dh2048.pem 2048
18028openssl dhparam -out /etc/postfix/dh1024.pem 1024
18029# As of Postfix 3.6, export-grade 512-bit DH parameters are no longer
18030# supported or needed.
18031openssl dhparam -out /etc/postfix/dh512.pem 512
18032</pre>
18033</blockquote>
18034
18035<p> It is safe to share the same DH parameters between multiple
18036Postfix instances.  If you prefer, you can generate separate
18037parameters for each instance.  </p>
18038
18039<p> If you want to take maximal advantage of ciphers that offer <a
18040href="FORWARD_SECRECY_README.html#dfn_fs">forward secrecy</a> see
18041the <a href="FORWARD_SECRECY_README.html#quick-start">Getting
18042started</a> section of <a
18043href="FORWARD_SECRECY_README.html">FORWARD_SECRECY_README</a>.  The
18044full document conveniently presents all information about Postfix
18045"perfect" forward secrecy support in one place: what forward secrecy
18046is, how to tweak settings, and what you can expect to see when
18047Postfix uses ciphers with forward secrecy.  </p>
18048
18049<p> Example: </p>
18050
18051<pre>
18052<a href="postconf.5.html#smtpd_tls_dh1024_param_file">smtpd_tls_dh1024_param_file</a> = /etc/postfix/dh2048.pem
18053</pre>
18054
18055<p>This feature is available in Postfix 2.2 and later.</p>
18056
18057
18058</DD>
18059
18060<DT><b><a name="smtpd_tls_dh512_param_file">smtpd_tls_dh512_param_file</a>
18061(default: empty)</b></DT><DD>
18062
18063<p> File with DH parameters that the Postfix SMTP server should
18064use with export-grade EDH ciphers.  The default SMTP server cipher
18065grade is "medium" with Postfix releases after the middle of 2015,
18066and as a result export-grade cipher suites are by default not used.
18067</p>
18068
18069<p> With Postfix &ge; 3.6 export-grade Diffie-Hellman key exchange
18070is no longer supported, and this parameter is silently ignored. </p>
18071
18072<p> See also the discussion under the <a href="postconf.5.html#smtpd_tls_dh1024_param_file">smtpd_tls_dh1024_param_file</a>
18073configuration parameter.  </p>
18074
18075<p> Example: </p>
18076
18077<pre>
18078<a href="postconf.5.html#smtpd_tls_dh512_param_file">smtpd_tls_dh512_param_file</a> = /etc/postfix/dh_512.pem
18079</pre>
18080
18081<p>This feature is available in Postfix 2.2 and later,
18082but is ignored in Postfix 3.6 and later.</p>
18083
18084
18085</DD>
18086
18087<DT><b><a name="smtpd_tls_dkey_file">smtpd_tls_dkey_file</a>
18088(default: $<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a>)</b></DT><DD>
18089
18090<p> File with the Postfix SMTP server DSA private key in PEM format.
18091This file may be combined with the Postfix SMTP server DSA certificate
18092file specified with $<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a>. The DSA algorithm is obsolete
18093and should not be used. </p>
18094
18095<p> The private key must be accessible without a pass-phrase, i.e. it
18096must not be encrypted. File permissions should grant read-only
18097access to the system superuser account ("root"), and no access
18098to anyone else. </p>
18099
18100<p> This feature is available in Postfix 2.2 and later.  </p>
18101
18102
18103</DD>
18104
18105<DT><b><a name="smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>
18106(default: empty)</b></DT><DD>
18107
18108<p> File with the Postfix SMTP server ECDSA certificate in PEM format.
18109This file may also contain the Postfix SMTP server private ECDSA key.
18110With Postfix &ge; 3.4 the preferred way to configure server keys and
18111certificates is via the "<a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a>" parameter. </p>
18112
18113<p> See the discussion under <a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a> for more details. </p>
18114
18115<p> Example: </p>
18116
18117<pre>
18118<a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a> = /etc/postfix/ecdsa-scert.pem
18119</pre>
18120
18121<p> This feature is available in Postfix 2.6 and later, when Postfix is
18122compiled and linked with OpenSSL 1.0.0 or later. </p>
18123
18124
18125</DD>
18126
18127<DT><b><a name="smtpd_tls_eckey_file">smtpd_tls_eckey_file</a>
18128(default: $<a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>)</b></DT><DD>
18129
18130<p> File with the Postfix SMTP server ECDSA private key in PEM format.
18131This file may be combined with the Postfix SMTP server ECDSA certificate
18132file specified with $<a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>.  With Postfix &ge; 3.4 the
18133preferred way to configure server keys and certificates is via the
18134"<a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a>" parameter. </p>
18135
18136<p> The private key must be accessible without a pass-phrase, i.e. it
18137must not be encrypted. File permissions should grant read-only
18138access to the system superuser account ("root"), and no access
18139to anyone else. </p>
18140
18141<p> This feature is available in Postfix 2.6 and later, when Postfix is
18142compiled and linked with OpenSSL 1.0.0 or later. </p>
18143
18144
18145</DD>
18146
18147<DT><b><a name="smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a>
18148(default: see "postconf -d" output)</b></DT><DD>
18149
18150<p> The Postfix SMTP server security grade for ephemeral elliptic-curve
18151Diffie-Hellman (EECDH) key exchange.   As of Postfix 3.6, the value of
18152this parameter is always ignored, and Postfix behaves as though the
18153<b>auto</b> value (described below) was chosen.
18154</p>
18155
18156<p> The available choices are: </p>
18157
18158<dl>
18159
18160<dt><b>auto</b></dt> <dd> Use the most preferred curve that is
18161supported by both the client and the server.  This setting requires
18162Postfix &ge; 3.2 compiled and linked with OpenSSL &ge; 1.0.2.  This
18163is the default setting under the above conditions (and the only
18164setting used with Postfix &ge; 3.6). </dd>
18165
18166<dt><b>none</b></dt> <dd> Don't use EECDH. Ciphers based on EECDH key
18167exchange will be disabled. This is the default in Postfix versions
181682.6 and 2.7. </dd>
18169
18170<dt><b>strong</b></dt> <dd> Use EECDH with approximately 128 bits of
18171security at a reasonable computational cost. This is the default in
18172Postfix versions 2.8&ndash;3.5.  </dd>
18173
18174<dt><b>ultra</b></dt> <dd> Use EECDH with approximately 192 bits of
18175security at computational cost that is approximately twice as high
18176as 128 bit strength ECC. </dd>
18177
18178</dl>
18179
18180<p> If you want to take maximal advantage of ciphers that offer <a
18181href="FORWARD_SECRECY_README.html#dfn_fs">forward secrecy</a> see
18182the <a href="FORWARD_SECRECY_README.html#quick-start">Getting
18183started</a> section of <a
18184href="FORWARD_SECRECY_README.html">FORWARD_SECRECY_README</a>.  The
18185full document conveniently presents all information about Postfix
18186"perfect" forward secrecy support in one place: what forward secrecy
18187is, how to tweak settings, and what you can expect to see when
18188Postfix uses ciphers with forward secrecy.  </p>
18189
18190<p> This feature is available in Postfix 2.6 and later, when it is
18191compiled and linked with OpenSSL 1.0.0 or later on platforms
18192where EC algorithms have not been disabled by the vendor. </p>
18193
18194
18195</DD>
18196
18197<DT><b><a name="smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a>
18198(default: empty)</b></DT><DD>
18199
18200<p> List of ciphers or cipher types to exclude from the SMTP server
18201cipher list at all TLS security levels. Excluding valid ciphers
18202can create interoperability problems. DO NOT exclude ciphers unless it
18203is essential to do so. This is not an OpenSSL cipherlist; it is a simple
18204list separated by whitespace and/or commas. The elements are a single
18205cipher, or one or more "+" separated cipher properties, in which case
18206only ciphers matching <b>all</b> the properties are excluded. </p>
18207
18208<p> Examples (some of these will cause problems): </p>
18209
18210<blockquote>
18211<pre>
18212<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> = aNULL
18213<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> = MD5, DES
18214<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> = DES+MD5
18215<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> = AES256-SHA, DES-CBC3-MD5
18216<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> = kEDH+aRSA
18217</pre>
18218</blockquote>
18219
18220<p> The first setting disables anonymous ciphers. The next setting
18221disables ciphers that use the MD5 digest algorithm or the (single) DES
18222encryption algorithm. The next setting disables ciphers that use MD5 and
18223DES together.  The next setting disables the two ciphers "AES256-SHA"
18224and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
18225key exchange with RSA authentication. </p>
18226
18227<p> This feature is available in Postfix 2.3 and later. </p>
18228
18229
18230</DD>
18231
18232<DT><b><a name="smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a>
18233(default: see "postconf -d" output)</b></DT><DD>
18234
18235<p> The message digest algorithm to construct remote SMTP client-certificate
18236fingerprints or public key fingerprints (Postfix 2.9 and later) for
18237<b><a href="postconf.5.html#check_ccert_access">check_ccert_access</a></b> and <b><a href="postconf.5.html#permit_tls_clientcerts">permit_tls_clientcerts</a></b>. </p>
18238
18239<p> The default algorithm is <b>sha256</b> with Postfix &ge; 3.6
18240and the <b><a href="postconf.5.html#compatibility_level">compatibility_level</a></b> set to 3.6 or higher. With Postfix
18241&le; 3.5, the default algorithm is <b>md5</b>. </p>
18242
18243<p> The best-practice algorithm is now <b>sha256</b>. Recent advances in hash
18244function cryptanalysis have led to md5 and sha1 being deprecated in favor of
18245sha256.  However, as long as there are no known "second pre-image" attacks
18246against the older algorithms, their use in this context, though not
18247recommended, is still likely safe.  </p>
18248
18249<p> While additional digest algorithms are often available with OpenSSL's
18250libcrypto, only those used by libssl in SSL cipher suites are available to
18251Postfix.  You'll likely find support for md5, sha1, sha256 and sha512. </p>
18252
18253<p> To find the fingerprint of a specific certificate file, with a
18254specific digest algorithm, run: </p>
18255
18256<blockquote>
18257<pre>
18258$ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem
18259</pre>
18260</blockquote>
18261
18262<p> The text to the right of "=" sign is the desired fingerprint.
18263For example: </p>
18264
18265<blockquote>
18266<pre>
18267$ openssl x509 -noout -fingerprint -sha256 -in cert.pem
18268SHA256 Fingerprint=D4:6A:AB:19:24:...:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
18269</pre>
18270</blockquote>
18271
18272<p> To extract the public key fingerprint from an X.509 certificate,
18273you need to extract the public key from the certificate and compute
18274the appropriate digest of its DER (ASN.1) encoding. With OpenSSL
18275the "-pubkey" option of the "x509" command extracts the public
18276key always in "PEM" format. We pipe the result to another OpenSSL
18277command that converts the key to DER and then to the "dgst" command
18278to compute the fingerprint. </p>
18279
18280<p> Example: </p>
18281<blockquote>
18282<pre>
18283$ openssl x509 -in cert.pem -noout -pubkey |
18284    openssl pkey -pubin -outform DER |
18285    openssl dgst -sha256 -c
18286(stdin)= 64:3f:1f:f6:e5:1e:d4:2a:56:8b:fc:09:1a:61:98:b5:bc:7c:60:58
18287</pre>
18288</blockquote>
18289
18290<p> The Postfix SMTP server and client log the peer (leaf) certificate
18291fingerprint and public key fingerprint when the TLS loglevel is 2 or
18292higher. </p>
18293
18294<p> Example: client-certificate access table, with sha256 fingerprints: </p>
18295
18296<blockquote>
18297<pre>
18298/etc/postfix/<a href="postconf.5.html">main.cf</a>:
18299    <a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> = sha256
18300    <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> =
18301        <a href="postconf.5.html#check_ccert_access">check_ccert_access</a> <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/access,
18302        reject
18303</pre>
18304<pre>
18305/etc/postfix/access:
18306    # Action folded to next line...
18307    AF:88:7C:AD:51:95:6F:36:96:...:01:FB:2E:48:CD:AB:49:25:A2:3B
18308        OK
18309    85:16:78:FD:73:6E:CE:70:E0:...:5F:0D:3C:C8:6D:C4:2C:24:59:E1
18310        <a href="postconf.5.html#permit_auth_destination">permit_auth_destination</a>
18311</pre>
18312</blockquote>
18313
18314<p> This feature is available in Postfix 2.5 and later. </p>
18315
18316
18317</DD>
18318
18319<DT><b><a name="smtpd_tls_key_file">smtpd_tls_key_file</a>
18320(default: $<a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a>)</b></DT><DD>
18321
18322<p> File with the Postfix SMTP server RSA private key in PEM format.
18323This file may be combined with the Postfix SMTP server RSA certificate
18324file specified with $<a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a>.  With Postfix &ge; 3.4 the
18325preferred way to configure server keys and certificates is via the
18326"<a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a>" parameter. </p>
18327
18328<p> The private key must be accessible without a pass-phrase, i.e. it
18329must not be encrypted. File permissions should grant read-only
18330access to the system superuser account ("root"), and no access
18331to anyone else. </p>
18332
18333
18334</DD>
18335
18336<DT><b><a name="smtpd_tls_loglevel">smtpd_tls_loglevel</a>
18337(default: 0)</b></DT><DD>
18338
18339<p> Enable additional Postfix SMTP server logging of TLS activity.
18340Each logging level also includes the information that is logged at
18341a lower logging level.  </p>
18342
18343<dl compact>
18344
18345<dt> </dt> <dd> 0 Disable logging of TLS activity. </dd>
18346
18347<dt> </dt> <dd> 1 Log only a summary message on TLS handshake completion
18348&mdash; no logging of client certificate trust-chain verification errors
18349if client certificate verification is not required.  With Postfix 2.8 and
18350earlier, log the summary message, peer certificate summary information
18351and unconditionally log trust-chain verification errors.  </dd>
18352
18353<dt> </dt> <dd> 2 Also log levels during TLS negotiation. </dd>
18354
18355<dt> </dt> <dd> 3 Also log hexadecimal and ASCII dump of TLS negotiation
18356process. </dd>
18357
18358<dt> </dt> <dd> 4 Also log hexadecimal and ASCII dump of complete
18359transmission after STARTTLS. </dd>
18360
18361</dl>
18362
18363<p> Do not use "<a href="postconf.5.html#smtpd_tls_loglevel">smtpd_tls_loglevel</a> = 2" or higher except in case
18364of problems. Use of loglevel 4 is strongly discouraged. </p>
18365
18366<p> This feature is available in Postfix 2.2 and later.  </p>
18367
18368
18369</DD>
18370
18371<DT><b><a name="smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>
18372(default: medium)</b></DT><DD>
18373
18374<p> The minimum TLS cipher grade that the Postfix SMTP server will
18375use with mandatory TLS encryption. The default grade ("medium") is
18376sufficiently strong that any benefit from globally restricting TLS
18377sessions to a more stringent grade is likely negligible, especially
18378given the fact that many implementations still do not offer any stronger
18379("high" grade) ciphers, while those that do, will always use "high"
18380grade ciphers. So insisting on "high" grade ciphers is generally
18381counter-productive. Allowing "export" or "low" ciphers is typically
18382not a good idea, as systems limited to just these are limited to
18383obsolete browsers. No known SMTP clients fail to support at least
18384one "medium" or "high" grade cipher. </p>
18385
18386<p> The following cipher grades are supported: </p>
18387
18388<dl>
18389<dt><b>high</b></dt>
18390<dd> Enable only "HIGH" grade OpenSSL ciphers. The
18391underlying cipherlist is specified via the <a href="postconf.5.html#tls_high_cipherlist">tls_high_cipherlist</a>
18392configuration parameter, which you are strongly encouraged to
18393not change. </dd>
18394
18395<dt><b>medium</b></dt>
18396<dd> Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use 128-bit
18397or longer symmetric bulk-encryption keys. This is the default minimum
18398strength for mandatory TLS encryption. The underlying cipherlist is
18399specified via the <a href="postconf.5.html#tls_medium_cipherlist">tls_medium_cipherlist</a> configuration parameter, which
18400you are strongly encouraged not to change. </dd>
18401
18402<dt><b>null</b></dt>
18403<dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication
18404without encryption.  This setting is only appropriate in the rare
18405case that all clients are prepared to use NULL ciphers (not normally
18406enabled in TLS clients). The underlying cipherlist is specified via the
18407<a href="postconf.5.html#tls_null_cipherlist">tls_null_cipherlist</a> configuration parameter, which you are strongly
18408encouraged not to change. </dd>
18409
18410<dt><b>low</b></dt>
18411<dd> Enable "LOW" grade or stronger OpenSSL ciphers.  In Postfix
18412&ge; 3.8 this cipher grade is always identical to "medium".  Recent
18413versions of OpenSSL do not support any "LOW" grade ciphers.  In
18414earlier Postfix releases the underlying cipherlist was specified
18415via the <a href="postconf.5.html#tls_low_cipherlist">tls_low_cipherlist</a> configuration parameter, which you are
18416strongly encouraged not to change.  This obsolete cipher grade
18417SHOULD NOT be used.  </dd>
18418
18419<dt><b>export</b></dt>
18420<dd> Enable "EXPORT" grade or stronger OpenSSL ciphers.  In Postfix
18421&ge; 3.8 this cipher grade is always identical to "medium".  Recent
18422versions of OpenSSL do not support any "EXPORT" grade ciphers.  In
18423earlier Postfix releases the underlying cipherlist was specified
18424via the <a href="postconf.5.html#tls_export_cipherlist">tls_export_cipherlist</a> configuration parameter, which you are
18425strongly encouraged not to change.  This obsolete cipher grade
18426SHOULD NOT be used.  </dd>
18427
18428</dl>
18429
18430<p> Cipher types listed in
18431<a href="postconf.5.html#smtpd_tls_mandatory_exclude_ciphers">smtpd_tls_mandatory_exclude_ciphers</a> or <a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> are
18432excluded from the base definition of the selected cipher grade. See
18433<a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a> for cipher controls that apply to opportunistic
18434TLS. </p>
18435
18436<p> The underlying cipherlists for grades other than "null" include
18437anonymous ciphers, but these are automatically filtered out if the
18438server is configured to ask for remote SMTP client certificates.  You are very
18439unlikely to need to take any steps to exclude anonymous ciphers, they
18440are excluded automatically as required.  If you must exclude anonymous
18441ciphers even when Postfix does not need or use peer certificates, set
18442"<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> = aNULL". To exclude anonymous ciphers only
18443when TLS is enforced, set "<a href="postconf.5.html#smtpd_tls_mandatory_exclude_ciphers">smtpd_tls_mandatory_exclude_ciphers</a> = aNULL". </p>
18444
18445<p> This feature is available in Postfix 2.3 and later. </p>
18446
18447
18448</DD>
18449
18450<DT><b><a name="smtpd_tls_mandatory_exclude_ciphers">smtpd_tls_mandatory_exclude_ciphers</a>
18451(default: empty)</b></DT><DD>
18452
18453<p> Additional list of ciphers or cipher types to exclude from the
18454Postfix SMTP server cipher list at mandatory TLS security levels.
18455This list
18456works in addition to the exclusions listed with <a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a>
18457(see there for syntax details).  </p>
18458
18459<p> This feature is available in Postfix 2.3 and later. </p>
18460
18461
18462</DD>
18463
18464<DT><b><a name="smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a>
18465(default: see "postconf -d" output)</b></DT><DD>
18466
18467<p> TLS protocols accepted by the Postfix SMTP server with mandatory TLS
18468encryption.  If the list is empty, the server supports all available TLS
18469protocol versions.  A non-empty value is a list of protocol names to
18470include or exclude, separated by whitespace, commas or colons.  </p>
18471
18472<p> The valid protocol names (see SSL_get_version(3)) are "SSLv2",
18473"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3".  Starting with
18474Postfix 3.6, the default value is "&gt;=TLSv1", which sets TLS 1.0 as
18475the lowest supported TLS protocol version (see below).  Older releases
18476use the "!" exclusion syntax, also described below.  </p>
18477
18478<p> As of Postfix 3.6, the preferred way to limit the range of
18479acceptable protocols is to set the lowest acceptable TLS protocol
18480version and/or the highest acceptable TLS protocol version.  To set the
18481lower bound include an element of the form: "&gt;=<i>version</i>" where
18482<i>version</i> is a either one of the TLS protocol names listed above,
18483or a hexadecimal number corresponding to the desired TLS protocol
18484version (0301 for TLS 1.0, 0302 for TLS 1.1, etc.).  For the upper
18485bound, use "&lt;=<i>version</i>".  There must be no whitespace between
18486the "&gt;=" or "&lt;=" symbols and the protocol name or number. </p>
18487
18488<p> Hexadecimal protocol numbers make it possible to specify protocol
18489bounds for TLS versions that are known to OpenSSL, but might not be
18490known to Postfix.  They cannot be used with the legacy exclusion syntax.
18491Leading "0" or "0x" prefixes are supported, but not required.
18492Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
18493"TLSv1".  Hexadecimal versions unknown to OpenSSL will fail to set the
18494upper or lower bound, and a warning will be logged.  Hexadecimal
18495versions should only be used when Postfix is linked with some future
18496version of OpenSSL that supports TLS 1.4 or later, but Postfix does not
18497yet support a symbolic name for that protocol version. </p>
18498
18499<p>Hexadecimal example (Postfix &ge; 3.6):</p>
18500<blockquote>
18501<pre>
18502# Allow only TLS 1.2 through (hypothetical) TLS 1.4, once supported
18503# in some future version of OpenSSL (presently a warning is logged).
18504<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> = &gt;=TLSv1.2, &lt;=0305
18505# Allow only TLS 1.2 and up:
18506<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> = &gt;=0x0303
18507</pre>
18508</blockquote>
18509
18510<p> With Postfix &lt; 3.6 there is no support for a minimum or maximum
18511version, and the protocol range is configured via protocol exclusions.
18512To require at least TLS 1.0, set "<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> =
18513!SSLv2, !SSLv3".  Listing the protocols to include, rather than
18514protocols to exclude, is supported, but not recommended.  The exclusion
18515form more accurately matches the underlying OpenSSL interface.  </p>
18516
18517<p> Support for "TLSv1.3" was introduced in OpenSSL 1.1.1.  Disabling
18518this protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch
18519releases &ge; 3.0.14, 3.1.10, 3.2.7 and 3.3.2).  </p>
18520
18521<p> Example: </p>
18522
18523<pre>
18524# Preferred syntax with Postfix &ge; 3.6:
18525<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> = &gt;=TLSv1.2, &lt;=TLSv1.3
18526# Legacy syntax:
18527<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
18528</pre>
18529
18530<p> This feature is available in Postfix 2.3 and later. </p>
18531
18532
18533</DD>
18534
18535<DT><b><a name="smtpd_tls_protocols">smtpd_tls_protocols</a>
18536(default: see postconf -d output)</b></DT><DD>
18537
18538<p> TLS protocols accepted by the Postfix SMTP server with opportunistic
18539TLS encryption. If the list is empty, the server supports all available
18540TLS protocol versions.  A non-empty value is a list of protocol names to
18541include or exclude, separated by whitespace, commas or colons.  </p>
18542
18543<p> The valid protocol names (see SSL_get_version(3)) are "SSLv2",
18544"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3".  Starting with
18545Postfix 3.6, the default value is "&gt;=TLSv1", which sets TLS 1.0 as
18546the lowest supported TLS protocol version (see below).  Older releases
18547use the "!" exclusion syntax, also described below.  </p>
18548
18549<p> As of Postfix 3.6, the preferred way to limit the range of
18550acceptable protocols is to set the lowest acceptable TLS protocol
18551version and/or the highest acceptable TLS protocol version.  To set the
18552lower bound include an element of the form: "&gt;=<i>version</i>" where
18553<i>version</i> is a either one of the TLS protocol names listed above,
18554or a hexadecimal number corresponding to the desired TLS protocol
18555version (0301 for TLS 1.0, 0302 for TLS 1.1, etc.).  For the upper
18556bound, use "&lt;=<i>version</i>".  There must be no whitespace between
18557the "&gt;=" or "&lt;=" symbols and the protocol name or number. </p>
18558
18559<p> Hexadecimal protocol numbers make it possible to specify protocol
18560bounds for TLS versions that are known to OpenSSL, but might not be
18561known to Postfix.  They cannot be used with the legacy exclusion syntax.
18562Leading "0" or "0x" prefixes are supported, but not required.
18563Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
18564"TLSv1".  Hexadecimal versions unknown to OpenSSL will fail to set the
18565upper or lower bound, and a warning will be logged.  Hexadecimal
18566versions should only be used when Postfix is linked with some future
18567version of OpenSSL that supports TLS 1.4 or later, but Postfix does not
18568yet support a symbolic name for that protocol version. </p>
18569
18570<p>Hexadecimal example (Postfix &ge; 3.6):</p>
18571<blockquote>
18572<pre>
18573# Allow only TLS 1.0 through (hypothetical) TLS 1.4, once supported
18574# in some future version of OpenSSL (presently a warning is logged).
18575<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a> = &gt;=TLSv1, &lt;=0305
18576# Allow only TLS 1.0 and up:
18577<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a> = &gt;=0x0301
18578</pre>
18579</blockquote>
18580
18581<p> With Postfix &lt; 3.6 there is no support for a minimum or maximum
18582version, and the protocol range is configured via protocol exclusions.
18583To require at least TLS 1.0, set "<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a> = !SSLv2, !SSLv3".
18584Listing the protocols to include, rather than protocols to exclude, is
18585supported, but not recommended.  The exclusion form more accurately
18586matches the underlying OpenSSL interface.  </p>
18587
18588<p> Support for "TLSv1.3" was introduced in OpenSSL 1.1.1.  Disabling
18589this protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch
18590releases &ge; 3.0.14, 3.1.10, 3.2.7 and 3.3.2).  </p>
18591
18592<p> Example: </p>
18593<pre>
18594# Preferred syntax with Postfix &ge; 3.6:
18595<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a> = &gt;=TLSv1, &lt;=TLSv1.3
18596# Legacy syntax:
18597<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a> = !SSLv2, !SSLv3
18598</pre>
18599
18600<p> This feature is available in Postfix 2.6 and later. </p>
18601
18602
18603</DD>
18604
18605<DT><b><a name="smtpd_tls_received_header">smtpd_tls_received_header</a>
18606(default: no)</b></DT><DD>
18607
18608<p> Request that the Postfix SMTP server produces Received:  message
18609headers that include information about the protocol and cipher used,
18610as well as the remote SMTP client CommonName and client certificate issuer
18611CommonName.  This is disabled by default, as the information may
18612be modified in transit through other mail servers.  Only information
18613that was recorded by the final destination can be trusted. </p>
18614
18615<p> This feature is available in Postfix 2.2 and later.  </p>
18616
18617
18618</DD>
18619
18620<DT><b><a name="smtpd_tls_req_ccert">smtpd_tls_req_ccert</a>
18621(default: no)</b></DT><DD>
18622
18623<p> With mandatory TLS encryption, require a trusted remote SMTP client
18624certificate in order to allow TLS connections to proceed.  This
18625option implies "<a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a> = yes". </p>
18626
18627<p> When TLS encryption is optional, this setting is ignored with
18628a warning written to the mail log. </p>
18629
18630<p> This feature is available in Postfix 2.2 and later.  </p>
18631
18632
18633</DD>
18634
18635<DT><b><a name="smtpd_tls_security_level">smtpd_tls_security_level</a>
18636(default: empty)</b></DT><DD>
18637
18638<p> The SMTP TLS security level for the Postfix SMTP server; when
18639a non-empty value is specified, this overrides the obsolete parameters
18640<a href="postconf.5.html#smtpd_use_tls">smtpd_use_tls</a> and <a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a>. This parameter is ignored with
18641"<a href="postconf.5.html#smtpd_tls_wrappermode">smtpd_tls_wrappermode</a> = yes".  </p>
18642
18643<p> Specify one of the following security levels: </p>
18644
18645<dl>
18646
18647<dt><b>none</b></dt> <dd> TLS will not be used. </dd>
18648
18649<dt><b>may</b></dt> <dd> Opportunistic TLS: announce STARTTLS support
18650to remote SMTP clients, but do not require that clients use TLS encryption.
18651</dd>
18652
18653<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption: announce
18654STARTTLS support to remote SMTP clients, and require that clients use TLS
18655encryption. According to <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a> this MUST NOT be applied in case
18656of a publicly-referenced SMTP server. Instead, this option should
18657be used only on dedicated servers. </dd>
18658
18659</dl>
18660
18661<p> Note 1: the "fingerprint", "verify" and "secure" levels are not
18662supported here.
18663The Postfix SMTP server logs a warning and uses "encrypt" instead.
18664To verify remote SMTP client certificates, see <a href="TLS_README.html">TLS_README</a> for a discussion
18665of the <a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>, <a href="postconf.5.html#smtpd_tls_req_ccert">smtpd_tls_req_ccert</a>, and <a href="postconf.5.html#permit_tls_clientcerts">permit_tls_clientcerts</a>
18666features.  </p>
18667
18668<p> Note 2: The parameter setting "<a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a> =
18669encrypt" implies "<a href="postconf.5.html#smtpd_tls_auth_only">smtpd_tls_auth_only</a> = yes".</p>
18670
18671<p> Note 3: when invoked via "sendmail -bs", Postfix will never
18672offer STARTTLS due to insufficient privileges to access the server
18673private key. This is intended behavior.</p>
18674
18675<p> This feature is available in Postfix 2.3 and later. </p>
18676
18677
18678</DD>
18679
18680<DT><b><a name="smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a>
18681(default: empty)</b></DT><DD>
18682
18683<p> Name of the file containing the optional Postfix SMTP server
18684TLS session cache. Specify a database type that supports enumeration,
18685such as <b>btree</b> or <b>sdbm</b>; there is no need to support
18686concurrent access.  The file is created if it does not exist. The <a href="smtpd.8.html">smtpd(8)</a>
18687daemon does not use this parameter directly, rather the cache is
18688implemented indirectly in the <a href="tlsmgr.8.html">tlsmgr(8)</a> daemon. This means that
18689per-smtpd-instance <a href="master.5.html">master.cf</a> overrides of this parameter are not
18690effective. Note that each of the cache databases supported by <a href="tlsmgr.8.html">tlsmgr(8)</a>
18691daemon: $<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a>, $<a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a>
18692(and with Postfix 2.3 and later $<a href="postconf.5.html#lmtp_tls_session_cache_database">lmtp_tls_session_cache_database</a>), needs to be
18693stored separately. It is not at this time possible to store multiple
18694caches in a single database. </p>
18695
18696<p> Note: <b>dbm</b> databases are not suitable. TLS
18697session objects are too large. </p>
18698
18699<p> As of version 2.5, Postfix no longer uses root privileges when
18700opening this file. The file should now be stored under the Postfix-owned
18701<a href="postconf.5.html#data_directory">data_directory</a>. As a migration aid, an attempt to open the file
18702under a non-Postfix directory is redirected to the Postfix-owned
18703<a href="postconf.5.html#data_directory">data_directory</a>, and a warning is logged. </p>
18704
18705<p> As of Postfix 2.11 the preferred mechanism for session resumption
18706is <a href="https://tools.ietf.org/html/rfc5077">RFC 5077</a> TLS session tickets, which don't require server-side
18707storage.  Consequently, for Postfix &ge; 2.11 this parameter should
18708generally be left empty.  TLS session tickets require an OpenSSL
18709library (at least version 0.9.8h) that provides full support for
18710this TLS extension.  See also <a href="postconf.5.html#smtpd_tls_session_cache_timeout">smtpd_tls_session_cache_timeout</a>. </p>
18711
18712<p> Example: </p>
18713
18714<pre>
18715<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a> = <a href="DATABASE_README.html#types">btree</a>:/var/db/postfix/smtpd_scache
18716</pre>
18717
18718<p> This feature is available in Postfix 2.2 and later.  </p>
18719
18720
18721</DD>
18722
18723<DT><b><a name="smtpd_tls_session_cache_timeout">smtpd_tls_session_cache_timeout</a>
18724(default: 3600s)</b></DT><DD>
18725
18726<p> The expiration time of Postfix SMTP server TLS session cache
18727information. A cache cleanup is performed periodically
18728every $<a href="postconf.5.html#smtpd_tls_session_cache_timeout">smtpd_tls_session_cache_timeout</a> seconds. As with
18729$<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a>, this parameter is implemented in the
18730<a href="tlsmgr.8.html">tlsmgr(8)</a> daemon and therefore per-smtpd-instance <a href="master.5.html">master.cf</a> overrides
18731are not possible. </p>
18732
18733<p> As of Postfix 2.11 this setting cannot exceed 100 days.  If set
18734&le; 0, session caching is disabled, not just via the database, but
18735also via <a href="https://tools.ietf.org/html/rfc5077">RFC 5077</a> TLS session tickets, which don't require server-side
18736storage.  If set to a positive value less than 2 minutes, the minimum
18737value of 2 minutes is used instead.  TLS session tickets require
18738an OpenSSL library (at least version 0.9.8h) that provides full
18739support for this TLS extension. </p>
18740
18741<p> Specify a non-negative time value (an integral value plus an optional
18742one-letter suffix that specifies the time unit).  Time units: s
18743(seconds), m (minutes), h (hours), d (days), w (weeks).
18744The default time unit is s (seconds).  </p>
18745
18746<p> This feature is available in Postfix 2.2 and later, and updated
18747for TLS session ticket support in Postfix 2.11. </p>
18748
18749
18750</DD>
18751
18752<DT><b><a name="smtpd_tls_wrappermode">smtpd_tls_wrappermode</a>
18753(default: no)</b></DT><DD>
18754
18755<p> Run the Postfix SMTP server in TLS "wrapper" mode,
18756instead of using the STARTTLS command. </p>
18757
18758<p> If you want to support this service, enable a special port in
18759<a href="master.5.html">master.cf</a>, and specify "-o <a href="postconf.5.html#smtpd_tls_wrappermode">smtpd_tls_wrappermode</a>=yes" on the SMTP
18760server's command line. Port 465 (submissions/smtps) is reserved for
18761this purpose. </p>
18762
18763<p> This feature is available in Postfix 2.2 and later.  </p>
18764
18765
18766</DD>
18767
18768<DT><b><a name="smtpd_upstream_proxy_protocol">smtpd_upstream_proxy_protocol</a>
18769(default: empty)</b></DT><DD>
18770
18771<p> The name of the proxy protocol used by an optional before-smtpd
18772proxy agent. When a proxy agent is used, this protocol conveys local
18773and remote address and port information.  Specify
18774"<a href="postconf.5.html#smtpd_upstream_proxy_protocol">smtpd_upstream_proxy_protocol</a> = haproxy" to enable the haproxy
18775protocol; version 2 is supported with Postfix 3.5 and later. </p>
18776
18777<p> NOTE: To use the nginx proxy with <a href="smtpd.8.html">smtpd(8)</a>, enable the XCLIENT
18778protocol with <a href="postconf.5.html#smtpd_authorized_xclient_hosts">smtpd_authorized_xclient_hosts</a>. This supports SASL
18779authentication in the proxy agent (Postfix 2.9 and later). <p>
18780
18781<p> This feature is available in Postfix 2.10 and later.  </p>
18782
18783
18784</DD>
18785
18786<DT><b><a name="smtpd_upstream_proxy_timeout">smtpd_upstream_proxy_timeout</a>
18787(default: 5s)</b></DT><DD>
18788
18789<p> The time limit for the proxy protocol specified with the
18790<a href="postconf.5.html#smtpd_upstream_proxy_protocol">smtpd_upstream_proxy_protocol</a> parameter. </p>
18791
18792<p> Specify a non-zero time value (an integral value plus an optional
18793one-letter suffix that specifies the time unit).  Time units: s
18794(seconds), m (minutes), h (hours), d (days), w (weeks).
18795The default time unit is s (seconds).  </p>
18796
18797<p> This feature is available in Postfix 2.10 and later.  </p>
18798
18799
18800</DD>
18801
18802<DT><b><a name="smtpd_use_tls">smtpd_use_tls</a>
18803(default: no)</b></DT><DD>
18804
18805<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
18806but do not require that clients use TLS encryption. </p>
18807
18808<p> Note: when invoked via "<b>sendmail -bs</b>", Postfix will never offer
18809STARTTLS due to insufficient privileges to access the server private
18810key. This is intended behavior. </p>
18811
18812<p> This feature is available in Postfix 2.2 and later. With
18813Postfix 2.3 and later use <a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a> instead. </p>
18814
18815
18816</DD>
18817
18818<DT><b><a name="smtputf8_autodetect_classes">smtputf8_autodetect_classes</a>
18819(default: sendmail, verify)</b></DT><DD>
18820
18821<p> Detect that a message requires SMTPUTF8 support for the specified
18822mail origin classes.  This is a workaround to avoid chicken-and-egg
18823problems during the initial SMTPUTF8 roll-out in environments with
18824pre-existing mail flows that contain UTF8. Those mail flows should
18825not break because Postfix suddenly refuses to deliver such mail
18826to down-stream MTAs that don't announce SMTPUTF8 support.  </p>
18827
18828<p> The problem is that Postfix cannot rely solely on the sender's
18829declaration that a message requires SMTPUTF8 support, because UTF8
18830may be introduced during local processing (for example, the client
18831hostname in Postfix's Received: header, adding @$<a href="postconf.5.html#myorigin">myorigin</a> or
18832.$<a href="postconf.5.html#mydomain">mydomain</a> to an incomplete address, address rewriting, alias
18833expansion, automatic BCC recipients, local forwarding, and changes
18834made by header checks or Milter applications). </p>
18835
18836<p> For now, the default is to enable "SMTPUTF8 required" autodetection
18837only for Postfix sendmail command-line submissions and address
18838verification probes.  This may change once SMTPUTF8 support achieves
18839world domination.  However, sites that add UTF8 content via local
18840processing (see above) should autodetect the need for SMTPUTF8
18841support for all email.</p>
18842
18843<p> Specify one or more of the following: </p>
18844
18845<dl compact>
18846
18847<dt> <b> sendmail </b> </dt> <dd> Submission with the Postfix
18848<a href="sendmail.1.html">sendmail(1)</a> command. </dd>
18849
18850<dt> <b> smtpd </b> </dt> <dd> Mail received with the <a href="smtpd.8.html">smtpd(8)</a>
18851daemon. </dd>
18852
18853<dt> <b> qmqpd </b> </dt> <dd> Mail received with the <a href="qmqpd.8.html">qmqpd(8)</a>
18854daemon. </dd>
18855
18856<dt> <b> forward </b> </dt> <dd> Local forwarding or aliasing.  When
18857a message is received with "SMTPUTF8 required", then the forwarded
18858(aliased) message always has "SMTPUTF8 required".  </dd>
18859
18860<dt> <b> bounce </b> </dt> <dd> Submission by the <a href="bounce.8.html">bounce(8)</a> daemon.
18861When a message is received with "SMTPUTF8 required", then the
18862delivery status notification always has "SMTPUTF8 required".  </dd>
18863
18864<dt> <b> notify </b> </dt> <dd> Postmaster notification from the
18865<a href="smtp.8.html">smtp(8)</a> or <a href="smtpd.8.html">smtpd(8)</a> daemon. </dd>
18866
18867<dt> <b> verify </b> </dt> <dd> Address verification probe from the
18868<a href="verify.8.html">verify(8)</a> daemon.  </dd>
18869
18870<dt> <b> all </b> </dt> <dd> Enable SMTPUTF8 autodetection for all
18871mail. </dd>
18872
18873</dl>
18874
18875<p> This feature is available in Postfix 3.0 and later. </p>
18876
18877
18878</DD>
18879
18880<DT><b><a name="smtputf8_enable">smtputf8_enable</a>
18881(default: yes)</b></DT><DD>
18882
18883<p> Enable preliminary SMTPUTF8 support for the protocols described
18884in <a href="https://tools.ietf.org/html/rfc6531">RFC 6531</a>, <a href="https://tools.ietf.org/html/rfc6532">RFC 6532</a>, and <a href="https://tools.ietf.org/html/rfc6533">RFC 6533</a>. This requires that Postfix is
18885built to support these protocols. </p>
18886
18887<p> This feature is available in Postfix 3.0 and later. </p>
18888
18889
18890</DD>
18891
18892<DT><b><a name="soft_bounce">soft_bounce</a>
18893(default: no)</b></DT><DD>
18894
18895<p>
18896Safety net to keep mail queued that would otherwise be returned to
18897the sender.  This parameter disables locally-generated bounces,
18898changes the handling of negative responses from remote servers,
18899content filters or plugins,
18900and prevents the Postfix SMTP server from rejecting mail permanently
18901by changing 5xx reply codes into 4xx.  However, <a href="postconf.5.html#soft_bounce">soft_bounce</a> is no
18902cure for address rewriting mistakes or mail routing mistakes.
18903</p>
18904
18905<p>
18906Note: "<a href="postconf.5.html#soft_bounce">soft_bounce</a> = yes" is in some cases implemented by modifying
18907server responses. Therefore, the response that Postfix logs may
18908differ from the response that Postfix actually sends or receives.
18909</p>
18910
18911<p>
18912Example:
18913</p>
18914
18915<pre>
18916<a href="postconf.5.html#soft_bounce">soft_bounce</a> = yes
18917</pre>
18918
18919
18920</DD>
18921
18922<DT><b><a name="stale_lock_time">stale_lock_time</a>
18923(default: 500s)</b></DT><DD>
18924
18925<p>
18926The time after which a stale exclusive mailbox lockfile is removed.
18927This is used for delivery to file or mailbox.
18928</p>
18929
18930<p> Specify a non-zero time value (an integral value plus an optional
18931one-letter suffix that specifies the time unit).  Time units: s
18932(seconds), m (minutes), h (hours), d (days), w (weeks).
18933The default time unit is s (seconds).  </p>
18934
18935
18936</DD>
18937
18938<DT><b><a name="stress">stress</a>
18939(default: empty)</b></DT><DD>
18940
18941<p> This feature is documented in the <a href="STRESS_README.html">STRESS_README</a> document. </p>
18942
18943<p> This feature is available in Postfix 2.5 and later. </p>
18944
18945
18946</DD>
18947
18948<DT><b><a name="strict_7bit_headers">strict_7bit_headers</a>
18949(default: no)</b></DT><DD>
18950
18951<p>
18952Reject mail with 8-bit text in message headers. This blocks mail
18953from poorly written applications.
18954</p>
18955
18956<p>
18957This feature should not be enabled on a general purpose mail server,
18958because it is likely to reject legitimate email.
18959</p>
18960
18961<p>
18962This feature is available in Postfix 2.0 and later.
18963</p>
18964
18965
18966</DD>
18967
18968<DT><b><a name="strict_8bitmime">strict_8bitmime</a>
18969(default: no)</b></DT><DD>
18970
18971<p>
18972Enable both <a href="postconf.5.html#strict_7bit_headers">strict_7bit_headers</a> and <a href="postconf.5.html#strict_8bitmime_body">strict_8bitmime_body</a>.
18973</p>
18974
18975<p>
18976This feature should not be enabled on a general purpose mail server,
18977because it is likely to reject legitimate email.
18978</p>
18979
18980<p>
18981This feature is available in Postfix 2.0 and later.
18982</p>
18983
18984
18985</DD>
18986
18987<DT><b><a name="strict_8bitmime_body">strict_8bitmime_body</a>
18988(default: no)</b></DT><DD>
18989
18990<p>
18991Reject 8-bit message body text without 8-bit MIME content encoding
18992information.  This blocks mail from poorly written applications.
18993</p>
18994
18995<p>
18996Unfortunately, this also rejects majordomo approval requests when
18997the included request contains valid 8-bit MIME mail, and it rejects
18998bounces from mailers that do not MIME encapsulate 8-bit content
18999(for example, bounces from qmail or from old versions of Postfix).
19000</p>
19001
19002<p>
19003This feature should not be enabled on a general purpose mail server,
19004because it is likely to reject legitimate email.
19005</p>
19006
19007<p>
19008This feature is available in Postfix 2.0 and later.
19009</p>
19010
19011
19012</DD>
19013
19014<DT><b><a name="strict_mailbox_ownership">strict_mailbox_ownership</a>
19015(default: yes)</b></DT><DD>
19016
19017<p> Defer delivery when a mailbox file is not owned by its recipient.
19018The default setting is not backwards compatible.  </p>
19019
19020<p> This feature is available in Postfix 2.5.3 and later. </p>
19021
19022
19023</DD>
19024
19025<DT><b><a name="strict_mime_encoding_domain">strict_mime_encoding_domain</a>
19026(default: no)</b></DT><DD>
19027
19028<p>
19029Reject mail with invalid Content-Transfer-Encoding: information
19030for the message/* or multipart/* MIME content types.  This blocks
19031mail from poorly written software.
19032</p>
19033
19034<p>
19035This feature should not be enabled on a general purpose mail server,
19036because it will reject mail after a single violation.
19037</p>
19038
19039<p>
19040This feature is available in Postfix 2.0 and later.
19041</p>
19042
19043
19044</DD>
19045
19046<DT><b><a name="strict_rfc821_envelopes">strict_rfc821_envelopes</a>
19047(default: no)</b></DT><DD>
19048
19049<p>
19050Require that addresses received in SMTP MAIL FROM and RCPT TO
19051commands are enclosed with &lt;&gt;, and that those addresses do
19052not contain <a href="https://tools.ietf.org/html/rfc822">RFC 822</a> style comments or phrases.  This stops mail
19053from poorly written software.
19054</p>
19055
19056<p>
19057By default, the Postfix SMTP server accepts <a href="https://tools.ietf.org/html/rfc822">RFC 822</a> syntax in MAIL
19058FROM and RCPT TO addresses.
19059</p>
19060
19061
19062</DD>
19063
19064<DT><b><a name="strict_smtputf8">strict_smtputf8</a>
19065(default: no)</b></DT><DD>
19066
19067<p> Enable stricter enforcement of the SMTPUTF8 protocol. The Postfix
19068SMTP server accepts UTF8 sender or recipient addresses only when
19069the client requests an SMTPUTF8 mail transaction. </p>
19070
19071<p> This feature is available in Postfix 3.0 and later. </p>
19072
19073
19074</DD>
19075
19076<DT><b><a name="sun_mailtool_compatibility">sun_mailtool_compatibility</a>
19077(default: no)</b></DT><DD>
19078
19079<p>
19080Obsolete SUN mailtool compatibility feature. Instead, use
19081"<a href="postconf.5.html#mailbox_delivery_lock">mailbox_delivery_lock</a> = dotlock".
19082</p>
19083
19084
19085</DD>
19086
19087<DT><b><a name="swap_bangpath">swap_bangpath</a>
19088(default: yes)</b></DT><DD>
19089
19090<p>
19091Enable the rewriting of "site!user" into "user@site".  This is
19092necessary if your machine is connected to UUCP networks.  It is
19093enabled by default.
19094</p>
19095
19096<p> Note: with Postfix version 2.2, message header address rewriting
19097happens only when one of the following conditions is true: </p>
19098
19099<ul>
19100
19101<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
19102
19103<li> The message is received from a network client that matches
19104$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
19105
19106<li> The message is received from the network, and the
19107<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
19108
19109</ul>
19110
19111<p> To get the behavior before Postfix version 2.2, specify
19112"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
19113
19114<p>
19115Example:
19116</p>
19117
19118<pre>
19119<a href="postconf.5.html#swap_bangpath">swap_bangpath</a> = no
19120</pre>
19121
19122
19123</DD>
19124
19125<DT><b><a name="syslog_facility">syslog_facility</a>
19126(default: mail)</b></DT><DD>
19127
19128<p>
19129The syslog facility of Postfix logging. Specify a facility as
19130defined in syslog.conf(5). The default facility is "mail".
19131</p>
19132
19133<p>
19134Warning: a non-default <a href="postconf.5.html#syslog_facility">syslog_facility</a> setting takes effect only
19135after a Postfix process has completed initialization.  Errors during
19136process initialization will be logged with the default facility.
19137Examples are errors while parsing the command line arguments, and
19138errors while accessing the Postfix <a href="postconf.5.html">main.cf</a> configuration file.
19139</p>
19140
19141
19142</DD>
19143
19144<DT><b><a name="syslog_name">syslog_name</a>
19145(default: see "postconf -d" output)</b></DT><DD>
19146
19147<p>
19148A prefix that is prepended to the process name in syslog
19149records, so that, for example, "smtpd" becomes "prefix/smtpd".
19150</p>
19151
19152<p>
19153Warning: a non-default <a href="postconf.5.html#syslog_name">syslog_name</a> setting takes effect only after
19154a Postfix process has completed initialization. Errors during
19155process initialization will be logged with the default name. Examples
19156are errors while parsing the command line arguments, and errors
19157while accessing the Postfix <a href="postconf.5.html">main.cf</a> configuration file.
19158</p>
19159
19160
19161</DD>
19162
19163<DT><b><a name="tcp_windowsize">tcp_windowsize</a>
19164(default: 0)</b></DT><DD>
19165
19166<p> An optional workaround for routers that break TCP window scaling.
19167Specify a value &gt; 0 and &lt; 65536 to enable this feature.  With
19168Postfix TCP servers (<a href="smtpd.8.html">smtpd(8)</a>, <a href="qmqpd.8.html">qmqpd(8)</a>), this feature is implemented
19169by the Postfix <a href="master.8.html">master(8)</a> daemon.  </p>
19170
19171<p> To change this parameter without stopping Postfix, you need to
19172first terminate all Postfix TCP servers: </p>
19173
19174<blockquote>
19175<pre>
19176# postconf -e <a href="postconf.5.html#master_service_disable">master_service_disable</a>=inet
19177# postfix reload
19178</pre>
19179</blockquote>
19180
19181<p> This immediately terminates all processes that accept network
19182connections.  Next, you enable Postfix TCP servers with the updated
19183<a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> setting: </p>
19184
19185<blockquote>
19186<pre>
19187# postconf -e <a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a>=65535 <a href="postconf.5.html#master_service_disable">master_service_disable</a>=
19188# postfix reload
19189</pre>
19190</blockquote>
19191
19192<p> If you skip these steps with a running Postfix system, then the
19193<a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> change will work only for Postfix TCP clients (<a href="smtp.8.html">smtp(8)</a>,
19194<a href="lmtp.8.html">lmtp(8)</a>).  </p>
19195
19196<p> This feature is available in Postfix 2.6 and later. </p>
19197
19198
19199</DD>
19200
19201<DT><b><a name="tls_append_default_CA">tls_append_default_CA</a>
19202(default: no)</b></DT><DD>
19203
19204<p> Append the system-supplied default Certification Authority
19205certificates to the ones specified with *_tls_CApath or *_tls_CAfile.
19206The default is "no"; this prevents Postfix from trusting third-party
19207certificates and giving them relay permission with
19208<a href="postconf.5.html#permit_tls_all_clientcerts">permit_tls_all_clientcerts</a>.  </p>
19209
19210<p> This feature is available in Postfix 2.4.15, 2.5.11, 2.6.8,
192112.7.2 and later versions. Specify "<a href="postconf.5.html#tls_append_default_CA">tls_append_default_CA</a> = yes" for
19212backwards compatibility, to avoid breaking certificate verification
19213with sites that don't use <a href="postconf.5.html#permit_tls_all_clientcerts">permit_tls_all_clientcerts</a>. </p>
19214
19215
19216</DD>
19217
19218<DT><b><a name="tls_config_file">tls_config_file</a>
19219(default: default)</b></DT><DD>
19220
19221<p> Optional configuration file with baseline OpenSSL settings.
19222OpenSSL loads any SSL settings found in the configuration file for
19223the selected application name (see <a href="postconf.5.html#tls_config_name">tls_config_name</a>) or else the
19224built-in application name "openssl_conf" when no application name is
19225specified, or no corresponding configuration section is present.
19226</p>
19227
19228<p> With OpenSSL releases 1.1.1 and 1.1.1a, applications (including
19229Postfix) can neither specify an alternative configuration file, nor
19230avoid loading the default configuration file.  </p>
19231
19232<p> With OpenSSL 1.1.1b or later, this parameter may be set to one of:
19233</p>
19234
19235<dl>
19236
19237<dt> <b>default</b> (default) </dt> <dd> Load the system-wide
19238"openssl.cnf" configuration file.  </dd>
19239
19240<dt> <b>none</b> (recommended, OpenSSL 1.1.1b or later only) </dt>
19241<dd> This setting disables loading of  the system-wide "openssl.cnf"
19242file.  </dd>
19243
19244<dt> <b><i>/absolute-path</i></b> (OpenSSL 1.1.1b or later only) </dt>
19245<dd> Load the configuration file specified by <i>/absolute-path</i>.
19246With this setting it is an error for the file to not contain any
19247settings for the selected <a href="postconf.5.html#tls_config_name">tls_config_name</a>.  There is no fallback to
19248the default "openssl_conf" name. </dd>
19249
19250</dl>
19251
19252<p> Failures in processing of the built-in default configuration file,
19253are silently ignored.  Any errors in loading a non-default configuration
19254file are detected by Postfix, and cause TLS support to be disabled.
19255</p>
19256
19257<p> The OpenSSL configuration file format is not documented here,
19258beyond giving two examples. <p>
19259
19260<p> Example: Default settings for all applications. </p>
19261
19262<blockquote>
19263<pre>
19264# The name 'openssl_conf' is the default application name
19265# The section name to the right of the '=' sign is arbitrary,
19266# any name will do, so long as it refers to the desired section.
19267#
19268# The name 'system_default' selects the settings applied internally
19269# by the SSL library as part of SSL object creation.  Applications
19270# can then apply any additional settings of their choice.
19271#
19272# In this example, TLS versions prior to 1.2 are disabled by default.
19273#
19274openssl_conf = system_wide_settings
19275[system_wide_settings]
19276ssl_conf = ssl_library_settings
19277[ssl_library_settings]
19278system_default = initial_ssl_settings
19279[initial_ssl_settings]
19280MinProtocol = TLSv1.2
19281</pre>
19282</blockquote>
19283
19284<p> Example: Custom settings for an application named "postfix". </p>
19285
19286<blockquote>
19287<pre>
19288# The mapping from an application name to the corresponding configuration
19289# section must appear near the top of the file, (in what is sometimes called
19290# the "default section") prior to the start of any explicitly named
19291# "[sections]".  The named sections can appear in any order and don't nest.
19292#
19293postfix = postfix_settings
19294[postfix_settings]
19295ssl_conf = postfix_ssl_settings
19296[postfix_ssl_settings]
19297system_default = baseline_postfix_settings
19298[baseline_postfix_settings]
19299MinProtocol = TLSv1
19300</pre>
19301</blockquote>
19302
19303<p> This feature is available in Postfix &ge; 3.9, 3.8.1, 3.7.6,
193043.6.10, and 3.5.20. </p>
19305
19306
19307</DD>
19308
19309<DT><b><a name="tls_config_name">tls_config_name</a>
19310(default: empty)</b></DT><DD>
19311
19312<p> The application name passed by Postfix to OpenSSL library
19313initialization functions.  This name is used to select the desired
19314configuration "section" in the OpenSSL configuration file specified
19315via the <a href="postconf.5.html#tls_config_file">tls_config_file</a> parameter.  When empty, or when the
19316selected name is not present in the configuration file, the default
19317application name ("openssl_conf") is used as a fallback.  </p>
19318
19319<p> This feature is available in Postfix &ge; 3.9, 3.8.1, 3.7.6,
193203.6.10, and 3.5.20. </p>
19321
19322
19323</DD>
19324
19325<DT><b><a name="tls_daemon_random_bytes">tls_daemon_random_bytes</a>
19326(default: 32)</b></DT><DD>
19327
19328<p> The number of pseudo-random bytes that an <a href="smtp.8.html">smtp(8)</a> or <a href="smtpd.8.html">smtpd(8)</a>
19329process requests from the <a href="tlsmgr.8.html">tlsmgr(8)</a> server in order to seed its
19330internal pseudo random number generator (PRNG).  The default of 32
19331bytes (equivalent to 256 bits) is sufficient to generate a 128bit
19332(or 168bit) session key. </p>
19333
19334<p> This feature is available in Postfix 2.2 and later.  </p>
19335
19336
19337</DD>
19338
19339<DT><b><a name="tls_dane_digest_agility">tls_dane_digest_agility</a>
19340(default: on)</b></DT><DD>
19341
19342<p> Configure <a href="https://tools.ietf.org/html/rfc7671">RFC7671</a> DANE TLSA digest algorithm agility.
19343Do not change this setting from its default value. </p>
19344
19345<p> See Section 8 of <a href="https://tools.ietf.org/html/rfc7671">RFC7671</a> for correct key rotation procedures.  </p>
19346
19347<p> This feature is available in Postfix 2.11 through 3.1.  Postfix
193483.2 and later ignore this configuration parameter and behave as
19349though it were set to "on".  </p>
19350
19351
19352</DD>
19353
19354<DT><b><a name="tls_dane_digests">tls_dane_digests</a>
19355(default: sha512 sha256)</b></DT><DD>
19356
19357<p> DANE TLSA (<a href="https://tools.ietf.org/html/rfc6698">RFC 6698</a>, <a href="https://tools.ietf.org/html/rfc7671">RFC 7671</a>, <a href="https://tools.ietf.org/html/rfc7672">RFC 7672</a>) resource-record "matching
19358type" digest algorithms in descending preference order.  All the
19359specified algorithms must be supported by the underlying OpenSSL
19360library, otherwise the Postfix SMTP client will not support DANE
19361TLSA security.  </p>
19362
19363<p> Specify a list of digest names separated by commas and/or
19364whitespace.  Each digest name may be followed by an optional
19365"=&lt;number&gt;" suffix.  For example, "sha512" may instead be specified
19366as "sha512=2" and "sha256" may instead be specified as "sha256=1".
19367The optional number must match the <a
19368href="https://www.iana.org/assignments/dane-parameters/dane-parameters.xhtml#matching-types"
19369>IANA</a> assigned TLSA matching type number the algorithm in question.
19370Postfix will check this constraint for the algorithms it knows about.
19371Additional matching type algorithms registered with IANA can be added
19372with explicit numbers provided they are supported by OpenSSL. </p>
19373
19374<p> Invalid list elements are logged with a warning and disable DANE
19375support.  TLSA RRs that specify digests not included in the list are
19376ignored with a warning. </p>
19377
19378<p> Note: It is unwise to omit sha256 from the digest list.  This
19379digest algorithm is the only mandatory to implement digest algorithm
19380in <a href="https://tools.ietf.org/html/rfc6698">RFC 6698</a>, and many servers are expected to publish TLSA records
19381with just sha256 digests.  Unless one of the standard digests is
19382seriously compromised and servers have had ample time to update their
19383TLSA records you should not omit any standard digests, just arrange
19384them in order from strongest to weakest.  </p>
19385
19386<p> This feature is available in Postfix 2.11 and later. </p>
19387
19388
19389</DD>
19390
19391<DT><b><a name="tls_dane_trust_anchor_digest_enable">tls_dane_trust_anchor_digest_enable</a>
19392(default: yes)</b></DT><DD>
19393
19394<p> Enable support for <a href="https://tools.ietf.org/html/rfc6698">RFC 6698</a> (DANE TLSA) DNS records that contain
19395digests of trust-anchors with certificate usage "2".  Do not change
19396this setting from its default value.  </p>
19397
19398<p> This feature is available in Postfix 2.11 through 3.1.  It has
19399been withdrawn in Postfix 3.2, as trust-anchor TLSA records are now
19400widely used and have proved sufficiently reliable.  Postfix 3.2 and
19401later ignore this configuration parameter and behaves as though it
19402were set to "yes".  </p>
19403
19404
19405</DD>
19406
19407<DT><b><a name="tls_disable_workarounds">tls_disable_workarounds</a>
19408(default: see "postconf -d" output)</b></DT><DD>
19409
19410<p> List or bit-mask of OpenSSL bug work-arounds to disable. </p>
19411
19412<p> The OpenSSL toolkit includes a set of work-arounds for buggy SSL/TLS
19413implementations. Applications, such as Postfix, that want to maximize
19414interoperability ask the OpenSSL library to enable the full set of
19415recommended work-arounds. </p>
19416
19417<p> From time to time, it is discovered that a work-around creates a
19418security issue, and should no longer be used. If upgrading OpenSSL
19419to a fixed version is not an option or an upgrade is not available
19420in a timely manner, or in closed environments where no buggy clients
19421or servers exist, it may be appropriate to disable some or all of the
19422OpenSSL interoperability work-arounds. This parameter specifies which
19423bug work-arounds to disable. </p>
19424
19425<p> If the value of the parameter is a hexadecimal long integer starting
19426with "0x", the bug work-arounds corresponding to the bits specified in
19427its value are removed from the <b>SSL_OP_ALL</b> work-around bit-mask
19428(see openssl/ssl.h and SSL_CTX_set_options(3)). You can specify more
19429bits than are present in SSL_OP_ALL, excess bits are ignored. Specifying
194300xFFFFFFFF disables all bug-workarounds on a 32-bit system. This should
19431also be sufficient on 64-bit systems, until OpenSSL abandons support
19432for 32-bit systems and starts using the high 32 bits of a 64-bit
19433bug-workaround mask. </p>
19434
19435<p> Otherwise, the parameter is a white-space or comma separated list
19436of specific named bug work-arounds chosen from the list below. It
19437is possible that your OpenSSL version includes new bug work-arounds
19438added after your Postfix source code was last updated, in that case
19439you can only disable one of these via the hexadecimal syntax above. </p>
19440
19441<dl>
19442
19443<dt><b>CRYPTOPRO_TLSEXT_BUG</b></dt> <dd>New with GOST support in
19444OpenSSL 1.0.0.</dd>
19445
19446<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b></dt> <dd>See
19447SSL_CTX_set_options(3)</dd>
19448
19449<dt><b>LEGACY_SERVER_CONNECT</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
19450
19451<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b></dt> <dd>See
19452SSL_CTX_set_options(3)</dd>
19453
19454<dt><b>MICROSOFT_SESS_ID_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
19455
19456<dt><b>MSIE_SSLV2_RSA_PADDING</b></dt> <dd> also aliased as
19457<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by
19458default with OpenSSL versions that may predate the fix. Fixed in
19459OpenSSL 0.9.7h and OpenSSL 0.9.8a.</dd>
19460
19461<dt><b>NETSCAPE_CHALLENGE_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
19462
19463<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b></dt> <dd> also aliased
19464as <b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by
19465default with OpenSSL versions that may predate the fix. Fixed in
19466OpenSSL 0.9.8q and OpenSSL 1.0.0c.</dd>
19467
19468<dt><b>SSLEAY_080_CLIENT_DH_BUG</b></dt> <dd>See
19469SSL_CTX_set_options(3)</dd>
19470
19471<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b></dt> <dd>See
19472SSL_CTX_set_options(3)</dd>
19473
19474<dt><b>TLS_BLOCK_PADDING_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
19475
19476<dt><b>TLS_D5_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
19477
19478<dt><b>TLS_ROLLBACK_BUG</b></dt> <dd>See SSL_CTX_set_options(3).
19479This is disabled in OpenSSL 0.9.7 and later. Nobody should still
19480be using 0.9.6! </dd>
19481
19482<dt><b>TLSEXT_PADDING</b></dt><dd>Postfix &ge; 3.4. See SSL_CTX_set_options(3).</dd>
19483
19484</dl>
19485
19486<p> This feature is available in Postfix 2.8 and later.  </p>
19487
19488
19489</DD>
19490
19491<DT><b><a name="tls_eecdh_auto_curves">tls_eecdh_auto_curves</a>
19492(default: see "postconf -d" output)</b></DT><DD>
19493
19494<p> The prioritized list of elliptic curves supported by the Postfix
19495SMTP client and server.  These curves are used by the Postfix SMTP
19496server when "<a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a> = auto".  The selected curves must be
19497implemented by OpenSSL and be standardized for use in TLS (<a href="https://tools.ietf.org/html/rfc8422">RFC 8422</a>).
19498It is unwise to list only "bleeding-edge" curves supported by a small
19499subset of clients.  The default list is suitable for most users. </p>
19500
19501<p> Postfix skips curve names that are unknown to OpenSSL, or that
19502are known but not yet implemented.  This makes it possible to
19503"anticipate" support for curves that should be used once they become
19504available.  In particular, in some OpenSSL versions, the new <a href="https://tools.ietf.org/html/rfc8031">RFC</a>
19505<a href="https://tools.ietf.org/html/rfc8031">8031</a> curves "X25519" and "X448" may be known by name, but ECDH
19506support for either or both may be missing.  These curves may appear
19507in the default value of this parameter, even though they'll only
19508be usable with later versions of OpenSSL.  </p>
19509
19510<p> See also the "<a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a>" parameter, which supports
19511customizing the list of FFDHE groups enabled with TLS 1.3.  That setting
19512is introduced with Postfix 3.8, when built against OpenSSL 3.0 or later.
19513</p>
19514
19515<p> This feature is available in Postfix 3.2 and later, when it is
19516compiled and linked with OpenSSL 1.0.2 or later on platforms where
19517EC algorithms have not been disabled by the vendor. </p>
19518
19519
19520</DD>
19521
19522<DT><b><a name="tls_eecdh_strong_curve">tls_eecdh_strong_curve</a>
19523(default: prime256v1)</b></DT><DD>
19524
19525<p> The elliptic curve used by the Postfix SMTP server for sensibly
19526strong
19527ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
19528server when "<a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a> = strong". The phrase "sensibly
19529strong" means approximately 128-bit security based on best known
19530attacks. The selected curve must be implemented by OpenSSL (as
19531reported by ecparam(1) with the "-list_curves" option) and be one
19532of the curves listed in Section 5.1.1 of <a href="https://tools.ietf.org/html/rfc8422">RFC 8422</a>. You should not
19533generally change this setting.  Remote SMTP client implementations
19534must support this curve for EECDH key exchange to take place.  It
19535is unwise to choose only "bleeding-edge" curves supported by only a
19536small subset of clients.  </p>
19537
19538<p> The default "strong" curve is rated in NSA <a
19539href="https://web.archive.org/web/20160330034144/https://www.nsa.gov/ia/programs/suiteb_cryptography/">Suite
19540B</a> for information classified up to SECRET.  </p>
19541
19542<p> Note: elliptic curve names are poorly standardized; different
19543standards groups are assigning different names to the same underlying
19544curves.  The curve with the X9.62 name "prime256v1" is also known
19545under the SECG name "secp256r1", but OpenSSL does not recognize the
19546latter name. </p>
19547
19548<p> If you want to take maximal advantage of ciphers that offer <a
19549href="FORWARD_SECRECY_README.html#dfn_fs">forward secrecy</a> see
19550the <a href="FORWARD_SECRECY_README.html#quick-start">Getting
19551started</a> section of <a
19552href="FORWARD_SECRECY_README.html">FORWARD_SECRECY_README</a>.  The
19553full document conveniently presents all information about Postfix
19554"perfect" forward secrecy support in one place: what forward secrecy
19555is, how to tweak settings, and what you can expect to see when
19556Postfix uses ciphers with forward secrecy.  </p>
19557
19558<p> This feature is available in Postfix 2.6 and later, when it is
19559compiled and linked with OpenSSL 1.0.0 or later on platforms where
19560EC algorithms have not been disabled by the vendor. </p>
19561
19562
19563</DD>
19564
19565<DT><b><a name="tls_eecdh_ultra_curve">tls_eecdh_ultra_curve</a>
19566(default: secp384r1)</b></DT><DD>
19567
19568<p> The elliptic curve used by the Postfix SMTP server for maximally
19569strong
19570ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
19571server when "<a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a> = ultra". The phrase "maximally
19572strong" means approximately 192-bit security based on best known attacks.
19573This additional strength comes at a significant computational cost, most
19574users should instead set "<a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a> = strong".  The selected
19575curve must be implemented by OpenSSL (as reported by ecparam(1) with the
19576"-list_curves" option) and be one of the curves listed in Section 5.1.1
19577of <a href="https://tools.ietf.org/html/rfc8422">RFC 8422</a>. You should not generally change this setting.  Remote SMTP
19578client implementations must support this curve for EECDH key exchange
19579to take place.  It is unwise to choose only "bleeding-edge" curves
19580supported by only a small subset of clients. </p>
19581
19582<p> This default "ultra" curve is rated in NSA <a
19583href="https://web.archive.org/web/20160330034144/https://www.nsa.gov/ia/programs/suiteb_cryptography/">Suite
19584B</a> for information classified up to TOP SECRET. </p>
19585
19586<p> If you want to take maximal advantage of ciphers that offer <a
19587href="FORWARD_SECRECY_README.html#dfn_fs">forward secrecy</a> see
19588the <a href="FORWARD_SECRECY_README.html#quick-start">Getting
19589started</a> section of <a
19590href="FORWARD_SECRECY_README.html">FORWARD_SECRECY_README</a>.  The
19591full document conveniently presents all information about Postfix
19592"perfect" forward secrecy support in one place: what forward secrecy
19593is, how to tweak settings, and what you can expect to see when
19594Postfix uses ciphers with forward secrecy.  </p>
19595
19596<p> This feature is available in Postfix 2.6 and later, when it is
19597compiled and linked with OpenSSL 1.0.0 or later on platforms where
19598EC algorithms have not been disabled by the vendor. </p>
19599
19600
19601</DD>
19602
19603<DT><b><a name="tls_export_cipherlist">tls_export_cipherlist</a>
19604(default: see "postconf -d" output)</b></DT><DD>
19605
19606<p> The OpenSSL cipherlist for "export" or higher grade ciphers.
19607Ignored as of Postfix 3.8.  In earlier Postfix releases this
19608defined the meaning of the "export" setting in <a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a>,
19609<a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>, <a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>,
19610<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>, <a href="postconf.5.html#lmtp_tls_ciphers">lmtp_tls_ciphers</a>, and
19611<a href="postconf.5.html#lmtp_tls_mandatory_ciphers">lmtp_tls_mandatory_ciphers</a>.  You are strongly encouraged not to
19612change this setting.  </p>
19613
19614<p> This feature is available in Postfix 2.3 and later.  </p>
19615
19616
19617</DD>
19618
19619<DT><b><a name="tls_fast_shutdown_enable">tls_fast_shutdown_enable</a>
19620(default: yes)</b></DT><DD>
19621
19622<p> A workaround for implementations that hang Postfix while shutting
19623down a TLS session, until Postfix times out. With this enabled,
19624Postfix will not wait for the remote TLS peer to respond to a TLS
19625'close' notification. This behavior is recommended for TLSv1.0 and
19626later. </p>
19627
19628
19629</DD>
19630
19631<DT><b><a name="tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a>
19632(default: see "postconf -d" output)</b></DT><DD>
19633
19634<p> The prioritized list of finite-field Diffie-Hellman ephemeral
19635(FFDHE) key exchange groups supported by the Postfix SMTP client and
19636server.  OpenSSL 3.0 adds support for FFDHE key agreement in TLS 1.3.
19637In OpenSSL 1.1.1, TLS 1.3 was only supported with elliptic-curve based
19638key agreement.  The "<a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a>" parameter makes it possible
19639to configure the list of FFDHE groups that the Postfix client or server
19640will enable in OpenSSL 3.0 and up.  This parameter has no effect when
19641Postfix is built against earlier OpenSSL versions. </p>
19642
19643<p> The default list of FFDHE groups that Postfix enables in OpenSSL 3.0
19644and up includes just the 2048 and 3072-bit groups.  Stronger FFDHE
19645groups perform poorly and EC groups are a much better choice for the
19646same security level.  Postfix ignores group names that are unknown to
19647OpenSSL, or that are known but not yet implemented.  The FFDHE groups
19648are largely a backup, in case some peer does not support EC key
19649exchange, or EC key exchange needs to be disabled for some pressing
19650reason. </p>
19651
19652<p> Setting this parameter empty disables FFDHE support in TLS 1.3.
19653Whether FFDHE key agreement is enabled in TLS 1.2 and earlier depends
19654on whether any of the "kDHE" ciphers are included in the cipherlist.
19655</p>
19656
19657<p> Conversely, setting "<a href="postconf.5.html#tls_eecdh_auto_curves">tls_eecdh_auto_curves</a>" empty disables TLS 1.3
19658EC key agreement in OpenSSL 3.0 and later.  Note that at least one of
19659"<a href="postconf.5.html#tls_eecdh_auto_curves">tls_eecdh_auto_curves</a>" and "<a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a>" must be non-empty,
19660this is required by OpenSSL 3.0.  If both are inadvertently set empty,
19661Postfix will fall back to the compiled-in defaults. </p>
19662
19663<p> All the default groups and EC curves should sufficiently strong
19664to make "pruning" the defaults unwise.  At a minimum, "X25519" and
19665"P-256" (a.k.a. "prime256v1") should be among the enabled EC curves,
19666while "dhe2048" and "dhe3072" should be among the FFDHE groups. </p>
19667
19668<p> This feature is available in Postfix 3.8 and later, when it is
19669compiled and linked with OpenSSL 3.0 or later. </p>
19670
19671
19672</DD>
19673
19674<DT><b><a name="tls_high_cipherlist">tls_high_cipherlist</a>
19675(default: see "postconf -d" output)</b></DT><DD>
19676
19677<p> The OpenSSL cipherlist for "high" grade ciphers. This defines
19678the meaning of the "high" setting in <a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a>,
19679<a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>, <a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>, <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>,
19680<a href="postconf.5.html#lmtp_tls_ciphers">lmtp_tls_ciphers</a>, and <a href="postconf.5.html#lmtp_tls_mandatory_ciphers">lmtp_tls_mandatory_ciphers</a>. You are strongly
19681encouraged not to change this setting.  </p>
19682
19683<p> This feature is available in Postfix 2.3 and later. </p>
19684
19685
19686</DD>
19687
19688<DT><b><a name="tls_legacy_public_key_fingerprints">tls_legacy_public_key_fingerprints</a>
19689(default: no)</b></DT><DD>
19690
19691<p> A temporary migration aid for sites that use certificate
19692<i>public-key</i> fingerprints with Postfix 2.9.0..2.9.5, which use
19693an incorrect algorithm. This parameter has no effect on the certificate
19694fingerprint support that is available since Postfix 2.2. </p>
19695
19696<p> Specify "<a href="postconf.5.html#tls_legacy_public_key_fingerprints">tls_legacy_public_key_fingerprints</a> = yes" temporarily,
19697pending a migration from configuration files with incorrect Postfix
196982.9.0..2.9.5 certificate public-key finger prints, to the correct
19699fingerprints used by Postfix 2.9.6 and later.  To compute the correct
19700certificate public-key fingerprints, see <a href="TLS_README.html">TLS_README</a>. </p>
19701
19702<p> This feature is available in Postfix 2.9.6 and later.  </p>
19703
19704
19705</DD>
19706
19707<DT><b><a name="tls_low_cipherlist">tls_low_cipherlist</a>
19708(default: see "postconf -d" output)</b></DT><DD>
19709
19710<p> The OpenSSL cipherlist for "low" or higher grade ciphers.
19711Ignored as of Postfix 3.8.  In earlier Postfix releases this
19712defined the meaning of the "low" setting in <a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a>,
19713<a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>, <a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>,
19714<a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>, <a href="postconf.5.html#lmtp_tls_ciphers">lmtp_tls_ciphers</a>, and
19715<a href="postconf.5.html#lmtp_tls_mandatory_ciphers">lmtp_tls_mandatory_ciphers</a>. You are strongly encouraged not to
19716change this setting.  </p>
19717
19718<p> This feature is available in Postfix 2.3 and later.  </p>
19719
19720
19721</DD>
19722
19723<DT><b><a name="tls_medium_cipherlist">tls_medium_cipherlist</a>
19724(default: see "postconf -d" output)</b></DT><DD>
19725
19726<p> The OpenSSL cipherlist for "medium" or higher grade ciphers. This
19727defines the meaning of the "medium" setting in <a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a>,
19728<a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>, <a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a>, <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a>,
19729<a href="postconf.5.html#lmtp_tls_ciphers">lmtp_tls_ciphers</a>, and <a href="postconf.5.html#lmtp_tls_mandatory_ciphers">lmtp_tls_mandatory_ciphers</a>.  This is the
19730default cipherlist for mandatory TLS encryption in the TLS client
19731(with anonymous ciphers disabled when verifying server certificates).
19732This is the default cipherlist for opportunistic TLS with Postfix
19733releases after the middle of 2015.  You are strongly encouraged not
19734to change this setting.  </p>
19735
19736<p> This feature is available in Postfix 2.3 and later. </p>
19737
19738
19739</DD>
19740
19741<DT><b><a name="tls_null_cipherlist">tls_null_cipherlist</a>
19742(default: eNULL:!aNULL)</b></DT><DD>
19743
19744<p> The OpenSSL cipherlist for "NULL" grade ciphers that provide
19745authentication without encryption. This defines the meaning of the "null"
19746setting in <a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>, <a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> and
19747<a href="postconf.5.html#lmtp_tls_mandatory_ciphers">lmtp_tls_mandatory_ciphers</a>.  You are strongly encouraged not to
19748change this setting. </p>
19749
19750<p> This feature is available in Postfix 2.3 and later. </p>
19751
19752
19753</DD>
19754
19755<DT><b><a name="tls_preempt_cipherlist">tls_preempt_cipherlist</a>
19756(default: no)</b></DT><DD>
19757
19758<p> With SSLv3 and later, use the Postfix SMTP server's cipher
19759preference order instead of the remote client's cipher preference
19760order. </p>
19761
19762<p> By default, the OpenSSL server selects the client's most preferred
19763cipher that the server supports. With SSLv3 and later, the server may
19764choose its own most preferred cipher that is supported (offered) by
19765the client. Setting "<a href="postconf.5.html#tls_preempt_cipherlist">tls_preempt_cipherlist</a> = yes" enables server cipher
19766preferences. </p>
19767
19768<p> While server cipher selection may in some cases lead to a more secure
19769or performant cipher choice, there is some risk of interoperability
19770issues. In the past, some SSL clients have listed lower priority ciphers
19771that they did not implement correctly. If the server chooses a cipher
19772that the client prefers less, it may select a cipher whose client
19773implementation is flawed. Most notably Windows 2003 Microsoft
19774Exchange servers have flawed implementations of DES-CBC3-SHA, which
19775OpenSSL considers stronger than RC4-SHA.  Enabling server cipher-suite
19776selection may create interoperability issues with Windows 2003
19777Microsoft Exchange clients.  </p>
19778
19779<p> This feature is available in Postfix 2.8 and later, in combination
19780with OpenSSL 0.9.7 and later. </p>
19781
19782
19783</DD>
19784
19785<DT><b><a name="tls_random_bytes">tls_random_bytes</a>
19786(default: 32)</b></DT><DD>
19787
19788<p> The number of bytes that <a href="tlsmgr.8.html">tlsmgr(8)</a> reads from $<a href="postconf.5.html#tls_random_source">tls_random_source</a>
19789when (re)seeding the in-memory pseudo random number generator (PRNG)
19790pool. The default of 32 bytes (256 bits) is good enough for 128bit
19791symmetric keys.  If using EGD or a device file, a maximum of 255
19792bytes is read. </p>
19793
19794<p> This feature is available in Postfix 2.2 and later.  </p>
19795
19796
19797</DD>
19798
19799<DT><b><a name="tls_random_exchange_name">tls_random_exchange_name</a>
19800(default: see "postconf -d" output)</b></DT><DD>
19801
19802<p> Name of the pseudo random number generator (PRNG) state file
19803that is maintained by <a href="tlsmgr.8.html">tlsmgr(8)</a>. The file is created when it does
19804not exist, and its length is fixed at 1024 bytes.  </p>
19805
19806<p> As of version 2.5, Postfix no longer uses root privileges when
19807opening this file, and the default file location was changed from
19808${<a href="postconf.5.html#config_directory">config_directory</a>}/prng_exch to ${<a href="postconf.5.html#data_directory">data_directory</a>}/prng_exch.  As
19809a migration aid, an attempt to open the file under a non-Postfix
19810directory is redirected to the Postfix-owned <a href="postconf.5.html#data_directory">data_directory</a>, and a
19811warning is logged. </p>
19812
19813<p> This feature is available in Postfix 2.2 and later.  </p>
19814
19815
19816</DD>
19817
19818<DT><b><a name="tls_random_prng_update_period">tls_random_prng_update_period</a>
19819(default: 3600s)</b></DT><DD>
19820
19821<p> The time between attempts by <a href="tlsmgr.8.html">tlsmgr(8)</a> to save the state of
19822the pseudo random number generator (PRNG) to the file specified
19823with $<a href="postconf.5.html#tls_random_exchange_name">tls_random_exchange_name</a>.  </p>
19824
19825<p> Specify a non-zero time value (an integral value plus an optional
19826one-letter suffix that specifies the time unit).  Time units: s
19827(seconds), m (minutes), h (hours), d (days), w (weeks).
19828The default time unit is s (seconds).  </p>
19829
19830<p> This feature is available in Postfix 2.2 and later.  </p>
19831
19832
19833</DD>
19834
19835<DT><b><a name="tls_random_reseed_period">tls_random_reseed_period</a>
19836(default: 3600s)</b></DT><DD>
19837
19838<p> The maximal time between attempts by <a href="tlsmgr.8.html">tlsmgr(8)</a> to re-seed the
19839in-memory pseudo random number generator (PRNG) pool from external
19840sources.  The actual time between re-seeding attempts is calculated
19841using the PRNG, and is between 0 and the time specified.  </p>
19842
19843<p> Specify a non-zero time value (an integral value plus an optional
19844one-letter suffix that specifies the time unit).  Time units: s
19845(seconds), m (minutes), h (hours), d (days), w (weeks).
19846The default time unit is s (seconds).  </p>
19847
19848<p> This feature is available in Postfix 2.2 and later.  </p>
19849
19850
19851</DD>
19852
19853<DT><b><a name="tls_random_source">tls_random_source</a>
19854(default: see "postconf -d" output)</b></DT><DD>
19855
19856<p> The external entropy source for the in-memory <a href="tlsmgr.8.html">tlsmgr(8)</a> pseudo
19857random number generator (PRNG) pool. Be sure to specify a non-blocking
19858source.  If this source is not a regular file, the entropy source
19859type must be prepended:  egd:/path/to/egd_socket for a source with
19860EGD compatible socket interface, or dev:/path/to/device for a
19861device file.  </p>
19862
19863<p> Note: on OpenBSD systems specify dev:/dev/arandom when dev:/dev/urandom
19864gives timeout errors.  </p>
19865
19866<p> This feature is available in Postfix 2.2 and later.  </p>
19867
19868
19869</DD>
19870
19871<DT><b><a name="tls_server_sni_maps">tls_server_sni_maps</a>
19872(default: empty)</b></DT><DD>
19873
19874<p> Optional lookup tables that map names received from remote SMTP
19875clients via the TLS Server Name Indication (SNI) extension to the
19876appropriate keys and certificate chains.  This parameter is implemented
19877in the Postfix TLS library, and applies to both <a href="smtpd.8.html">smtpd(8)</a> and the SMTP
19878server mode of <a href="tlsproxy.8.html">tlsproxy(8)</a>. </p>
19879
19880<p> When this parameter is non-empty, the Postfix SMTP server enables
19881SNI extension processing, and logs SNI values that are invalid or
19882don't match an entry in the specified tables.  When an entry
19883does match, the SNI name is logged as part of the connection summary
19884at log levels 1 and higher.  </p>
19885
19886<p> The lookup key is either the verbatim SNI domain name or an
19887ancestor domain prefixed with a leading dot.  For internationalized
19888domains, the lookup key must be in IDNA 2008 A-label form (as
19889required in the TLS SNI extension). </p>
19890
19891<p> The syntax of the lookup value is the same as with the
19892<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a> parameter (see there for additional details),
19893but here scoped to just TLS connections in which the client sends
19894a matching SNI domain name. </p>
19895
19896<p> Example: </p>
19897<blockquote>
19898<pre>
19899/etc/postfix/<a href="postconf.5.html">main.cf</a>:
19900    #
19901    # The indexed SNI table must be created with "postmap -F"
19902    #
19903    indexed = ${<a href="postconf.5.html#default_database_type">default_database_type</a>}:${<a href="postconf.5.html#config_directory">config_directory</a>}/
19904    <a href="postconf.5.html#tls_server_sni_maps">tls_server_sni_maps</a> = ${indexed}sni
19905</pre>
19906</blockquote>
19907
19908<blockquote>
19909<pre>
19910/etc/postfix/sni:
19911    #
19912    # The example.com domain has both an RSA and ECDSA certificate
19913    # chain.  The chain files MUST start with the private key,
19914    # with the certificate chain next, starting with the leaf
19915    # (server) certificate, and then the issuer certificates.
19916    #
19917    example.com /etc/postfix/sni-chains/rsa2048.example.com.pem,
19918                /etc/postfix/sni-chains/ecdsa-p256.example.com.pem
19919    #
19920    # The example.net domain has a wildcard certificate, and two
19921    # additional DNS names.  So its certificate chain is also used
19922    # with any subdomain, plus the additional names.
19923    #
19924    example.net /etc/postfix/sni-chains/example.net.pem
19925    .example.net /etc/postfix/sni-chains/example.net.pem
19926    example.info /etc/postfix/sni-chains/example.net.pem
19927    example.org /etc/postfix/sni-chains/example.net.pem
19928</pre>
19929</blockquote>
19930
19931<p> Note that the SNI lookup tables should also have entries for
19932the domains that correspond to the Postfix SMTP server's default
19933certificate(s). This ensures that the remote SMTP client's TLS SNI
19934extension gets a positive response when it specifies one of the
19935Postfix SMTP server's <a href="ADDRESS_CLASS_README.html#default_domain_class">default domains</a>, and ensures that the Postfix
19936SMTP server will not log an SNI name mismatch for such a domain.
19937The Postfix SMTP server's default certificates are then only used
19938when the client sends no SNI or when it sends SNI with a domain
19939that the server knows no certificate(s) for. </p>
19940
19941<p> The mapping from an SNI domain name to a certificate chain is indirect.  In
19942the input source files for "cdb", "hash", "btree" or other tables that are
19943converted to on-disk indexed files via <a href="postmap.1.html">postmap(1)</a>, the value specified for each
19944key is a list of filenames.  When <a href="postmap.1.html">postmap(1)</a> is used with the <b>-F</b> option,
19945the generated table stores for each lookup key the base64-encoded contents of
19946the associated files.  When querying tables via <b>postmap -Fq</b>, the table
19947value is decoded from base64, yielding the original file content, plus a new
19948line. </p>
19949
19950<p> With "regexp", "pcre", "inline", "texthash", "static" and similar
19951tables that are interpreted at run-time, and don't have a separate
19952source format, the table value is again a list files, that are loaded
19953into memory when the table is opened.  </p>
19954
19955<p> With tables whose content is managed outside of Postfix, such
19956as LDAP, MySQL, PostgreSQL, socketmap and tcp, the value must be a
19957concatenation of the desired PEM keys and certificate chains, that
19958is then further encoded to yield a single-line base64 string.
19959Creation of such tables and secure storage (the value includes
19960private key material) are outside the responsibility of Postfix.  </p>
19961
19962<p> With "socketmap" and "tcp" the data will be transmitted in the clear, and
19963there is no query access control, so these are generally unsuitable for storing
19964SNI chains.  With LDAP and SQL, you should restrict read access and use TLS to
19965protect the sensitive data in transit.  </p>
19966
19967<p> Typically there is only one private key and its chain of certificates
19968starting with the "leaf" certificate corresponding to that key, and
19969continuing with the appropriate intermediate issuer CA certificates,
19970with each certificate ideally followed by its issuer.  Servers
19971that have keys and certificates for more than one algorithm (e.g.
19972both an RSA key and an ECDSA key, or even RSA, ECDSA and Ed25519)
19973can use multiple chains concatenated together, with the key always
19974listed before the corresponding certificates. </p>
19975
19976<p> This feature is available in Postfix 3.4 and later.  </p>
19977
19978
19979</DD>
19980
19981<DT><b><a name="tls_session_ticket_cipher">tls_session_ticket_cipher</a>
19982(default: Postfix &ge; 3.0: aes-256-cbc, Postfix &lt; 3.0: aes-128-cbc)</b></DT><DD>
19983
19984<p> Algorithm used to encrypt <a href="https://tools.ietf.org/html/rfc5077">RFC5077</a> TLS session tickets.  This
19985algorithm must use CBC mode, have a 128-bit block size, and must
19986have a key length between 128 and 256 bits.  The default is
19987aes-256-cbc.  Overriding the default to choose a different algorithm
19988is discouraged.  </p>
19989
19990<p> Setting this parameter empty disables session ticket support
19991in the Postfix SMTP server.  Another way to disable session ticket
19992support is via the <a href="postconf.5.html#tls_ssl_options">tls_ssl_options</a> parameter.  </p>
19993
19994<p> This feature is available in Postfix 3.0 and later. </p>
19995
19996
19997</DD>
19998
19999<DT><b><a name="tls_ssl_options">tls_ssl_options</a>
20000(default: empty)</b></DT><DD>
20001
20002<p> List or bit-mask of OpenSSL options to enable. </p>
20003
20004<p> The OpenSSL toolkit provides a set of options that applications
20005can enable to tune the OpenSSL behavior.  Some of these work around
20006bugs in other implementations and are on by default.  You can use
20007the <a href="postconf.5.html#tls_disable_workarounds">tls_disable_workarounds</a> parameter to selectively disable some
20008or all of the bug work-arounds, making OpenSSL more strict at the
20009cost of non-interoperability with SSL clients or servers that exhibit
20010the bugs.  </p>
20011
20012<p> Other options are off by default, and typically enable or disable
20013features rather than bug work-arounds.  These may be turned on (with
20014care) via the <a href="postconf.5.html#tls_ssl_options">tls_ssl_options</a> parameter.  The value is a white-space
20015or comma separated list of named options chosen from the list below.
20016The names are not case-sensitive, you can use lower-case if you
20017prefer.  The upper case values below match the corresponding macro
20018name in the ssl.h header file with the SSL_OP_ prefix removed.  It
20019is possible that your OpenSSL version includes new options added
20020after your Postfix source code was last updated, in that case you
20021can only enable one of these via the hexadecimal syntax below.  </p>
20022
20023<p> You should only enable features via the hexadecimal mask when
20024the need to control the feature is critical (to deal with a new
20025vulnerability or a serious interoperability problem).  Postfix DOES
20026NOT promise backwards compatible behavior with respect to the mask
20027bits.  A feature enabled via the mask in one release may be enabled
20028by other means in a later release, and the mask bit will then be
20029ignored.  Therefore, use of the hexadecimal mask is only a temporary
20030measure until a new Postfix or OpenSSL release provides a better
20031solution.  </p>
20032
20033<p> If the value of the parameter is a hexadecimal long integer
20034starting with "0x", the options corresponding to the bits specified
20035in its value are enabled (see openssl/ssl.h and SSL_CTX_set_options(3)).
20036You can only enable options not already controlled by other Postfix
20037settings.  For example, you cannot disable protocols or enable
20038server cipher preference.  Do not attempt to enable all features by
20039specifying 0xFFFFFFFF, this is unlikely to be a good idea.  Some
20040bug work-arounds are also valid here, allowing them to be re-enabled
20041if/when they're no longer enabled by default.  The supported values
20042include: </p>
20043
20044<dl>
20045
20046<dt><b>ENABLE_MIDDLEBOX_COMPAT</b></dt> <dd>Postfix &ge; 3.4. See
20047SSL_CTX_set_options(3).</dd>
20048
20049<dt><b>LEGACY_SERVER_CONNECT</b></dt> <dd>See SSL_CTX_set_options(3).</dd>
20050
20051<dt><b>NO_TICKET</b></dt> <dd>Enabled by default when needed in
20052fully-patched Postfix &ge; 2.7.  Not needed at all for Postfix &ge;
200532.11, unless for some reason you do not want to support TLS session
20054resumption.  Best not set explicitly.  See SSL_CTX_set_options(3).</dd>
20055
20056<dt><b>NO_COMPRESSION</b></dt> <dd>Disable SSL compression even if
20057supported by the OpenSSL library.  Compression is CPU-intensive,
20058and compression before encryption does not always improve security.  </dd>
20059
20060<dt><b>NO_RENEGOTIATION</b></dt> <dd>Postfix &ge; 3.4.  This can
20061reduce opportunities for a potential CPU exhaustion attack.  See
20062SSL_CTX_set_options(3).</dd>
20063
20064<dt><b>NO_SESSION_RESUMPTION_ON_RENEGOTIATION</b></dt> <dd>Postfix
20065&ge; 3.4. See SSL_CTX_set_options(3).</dd>
20066
20067<dt><b>PRIORITIZE_CHACHA</b></dt> <dd>Postfix &ge; 3.4. See SSL_CTX_set_options(3).</dd>
20068
20069</dl>
20070
20071<p> This feature is available in Postfix 2.11 and later.  </p>
20072
20073
20074</DD>
20075
20076<DT><b><a name="tls_wildcard_matches_multiple_labels">tls_wildcard_matches_multiple_labels</a>
20077(default: yes)</b></DT><DD>
20078
20079<p> Match multiple DNS labels with "*" in wildcard certificates.
20080</p>
20081
20082<p> Some mail service providers prepend the customer domain name
20083to a base domain for which they have a wildcard TLS certificate.
20084For example, the MX records for example.com hosted by example.net
20085may be: </p>
20086
20087<blockquote>
20088<pre>
20089example.com. IN MX 0 example.com.mx1.example.net.
20090example.com. IN MX 0 example.com.mx2.example.net.
20091</pre>
20092</blockquote>
20093
20094<p> and the TLS certificate may be for "*.example.net". The "*"
20095then corresponds with multiple labels in the mail server domain
20096name.  While multi-label wildcards are not widely supported, and
20097are not blessed by any standard, there is little to be gained by
20098disallowing their use in this context.  </p>
20099
20100<p> Notes: <p>
20101
20102<ul>
20103
20104<li> <p> In a certificate name, the "*" is special only when it is
20105used as the first label. </p>
20106
20107<li> <p> While Postfix (2.11 or later) can match "*" with multiple
20108domain name labels, other implementations likely will not.  </p>
20109
20110<li> <p> Earlier Postfix implementations behave as if
20111"<a href="postconf.5.html#tls_wildcard_matches_multiple_labels">tls_wildcard_matches_multiple_labels</a> = no". </p>
20112
20113</ul>
20114
20115<p> This feature is available in Postfix 2.11 and later.  </p>
20116
20117
20118</DD>
20119
20120<DT><b><a name="tlsmgr_service_name">tlsmgr_service_name</a>
20121(default: tlsmgr)</b></DT><DD>
20122
20123<p> The name of the <a href="tlsmgr.8.html">tlsmgr(8)</a> service entry in <a href="master.5.html">master.cf</a>. This
20124service maintains TLS session caches and other information in support
20125of TLS. </p>
20126
20127<p> This feature is available in Postfix 2.11 and later. </p>
20128
20129
20130</DD>
20131
20132<DT><b><a name="tlsproxy_client_CAfile">tlsproxy_client_CAfile</a>
20133(default: $<a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a>)</b></DT><DD>
20134
20135<p> A file containing CA certificates of root CAs trusted to sign
20136either remote TLS server certificates or intermediate CA certificates.
20137See <a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> for further details. </p>
20138
20139<p> This feature is available in Postfix 3.4 and later. </p>
20140
20141
20142</DD>
20143
20144<DT><b><a name="tlsproxy_client_CApath">tlsproxy_client_CApath</a>
20145(default: $<a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a>)</b></DT><DD>
20146
20147<p> Directory with PEM format Certification Authority certificates
20148that the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client uses to verify a remote TLS
20149server certificate. See <a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> for further details. </p>
20150
20151<p> This feature is available in Postfix 3.4 and later. </p>
20152
20153
20154</DD>
20155
20156<DT><b><a name="tlsproxy_client_cert_file">tlsproxy_client_cert_file</a>
20157(default: $<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>)</b></DT><DD>
20158
20159<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client RSA certificate in PEM
20160format. See <a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> for further details.  The preferred way
20161to configure tlsproxy client keys and certificates is via the
20162"<a href="postconf.5.html#tlsproxy_client_chain_files">tlsproxy_client_chain_files</a>" parameter. </p>
20163
20164<p> This feature is available in Postfix 3.4 and later. </p>
20165
20166
20167</DD>
20168
20169<DT><b><a name="tlsproxy_client_chain_files">tlsproxy_client_chain_files</a>
20170(default: $<a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a>)</b></DT><DD>
20171
20172<p> Files with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client keys and certificate
20173chains in PEM format. See <a href="postconf.5.html#smtp_tls_chain_files">smtp_tls_chain_files</a> for further details. </p>
20174
20175<p> This feature is available in Postfix 3.4 and later. </p>
20176
20177
20178</DD>
20179
20180<DT><b><a name="tlsproxy_client_dcert_file">tlsproxy_client_dcert_file</a>
20181(default: $<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a>)</b></DT><DD>
20182
20183<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client DSA certificate in PEM
20184format. See <a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> for further details. DSA is obsolete and
20185should not be used. </p>
20186
20187<p> This feature is available in Postfix 3.4 and later. </p>
20188
20189
20190</DD>
20191
20192<DT><b><a name="tlsproxy_client_dkey_file">tlsproxy_client_dkey_file</a>
20193(default: $<a href="postconf.5.html#smtp_tls_dkey_file">smtp_tls_dkey_file</a>)</b></DT><DD>
20194
20195<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client DSA private key in PEM
20196format. See <a href="postconf.5.html#smtp_tls_dkey_file">smtp_tls_dkey_file</a> for further details. DSA is obsolete and
20197should not be used. </p>
20198
20199<p> This feature is available in Postfix 3.4 and later. </p>
20200
20201
20202</DD>
20203
20204<DT><b><a name="tlsproxy_client_eccert_file">tlsproxy_client_eccert_file</a>
20205(default: $<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b></DT><DD>
20206
20207<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client ECDSA certificate in PEM
20208format. See <a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> for further details. The preferred way
20209to configure tlsproxy client keys and certificates is via the
20210"<a href="postconf.5.html#tlsproxy_client_chain_files">tlsproxy_client_chain_files</a>" parameter. </p>
20211
20212<p> This feature is available in Postfix 3.4 and later. </p>
20213
20214
20215</DD>
20216
20217<DT><b><a name="tlsproxy_client_eckey_file">tlsproxy_client_eckey_file</a>
20218(default: $<a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a>)</b></DT><DD>
20219
20220<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client ECDSA private key in PEM
20221format. See <a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> for further details.  The preferred way
20222to configure tlsproxy client keys and certificates is via the
20223"<a href="postconf.5.html#tlsproxy_client_chain_files">tlsproxy_client_chain_files</a>" parameter. </p>
20224
20225<p> This feature is available in Postfix 3.4 and later. </p>
20226
20227
20228</DD>
20229
20230<DT><b><a name="tlsproxy_client_enforce_tls">tlsproxy_client_enforce_tls</a>
20231(default: $<a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a>)</b></DT><DD>
20232
20233<p> Enforcement mode: require that SMTP servers use TLS encryption.
20234See <a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> for further details. Use
20235<a href="postconf.5.html#tlsproxy_client_security_level">tlsproxy_client_security_level</a> instead. </p>
20236
20237<p> This feature is available in Postfix 3.4 and later. </p>
20238
20239
20240</DD>
20241
20242<DT><b><a name="tlsproxy_client_fingerprint_digest">tlsproxy_client_fingerprint_digest</a>
20243(default: $<a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a>)</b></DT><DD>
20244
20245<p> The message digest algorithm used to construct remote TLS server
20246certificate fingerprints. See <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> for
20247further details. </p>
20248
20249<p> This feature is available in Postfix 3.4 and later. </p>
20250
20251
20252</DD>
20253
20254<DT><b><a name="tlsproxy_client_key_file">tlsproxy_client_key_file</a>
20255(default: $<a href="postconf.5.html#smtp_tls_key_file">smtp_tls_key_file</a>)</b></DT><DD>
20256
20257<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client RSA private key in PEM
20258format. See <a href="postconf.5.html#smtp_tls_key_file">smtp_tls_key_file</a> for further details. The preferred way to
20259configure tlsproxy client keys and certificates is via the
20260"<a href="postconf.5.html#tlsproxy_client_chain_files">tlsproxy_client_chain_files</a>" parameter. </p>
20261
20262<p> This feature is available in Postfix 3.4 and later. </p>
20263
20264
20265</DD>
20266
20267<DT><b><a name="tlsproxy_client_level">tlsproxy_client_level</a>
20268(default: $<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a>)</b></DT><DD>
20269
20270<p> The default TLS security level for the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a>
20271client. See <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> for further details. </p>
20272
20273<p> This feature is available in Postfix 3.4 - 3.6. It was
20274renamed to <a href="postconf.5.html#tlsproxy_client_security_level">tlsproxy_client_security_level</a> in Postfix 3.7. </p>
20275
20276
20277</DD>
20278
20279<DT><b><a name="tlsproxy_client_loglevel">tlsproxy_client_loglevel</a>
20280(default: $<a href="postconf.5.html#smtp_tls_loglevel">smtp_tls_loglevel</a>)</b></DT><DD>
20281
20282<p> Enable additional Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client logging of TLS
20283activity. See <a href="postconf.5.html#smtp_tls_loglevel">smtp_tls_loglevel</a> for further details. </p>
20284
20285<p> This feature is available in Postfix 3.4 and later. </p>
20286
20287
20288</DD>
20289
20290<DT><b><a name="tlsproxy_client_loglevel_parameter">tlsproxy_client_loglevel_parameter</a>
20291(default: <a href="postconf.5.html#smtp_tls_loglevel">smtp_tls_loglevel</a>)</b></DT><DD>
20292
20293<p> The name of the parameter that provides the <a href="postconf.5.html#tlsproxy_client_loglevel">tlsproxy_client_loglevel</a>
20294value. </p>
20295
20296<p> This feature is available in Postfix 3.4 and later. </p>
20297
20298
20299</DD>
20300
20301<DT><b><a name="tlsproxy_client_per_site">tlsproxy_client_per_site</a>
20302(default: $<a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a>)</b></DT><DD>
20303
20304<p> Optional lookup tables with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client TLS
20305usage policy by next-hop destination and by remote TLS server
20306hostname.  See <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> for further details. </p>
20307
20308<p> This feature is available in Postfix 3.4 and later. </p>
20309
20310
20311</DD>
20312
20313<DT><b><a name="tlsproxy_client_policy">tlsproxy_client_policy</a>
20314(default: $<a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>)</b></DT><DD>
20315
20316<p> Optional lookup tables with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client TLS
20317security policy by next-hop destination. See <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>
20318for further details. </p>
20319
20320<p> This feature is available in Postfix 3.4 - 3.6. It was
20321renamed to <a href="postconf.5.html#tlsproxy_client_policy_maps">tlsproxy_client_policy_maps</a> in Postfix 3.7. </p>
20322
20323
20324</DD>
20325
20326<DT><b><a name="tlsproxy_client_policy_maps">tlsproxy_client_policy_maps</a>
20327(default: $<a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>)</b></DT><DD>
20328
20329<p> Optional lookup tables with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> client TLS
20330security policy by next-hop destination. See <a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a>
20331for further details. </p>
20332
20333<p> This feature is available in Postfix 3.7 and later. It
20334was previously called <a href="postconf.5.html#tlsproxy_client_policy">tlsproxy_client_policy</a>. </p>
20335
20336
20337</DD>
20338
20339<DT><b><a name="tlsproxy_client_scert_verifydepth">tlsproxy_client_scert_verifydepth</a>
20340(default: $<a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a>)</b></DT><DD>
20341
20342<p> The verification depth for remote TLS server certificates.
20343See <a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a> for further details. </p>
20344
20345<p> This feature is available in Postfix 3.4 and later. </p>
20346
20347
20348</DD>
20349
20350<DT><b><a name="tlsproxy_client_security_level">tlsproxy_client_security_level</a>
20351(default: $<a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a>)</b></DT><DD>
20352
20353<p> The default TLS security level for the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a>
20354client. See <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> for further details. </p>
20355
20356<p> This feature is available in Postfix 3.7 and later. It
20357was previously called <a href="postconf.5.html#tlsproxy_client_level">tlsproxy_client_level</a>. </p>
20358
20359
20360</DD>
20361
20362<DT><b><a name="tlsproxy_client_use_tls">tlsproxy_client_use_tls</a>
20363(default: $<a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a>)</b></DT><DD>
20364
20365<p> Opportunistic mode: use TLS when a remote server announces TLS
20366support. See <a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a> for further details. Use
20367<a href="postconf.5.html#tlsproxy_client_security_level">tlsproxy_client_security_level</a> instead. </p>
20368
20369<p> This feature is available in Postfix 3.4 and later. </p>
20370
20371
20372</DD>
20373
20374<DT><b><a name="tlsproxy_enforce_tls">tlsproxy_enforce_tls</a>
20375(default: $<a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a>)</b></DT><DD>
20376
20377<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
20378require that clients use TLS encryption. See <a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a> for
20379further details. Use <a href="postconf.5.html#tlsproxy_tls_security_level">tlsproxy_tls_security_level</a> instead. </p>
20380
20381<p> This feature is available in Postfix 2.8 and later. </p>
20382
20383
20384</DD>
20385
20386<DT><b><a name="tlsproxy_service_name">tlsproxy_service_name</a>
20387(default: tlsproxy)</b></DT><DD>
20388
20389<p> The name of the <a href="tlsproxy.8.html">tlsproxy(8)</a> service entry in <a href="master.5.html">master.cf</a>. This
20390service performs plaintext &lt;=&gt; TLS ciphertext conversion. <p>
20391
20392<p> This feature is available in Postfix 2.8 and later. </p>
20393
20394
20395</DD>
20396
20397<DT><b><a name="tlsproxy_tls_CAfile">tlsproxy_tls_CAfile</a>
20398(default: $<a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a>)</b></DT><DD>
20399
20400<p> A file containing (PEM format) CA certificates of root CAs
20401trusted to sign either remote SMTP client certificates or intermediate
20402CA certificates.  See <a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> for further details. </p>
20403
20404<p> This feature is available in Postfix 2.8 and later. </p>
20405
20406
20407</DD>
20408
20409<DT><b><a name="tlsproxy_tls_CApath">tlsproxy_tls_CApath</a>
20410(default: $<a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a>)</b></DT><DD>
20411
20412<p> A directory containing (PEM format) CA certificates of root CAs
20413trusted to sign either remote SMTP client certificates or intermediate
20414CA certificates. See <a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> for further details. </p>
20415
20416<p> This feature is available in Postfix 2.8 and later. </p>
20417
20418
20419</DD>
20420
20421<DT><b><a name="tlsproxy_tls_always_issue_session_ids">tlsproxy_tls_always_issue_session_ids</a>
20422(default: $<a href="postconf.5.html#smtpd_tls_always_issue_session_ids">smtpd_tls_always_issue_session_ids</a>)</b></DT><DD>
20423
20424<p> Force the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server to issue a TLS session id,
20425even when TLS session caching is turned off. See
20426<a href="postconf.5.html#smtpd_tls_always_issue_session_ids">smtpd_tls_always_issue_session_ids</a> for further details. </p>
20427
20428<p> This feature is available in Postfix 2.8 and later. </p>
20429
20430
20431</DD>
20432
20433<DT><b><a name="tlsproxy_tls_ask_ccert">tlsproxy_tls_ask_ccert</a>
20434(default: $<a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a>)</b></DT><DD>
20435
20436<p> Ask a remote SMTP client for a client certificate. See
20437<a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a> for further details. </p>
20438
20439<p> This feature is available in Postfix 2.8 and later. </p>
20440
20441
20442</DD>
20443
20444<DT><b><a name="tlsproxy_tls_ccert_verifydepth">tlsproxy_tls_ccert_verifydepth</a>
20445(default: $<a href="postconf.5.html#smtpd_tls_ccert_verifydepth">smtpd_tls_ccert_verifydepth</a>)</b></DT><DD>
20446
20447<p> The verification depth for remote SMTP client certificates. A
20448depth of 1 is sufficient if the issuing CA is listed in a local CA
20449file. See <a href="postconf.5.html#smtpd_tls_ccert_verifydepth">smtpd_tls_ccert_verifydepth</a> for further details. </p>
20450
20451<p> This feature is available in Postfix 2.8 and later. </p>
20452
20453
20454</DD>
20455
20456<DT><b><a name="tlsproxy_tls_cert_file">tlsproxy_tls_cert_file</a>
20457(default: $<a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a>)</b></DT><DD>
20458
20459<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server RSA certificate in PEM
20460format.  This file may also contain the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20461private RSA key.  See <a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a> for further details.  With
20462Postfix &ge; 3.4 the preferred way to configure tlsproxy server keys and
20463certificates is via the "<a href="postconf.5.html#tlsproxy_tls_chain_files">tlsproxy_tls_chain_files</a>" parameter. </p>
20464
20465<p> This feature is available in Postfix 2.8 and later. </p>
20466
20467
20468</DD>
20469
20470<DT><b><a name="tlsproxy_tls_chain_files">tlsproxy_tls_chain_files</a>
20471(default: $<a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a>)</b></DT><DD>
20472
20473<p> Files with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server keys and certificate
20474chains in PEM format. See <a href="postconf.5.html#smtpd_tls_chain_files">smtpd_tls_chain_files</a> for further details. </p>
20475
20476<p> This feature is available in Postfix 3.4 and later. </p>
20477
20478
20479</DD>
20480
20481<DT><b><a name="tlsproxy_tls_ciphers">tlsproxy_tls_ciphers</a>
20482(default: $<a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a>)</b></DT><DD>
20483
20484<p> The minimum TLS cipher grade that the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20485will use with opportunistic TLS encryption. See <a href="postconf.5.html#smtpd_tls_ciphers">smtpd_tls_ciphers</a>
20486for further details. </p>
20487
20488<p> This feature is available in Postfix 2.8 and later. </p>
20489
20490
20491</DD>
20492
20493<DT><b><a name="tlsproxy_tls_dcert_file">tlsproxy_tls_dcert_file</a>
20494(default: $<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a>)</b></DT><DD>
20495
20496<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server DSA certificate in PEM
20497format.  This file may also contain the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20498private DSA key.  DSA is obsolete and should not be used.  See
20499<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a> for further details.  </p>
20500
20501<p> This feature is available in Postfix 2.8 and later. </p>
20502
20503
20504</DD>
20505
20506<DT><b><a name="tlsproxy_tls_dh1024_param_file">tlsproxy_tls_dh1024_param_file</a>
20507(default: $<a href="postconf.5.html#smtpd_tls_dh1024_param_file">smtpd_tls_dh1024_param_file</a>)</b></DT><DD>
20508
20509<p> File with DH parameters that the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20510should use with non-export EDH ciphers. See <a href="postconf.5.html#smtpd_tls_dh1024_param_file">smtpd_tls_dh1024_param_file</a>
20511for further details. </p>
20512
20513<p> This feature is available in Postfix 2.8 and later. </p>
20514
20515
20516</DD>
20517
20518<DT><b><a name="tlsproxy_tls_dh512_param_file">tlsproxy_tls_dh512_param_file</a>
20519(default: $<a href="postconf.5.html#smtpd_tls_dh512_param_file">smtpd_tls_dh512_param_file</a>)</b></DT><DD>
20520
20521<p> File with DH parameters that the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20522should use with export-grade EDH ciphers. See <a href="postconf.5.html#smtpd_tls_dh512_param_file">smtpd_tls_dh512_param_file</a>
20523for further details.  The default SMTP server cipher grade is
20524"medium" with Postfix releases after the middle of 2015, and as a
20525result export-grade cipher suites are by default not used.  </p>
20526
20527<p> With Postfix &ge; 3.6 export-grade Diffie-Hellman key exchange
20528is no longer supported, and this parameter is silently ignored. </p>
20529
20530<p> This feature is available in Postfix 2.8 and later. </p>
20531
20532
20533</DD>
20534
20535<DT><b><a name="tlsproxy_tls_dkey_file">tlsproxy_tls_dkey_file</a>
20536(default: $<a href="postconf.5.html#smtpd_tls_dkey_file">smtpd_tls_dkey_file</a>)</b></DT><DD>
20537
20538<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server DSA private key in PEM
20539format.  This file may be combined with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20540DSA certificate file specified with $<a href="postconf.5.html#smtpd_tls_dcert_file">smtpd_tls_dcert_file</a>.  DSA is
20541obsolete and should not be used.  See <a href="postconf.5.html#smtpd_tls_dkey_file">smtpd_tls_dkey_file</a> for further
20542details. </p>
20543
20544<p> This feature is available in Postfix 2.8 and later. </p>
20545
20546
20547</DD>
20548
20549<DT><b><a name="tlsproxy_tls_eccert_file">tlsproxy_tls_eccert_file</a>
20550(default: $<a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>)</b></DT><DD>
20551
20552<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server ECDSA certificate in PEM
20553format.  This file may also contain the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20554private ECDSA key.  See <a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a> for further details.  With
20555Postfix &ge; 3.4 the preferred way to configure tlsproxy server keys and
20556certificates is via the "<a href="postconf.5.html#tlsproxy_tls_chain_files">tlsproxy_tls_chain_files</a>" parameter. </p>
20557
20558<p> This feature is available in Postfix 2.8 and later. </p>
20559
20560
20561</DD>
20562
20563<DT><b><a name="tlsproxy_tls_eckey_file">tlsproxy_tls_eckey_file</a>
20564(default: $<a href="postconf.5.html#smtpd_tls_eckey_file">smtpd_tls_eckey_file</a>)</b></DT><DD>
20565
20566<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server ECDSA private key in PEM
20567format.  This file may be combined with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20568ECDSA certificate file specified with $<a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>.  See
20569<a href="postconf.5.html#smtpd_tls_eckey_file">smtpd_tls_eckey_file</a> for further details.  With Postfix &ge; 3.4 the
20570preferred way to configure tlsproxy server keys and certificates is via
20571the "<a href="postconf.5.html#tlsproxy_tls_chain_files">tlsproxy_tls_chain_files</a>" parameter. </p>
20572
20573<p> This feature is available in Postfix 2.8 and later. </p>
20574
20575
20576</DD>
20577
20578<DT><b><a name="tlsproxy_tls_eecdh_grade">tlsproxy_tls_eecdh_grade</a>
20579(default: $<a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a>)</b></DT><DD>
20580
20581<p> The Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server security grade for ephemeral
20582elliptic-curve Diffie-Hellman (EECDH) key exchange. See
20583<a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a> for further details. </p>
20584
20585<p> This feature is available in Postfix 2.8 and later. </p>
20586
20587
20588</DD>
20589
20590<DT><b><a name="tlsproxy_tls_exclude_ciphers">tlsproxy_tls_exclude_ciphers</a>
20591(default: $<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a>)</b></DT><DD>
20592
20593<p> List of ciphers or cipher types to exclude from the <a href="tlsproxy.8.html">tlsproxy(8)</a>
20594server cipher list at all TLS security levels. See
20595<a href="postconf.5.html#smtpd_tls_exclude_ciphers">smtpd_tls_exclude_ciphers</a> for further details. </p>
20596
20597<p> This feature is available in Postfix 2.8 and later. </p>
20598
20599
20600</DD>
20601
20602<DT><b><a name="tlsproxy_tls_fingerprint_digest">tlsproxy_tls_fingerprint_digest</a>
20603(default: $<a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a>)</b></DT><DD>
20604
20605<p> The message digest algorithm to construct remote SMTP
20606client-certificate
20607fingerprints. See <a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> for further details.
20608</p>
20609
20610<p> This feature is available in Postfix 2.8 and later. </p>
20611
20612
20613</DD>
20614
20615<DT><b><a name="tlsproxy_tls_key_file">tlsproxy_tls_key_file</a>
20616(default: $<a href="postconf.5.html#smtpd_tls_key_file">smtpd_tls_key_file</a>)</b></DT><DD>
20617
20618<p> File with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server RSA private key in PEM
20619format.  This file may be combined with the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20620RSA certificate file specified with $<a href="postconf.5.html#smtpd_tls_cert_file">smtpd_tls_cert_file</a>.  See
20621<a href="postconf.5.html#smtpd_tls_key_file">smtpd_tls_key_file</a> for further details.  With Postfix &ge; 3.4 the
20622preferred way to configure tlsproxy server keys and certificates is via
20623the "<a href="postconf.5.html#tlsproxy_tls_chain_files">tlsproxy_tls_chain_files</a>" parameter. </p>
20624
20625<p> This feature is available in Postfix 2.8 and later. </p>
20626
20627
20628</DD>
20629
20630<DT><b><a name="tlsproxy_tls_loglevel">tlsproxy_tls_loglevel</a>
20631(default: $<a href="postconf.5.html#smtpd_tls_loglevel">smtpd_tls_loglevel</a>)</b></DT><DD>
20632
20633<p> Enable additional Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server logging of TLS
20634activity.  Each logging level also includes the information that
20635is logged at a lower logging level. See <a href="postconf.5.html#smtpd_tls_loglevel">smtpd_tls_loglevel</a> for
20636further details.  </p>
20637
20638<p> This feature is available in Postfix 2.8 and later. </p>
20639
20640
20641</DD>
20642
20643<DT><b><a name="tlsproxy_tls_mandatory_ciphers">tlsproxy_tls_mandatory_ciphers</a>
20644(default: $<a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>)</b></DT><DD>
20645
20646<p> The minimum TLS cipher grade that the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20647will use with mandatory TLS encryption. See <a href="postconf.5.html#smtpd_tls_mandatory_ciphers">smtpd_tls_mandatory_ciphers</a>
20648for further details. </p>
20649
20650<p> This feature is available in Postfix 2.8 and later. </p>
20651
20652
20653</DD>
20654
20655<DT><b><a name="tlsproxy_tls_mandatory_exclude_ciphers">tlsproxy_tls_mandatory_exclude_ciphers</a>
20656(default: $<a href="postconf.5.html#smtpd_tls_mandatory_exclude_ciphers">smtpd_tls_mandatory_exclude_ciphers</a>)</b></DT><DD>
20657
20658<p> Additional list of ciphers or cipher types to exclude from the
20659<a href="tlsproxy.8.html">tlsproxy(8)</a> server cipher list at mandatory TLS security levels.
20660See <a href="postconf.5.html#smtpd_tls_mandatory_exclude_ciphers">smtpd_tls_mandatory_exclude_ciphers</a> for further details. </p>
20661
20662<p> This feature is available in Postfix 2.8 and later. </p>
20663
20664
20665</DD>
20666
20667<DT><b><a name="tlsproxy_tls_mandatory_protocols">tlsproxy_tls_mandatory_protocols</a>
20668(default: $<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a>)</b></DT><DD>
20669
20670<p> The SSL/TLS protocols accepted by the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server
20671with mandatory TLS encryption. If the list is empty, the server
20672supports all available SSL/TLS protocol versions.  See
20673<a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> for further details. </p>
20674
20675<p> This feature is available in Postfix 2.8 and later. </p>
20676
20677
20678</DD>
20679
20680<DT><b><a name="tlsproxy_tls_protocols">tlsproxy_tls_protocols</a>
20681(default: $<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a>)</b></DT><DD>
20682
20683<p> List of TLS protocols that the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server will
20684exclude or include with opportunistic TLS encryption. See
20685<a href="postconf.5.html#smtpd_tls_protocols">smtpd_tls_protocols</a> for further details. </p>
20686
20687<p> This feature is available in Postfix 2.8 and later. </p>
20688
20689
20690</DD>
20691
20692<DT><b><a name="tlsproxy_tls_req_ccert">tlsproxy_tls_req_ccert</a>
20693(default: $<a href="postconf.5.html#smtpd_tls_req_ccert">smtpd_tls_req_ccert</a>)</b></DT><DD>
20694
20695<p> With mandatory TLS encryption, require a trusted remote SMTP
20696client certificate in order to allow TLS connections to proceed.
20697See <a href="postconf.5.html#smtpd_tls_req_ccert">smtpd_tls_req_ccert</a> for further details. </p>
20698
20699<p> This feature is available in Postfix 2.8 and later. </p>
20700
20701
20702</DD>
20703
20704<DT><b><a name="tlsproxy_tls_security_level">tlsproxy_tls_security_level</a>
20705(default: $<a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a>)</b></DT><DD>
20706
20707<p> The SMTP TLS security level for the Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server;
20708when a non-empty value is specified, this overrides the obsolete
20709parameters <a href="postconf.5.html#smtpd_use_tls">smtpd_use_tls</a> and <a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a>. See
20710<a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a> for further details. </p>
20711
20712<p> This feature is available in Postfix 2.8 and later. </p>
20713
20714
20715</DD>
20716
20717<DT><b><a name="tlsproxy_tls_session_cache_timeout">tlsproxy_tls_session_cache_timeout</a>
20718(default: $<a href="postconf.5.html#smtpd_tls_session_cache_timeout">smtpd_tls_session_cache_timeout</a>)</b></DT><DD>
20719
20720<p> Obsolete expiration time of Postfix <a href="tlsproxy.8.html">tlsproxy(8)</a> server TLS session
20721cache information. Since the cache is shared with <a href="smtpd.8.html">smtpd(8)</a> and managed
20722by <a href="tlsmgr.8.html">tlsmgr(8)</a>, there is only one expiration time for the SMTP server cache
20723shared by all three services, namely <a href="postconf.5.html#smtpd_tls_session_cache_timeout">smtpd_tls_session_cache_timeout</a>. </p>
20724
20725<p> This feature is available in Postfix 2.8 and later. </p>
20726
20727
20728</DD>
20729
20730<DT><b><a name="tlsproxy_use_tls">tlsproxy_use_tls</a>
20731(default: $<a href="postconf.5.html#smtpd_use_tls">smtpd_use_tls</a>)</b></DT><DD>
20732
20733<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
20734but do not require that clients use TLS encryption. See <a href="postconf.5.html#smtpd_use_tls">smtpd_use_tls</a>
20735for further details. Use <a href="postconf.5.html#tlsproxy_tls_security_level">tlsproxy_tls_security_level</a> instead. </p>
20736
20737<p> This feature is available in Postfix 2.8 and later. </p>
20738
20739
20740</DD>
20741
20742<DT><b><a name="tlsproxy_watchdog_timeout">tlsproxy_watchdog_timeout</a>
20743(default: 10s)</b></DT><DD>
20744
20745<p> How much time a <a href="tlsproxy.8.html">tlsproxy(8)</a> process may take to process local
20746or remote I/O before it is terminated by a built-in watchdog timer.
20747This is a safety mechanism that prevents <a href="tlsproxy.8.html">tlsproxy(8)</a> from becoming
20748non-responsive due to a bug in Postfix itself or in system software.
20749To avoid false alarms and unnecessary cache corruption this limit
20750cannot be set under 10s.  </p>
20751
20752<p> Specify a non-zero time value (an integral value plus an optional
20753one-letter suffix that specifies the time unit).  Time units: s
20754(seconds), m (minutes), h (hours), d (days), w (weeks).
20755The default time unit is s (seconds).  </p>
20756
20757<p> This feature is available in Postfix 2.8 and later  </p>
20758
20759
20760</DD>
20761
20762<DT><b><a name="trace_service_name">trace_service_name</a>
20763(default: trace)</b></DT><DD>
20764
20765<p>
20766The name of the trace service. This service is implemented by the
20767<a href="bounce.8.html">bounce(8)</a> daemon and maintains a record
20768of mail deliveries and produces a mail delivery report when verbose
20769delivery is requested with "<b>sendmail -v</b>".
20770</p>
20771
20772<p>
20773This feature is available in Postfix 2.1 and later.
20774</p>
20775
20776
20777</DD>
20778
20779<DT><b><a name="transport_delivery_slot_cost">transport_delivery_slot_cost</a>
20780(default: $<a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a>)</b></DT><DD>
20781
20782<p> A transport-specific override for the <a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a>
20783parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
20784the message delivery transport. </p>
20785
20786<p> Note: <a href="postconf.5.html#transport_delivery_slot_cost"><i>transport</i>_delivery_slot_cost</a> parameters will not
20787show up in "postconf" command output before Postfix version 2.9.
20788This limitation applies to many parameters whose name is a combination
20789of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in this case:
20790"_delivery_slot_cost"). </p>
20791
20792
20793</DD>
20794
20795<DT><b><a name="transport_delivery_slot_discount">transport_delivery_slot_discount</a>
20796(default: $<a href="postconf.5.html#default_delivery_slot_discount">default_delivery_slot_discount</a>)</b></DT><DD>
20797
20798<p> A transport-specific override for the <a href="postconf.5.html#default_delivery_slot_discount">default_delivery_slot_discount</a>
20799parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
20800the message delivery transport. </p>
20801
20802<p> Note: <a href="postconf.5.html#transport_delivery_slot_discount"><i>transport</i>_delivery_slot_discount</a> parameters will
20803not show up in "postconf" command output before Postfix version
208042.9.  This limitation applies to many parameters whose name is a
20805combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
20806this case: "_delivery_slot_discount"). </p>
20807
20808
20809</DD>
20810
20811<DT><b><a name="transport_delivery_slot_loan">transport_delivery_slot_loan</a>
20812(default: $<a href="postconf.5.html#default_delivery_slot_loan">default_delivery_slot_loan</a>)</b></DT><DD>
20813
20814<p> A transport-specific override for the <a href="postconf.5.html#default_delivery_slot_loan">default_delivery_slot_loan</a>
20815parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
20816the message delivery transport. </p>
20817
20818<p> Note: <a href="postconf.5.html#transport_delivery_slot_loan"><i>transport</i>_delivery_slot_loan</a> parameters will not
20819show up in "postconf" command output before Postfix version 2.9.
20820This limitation applies to many parameters whose name is a combination
20821of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in this case:
20822"_delivery_slot_loan"). </p>
20823
20824
20825</DD>
20826
20827<DT><b><a name="transport_destination_concurrency_failed_cohort_limit">transport_destination_concurrency_failed_cohort_limit</a>
20828(default: $<a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>)</b></DT><DD>
20829
20830<p> A transport-specific override for the
20831<a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a> parameter value,
20832where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message delivery
20833transport. </p>
20834
20835<p> Note: some <a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a>
20836parameters will not show up in "postconf" command output before
20837Postfix version 2.9.  This limitation applies to many parameters
20838whose name is a combination of a <a href="master.5.html">master.cf</a> service name and a
20839built-in suffix (in this case:
20840"_destination_concurrency_failed_cohort_limit"). </p>
20841
20842<p> This feature is available in Postfix 2.5 and later. </p>
20843
20844
20845</DD>
20846
20847<DT><b><a name="transport_destination_concurrency_limit">transport_destination_concurrency_limit</a>
20848(default: $<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concurrency_limit</a>)</b></DT><DD>
20849
20850<p> A transport-specific override for the
20851<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concurrency_limit</a> parameter value, where
20852<i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message delivery
20853transport. </p>
20854
20855<p> Note: some <a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a>
20856parameters will not show up in "postconf" command output before
20857Postfix version 2.9.  This limitation applies to many parameters
20858whose name is a combination of a <a href="master.5.html">master.cf</a> service name and a
20859built-in suffix (in this case: "_destination_concurrency_limit").
20860</p>
20861
20862
20863</DD>
20864
20865<DT><b><a name="transport_destination_concurrency_negative_feedback">transport_destination_concurrency_negative_feedback</a>
20866(default: $<a href="postconf.5.html#default_destination_concurrency_negative_feedback">default_destination_concurrency_negative_feedback</a>)</b></DT><DD>
20867
20868<p> A transport-specific override for the
20869<a href="postconf.5.html#default_destination_concurrency_negative_feedback">default_destination_concurrency_negative_feedback</a> parameter value,
20870where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message delivery
20871transport. </p>
20872
20873<p> Note: some <a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a>
20874parameters will not show up in "postconf" command output before
20875Postfix version 2.9.  This limitation applies to many parameters
20876whose name is a combination of a <a href="master.5.html">master.cf</a> service name and a
20877built-in suffix (in this case:
20878"_destination_concurrency_negative_feedback"). </p>
20879
20880<p> This feature is available in Postfix 2.5 and later. </p>
20881
20882
20883</DD>
20884
20885<DT><b><a name="transport_destination_concurrency_positive_feedback">transport_destination_concurrency_positive_feedback</a>
20886(default: $<a href="postconf.5.html#default_destination_concurrency_positive_feedback">default_destination_concurrency_positive_feedback</a>)</b></DT><DD>
20887
20888<p> A transport-specific override for the
20889<a href="postconf.5.html#default_destination_concurrency_positive_feedback">default_destination_concurrency_positive_feedback</a> parameter value,
20890where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message delivery
20891transport. </p>
20892
20893<p> Note: some <a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a>
20894parameters will not show up in "postconf" command output before
20895Postfix version 2.9.  This limitation applies to many parameters
20896whose name is a combination of a <a href="master.5.html">master.cf</a> service name and a
20897built-in suffix (in this case:
20898"_destination_concurrency_positive_feedback"). </p>
20899
20900<p> This feature is available in Postfix 2.5 and later. </p>
20901
20902
20903</DD>
20904
20905<DT><b><a name="transport_destination_rate_delay">transport_destination_rate_delay</a>
20906(default: $<a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a>)</b></DT><DD>
20907
20908<p> A transport-specific override for the <a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a>
20909parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
20910the message delivery transport. </p>
20911
20912<p> Note: some <a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> parameters
20913will not show up in "postconf" command output before Postfix version
209142.9.  This limitation applies to many parameters whose name is a
20915combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
20916this case: "_destination_rate_delay"). </p>
20917
20918<p> This feature is available in Postfix 2.5 and later. </p>
20919
20920
20921</DD>
20922
20923<DT><b><a name="transport_destination_recipient_limit">transport_destination_recipient_limit</a>
20924(default: $<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b></DT><DD>
20925
20926<p> A transport-specific override for the
20927<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a> parameter value, where
20928<i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message delivery
20929transport. </p>
20930
20931<p> Note: some <a href="postconf.5.html#transport_destination_recipient_limit"><i>transport</i>_destination_recipient_limit</a> parameters
20932will not show up in "postconf" command output before Postfix version
209332.9.  This limitation applies to many parameters whose name is a
20934combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
20935this case: "_destination_recipient_limit"). </p>
20936
20937
20938</DD>
20939
20940<DT><b><a name="transport_extra_recipient_limit">transport_extra_recipient_limit</a>
20941(default: $<a href="postconf.5.html#default_extra_recipient_limit">default_extra_recipient_limit</a>)</b></DT><DD>
20942
20943<p> A transport-specific override for the <a href="postconf.5.html#default_extra_recipient_limit">default_extra_recipient_limit</a>
20944parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
20945the message delivery transport. </p>
20946
20947<p> Note: <a href="postconf.5.html#transport_extra_recipient_limit"><i>transport</i>_extra_recipient_limit</a> parameters will
20948not show up in "postconf" command output before Postfix version
209492.9.  This limitation applies to many parameters whose name is a
20950combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
20951this case: "_extra_recipient_limit").  </p>
20952
20953
20954</DD>
20955
20956<DT><b><a name="transport_initial_destination_concurrency">transport_initial_destination_concurrency</a>
20957(default: $<a href="postconf.5.html#initial_destination_concurrency">initial_destination_concurrency</a>)</b></DT><DD>
20958
20959<p> A transport-specific override for the <a href="postconf.5.html#initial_destination_concurrency">initial_destination_concurrency</a>
20960parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
20961the message delivery transport. </p>
20962
20963<p> Note: some <a href="postconf.5.html#transport_initial_destination_concurrency"><i>transport</i>_initial_destination_concurrency</a>
20964parameters will not show up in "postconf" command output before
20965Postfix version 2.9.  This limitation applies to many parameters
20966whose name is a combination of a <a href="master.5.html">master.cf</a> service name and a
20967built-in suffix (in this case: "_initial_destination_concurrency").
20968</p>
20969
20970<p> This feature is available in Postfix 2.5 and later. </p>
20971
20972
20973</DD>
20974
20975<DT><b><a name="transport_maps">transport_maps</a>
20976(default: empty)</b></DT><DD>
20977
20978<p>
20979Optional lookup tables with mappings from recipient address to
20980(message delivery transport, next-hop destination).  See <a href="transport.5.html">transport(5)</a>
20981for details.
20982</p>
20983
20984<p>
20985Specify zero or more "<a href="DATABASE_README.html">type:table</a>" lookup tables, separated by
20986whitespace or comma. Tables will be searched in the specified order
20987until a match is found.  If you use this
20988feature with local files, run "<b>postmap /etc/postfix/transport</b>"
20989after making a change.  </p>
20990
20991<p> Pattern matching of domain names is controlled by the presence
20992or absence of "<a href="postconf.5.html#transport_maps">transport_maps</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
20993parameter value.  </p>
20994
20995<p> For safety reasons, as of Postfix 2.3 this feature does not
20996allow $number substitutions in regular expression maps. </p>
20997
20998<p>
20999Examples:
21000</p>
21001
21002<pre>
21003<a href="postconf.5.html#transport_maps">transport_maps</a> = <a href="DATABASE_README.html#types">dbm</a>:/etc/postfix/transport
21004<a href="postconf.5.html#transport_maps">transport_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/transport
21005</pre>
21006
21007
21008</DD>
21009
21010<DT><b><a name="transport_minimum_delivery_slots">transport_minimum_delivery_slots</a>
21011(default: $<a href="postconf.5.html#default_minimum_delivery_slots">default_minimum_delivery_slots</a>)</b></DT><DD>
21012
21013<p> A transport-specific override for the <a href="postconf.5.html#default_minimum_delivery_slots">default_minimum_delivery_slots</a>
21014parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
21015the message delivery transport. </p>
21016
21017<p> Note: <a href="postconf.5.html#transport_minimum_delivery_slots"><i>transport</i>_minimum_delivery_slots</a> parameters will
21018not show up in "postconf" command output before Postfix version
210192.9.  This limitation applies to many parameters whose name is a
21020combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
21021this case: "_minimum_delivery_slots"). </p>
21022
21023
21024</DD>
21025
21026<DT><b><a name="transport_recipient_limit">transport_recipient_limit</a>
21027(default: $<a href="postconf.5.html#default_recipient_limit">default_recipient_limit</a>)</b></DT><DD>
21028
21029<p> A transport-specific override for the <a href="postconf.5.html#default_recipient_limit">default_recipient_limit</a>
21030parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
21031the message delivery transport. </p>
21032
21033<p> Note: some <a href="postconf.5.html#transport_recipient_limit"><i>transport</i>_recipient_limit</a> parameters will not
21034show up in "postconf" command output before Postfix version 2.9.
21035This limitation applies to many parameters whose name is a combination
21036of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in this case:
21037"_recipient_limit"). </p>
21038
21039
21040</DD>
21041
21042<DT><b><a name="transport_recipient_refill_delay">transport_recipient_refill_delay</a>
21043(default: $<a href="postconf.5.html#default_recipient_refill_delay">default_recipient_refill_delay</a>)</b></DT><DD>
21044
21045<p> A transport-specific override for the <a href="postconf.5.html#default_recipient_refill_delay">default_recipient_refill_delay</a>
21046parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
21047the message delivery transport. </p>
21048
21049<p> Note: <a href="postconf.5.html#transport_recipient_refill_delay"><i>transport</i>_recipient_refill_delay</a> parameters will
21050not show up in "postconf" command output before Postfix version
210512.9.  This limitation applies to many parameters whose name is a
21052combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
21053this case: "_recipient_refill_delay").  </p>
21054
21055<p> This feature is available in Postfix 2.4 and later. </p>
21056
21057
21058</DD>
21059
21060<DT><b><a name="transport_recipient_refill_limit">transport_recipient_refill_limit</a>
21061(default: $<a href="postconf.5.html#default_recipient_refill_limit">default_recipient_refill_limit</a>)</b></DT><DD>
21062
21063<p> A transport-specific override for the <a href="postconf.5.html#default_recipient_refill_limit">default_recipient_refill_limit</a>
21064parameter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of
21065the message delivery transport. </p>
21066
21067<p> Note: <a href="postconf.5.html#transport_recipient_refill_limit"><i>transport</i>_recipient_refill_limit</a> parameters will
21068not show up in "postconf" command output before Postfix version
210692.9.  This limitation applies to many parameters whose name is a
21070combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
21071this case: "_recipient_refill_limit").  </p>
21072
21073<p> This feature is available in Postfix 2.4 and later. </p>
21074
21075
21076</DD>
21077
21078<DT><b><a name="transport_retry_time">transport_retry_time</a>
21079(default: 60s)</b></DT><DD>
21080
21081<p>
21082The time between attempts by the Postfix queue manager to contact
21083a malfunctioning message delivery transport.
21084</p>
21085
21086<p> Specify a non-zero time value (an integral value plus an optional
21087one-letter suffix that specifies the time unit).  Time units: s
21088(seconds), m (minutes), h (hours), d (days), w (weeks).
21089The default time unit is s (seconds).  </p>
21090
21091
21092</DD>
21093
21094<DT><b><a name="transport_time_limit">transport_time_limit</a>
21095(default: $<a href="postconf.5.html#command_time_limit">command_time_limit</a>)</b></DT><DD>
21096
21097<p> A transport-specific override for the <a href="postconf.5.html#command_time_limit">command_time_limit</a> parameter
21098value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message
21099delivery transport. </p>
21100
21101<p> Specify a non-zero time value (an integral value plus an optional
21102one-letter suffix that specifies the time unit).  Time units: s
21103(seconds), m (minutes), h (hours), d (days), w (weeks).
21104The default time unit is s (seconds).  </p>
21105
21106<p> Note: <a href="postconf.5.html#transport_time_limit"><i>transport</i>_time_limit</a> parameters will not show up
21107in "postconf" command output before Postfix version 2.9.  This
21108limitation applies to many parameters whose name is a combination
21109of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in this case:
21110"_time_limit"). </p>
21111
21112
21113</DD>
21114
21115<DT><b><a name="transport_transport_rate_delay">transport_transport_rate_delay</a>
21116(default: $<a href="postconf.5.html#default_transport_rate_delay">default_transport_rate_delay</a>)</b></DT><DD>
21117
21118<p> A transport-specific override for the <a href="postconf.5.html#default_transport_rate_delay">default_transport_rate_delay</a>
21119parameter value, where the initial <i>transport</i> in the parameter
21120name is the <a href="master.5.html">master.cf</a> name of the message delivery transport. </p>
21121
21122<p> Specify a non-negative time value (an integral value plus an optional
21123one-letter suffix that specifies the time unit).  Time units: s
21124(seconds), m (minutes), h (hours), d (days), w (weeks).
21125The default time unit is s (seconds).  </p>
21126
21127<p> Note: <a href="postconf.5.html#transport_transport_rate_delay"><i>transport</i>_transport_rate_delay</a> parameters will
21128not show up in "postconf" command output before Postfix version
211292.9.  This limitation applies to many parameters whose name is a
21130combination of a <a href="master.5.html">master.cf</a> service name and a built-in suffix (in
21131this case: "_transport_rate_delay").  </p>
21132
21133
21134</DD>
21135
21136<DT><b><a name="trigger_timeout">trigger_timeout</a>
21137(default: 10s)</b></DT><DD>
21138
21139<p>
21140The time limit for sending a trigger to a Postfix daemon (for
21141example, the <a href="pickup.8.html">pickup(8)</a> or <a href="qmgr.8.html">qmgr(8)</a> daemon). This time limit prevents
21142programs from getting stuck when the mail system is under heavy
21143load.
21144</p>
21145
21146<p> Specify a non-zero time value (an integral value plus an optional
21147one-letter suffix that specifies the time unit).  Time units: s
21148(seconds), m (minutes), h (hours), d (days), w (weeks).
21149The default time unit is s (seconds).  </p>
21150
21151
21152</DD>
21153
21154<DT><b><a name="undisclosed_recipients_header">undisclosed_recipients_header</a>
21155(default: see "postconf -d" output)</b></DT><DD>
21156
21157<p>
21158Message header that the Postfix <a href="cleanup.8.html">cleanup(8)</a> server inserts when a
21159message contains no To: or Cc: message header. With Postfix 2.8
21160and later, the default value is empty. With Postfix 2.4-2.7,
21161specify an empty value to disable this feature.  </p>
21162
21163<p> Example: </p>
21164
21165<pre>
21166# Default value before Postfix 2.8.
21167# Note: the ":" and ";" are both required.
21168<a href="postconf.5.html#undisclosed_recipients_header">undisclosed_recipients_header</a> = To: undisclosed-recipients:;
21169</pre>
21170
21171
21172</DD>
21173
21174<DT><b><a name="unknown_address_reject_code">unknown_address_reject_code</a>
21175(default: 450)</b></DT><DD>
21176
21177<p>
21178The numerical response code when the Postfix SMTP server rejects a
21179sender or recipient address because its domain is unknown.  This
21180is one of the possible replies from the restrictions
21181<a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a> and <a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a>.
21182</p>
21183
21184<p>
21185Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21186</p>
21187
21188
21189</DD>
21190
21191<DT><b><a name="unknown_address_tempfail_action">unknown_address_tempfail_action</a>
21192(default: $<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b></DT><DD>
21193
21194<p> The Postfix SMTP server's action when <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a>
21195or <a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a> fail due to a temporary error
21196condition. Specify "defer" to defer the remote SMTP client request
21197immediately. With the default "<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" action, the Postfix
21198SMTP server continues to look for opportunities to reject mail, and
21199defers the client request only if it would otherwise be accepted.
21200</p>
21201
21202<p> This feature is available in Postfix 2.6 and later. </p>
21203
21204
21205</DD>
21206
21207<DT><b><a name="unknown_client_reject_code">unknown_client_reject_code</a>
21208(default: 450)</b></DT><DD>
21209
21210<p>
21211The numerical Postfix SMTP server response code when a client
21212without valid address &lt;=&gt; name mapping is rejected by the
21213<a href="postconf.5.html#reject_unknown_client_hostname">reject_unknown_client_hostname</a> restriction. The SMTP server always replies
21214with 450 when the mapping failed due to a temporary error condition.
21215</p>
21216
21217<p>
21218Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21219</p>
21220
21221
21222</DD>
21223
21224<DT><b><a name="unknown_helo_hostname_tempfail_action">unknown_helo_hostname_tempfail_action</a>
21225(default: $<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b></DT><DD>
21226
21227<p> The Postfix SMTP server's action when <a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a>
21228fails due to a temporary error condition. Specify "defer" to defer
21229the remote SMTP client request immediately. With the default
21230"<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" action, the Postfix SMTP server continues to look
21231for opportunities to reject mail, and defers the client request
21232only if it would otherwise be accepted. </p>
21233
21234<p> This feature is available in Postfix 2.6 and later. </p>
21235
21236
21237</DD>
21238
21239<DT><b><a name="unknown_hostname_reject_code">unknown_hostname_reject_code</a>
21240(default: 450)</b></DT><DD>
21241
21242<p>
21243The numerical Postfix SMTP server response code when the hostname
21244specified with the HELO or EHLO command is rejected by the
21245<a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a> restriction.
21246</p>
21247
21248<p>
21249Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21250</p>
21251
21252
21253</DD>
21254
21255<DT><b><a name="unknown_local_recipient_reject_code">unknown_local_recipient_reject_code</a>
21256(default: 550)</b></DT><DD>
21257
21258<p>
21259The numerical Postfix SMTP server response code when a recipient
21260address is local, and $<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> specifies a list of
21261lookup tables that does not match the recipient.  A recipient
21262address is local when its domain matches $<a href="postconf.5.html#mydestination">mydestination</a>,
21263$<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> or $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>.
21264</p>
21265
21266<p>
21267The default setting is 550 (reject mail) but it is safer to initially
21268use 450 (try again later) so you have time to find out if your
21269<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> settings are OK.
21270</p>
21271
21272<p>
21273Example:
21274</p>
21275
21276<pre>
21277<a href="postconf.5.html#unknown_local_recipient_reject_code">unknown_local_recipient_reject_code</a> = 450
21278</pre>
21279
21280<p>
21281This feature is available in Postfix 2.0 and later.
21282</p>
21283
21284
21285</DD>
21286
21287<DT><b><a name="unknown_relay_recipient_reject_code">unknown_relay_recipient_reject_code</a>
21288(default: 550)</b></DT><DD>
21289
21290<p>
21291The numerical Postfix SMTP server reply code when a recipient
21292address matches $<a href="postconf.5.html#relay_domains">relay_domains</a>, and <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> specifies
21293a list of lookup tables that does not match the recipient address.
21294</p>
21295
21296<p>
21297This feature is available in Postfix 2.0 and later.
21298</p>
21299
21300
21301</DD>
21302
21303<DT><b><a name="unknown_virtual_alias_reject_code">unknown_virtual_alias_reject_code</a>
21304(default: 550)</b></DT><DD>
21305
21306<p>
21307The Postfix SMTP server reply code when a recipient address matches
21308$<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, and $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> specifies a list
21309of lookup tables that does not match the recipient address.
21310</p>
21311
21312<p>
21313This feature is available in Postfix 2.0 and later.
21314</p>
21315
21316
21317</DD>
21318
21319<DT><b><a name="unknown_virtual_mailbox_reject_code">unknown_virtual_mailbox_reject_code</a>
21320(default: 550)</b></DT><DD>
21321
21322<p>
21323The Postfix SMTP server reply code when a recipient address matches
21324$<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>, and $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> specifies a list
21325of lookup tables that does not match the recipient address.
21326</p>
21327
21328<p>
21329This feature is available in Postfix 2.0 and later.
21330</p>
21331
21332
21333</DD>
21334
21335<DT><b><a name="unverified_recipient_defer_code">unverified_recipient_defer_code</a>
21336(default: 450)</b></DT><DD>
21337
21338<p>
21339The numerical Postfix SMTP server response when a recipient address
21340probe fails due to a temporary error condition.
21341</p>
21342
21343<p>
21344Unlike elsewhere in Postfix, you can specify 250 in order to
21345accept the address anyway.
21346</p>
21347
21348<p>
21349Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21350</p>
21351
21352<p>
21353This feature is available in Postfix 2.6 and later.
21354</p>
21355
21356
21357</DD>
21358
21359<DT><b><a name="unverified_recipient_reject_code">unverified_recipient_reject_code</a>
21360(default: 450)</b></DT><DD>
21361
21362<p>
21363The numerical Postfix SMTP server response when a recipient address
21364is rejected by the <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restriction.
21365</p>
21366
21367<p>
21368Unlike elsewhere in Postfix, you can specify 250 in order to
21369accept the address anyway.
21370</p>
21371
21372<p>
21373Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21374</p>
21375
21376<p>
21377This feature is available in Postfix 2.1 and later.
21378</p>
21379
21380
21381</DD>
21382
21383<DT><b><a name="unverified_recipient_reject_reason">unverified_recipient_reject_reason</a>
21384(default: empty)</b></DT><DD>
21385
21386<p> The Postfix SMTP server's reply when rejecting mail with
21387<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a>. Do not include the numeric SMTP reply
21388code or the enhanced status code. By default, the response includes
21389actual address verification details.
21390
21391<p> Example: </p>
21392
21393<pre>
21394<a href="postconf.5.html#unverified_recipient_reject_reason">unverified_recipient_reject_reason</a> = Recipient address lookup failed
21395</pre>
21396
21397<p> This feature is available in Postfix 2.6 and later. </p>
21398
21399
21400</DD>
21401
21402<DT><b><a name="unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a>
21403(default: $<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b></DT><DD>
21404
21405<p> The Postfix SMTP server's action when <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a>
21406fails due to a temporary error condition. Specify "defer" to defer
21407the remote SMTP client request immediately. With the default
21408"<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" action, the Postfix SMTP server continues to look
21409for opportunities to reject mail, and defers the client request
21410only if it would otherwise be accepted. </p>
21411
21412<p> This feature is available in Postfix 2.6 and later. </p>
21413
21414
21415</DD>
21416
21417<DT><b><a name="unverified_sender_defer_code">unverified_sender_defer_code</a>
21418(default: 450)</b></DT><DD>
21419
21420<p>
21421The numerical Postfix SMTP server response code when a sender address
21422probe fails due to a temporary error condition.
21423</p>
21424
21425<p>
21426Unlike elsewhere in Postfix, you can specify 250 in order to
21427accept the address anyway.
21428</p>
21429
21430<p>
21431Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21432</p>
21433
21434<p>
21435This feature is available in Postfix 2.6 and later.
21436</p>
21437
21438
21439</DD>
21440
21441<DT><b><a name="unverified_sender_reject_code">unverified_sender_reject_code</a>
21442(default: 450)</b></DT><DD>
21443
21444<p>
21445The numerical Postfix SMTP server response code when a recipient
21446address is rejected by the <a href="postconf.5.html#reject_unverified_sender">reject_unverified_sender</a> restriction.
21447</p>
21448
21449<p>
21450Unlike elsewhere in Postfix, you can specify 250 in order to
21451accept the address anyway.
21452</p>
21453
21454<p>
21455Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
21456</p>
21457
21458<p>
21459This feature is available in Postfix 2.1 and later.
21460</p>
21461
21462
21463</DD>
21464
21465<DT><b><a name="unverified_sender_reject_reason">unverified_sender_reject_reason</a>
21466(default: empty)</b></DT><DD>
21467
21468<p> The Postfix SMTP server's reply when rejecting mail with
21469<a href="postconf.5.html#reject_unverified_sender">reject_unverified_sender</a>. Do not include the numeric SMTP reply
21470code or the enhanced status code. By default, the response includes
21471actual address verification details.
21472
21473<p> Example: </p>
21474
21475<pre>
21476<a href="postconf.5.html#unverified_sender_reject_reason">unverified_sender_reject_reason</a> = Sender address lookup failed
21477</pre>
21478
21479<p> This feature is available in Postfix 2.6 and later. </p>
21480
21481
21482</DD>
21483
21484<DT><b><a name="unverified_sender_tempfail_action">unverified_sender_tempfail_action</a>
21485(default: $<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b></DT><DD>
21486
21487<p> The Postfix SMTP server's action when <a href="postconf.5.html#reject_unverified_sender">reject_unverified_sender</a>
21488fails due to a temporary error condition. Specify "defer" to defer
21489the remote SMTP client request immediately. With the default
21490"<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" action, the Postfix SMTP server continues to look
21491for opportunities to reject mail, and defers the client request
21492only if it would otherwise be accepted. </p>
21493
21494<p> This feature is available in Postfix 2.6 and later. </p>
21495
21496
21497</DD>
21498
21499<DT><b><a name="use_srv_lookup">use_srv_lookup</a>
21500(default: empty)</b></DT><DD>
21501
21502<p> Enables discovery for the specified service(s) using DNS SRV
21503records. For example, with "<a href="postconf.5.html#use_srv_lookup">use_srv_lookup</a> = submission" and
21504"<a href="postconf.5.html#relayhost">relayhost</a> = example.com:submission", the Postfix SMTP client will
21505look up DNS SRV records for _submission._tcp.example.com, and will
21506relay email through the hosts and ports that are specified with
21507those records. See <a href="https://tools.ietf.org/html/rfc2782">RFC 2782</a> for details of the host selection
21508process. </p>
21509
21510<p> Specify zero or more service names separated by comma and/or
21511whitespace. Any name in the services(5) database may be specified,
21512though in practice only submission, submissions, and smtp make
21513sense.  </p>
21514
21515<p> When SRV record lookup is enabled with <a href="postconf.5.html#use_srv_lookup">use_srv_lookup</a>, you can
21516enclose a domain name in "[]" to force IP address lookup instead
21517of SRV record lookup. </p>
21518
21519<p> Example 1: MUA-to-MTA submission using SRV record lookup for
21520the "submission" service for domain "example.com". This uses the
21521default SMTP delivery agent with STARTTLS, and looks up SRV records
21522for "_submission._tcp.example.com". </p>
21523
21524<pre>
21525/etc/postfix/<a href="postconf.5.html">main.cf</a>:
21526    <a href="postconf.5.html#use_srv_lookup">use_srv_lookup</a> = submission
21527    <a href="postconf.5.html#relayhost">relayhost</a> = example.com:submission
21528    <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = may
21529    ...see <a href="SASL_README.html">SASL_README</a> for sasl configuration...
21530</pre>
21531
21532<p> Example 2: MUA-to-MTA submission using SRV record lookup for
21533the "submissions" service for domain "example.org". This uses a
21534dedicated SMTP delivery agent (smtp-wraptls) with tls_wrappermode
21535turned on, and looks up SRV records for "_submissions._tcp.example.org".
21536</p>
21537
21538<p> Note: specify the older name "smtps" instead of "submissions"
21539when a provider has DNS SRV records like "_smtps._tcp.example.org"
21540instead of "_submissions._tcp.example.org". </p>
21541
21542<pre>
21543/etc/postfix/<a href="postconf.5.html">main.cf</a>:
21544    <a href="postconf.5.html#use_srv_lookup">use_srv_lookup</a> = submissions
21545    <a href="postconf.5.html#default_transport">default_transport</a> = smtp-wraptls:example.org:submissions
21546    ...see <a href="SASL_README.html">SASL_README</a> for sasl configuration...
21547</pre>
21548
21549<pre>
21550/etc/postfix/<a href="master.5.html">master.cf</a>:
21551    smtp-wraptls   unix   ...   ...   ...   ...   ...   smtp
21552        -o { <a href="postconf.5.html#smtp_tls_wrappermode">smtp_tls_wrappermode</a> = yes }
21553        -o { <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> = encrypt }
21554</pre>
21555
21556<p> Example 3: Sender-dependent selection for a combination of
21557MUA-to-MTA submission services. This combines examples 1 and 2 with
21558examples of how to disable SRV and look up IP address records for
21559"smtp-relay.example.net" and "smtp-relay.other.example".  Again,
21560specify the older name "smtps" instead of "submissions" when a
21561provider has DNS SRV records like "_smtps._tcp.example.org" instead
21562of "_submissions._tcp.example.org". </p>
21563
21564<pre>
21565/etc/postfix/<a href="postconf.5.html">main.cf</a>:
21566    <a href="postconf.5.html#use_srv_lookup">use_srv_lookup</a> = submission, submissions
21567    <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> = <a href="DATABASE_README.html#types">inline</a>:{
21568        # Destinations that support SRV record lookup.
21569        { user1@example.com = <a href="smtp.8.html">smtp</a>:example.com:submission }
21570        { user2@example.org = smtp-wraptls:example.org:submissions }
21571        # Use [destination] to force IP address lookups.
21572        { user3@example.net = <a href="smtp.8.html">smtp</a>:[smtp-relay.example.net]:submission }
21573        { user4@other.example =
21574              smtp-wraptls:[smtp-relay.other.example]:submissions } }
21575    ...see <a href="SASL_README.html">SASL_README</a> for sasl configuration...
21576</pre>
21577
21578<p> Example 4: MTA-to-MTA traffic, using SRV record lookup for the
21579SMTP service. This is useful for Postfix tests, and may be useful
21580in environments where ports are dynamically assigned to servers.
21581</p>
21582
21583<pre>
21584/etc/postfix/<a href="postconf.5.html">main.cf</a>:
21585    <a href="postconf.5.html#use_srv_lookup">use_srv_lookup</a> = smtp
21586    # Fall back to MX record lookup when SRV records are unavailable.
21587    #<a href="postconf.5.html#allow_srv_lookup_fallback">allow_srv_lookup_fallback</a> = yes
21588    #<a href="postconf.5.html#ignore_srv_lookup_error">ignore_srv_lookup_error</a> = yes
21589</pre>
21590
21591<p> This feature is available in Postfix 3.8 and later. </p>
21592
21593
21594</DD>
21595
21596<DT><b><a name="verp_delimiter_filter">verp_delimiter_filter</a>
21597(default: -=+)</b></DT><DD>
21598
21599<p>
21600The characters Postfix accepts as VERP delimiter characters on the
21601Postfix <a href="sendmail.1.html">sendmail(1)</a> command line and in SMTP commands.
21602</p>
21603
21604<p>
21605This feature is available in Postfix 1.1 and later.
21606</p>
21607
21608
21609</DD>
21610
21611<DT><b><a name="virtual_alias_address_length_limit">virtual_alias_address_length_limit</a>
21612(default: 1000)</b></DT><DD>
21613
21614<p>
21615The maximal length of an email address after virtual alias expansion.
21616This stops virtual aliasing loops that increase the address length
21617exponentially.
21618</p>
21619
21620<p>
21621This feature is available in Postfix 3.0 and later.
21622</p>
21623
21624
21625</DD>
21626
21627<DT><b><a name="virtual_alias_domains">virtual_alias_domains</a>
21628(default: $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)</b></DT><DD>
21629
21630<p> Postfix is the final destination for the specified list of virtual
21631alias domains, that is, domains for which all addresses are aliased
21632to addresses in other local or remote domains. The SMTP server
21633validates recipient addresses with $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> and rejects
21634non-existent recipients. See also the <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> class
21635in the <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> file </p>
21636
21637<p>
21638This feature is available in Postfix 2.0 and later. The default
21639value is backwards compatible with Postfix version 1.1.
21640</p>
21641
21642<p>
21643The default value is $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> so that you can keep all
21644information about <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domains</a> in one place.  If you have
21645many users, it is better to separate information that changes more
21646frequently (virtual address -&gt; local or remote address mapping)
21647from information that changes less frequently (the list of virtual
21648domain names).
21649</p>
21650
21651<p> Specify a list of host or domain names, "/file/name" or
21652"<a href="DATABASE_README.html">type:table</a>" patterns, separated by commas and/or whitespace. A
21653"/file/name" pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>"
21654lookup table is matched when a table entry matches a host or domain name
21655(the lookup result is ignored).  Continue long lines by starting
21656the next line with whitespace. Specify "!pattern" to exclude a host
21657or domain name from the list. The form "!/file/name" is supported
21658only in Postfix version 2.4 and later.  </p>
21659
21660<p>
21661See also the <a href="VIRTUAL_README.html">VIRTUAL_README</a> and <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> documents
21662for further information.
21663</p>
21664
21665<p>
21666Example:
21667</p>
21668
21669<pre>
21670<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> = virtual1.tld virtual2.tld
21671</pre>
21672
21673
21674</DD>
21675
21676<DT><b><a name="virtual_alias_expansion_limit">virtual_alias_expansion_limit</a>
21677(default: 1000)</b></DT><DD>
21678
21679<p>
21680The maximal number of addresses that virtual alias expansion produces
21681from each original recipient.
21682</p>
21683
21684<p>
21685This feature is available in Postfix 2.1 and later.
21686</p>
21687
21688
21689</DD>
21690
21691<DT><b><a name="virtual_alias_maps">virtual_alias_maps</a>
21692(default: $<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b></DT><DD>
21693
21694<p>
21695Optional lookup tables that alias specific mail addresses or domains
21696to other local or remote addresses.  The table format and lookups
21697are documented in <a href="virtual.5.html">virtual(5)</a>. For an overview of Postfix address
21698manipulations see the <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> document.
21699</p>
21700
21701<p>
21702This feature is available in Postfix 2.0 and later. The default
21703value is backwards compatible with Postfix version 1.1.
21704</p>
21705
21706<p>
21707Specify zero or more "type:name" lookup tables, separated by
21708whitespace or comma. Tables will be searched in the specified order
21709until a match is found.
21710Note: these lookups are recursive.
21711</p>
21712
21713<p>
21714If you use this feature with indexed files, run "<b>postmap
21715/etc/postfix/virtual</b>" after changing the file.
21716</p>
21717
21718<p>
21719Examples:
21720</p>
21721
21722<pre>
21723<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = <a href="DATABASE_README.html#types">dbm</a>:/etc/postfix/virtual
21724<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/virtual
21725</pre>
21726
21727
21728</DD>
21729
21730<DT><b><a name="virtual_alias_recursion_limit">virtual_alias_recursion_limit</a>
21731(default: 1000)</b></DT><DD>
21732
21733<p>
21734The maximal nesting depth of virtual alias expansion.  Currently
21735the recursion limit is applied only to the left branch of the
21736expansion graph, so the depth of the tree can in the worst case
21737reach the sum of the expansion and recursion limits.  This may
21738change in the future.
21739</p>
21740
21741<p>
21742This feature is available in Postfix 2.1 and later.
21743</p>
21744
21745
21746</DD>
21747
21748<DT><b><a name="virtual_delivery_status_filter">virtual_delivery_status_filter</a>
21749(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
21750
21751<p> Optional filter for the <a href="virtual.8.html">virtual(8)</a> delivery agent to change the
21752delivery status code or explanatory text of successful or unsuccessful
21753deliveries.  See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details.  </p>
21754
21755<p> This feature is available in Postfix 3.0 and later. </p>
21756
21757
21758</DD>
21759
21760<DT><b><a name="virtual_destination_concurrency_limit">virtual_destination_concurrency_limit</a>
21761(default: $<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concurrency_limit</a>)</b></DT><DD>
21762
21763<p> The maximal number of parallel deliveries to the same destination
21764via the virtual message delivery transport. This limit is enforced
21765by the queue manager. The message delivery transport name is the
21766first field in the entry in the <a href="master.5.html">master.cf</a> file.  </p>
21767
21768
21769</DD>
21770
21771<DT><b><a name="virtual_destination_recipient_limit">virtual_destination_recipient_limit</a>
21772(default: $<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b></DT><DD>
21773
21774<p> The maximal number of recipients per message for the virtual
21775message delivery transport. This limit is enforced by the queue
21776manager. The message delivery transport name is the first field in
21777the entry in the <a href="master.5.html">master.cf</a> file.  </p>
21778
21779<p> Setting this parameter to a value of 1 changes the meaning of
21780<a href="postconf.5.html#virtual_destination_concurrency_limit">virtual_destination_concurrency_limit</a> from concurrency per domain
21781into concurrency per recipient.  </p>
21782
21783
21784</DD>
21785
21786<DT><b><a name="virtual_gid_maps">virtual_gid_maps</a>
21787(default: empty)</b></DT><DD>
21788
21789<p>
21790Lookup tables with the per-recipient group ID for <a href="virtual.8.html">virtual(8)</a> mailbox
21791delivery.
21792</p>
21793
21794<p> This parameter is specific to the <a href="virtual.8.html">virtual(8)</a> delivery agent.
21795It does not apply when mail is delivered with a different mail
21796delivery program.  </p>
21797
21798<p>
21799Specify zero or more "type:name" lookup tables, separated by
21800whitespace or comma. Tables will be searched in the specified order
21801until a match is found.
21802</p>
21803
21804<p>
21805In a lookup table, specify a left-hand side of "@domain.tld" to
21806match any user in the specified domain that does not have a specific
21807"user@domain.tld" entry.
21808</p>
21809
21810<p>
21811When a recipient address has an optional address extension
21812(user+foo@domain.tld), the <a href="virtual.8.html">virtual(8)</a> delivery agent looks up
21813the full address first, and when the lookup fails, it looks up the
21814unextended address (user@domain.tld).
21815</p>
21816
21817<p>
21818Note 1: for security reasons, the <a href="virtual.8.html">virtual(8)</a> delivery agent disallows
21819regular expression substitution of $1 etc. in regular expression
21820lookup tables, because that would open a security hole.
21821</p>
21822
21823<p>
21824Note 2: for security reasons, the <a href="virtual.8.html">virtual(8)</a> delivery agent will
21825silently ignore requests to use the <a href="proxymap.8.html">proxymap(8)</a> server. Instead
21826it will open the table directly. Before Postfix version 2.2, the
21827<a href="virtual.8.html">virtual(8)</a> delivery agent will terminate with a fatal error.
21828</p>
21829
21830
21831</DD>
21832
21833<DT><b><a name="virtual_mailbox_base">virtual_mailbox_base</a>
21834(default: empty)</b></DT><DD>
21835
21836<p>
21837A prefix that the <a href="virtual.8.html">virtual(8)</a> delivery agent prepends to all pathname
21838results from $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> table lookups.  This is a safety
21839measure to ensure that an out of control map doesn't litter the
21840file system with mailboxes.  While <a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a> could be
21841set to "/", this setting isn't recommended.
21842</p>
21843
21844<p> This parameter is specific to the <a href="virtual.8.html">virtual(8)</a> delivery agent.
21845It does not apply when mail is delivered with a different mail
21846delivery program.  </p>
21847
21848<p>
21849Example:
21850</p>
21851
21852<pre>
21853<a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a> = /var/mail
21854</pre>
21855
21856
21857</DD>
21858
21859<DT><b><a name="virtual_mailbox_domains">virtual_mailbox_domains</a>
21860(default: $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>)</b></DT><DD>
21861
21862<p> Postfix is the final destination for the specified list of domains;
21863mail is delivered via the $<a href="postconf.5.html#virtual_transport">virtual_transport</a> mail delivery transport.
21864By default this is the Postfix <a href="virtual.8.html">virtual(8)</a> delivery agent.  The SMTP
21865server validates recipient addresses with $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
21866and rejects mail for non-existent recipients.  See also the virtual
21867mailbox domain class in the <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> file.  </p>
21868
21869<p> This parameter expects the same syntax as the <a href="postconf.5.html#mydestination">mydestination</a>
21870configuration parameter.  </p>
21871
21872<p>
21873This feature is available in Postfix 2.0 and later. The default
21874value is backwards compatible with Postfix version 1.1.
21875</p>
21876
21877
21878</DD>
21879
21880<DT><b><a name="virtual_mailbox_limit">virtual_mailbox_limit</a>
21881(default: 51200000)</b></DT><DD>
21882
21883<p>
21884The maximal size in bytes of an individual <a href="virtual.8.html">virtual(8)</a> mailbox or
21885maildir file, or zero (no limit).  </p>
21886
21887<p> This parameter is specific to the <a href="virtual.8.html">virtual(8)</a> delivery agent.
21888It does not apply when mail is delivered with a different mail
21889delivery program.  </p>
21890
21891
21892</DD>
21893
21894<DT><b><a name="virtual_mailbox_lock">virtual_mailbox_lock</a>
21895(default: see "postconf -d" output)</b></DT><DD>
21896
21897<p>
21898How to lock a UNIX-style <a href="virtual.8.html">virtual(8)</a> mailbox before attempting
21899delivery.  For a list of available file locking methods, use the
21900"<b>postconf -l</b>" command.
21901</p>
21902
21903<p> This parameter is specific to the <a href="virtual.8.html">virtual(8)</a> delivery agent.
21904It does not apply when mail is delivered with a different mail
21905delivery program.  </p>
21906
21907<p>
21908This setting is ignored with <b>maildir</b> style delivery, because
21909such deliveries are safe without application-level locks.
21910</p>
21911
21912<p>
21913Note 1: the <b>dotlock</b> method requires that the recipient UID
21914or GID has write access to the parent directory of the recipient's
21915mailbox file.
21916</p>
21917
21918<p>
21919Note 2: the default setting of this parameter is system dependent.
21920</p>
21921
21922
21923</DD>
21924
21925<DT><b><a name="virtual_mailbox_maps">virtual_mailbox_maps</a>
21926(default: empty)</b></DT><DD>
21927
21928<p>
21929Optional lookup tables with all valid addresses in the domains that
21930match $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.
21931</p>
21932
21933<p>
21934Specify zero or more "type:name" lookup tables, separated by
21935whitespace or comma. Tables will be searched in the specified order
21936until a match is found.
21937</p>
21938
21939<p>
21940In a lookup table, specify a left-hand side of "@domain.tld" to
21941match any user in the specified domain that does not have a specific
21942"user@domain.tld" entry.
21943</p>
21944
21945<p>
21946With the default "<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> = $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>",
21947lookup tables also need entries with a left-hand side of "domain.tld"
21948to satisfy virtual_mailbox_domain lookups (the right-hand side is
21949required but will not be used).
21950</p>
21951
21952<p> The remainder of this text is specific to the <a href="virtual.8.html">virtual(8)</a> delivery
21953agent.  It does not apply when mail is delivered with a different
21954mail delivery program.  </p>
21955
21956<p>
21957The <a href="virtual.8.html">virtual(8)</a> delivery agent uses this table to look up the
21958per-recipient mailbox or maildir pathname.  If the lookup result
21959ends in a slash ("/"), maildir-style delivery is carried out,
21960otherwise the path is assumed to specify a UNIX-style mailbox file.
21961Note that $<a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a> is unconditionally prepended to
21962this path.
21963</p>
21964
21965<p>
21966When a recipient address has an optional address extension
21967(user+foo@domain.tld), the <a href="virtual.8.html">virtual(8)</a> delivery agent looks up
21968the full address first, and when the lookup fails, it looks up the
21969unextended address (user@domain.tld).
21970</p>
21971
21972<p>
21973Note 1: for security reasons, the <a href="virtual.8.html">virtual(8)</a> delivery agent disallows
21974regular expression substitution of $1 etc. in regular expression
21975lookup tables, because that would open a security hole.
21976</p>
21977
21978<p>
21979Note 2: for security reasons, the <a href="virtual.8.html">virtual(8)</a> delivery agent will
21980silently ignore requests to use the <a href="proxymap.8.html">proxymap(8)</a> server. Instead
21981it will open the table directly. Before Postfix version 2.2, the
21982<a href="virtual.8.html">virtual(8)</a> delivery agent will terminate with a fatal error.
21983</p>
21984
21985
21986</DD>
21987
21988<DT><b><a name="virtual_maps">virtual_maps</a>
21989(default: empty)</b></DT><DD>
21990
21991<p> Optional lookup tables with a) names of domains for which all
21992addresses are aliased to addresses in other local or remote domains,
21993and b) addresses that are aliased to addresses in other local or
21994remote domains.  Available before Postfix version 2.0. With Postfix
21995version 2.0 and later, this is replaced by separate controls: <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>
21996and <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>. </p>
21997
21998
21999</DD>
22000
22001<DT><b><a name="virtual_minimum_uid">virtual_minimum_uid</a>
22002(default: 100)</b></DT><DD>
22003
22004<p>
22005The minimum user ID value that the <a href="virtual.8.html">virtual(8)</a> delivery agent accepts
22006as a result from $<a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a> table lookup.  Returned
22007values less than this will be rejected, and the message will be
22008deferred.
22009</p>
22010
22011<p> This parameter is specific to the <a href="virtual.8.html">virtual(8)</a> delivery agent.
22012It does not apply when mail is delivered with a different mail
22013delivery program.  </p>
22014
22015
22016</DD>
22017
22018<DT><b><a name="virtual_transport">virtual_transport</a>
22019(default: virtual)</b></DT><DD>
22020
22021<p>
22022The default mail delivery transport and next-hop destination for
22023final delivery to domains listed with $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.
22024This information can be overruled with the <a href="transport.5.html">transport(5)</a> table.
22025</p>
22026
22027<p>
22028Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
22029is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
22030The <i>:nexthop</i> destination is optional; its syntax is documented
22031in the manual page of the corresponding delivery agent.
22032</p>
22033
22034<p>
22035This feature is available in Postfix 2.0 and later.
22036</p>
22037
22038
22039</DD>
22040
22041<DT><b><a name="virtual_uid_maps">virtual_uid_maps</a>
22042(default: empty)</b></DT><DD>
22043
22044<p>
22045Lookup tables with the per-recipient user ID that the <a href="virtual.8.html">virtual(8)</a>
22046delivery agent uses while writing to the recipient's mailbox.
22047</p>
22048
22049<p> This parameter is specific to the <a href="virtual.8.html">virtual(8)</a> delivery agent.
22050It does not apply when mail is delivered with a different mail
22051delivery program.  </p>
22052
22053<p>
22054Specify zero or more "type:name" lookup tables, separated by
22055whitespace or comma. Tables will be searched in the specified order
22056until a match is found.
22057</p>
22058
22059<p>
22060In a lookup table, specify a left-hand side of "@domain.tld"
22061to match any user in the specified domain that does not have a
22062specific "user@domain.tld" entry.
22063</p>
22064
22065<p>
22066When a recipient address has an optional address extension
22067(user+foo@domain.tld), the <a href="virtual.8.html">virtual(8)</a> delivery agent looks up
22068the full address first, and when the lookup fails, it looks up the
22069unextended address (user@domain.tld).
22070</p>
22071
22072<p>
22073Note 1: for security reasons, the <a href="virtual.8.html">virtual(8)</a> delivery agent disallows
22074regular expression substitution of $1 etc. in regular expression
22075lookup tables, because that would open a security hole.
22076</p>
22077
22078<p>
22079Note 2: for security reasons, the <a href="virtual.8.html">virtual(8)</a> delivery agent will
22080silently ignore requests to use the <a href="proxymap.8.html">proxymap(8)</a> server. Instead
22081it will open the table directly. Before Postfix version 2.2, the
22082<a href="virtual.8.html">virtual(8)</a> delivery agent will terminate with a fatal error.
22083</p>
22084
22085
22086</DD>
22087
22088</dl>
22089
22090</body>
22091
22092</html>
22093