1# This is the input file for automatically generating the postconf(5)
2# manual page, the summaries of parameters in on-line manual pages,
3# and for the postconf.5.html hyperlinked document.
4#
5# The following tools operate on information from this file:
6#
7# xpostconf
8#     Extracts specific parameter definitions from this file, or
9#     produces a sorted version of all the information in this
10#     document.
11#
12# postconf2html
13#     Adds parameter name +default headers. The result can be embedded
14#     into the postconf.5.html hyperlinked document.
15#
16# postconf2man
17#     Converts this file into something that can be embedded into
18#     the postconf(5) UNIX-style manual page.  This tool knows only
19#     a limited subset of HTML as described below.
20#
21# postconf2src
22#    Converts this file result into something that can be embedded
23#    into Postfix source code files.
24#
25# The subset of HTML that you can use is limited by the postconf2man
26# tool:
27#
28#   * Supported HTML elements are: blockquote, ul, li, dl, dt, dd,
29#     p, pre, b, i, h, and the escapes for < <= >= >. Sorry, no
30#     tables.
31#
32#   * HTML elements must be specified in lower case.
33#
34#   * Lists cannot be nested.
35#
36#   * The postconf2man tool leaves unrecognized HTML in place as a
37#     reminder that it is not supported.
38#
39#   * Text between <!-- and --> is stripped out. The <!-- and -->
40#     must appear on separate lines.
41#
42#   * Blank lines are special for postconf2man: it replaces them by
43#     a "new paragraph" command. Don't put any blank lines inside
44#     <blockquote> text. Instead, put those blank lines between
45#     </blockquote> and <blockquote>.
46#
47#   * Text after a blank line must start with an HTML element.
48#
49#   Also:
50#
51#   * All <dt> and <dd>text must be closed with </dt> and </dd>.
52#
53#   * Use <blockquote><pre>..</pre></blockquote> for examples
54#     between narrative text, instead of indenting examples by hand.
55#
56#   * Use <pre>..</pre> for the "Examples:" section at the end
57#     of a parameter description.
58#
59# The postlink tool automatically inserts hyperlinks for the following,
60# so you must not hyperlink that information yourself:
61#
62#   * Postfix manual pages
63#   * URLs
64#   * RFCs
65#   * Postfix configuration parameters
66#   * Postfix README files
67#   * Address classes and other terminology.
68#
69# The xpostconf and postconf2html tools expect the file format described
70# in the comments below.  The description includes the transformation
71# that is done by the postconf2html tool.
72#
73#   * The format of this file is blocks of text separated by one or
74#     more empty (or all whitespace) lines.
75#
76#   * A text block that begins with %PARAM specifies a parameter name
77#     and its default value, separated by whitespace. The text in
78#     the blocks that follow is the parameter description.
79#
80#   * The first line (text up to the first ". ") is used in Postfix
81#     on-line manual pages, in the one-line configuration parameter
82#     summaries.
83#
84#   * A text block that begins with the "<" character is treated as
85#     literal HTML. For example, to specify a "dl" list element one
86#     would write:
87#
88#         |<dt><b>name</b></dt> <dd>
89#         |
90#         |text that describes "name".
91#         |
92#         |</dd> ...
93#
94#     As described below, the text that describes "name" will be
95#     enclosed with <p> and </p>.
96#
97#     An "ul" list element would be written like this:
98#
99#         |<li> text for this list element.
100#
101#   * Any text block that does not begin with < is an error.
102
103%CLASS address-verification Address verification (Postfix 2.1 and later)
104
105<p>
106Sender/recipient address verification is implemented by sending
107probe email messages that are not actually delivered. This feature
108is requested via the reject_unverified_sender and
109reject_unverified_recipient access restrictions.  The status of
110verification probes is maintained by the address verification
111service.  See the file ADDRESS_VERIFICATION_README for information
112about how to configure and operate the Postfix sender/recipient
113address verification service.
114</p>
115
116%CLASS smtpd-compatibility Compatibility controls
117
118%CLASS resource-control Resource controls
119
120%CLASS after-queue-filter After-queue content filter
121
122<p>
123As of version 1.0, Postfix can be configured to send new mail to
124an external content filter AFTER the mail is queued. This content
125filter is expected to inject mail back into a (Postfix or other)
126MTA for further delivery.  See the FILTER_README document for
127details.
128</p>
129
130%CLASS before-queue-filter Before-queue content filter
131
132<p>
133The Postfix SMTP server can be configured to send incoming mail to
134a real-time SMTP-based content filter BEFORE mail is queued.  This
135content filter is expected to inject mail back into Postfix.  See
136the SMTPD_PROXY_README document for details on how to configure
137and operate this feature.
138</p>
139
140%CLASS basic-config Basic configuration parameters
141
142%CLASS smtpd-access-relay SMTP server access and relay control
143
144%CLASS smtpd-sasl SMTP server SASL authentication
145
146%CLASS unknown-recipients Rejecting mail for unknown recipients
147
148%CLASS smtpd-reply-code SMTP server response codes
149
150%CLASS other Other configuration parameters
151
152%PARAM access_map_reject_code 554
153
154<p>
155The numerical Postfix SMTP server response code for
156an access(5) map "reject" action.
157</p>
158
159<p>
160Do not change this unless you have a complete understanding of RFC 2821.
161</p>
162
163%PARAM access_map_defer_code 450
164
165<p>
166The numerical Postfix SMTP server response code for
167an access(5) map "defer" action, including "defer_if_permit"
168or "defer_if_reject". Prior to Postfix 2.6, the response
169is hard-coded as "450".
170</p>
171
172<p>
173Do not change this unless you have a complete understanding of RFC 2821.
174</p>
175
176<p>
177This feature is available in Postfix 2.6 and later.
178</p>
179
180%PARAM address_verify_default_transport $default_transport
181
182<p>
183Overrides the default_transport parameter setting for address
184verification probes.
185</p>
186
187<p>
188This feature is available in Postfix 2.1 and later.
189</p>
190
191%PARAM address_verify_local_transport $local_transport
192
193<p>
194Overrides the local_transport parameter setting for address
195verification probes.
196</p>
197
198<p>
199This feature is available in Postfix 2.1 and later.
200</p>
201
202%PARAM address_verify_map see "postconf -d" output
203
204<p>
205Lookup table for persistent address verification status
206storage.  The table is maintained by the verify(8) service, and
207is opened before the process releases privileges.
208</p>
209
210<p>
211The lookup table is persistent by default (Postfix 2.7 and later).
212Specify an empty table name to keep the information in volatile
213memory which is lost after "<b>postfix reload</b>" or "<b>postfix
214stop</b>". This is the default with Postfix version 2.6 and earlier.
215</p>
216
217<p>
218Specify a location in a file system that will not fill up. If the
219database becomes corrupted, the world comes to an end. To recover
220delete (NOT: truncate) the file and do "<b>postfix reload</b>".
221</p>
222
223<p> Postfix daemon processes do not use root privileges when opening
224this file (Postfix 2.5 and later).  The file must therefore be
225stored under a Postfix-owned directory such as the data_directory.
226As a migration aid, an attempt to open the file under a non-Postfix
227directory is redirected to the Postfix-owned data_directory, and a
228warning is logged. </p>
229
230<p>
231Examples:
232</p>
233
234<pre>
235address_verify_map = hash:/var/db/postfix/verify
236address_verify_map = btree:/var/db/postfix/verify
237</pre>
238
239<p>
240This feature is available in Postfix 2.1 and later.
241</p>
242
243%PARAM address_verify_negative_cache yes
244
245<p>
246Enable caching of failed address verification probe results.  When
247this feature is enabled, the cache may pollute quickly with garbage.
248When this feature is disabled, Postfix will generate an address
249probe for every lookup.
250</p>
251
252<p>
253This feature is available in Postfix 2.1 and later.
254</p>
255
256%PARAM address_verify_negative_expire_time 3d
257
258<p>
259The time after which a failed probe expires from the address
260verification cache.
261</p>
262
263<p>
264Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
265</p>
266
267<p>
268This feature is available in Postfix 2.1 and later.
269</p>
270
271%PARAM address_verify_negative_refresh_time 3h
272
273<p>
274The time after which a failed address verification probe needs to
275be refreshed.
276</p>
277
278<p>
279Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
280</p>
281
282<p>
283This feature is available in Postfix 2.1 and later.
284</p>
285
286%PARAM address_verify_cache_cleanup_interval 12h
287
288<p> The amount of time between verify(8) address verification
289database cleanup runs. This feature requires that the database
290supports the "delete" and "sequence" operators.  Specify a zero
291interval to disable database cleanup. </p>
292
293<p> After each database cleanup run, the verify(8) daemon logs the
294number of entries that were retained and dropped. A cleanup run is
295logged as "partial" when the daemon terminates early after "<b>postfix
296reload</b>", "<b>postfix stop</b>", or no requests for $max_idle
297seconds. </p>
298
299<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
300(weeks). </p>
301
302<p> This feature is available in Postfix 2.7. </p>
303
304%PARAM address_verify_poll_count normal: 3, overload: 1
305
306<p>
307How many times to query the verify(8) service for the completion
308of an address verification request in progress.
309</p>
310
311<p> By default, the Postfix SMTP server polls the verify(8) service
312up to three times under non-overload conditions, and only once when
313under overload.  With Postfix version 2.5 and earlier, the SMTP
314server always polls the verify(8) service up to three times by
315default.  </p>
316
317<p>
318Specify 1 to implement a crude form of greylisting, that is, always
319defer the first delivery request for a new address.
320</p>
321
322<p>
323Examples:
324</p>
325
326<pre>
327# Postfix &le; 2.6 default
328address_verify_poll_count = 3
329# Poor man's greylisting
330address_verify_poll_count = 1
331</pre>
332
333<p>
334This feature is available in Postfix 2.1 and later.
335</p>
336
337%PARAM address_verify_poll_delay 3s
338
339<p>
340The delay between queries for the completion of an address
341verification request in progress.
342</p>
343
344<p>
345The default polling delay is 3 seconds.
346</p>
347
348<p>
349Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
350</p>
351
352<p>
353This feature is available in Postfix 2.1 and later.
354</p>
355
356%PARAM address_verify_positive_expire_time 31d
357
358<p>
359The time after which a successful probe expires from the address
360verification cache.
361</p>
362
363<p>
364Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
365</p>
366
367<p>
368This feature is available in Postfix 2.1 and later.
369</p>
370
371%PARAM address_verify_positive_refresh_time 7d
372
373<p>
374The time after which a successful address verification probe needs
375to be refreshed.  The address verification status is not updated
376when the probe fails (optimistic caching).
377</p>
378
379<p>
380Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
381</p>
382
383<p>
384This feature is available in Postfix 2.1 and later.
385</p>
386
387%PARAM address_verify_relay_transport $relay_transport
388
389<p>
390Overrides the relay_transport parameter setting for address
391verification probes.
392</p>
393
394<p>
395This feature is available in Postfix 2.1 and later.
396</p>
397
398%PARAM address_verify_relayhost $relayhost
399
400<p>
401Overrides the relayhost parameter setting for address verification
402probes. This information can be overruled with the transport(5) table.
403</p>
404
405<p>
406This feature is available in Postfix 2.1 and later.
407</p>
408
409%PARAM address_verify_sender $double_bounce_sender
410
411<p> The sender address to use in address verification probes; prior
412to Postfix 2.5 the default was "postmaster". To
413avoid problems with address probes that are sent in response to
414address probes, the Postfix SMTP server excludes the probe sender
415address from all SMTPD access blocks. </p>
416
417<p>
418Specify an empty value (address_verify_sender =) or &lt;&gt; if you want
419to use the null sender address. Beware, some sites reject mail from
420&lt;&gt;, even though RFCs require that such addresses be accepted.
421</p>
422
423<p>
424Examples:
425</p>
426
427<pre>
428address_verify_sender = &lt;&gt;
429address_verify_sender = postmaster@my.domain
430</pre>
431
432<p>
433This feature is available in Postfix 2.1 and later.
434</p>
435
436%PARAM address_verify_transport_maps $transport_maps
437
438<p>
439Overrides the transport_maps parameter setting for address verification
440probes.
441</p>
442
443<p>
444This feature is available in Postfix 2.1 and later.
445</p>
446
447%PARAM address_verify_virtual_transport $virtual_transport
448
449<p>
450Overrides the virtual_transport parameter setting for address
451verification probes.
452</p>
453
454<p>
455This feature is available in Postfix 2.1 and later.
456</p>
457
458%PARAM alias_database see "postconf -d" output
459
460<p>
461The alias databases for local(8) delivery that are updated with
462"<b>newaliases</b>" or with "<b>sendmail -bi</b>".
463</p>
464
465<p>
466This is a separate configuration parameter because not all the
467tables specified with $alias_maps have to be local files.
468</p>
469
470<p>
471Examples:
472</p>
473
474<pre>
475alias_database = hash:/etc/aliases
476alias_database = hash:/etc/mail/aliases
477</pre>
478
479%PARAM alias_maps see "postconf -d" output
480
481<p>
482The alias databases that are used for local(8) delivery. See
483aliases(5) for syntax details.
484</p>
485
486<p>
487The default list is system dependent.  On systems with NIS, the
488default is to search the local alias database, then the NIS alias
489database.
490</p>
491
492<p>
493If you change the alias database, run "<b>postalias /etc/aliases</b>"
494(or wherever your system stores the mail alias file), or simply
495run "<b>newaliases</b>" to build the necessary DBM or DB file.
496</p>
497
498<p>
499The local(8) delivery agent disallows regular expression substitution
500of $1 etc. in alias_maps, because that would open a security hole.
501</p>
502
503<p>
504The local(8) delivery agent will silently ignore requests to use
505the proxymap(8) server within alias_maps. Instead it will open the
506table directly. Before Postfix version 2.2, the local(8) delivery
507agent will terminate with a fatal error.
508</p>
509
510<p>
511Examples:
512</p>
513
514<pre>
515alias_maps = hash:/etc/aliases, nis:mail.aliases
516alias_maps = hash:/etc/aliases
517</pre>
518
519%PARAM allow_mail_to_commands alias, forward
520
521<p>
522Restrict local(8) mail delivery to external commands.  The default
523is to disallow delivery to "|command" in :include:  files (see
524aliases(5) for the text that defines this terminology).
525</p>
526
527<p>
528Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
529in order to allow commands in aliases(5), .forward files or in
530:include:  files, respectively.
531</p>
532
533<p>
534Example:
535</p>
536
537<pre>
538allow_mail_to_commands = alias,forward,include
539</pre>
540
541%PARAM allow_mail_to_files alias, forward
542
543<p>
544Restrict local(8) mail delivery to external files. The default is
545to disallow "/file/name" destinations in :include:  files (see
546aliases(5) for the text that defines this terminology).
547</p>
548
549<p>
550Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
551in order to allow "/file/name" destinations in aliases(5), .forward
552files and in :include:  files, respectively.
553</p>
554
555<p>
556Example:
557</p>
558
559<pre>
560allow_mail_to_files = alias,forward,include
561</pre>
562
563%PARAM allow_min_user no
564
565<p>
566Allow a sender or recipient address to have `-' as the first
567character.  By
568default, this is not allowed, to avoid accidents with software that
569passes email addresses via the command line. Such software
570would not be able to distinguish a malicious address from a
571bona fide command-line option. Although this can be prevented by
572inserting a "--" option terminator into the command line, this is
573difficult to enforce consistently and globally.  </p>
574
575<p> As of Postfix version 2.5, this feature is implemented by
576trivial-rewrite(8).  With earlier versions this feature was implemented
577by qmgr(8) and was limited to recipient addresses only. </p>
578
579%PARAM allow_percent_hack yes
580
581<p>
582Enable the rewriting of the form "user%domain" to "user@domain".
583This is enabled by default.
584</p>
585
586<p> Note: with Postfix version 2.2, message header address rewriting
587happens only when one of the following conditions is true: </p>
588
589<ul>
590
591<li> The message is received with the Postfix sendmail(1) command,
592
593<li> The message is received from a network client that matches
594$local_header_rewrite_clients,
595
596<li> The message is received from the network, and the
597remote_header_rewrite_domain parameter specifies a non-empty value.
598
599</ul>
600
601<p> To get the behavior before Postfix version 2.2, specify
602"local_header_rewrite_clients = static:all". </p>
603
604<p>
605Example:
606</p>
607
608<pre>
609allow_percent_hack = no
610</pre>
611
612%PARAM allow_untrusted_routing no
613
614<p>
615Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
616from untrusted clients to destinations matching $relay_domains.
617</p>
618
619<p>
620By default, this feature is turned off.  This closes a nasty open
621relay loophole where a backup MX host can be tricked into forwarding
622junk mail to a primary MX host which then spams it out to the world.
623</p>
624
625<p>
626This parameter also controls if non-local addresses with sender-specified
627routing can match Postfix access tables. By default, such addresses
628cannot match Postfix access tables, because the address is ambiguous.
629</p>
630
631%PARAM always_bcc
632
633<p>
634Optional address that receives a "blind carbon copy" of each message
635that is received by the Postfix mail system.
636</p>
637
638<p>
639Note: if mail to the BCC address bounces it will be returned to
640the sender.
641</p>
642
643<p> Note: automatic BCC recipients are produced only for new mail.
644To avoid mailer loops, automatic BCC recipients are not generated
645after Postfix forwards mail internally, or after Postfix generates
646mail itself. </p>
647
648%PARAM berkeley_db_create_buffer_size 16777216
649
650<p>
651The per-table I/O buffer size for programs that create Berkeley DB
652hash or btree tables.  Specify a byte count.
653</p>
654
655<p>
656This feature is available in Postfix 2.0 and later.
657</p>
658
659%PARAM berkeley_db_read_buffer_size 131072
660
661<p>
662The per-table I/O buffer size for programs that read Berkeley DB
663hash or btree tables.  Specify a byte count.
664</p>
665
666<p>
667This feature is available in Postfix 2.0 and later.
668</p>
669
670%PARAM best_mx_transport
671
672<p>
673Where the Postfix SMTP client should deliver mail when it detects
674a "mail loops back to myself" error condition. This happens when
675the local MTA is the best SMTP mail exchanger for a destination
676not listed in $mydestination, $inet_interfaces, $proxy_interfaces,
677$virtual_alias_domains, or $virtual_mailbox_domains.  By default,
678the Postfix SMTP client returns such mail as undeliverable.
679</p>
680
681<p>
682Specify, for example, "best_mx_transport = local" to pass the mail
683from the Postfix SMTP client to the local(8) delivery agent. You
684can specify
685any message delivery "transport" or "transport:nexthop" that is
686defined in the master.cf file. See the transport(5) manual page
687for the syntax and meaning of "transport" or "transport:nexthop".
688</p>
689
690<p>
691However, this feature is expensive because it ties up a Postfix
692SMTP client process while the local(8) delivery agent is doing its
693work. It is more efficient (for Postfix) to list all hosted domains
694in a table or database.
695</p>
696
697%PARAM biff yes
698
699<p>
700Whether or not to use the local biff service.  This service sends
701"new mail" notifications to users who have requested new mail
702notification with the UNIX command "biff y".
703</p>
704
705<p>
706For compatibility reasons this feature is on by default.  On systems
707with lots of interactive users, the biff service can be a performance
708drain.  Specify "biff = no" in main.cf to disable.
709</p>
710
711%PARAM body_checks
712
713<p> Optional lookup tables for content inspection as specified in
714the body_checks(5) manual page.  </p>
715
716<p> Note: with Postfix versions before 2.0, these rules inspect
717all content after the primary message headers. </p>
718
719%PARAM body_checks_size_limit 51200
720
721<p>
722How much text in a message body segment (or attachment, if you
723prefer to use that term) is subjected to body_checks inspection.
724The amount of text is limited to avoid scanning huge attachments.
725</p>
726
727<p>
728This feature is available in Postfix 2.0 and later.
729</p>
730
731%PARAM bounce_queue_lifetime 5d
732
733<p>
734The maximal time a bounce message is queued before it is considered
735undeliverable.  By default, this is the same as the queue life time
736for regular mail.
737</p>
738
739<p>
740Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
741The default time unit is d (days).
742</p>
743
744<p>
745Specify 0 when mail delivery should be tried only once.
746</p>
747
748<p>
749This feature is available in Postfix 2.1 and later.
750</p>
751
752%PARAM bounce_size_limit 50000
753
754<p> The maximal amount of original message text that is sent in a
755non-delivery notification. Specify a byte count.  A message is
756returned as either message/rfc822 (the complete original) or as
757text/rfc822-headers (the headers only).  With Postfix version 2.4
758and earlier, a message is always returned as message/rfc822 and is
759truncated when it exceeds the size limit.
760</p>
761
762<p> Notes: </p>
763
764<ul>
765
766<li> <p> If you increase this limit, then you should increase the
767mime_nesting_limit value proportionally.  </p>
768
769<li> <p> Be careful when making changes.  Excessively large values
770will result in the loss of non-delivery notifications, when a bounce
771message size exceeds a local or remote MTA's message size limit.
772</p>
773
774</ul>
775
776%PARAM canonical_maps
777
778<p>
779Optional address mapping lookup tables for message headers and
780envelopes. The mapping is applied to both sender and recipient
781addresses, in both envelopes and in headers, as controlled
782with the canonical_classes parameter. This is typically used
783to clean up dirty addresses from legacy mail systems, or to replace
784login names by Firstname.Lastname.  The table format and lookups
785are documented in canonical(5). For an overview of Postfix address
786manipulations see the ADDRESS_REWRITING_README document.
787</p>
788
789<p>
790If you use this feature, run "<b>postmap /etc/postfix/canonical</b>" to
791build the necessary DBM or DB file after every change. The changes
792will become visible after a minute or so.  Use "<b>postfix reload</b>"
793to eliminate the delay.
794</p>
795
796<p> Note: with Postfix version 2.2, message header address mapping
797happens only when message header address rewriting is enabled: </p>
798
799<ul>
800
801<li> The message is received with the Postfix sendmail(1) command,
802
803<li> The message is received from a network client that matches
804$local_header_rewrite_clients,
805
806<li> The message is received from the network, and the
807remote_header_rewrite_domain parameter specifies a non-empty value.
808
809</ul>
810
811<p> To get the behavior before Postfix version 2.2, specify
812"local_header_rewrite_clients = static:all". </p>
813
814<p>
815Examples:
816</p>
817
818<pre>
819canonical_maps = dbm:/etc/postfix/canonical
820canonical_maps = hash:/etc/postfix/canonical
821</pre>
822
823%PARAM canonical_classes envelope_sender, envelope_recipient, header_sender, header_recipient
824
825<p> What addresses are subject to canonical_maps address mapping.
826By default, canonical_maps address mapping is applied to envelope
827sender and recipient addresses, and to header sender and header
828recipient addresses.  </p>
829
830<p> Specify one or more of: envelope_sender, envelope_recipient,
831header_sender, header_recipient </p>
832
833<p> This feature is available in Postfix 2.2 and later. </p>
834
835%PARAM sender_canonical_classes envelope_sender, header_sender
836
837<p> What addresses are subject to sender_canonical_maps address
838mapping.  By default, sender_canonical_maps address mapping is
839applied to envelope sender addresses, and to header sender addresses.
840</p>
841
842<p> Specify one or more of: envelope_sender, header_sender </p>
843
844<p> This feature is available in Postfix 2.2 and later. </p>
845
846%PARAM recipient_canonical_classes envelope_recipient, header_recipient
847
848<p> What addresses are subject to recipient_canonical_maps address
849mapping.  By default, recipient_canonical_maps address mapping is
850applied to envelope recipient addresses, and to header recipient
851addresses.  </p>
852
853<p> Specify one or more of: envelope_recipient, header_recipient
854</p>
855
856<p> This feature is available in Postfix 2.2 and later. </p>
857
858%PARAM command_directory see "postconf -d" output
859
860<p>
861The location of all postfix administrative commands.
862</p>
863
864%PARAM command_time_limit 1000s
865
866<p>
867Time limit for delivery to external commands. This limit is used
868by the local(8) delivery agent, and is the default time limit for
869delivery by the pipe(8) delivery agent.
870</p>
871
872<p>
873Note: if you set this time limit to a large value you must update the
874global ipc_timeout parameter as well.
875</p>
876
877%PARAM daemon_directory see "postconf -d" output
878
879<p>
880The directory with Postfix support programs and daemon programs.
881These should not be invoked directly by humans. The directory must
882be owned by root.
883</p>
884
885%PARAM daemon_timeout 18000s
886
887<p> How much time a Postfix daemon process may take to handle a
888request before it is terminated by a built-in watchdog timer.  </p>
889
890<p>
891Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
892The default time unit is s (seconds).
893</p>
894
895%PARAM debug_peer_level 2
896
897<p> The increment in verbose logging level when a remote client or
898server matches a pattern in the debug_peer_list parameter.  </p>
899
900%PARAM debug_peer_list
901
902<p> Optional list of remote client or server hostname or network
903address patterns that cause the verbose logging level to increase
904by the amount specified in $debug_peer_level.  </p>
905
906<p> Specify domain names, network/netmask patterns, "/file/name"
907patterns or "type:table" lookup tables. The right-hand side result
908from "type:table" lookups is ignored.  </p>
909
910<p> Pattern matching of domain names is controlled by the
911parent_domain_matches_subdomains parameter.  </p>
912
913<p>
914Examples:
915</p>
916
917<pre>
918debug_peer_list = 127.0.0.1
919debug_peer_list = example.com
920</pre>
921
922%PARAM default_database_type see "postconf -d" output
923
924<p>
925The default database type for use in newaliases(1), postalias(1)
926and postmap(1) commands. On many UNIX systems the default type is
927either <b>dbm</b> or <b>hash</b>. The default setting is frozen
928when the Postfix system is built.
929</p>
930
931<p>
932Examples:
933</p>
934
935<pre>
936default_database_type = hash
937default_database_type = dbm
938</pre>
939
940%PARAM default_delivery_slot_cost 5
941
942<p>
943How often the Postfix queue manager's scheduler is allowed to
944preempt delivery of one message with another.
945</p>
946
947<p>
948Each transport maintains a so-called "available delivery slot counter"
949for each message. One message can be preempted by another one when
950the other message can be delivered using no more delivery slots
951(i.e., invocations of delivery agents) than the current message
952counter has accumulated (or will eventually accumulate - see about
953slot loans below). This parameter controls how often is the counter
954incremented - it happens after each default_delivery_slot_cost
955recipients have been delivered.
956</p>
957
958<p>
959The cost of 0 is used to disable the preempting scheduling completely.
960The minimum value the scheduling algorithm can use is 2 - use it
961if you want to maximize the message throughput rate. Although there
962is no maximum, it doesn't make much sense to use values above say
96350.
964</p>
965
966<p>
967The only reason why the value of 2 is not the default is the way
968this parameter affects the delivery of mailing-list mail. In the
969worst case, their delivery can take somewhere between (cost+1/cost)
970and (cost/cost-1) times more than if the preemptive scheduler was
971disabled. The default value of 5 turns out to provide reasonable
972message response times while making sure the mailing-list deliveries
973are not extended by more than 20-25 percent even in the worst case.
974</p>
975
976<p> Use <i>transport</i>_delivery_slot_cost to specify a
977transport-specific override, where <i>transport</i> is the master.cf
978name of the message delivery transport.
979</p>
980
981<p>
982Examples:
983</p>
984
985<pre>
986default_delivery_slot_cost = 0
987default_delivery_slot_cost = 2
988</pre>
989
990%PARAM default_destination_concurrency_limit 20
991
992<p>
993The default maximal number of parallel deliveries to the same
994destination.  This is the default limit for delivery via the lmtp(8),
995pipe(8), smtp(8) and virtual(8) delivery agents.
996With per-destination recipient limit &gt; 1, a destination is a domain,
997otherwise it is a recipient.
998</p>
999
1000<p> Use <i>transport</i>_destination_concurrency_limit to specify a
1001transport-specific override, where <i>transport</i> is the master.cf
1002name of the message delivery transport.
1003</p>
1004
1005%PARAM default_destination_recipient_limit 50
1006
1007<p>
1008The default maximal number of recipients per message delivery.
1009This is the default limit for delivery via the lmtp(8), pipe(8),
1010smtp(8) and virtual(8) delivery agents.
1011</p>
1012
1013<p> Setting this parameter to a value of 1 changes the meaning of
1014the corresponding per-destination concurrency limit from concurrency
1015per domain into concurrency per recipient.  </p>
1016
1017<p> Use <i>transport</i>_destination_recipient_limit to specify a
1018transport-specific override, where <i>transport</i> is the master.cf
1019name of the message delivery transport.
1020</p>
1021
1022%PARAM default_extra_recipient_limit 1000
1023
1024<p>
1025The default value for the extra per-transport limit imposed on the
1026number of in-memory recipients.  This extra recipient space is
1027reserved for the cases when the Postfix queue manager's scheduler
1028preempts one message with another and suddenly needs some extra
1029recipients slots for the chosen message in order to avoid performance
1030degradation.
1031</p>
1032
1033<p> Use <i>transport</i>_extra_recipient_limit to specify a
1034transport-specific override, where <i>transport</i> is the master.cf
1035name of the message delivery transport.
1036</p>
1037
1038%PARAM default_minimum_delivery_slots 3
1039
1040<p>
1041How many recipients a message must have in order to invoke the
1042Postfix queue manager's scheduling algorithm at all.  Messages
1043which would never accumulate at least this many delivery slots
1044(subject to slot cost parameter as well) are never preempted.
1045</p>
1046
1047<p> Use <i>transport</i>_minimum_delivery_slots to specify a
1048transport-specific override, where <i>transport</i> is the master.cf
1049name of the message delivery transport.
1050</p>
1051
1052%PARAM default_privs nobody
1053
1054<p>
1055The default rights used by the local(8) delivery agent for delivery
1056to external file or command.  These rights are used when delivery
1057is requested from an aliases(5) file that is owned by <b>root</b>, or
1058when delivery is done on behalf of <b>root</b>. <b>DO NOT SPECIFY A
1059PRIVILEGED USER OR THE POSTFIX OWNER</b>.
1060</p>
1061
1062%PARAM default_process_limit 100
1063
1064<p>
1065The default maximal number of Postfix child processes that provide
1066a given service. This limit can be overruled for specific services
1067in the master.cf file.
1068</p>
1069
1070%PARAM default_rbl_reply see "postconf -d" output
1071
1072<p>
1073The default Postfix SMTP server response template for a request that is
1074rejected by an RBL-based restriction. This template can be overruled
1075by specific entries in the optional rbl_reply_maps lookup table.
1076</p>
1077
1078<p>
1079This feature is available in Postfix 2.0 and later.
1080</p>
1081
1082<p>
1083The template is subject to exactly one level of $name substitution:
1084</p>
1085
1086<dl>
1087
1088<dt><b>$client</b></dt>
1089
1090<dd>The client hostname and IP address, formatted as name[address]. </dd>
1091
1092<dt><b>$client_address</b></dt>
1093
1094<dd>The client IP address. </dd>
1095
1096<dt><b>$client_name</b></dt>
1097
1098<dd>The client hostname or "unknown". See reject_unknown_client_hostname
1099for more details. </dd>
1100
1101<dt><b>$reverse_client_name</b></dt>
1102
1103<dd>The client hostname from address-&gt;name lookup, or "unknown".
1104See reject_unknown_reverse_client_hostname for more details. </dd>
1105
1106#<dt><b>$forward_client_name</b></dt>
1107#
1108#<dd>The client hostname from address-&gt;name lookup followed by
1109#name-&gt;address lookup, or "unknown".  See
1110#reject_unknown_forward_client_hostname for more details. </dd>
1111
1112<dt><b>$helo_name</b></dt>
1113
1114<dd>The hostname given in HELO or EHLO command or empty string. </dd>
1115
1116<dt><b>$rbl_class</b></dt>
1117
1118<dd>The blacklisted entity type: Client host, Helo command, Sender
1119address, or Recipient address. </dd>
1120
1121<dt><b>$rbl_code</b></dt>
1122
1123<dd>The numerical SMTP response code, as specified with the
1124maps_rbl_reject_code configuration parameter. Note: The numerical
1125SMTP response code is required, and must appear at the start of the
1126reply. With Postfix version 2.3 and later this information may be followed
1127by an RFC 3463 enhanced status code. </dd>
1128
1129<dt><b>$rbl_domain</b></dt>
1130
1131<dd>The RBL domain where $rbl_what is blacklisted. </dd>
1132
1133<dt><b>$rbl_reason</b></dt>
1134
1135<dd>The reason why $rbl_what is blacklisted, or an empty string. </dd>
1136
1137<dt><b>$rbl_what</b></dt>
1138
1139<dd>The entity that is blacklisted (an IP address, a hostname, a domain
1140name, or an email address whose domain was blacklisted). </dd>
1141
1142<dt><b>$recipient</b></dt>
1143
1144<dd>The recipient address or &lt;&gt; in case of the null address. </dd>
1145
1146<dt><b>$recipient_domain</b></dt>
1147
1148<dd>The recipient domain or empty string. </dd>
1149
1150<dt><b>$recipient_name</b></dt>
1151
1152<dd>The recipient address localpart or &lt;&gt; in case of null address. </dd>
1153
1154<dt><b>$sender</b></dt>
1155
1156<dd>The sender address or &lt;&gt; in case of the null address. </dd>
1157
1158<dt><b>$sender_domain</b></dt>
1159
1160<dd>The sender domain or empty string. </dd>
1161
1162<dt><b>$sender_name</b></dt>
1163
1164<dd>The sender address localpart or &lt;&gt; in case of the null address. </dd>
1165
1166<dt><b>${name?text}</b></dt>
1167
1168<dd>Expands to `text' if $name is not empty. </dd>
1169
1170<dt><b>${name:text}</b></dt>
1171
1172<dd>Expands to `text' if $name is empty. </dd>
1173
1174</dl>
1175
1176<p>
1177Instead of $name you can also specify ${name} or $(name).
1178</p>
1179
1180<p> Note: when an enhanced status code is specified in an RBL reply
1181template, it is subject to modification.  The following transformations
1182are needed when the same RBL reply template is used for client,
1183helo, sender, or recipient access restrictions.  </p>
1184
1185<ul>
1186
1187<li> <p> When rejecting a sender address, the Postfix SMTP server
1188will transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the
1189corresponding sender DSN status, and vice versa. </p>
1190
1191<li> <p> When rejecting non-address information (such as the HELO
1192command argument or the client hostname/address), the Postfix SMTP
1193server will transform a sender or recipient DSN status into a generic
1194non-address DSN status (e.g., 4.0.0).  </p>
1195
1196</ul>
1197
1198%PARAM smtpd_expansion_filter see "postconf -d" output
1199
1200<p>
1201The smtpd_expansion_filter configuration parameter controls what
1202characters may appear in $name expansions.
1203</p>
1204
1205%PARAM default_recipient_limit 20000
1206
1207<p>
1208The default per-transport upper limit on the number of in-memory
1209recipients.  These limits take priority over the global
1210qmgr_message_recipient_limit after the message has been assigned
1211to the respective transports.  See also default_extra_recipient_limit
1212and qmgr_message_recipient_minimum.
1213</p>
1214
1215<p> Use <i>transport</i>_recipient_limit to specify a
1216transport-specific override, where <i>transport</i> is the master.cf
1217name of the message delivery transport.
1218</p>
1219
1220%PARAM default_recipient_refill_limit 100
1221
1222<p>
1223The default per-transport limit on the number of recipients refilled at
1224once.  When not all message recipients fit into the memory at once, keep
1225loading more of them in batches of at least this many at a time.  See also
1226$default_recipient_refill_delay, which may result in recipient batches
1227lower than this when this limit is too high for too slow deliveries.
1228</p>
1229
1230<p> Use <i>transport</i>_recipient_refill_limit to specify a
1231transport-specific override, where <i>transport</i> is the master.cf
1232name of the message delivery transport.
1233</p>
1234
1235<p> This feature is available in Postfix 2.4 and later. </p>
1236
1237%PARAM default_recipient_refill_delay 5s
1238
1239<p>
1240The default per-transport maximum delay between recipients refills.
1241When not all message recipients fit into the memory at once, keep loading
1242more of them at least once every this many seconds.  This is used to
1243make sure the recipients are refilled in timely manner even when
1244$default_recipient_refill_limit is too high for too slow deliveries.
1245</p>
1246
1247<p> Use <i>transport</i>_recipient_refill_delay to specify a
1248transport-specific override, where <i>transport</i> is the master.cf
1249name of the message delivery transport.
1250</p>
1251
1252<p> This feature is available in Postfix 2.4 and later. </p>
1253
1254%PARAM default_transport smtp
1255
1256<p>
1257The default mail delivery transport and next-hop destination for
1258destinations that do not match $mydestination, $inet_interfaces,
1259$proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains,
1260or $relay_domains.  This information can be overruled with the
1261sender_dependent_default_transport_maps parameter and with the
1262transport(5) table. </p>
1263
1264<p>
1265In order of decreasing precedence, the nexthop destination is taken
1266from $sender_dependent_default_transport_maps, $default_transport,
1267$sender_dependent_relayhost_maps, $relayhost, or from the recipient
1268domain.
1269</p>
1270
1271<p>
1272Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
1273is the name of a mail delivery transport defined in master.cf.
1274The <i>:nexthop</i> destination is optional; its syntax is documented
1275in the manual page of the corresponding delivery agent.
1276</p>
1277
1278<p>
1279Example:
1280</p>
1281
1282<pre>
1283default_transport = uucp:relayhostname
1284</pre>
1285
1286%PARAM defer_code 450
1287
1288<p>
1289The numerical Postfix SMTP server response code when a remote SMTP
1290client request is rejected by the "defer" restriction.
1291</p>
1292
1293<p>
1294Do not change this unless you have a complete understanding of RFC 2821.
1295</p>
1296
1297%PARAM defer_transports
1298
1299<p>
1300The names of message delivery transports that should not deliver mail
1301unless someone issues "<b>sendmail -q</b>" or equivalent. Specify zero
1302or more names of mail delivery transports names that appear in the
1303first field of master.cf.
1304</p>
1305
1306<p>
1307Example:
1308</p>
1309
1310<pre>
1311defer_transports = smtp
1312</pre>
1313
1314%PARAM deliver_lock_attempts 20
1315
1316<p>
1317The maximal number of attempts to acquire an exclusive lock on a
1318mailbox file or bounce(8) logfile.
1319</p>
1320
1321%PARAM deliver_lock_delay 1s
1322
1323<p>
1324The time between attempts to acquire an exclusive lock on a mailbox
1325file or bounce(8) logfile.
1326</p>
1327
1328<p>
1329Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1330The default time unit is s (seconds).
1331</p>
1332
1333%PARAM disable_vrfy_command no
1334
1335<p>
1336Disable the SMTP VRFY command. This stops some techniques used to
1337harvest email addresses.
1338</p>
1339
1340<p>
1341Example:
1342</p>
1343
1344<pre>
1345disable_vrfy_command = no
1346</pre>
1347
1348%PARAM double_bounce_sender double-bounce
1349
1350<p> The sender address of postmaster notifications that are generated
1351by the mail system. All mail to this address is silently discarded,
1352in order to terminate mail bounce loops.  </p>
1353
1354%PARAM duplicate_filter_limit 1000
1355
1356<p> The maximal number of addresses remembered by the address
1357duplicate filter for aliases(5) or virtual(5) alias expansion, or
1358for showq(8) queue displays.  </p>
1359
1360%PARAM enable_original_recipient yes
1361
1362<p> Enable support for the X-Original-To message header. This header
1363is needed for multi-recipient mailboxes.  </p>
1364
1365<p> When this parameter is set to yes, the cleanup(8) daemon performs
1366duplicate elimination on distinct pairs of (original recipient,
1367rewritten recipient), and generates non-empty original recipient
1368queue file records.  </p>
1369
1370<p> When this parameter is set to no, the cleanup(8) daemon performs
1371duplicate elimination on the rewritten recipient address only, and
1372generates empty original recipient queue file records.  </p>
1373
1374<p> This feature is available in Postfix 2.1 and later. With Postfix
1375version 2.0, support for the X-Original-To message header is always turned
1376on. Postfix versions before 2.0 have no support for the X-Original-To
1377message header.  </p>
1378
1379%PARAM export_environment see "postconf -d" output
1380
1381<p>
1382The list of environment variables that a Postfix process will export
1383to non-Postfix processes. The TZ variable is needed for sane
1384time keeping on System-V-ish systems.
1385</p>
1386
1387<p>
1388Specify a list of names and/or name=value pairs, separated by
1389whitespace or comma. The name=value form is supported with
1390Postfix version 2.1 and later.
1391</p>
1392
1393<p>
1394Example:
1395</p>
1396
1397<pre>
1398export_environment = TZ PATH=/bin:/usr/bin
1399</pre>
1400
1401%PARAM smtp_fallback_relay $fallback_relay
1402
1403<p>
1404Optional list of relay hosts for SMTP destinations that can't be
1405found or that are unreachable. With Postfix 2.2 and earlier this
1406parameter is called fallback_relay.  </p>
1407
1408<p>
1409By default, mail is returned to the sender when a destination is
1410not found, and delivery is deferred when a destination is unreachable.
1411</p>
1412
1413<p> The fallback relays must be SMTP destinations. Specify a domain,
1414host, host:port, [host]:port, [address] or [address]:port; the form
1415[host] turns off MX lookups.  If you specify multiple SMTP
1416destinations, Postfix will try them in the specified order.  </p>
1417
1418<p> To prevent mailer loops between MX hosts and fall-back hosts,
1419Postfix version 2.2 and later will not use the fallback relays for
1420destinations that it is MX host for (assuming DNS lookup is turned on).
1421</p>
1422
1423%PARAM fallback_relay
1424
1425<p>
1426Optional list of relay hosts for SMTP destinations that can't be
1427found or that are unreachable. With Postfix 2.3 this parameter
1428is renamed to smtp_fallback_relay. </p>
1429
1430<p>
1431By default, mail is returned to the sender when a destination is
1432not found, and delivery is deferred when a destination is unreachable.
1433</p>
1434
1435<p> The fallback relays must be SMTP destinations. Specify a domain,
1436host, host:port, [host]:port, [address] or [address]:port; the form
1437[host] turns off MX lookups.  If you specify multiple SMTP
1438destinations, Postfix will try them in the specified order.  </p>
1439
1440<p> Note: before Postfix 2.2, do not use the fallback_relay feature
1441when relaying mail
1442for a backup or primary MX domain. Mail would loop between the
1443Postfix MX host and the fallback_relay host when the final destination
1444is unavailable. </p>
1445
1446<ul>
1447
1448<li> In main.cf specify "relay_transport = relay",
1449
1450<li> In master.cf specify "-o fallback_relay =" (i.e., empty) at
1451the end of the <tt>relay</tt> entry.
1452
1453<li> In transport maps, specify "relay:<i>nexthop...</i>"
1454as the right-hand side for backup or primary MX domain entries.
1455
1456</ul>
1457
1458<p> Postfix version 2.2 and later will not use the fallback_relay feature
1459for destinations that it is MX host for.
1460</p>
1461
1462%PARAM fast_flush_domains $relay_domains
1463
1464<p>
1465Optional list of destinations that are eligible for per-destination
1466logfiles with mail that is queued to those destinations.
1467</p>
1468
1469<p>
1470By default, Postfix maintains "fast flush" logfiles only for
1471destinations that the Postfix SMTP server is willing to relay to
1472(i.e. the default is: "fast_flush_domains = $relay_domains"; see
1473the relay_domains parameter in the postconf(5) manual).
1474</p>
1475
1476<p> Specify a list of hosts or domains, "/file/name" patterns or
1477"type:table" lookup tables, separated by commas and/or whitespace.
1478Continue long lines by starting the next line with whitespace. A
1479"/file/name" pattern is replaced by its contents; a "type:table"
1480lookup table is matched when the domain or its parent domain appears
1481as lookup key.  </p>
1482
1483<p>
1484Specify "fast_flush_domains =" (i.e., empty) to disable the feature
1485altogether.
1486</p>
1487
1488%PARAM fast_flush_purge_time 7d
1489
1490<p>
1491The time after which an empty per-destination "fast flush" logfile
1492is deleted.
1493</p>
1494
1495<p>
1496You can specify the time as a number, or as a number followed by
1497a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
1498d=days, w=weeks.  The default time unit is days.
1499</p>
1500
1501%PARAM fast_flush_refresh_time 12h
1502
1503<p>
1504The time after which a non-empty but unread per-destination "fast
1505flush" logfile needs to be refreshed.  The contents of a logfile
1506are refreshed by requesting delivery of all messages listed in the
1507logfile.
1508</p>
1509
1510<p>
1511You can specify the time as a number, or as a number followed by
1512a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
1513d=days, w=weeks.  The default time unit is hours.
1514</p>
1515
1516%PARAM fork_attempts 5
1517
1518<p> The maximal number of attempts to fork() a child process.  </p>
1519
1520%PARAM fork_delay 1s
1521
1522<p> The delay between attempts to fork() a child process.  </p>
1523
1524<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
1525(weeks).  The default time unit is s (seconds).  </p>
1526
1527%PARAM execution_directory_expansion_filter see "postconf -d" output
1528
1529<p> Restrict the characters that the local(8) delivery agent allows
1530in $name expansions of $command_execution_directory.  Characters
1531outside the allowed set are replaced by underscores.  </p>
1532
1533<p> This feature is available in Postfix 2.2 and later. </p>
1534
1535%PARAM command_execution_directory
1536
1537<p> The local(8) delivery agent working directory for delivery to
1538external command.  Failure to change directory causes the delivery
1539to be deferred. </p>
1540
1541<p> The following $name expansions are done on command_execution_directory
1542before the directory is changed. Expansion happens in the context
1543of the delivery request.  The result of $name expansion is filtered
1544with the character set that is specified with the
1545execution_directory_expansion_filter parameter.  </p>
1546
1547<dl>
1548
1549<dt><b>$user</b></dt>
1550
1551<dd>The recipient's username. </dd>
1552
1553<dt><b>$shell</b></dt>
1554
1555<dd>The recipient's login shell pathname. </dd>
1556
1557<dt><b>$home</b></dt>
1558
1559<dd>The recipient's home directory. </dd>
1560
1561<dt><b>$recipient</b></dt>
1562
1563<dd>The full recipient address. </dd>
1564
1565<dt><b>$extension</b></dt>
1566
1567<dd>The optional recipient address extension. </dd>
1568
1569<dt><b>$domain</b></dt>
1570
1571<dd>The recipient domain. </dd>
1572
1573<dt><b>$local</b></dt>
1574
1575<dd>The entire recipient localpart. </dd>
1576
1577<dt><b>$recipient_delimiter</b></dt>
1578
1579<dd>The system-wide recipient address extension delimiter. </dd>
1580
1581<dt><b>${name?value}</b></dt>
1582
1583<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
1584
1585<dt><b>${name:value}</b></dt>
1586
1587<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
1588
1589</dl>
1590
1591<p>
1592Instead of $name you can also specify ${name} or $(name).
1593</p>
1594
1595<p> This feature is available in Postfix 2.2 and later. </p>
1596
1597%PARAM forward_path see "postconf -d" output
1598
1599<p> The local(8) delivery agent search list for finding a .forward
1600file with user-specified delivery methods. The first file that is
1601found is used.  </p>
1602
1603<p> The following $name expansions are done on forward_path before
1604the search actually happens. The result of $name expansion is
1605filtered with the character set that is specified with the
1606forward_expansion_filter parameter.  </p>
1607
1608<dl>
1609
1610<dt><b>$user</b></dt>
1611
1612<dd>The recipient's username. </dd>
1613
1614<dt><b>$shell</b></dt>
1615
1616<dd>The recipient's login shell pathname. </dd>
1617
1618<dt><b>$home</b></dt>
1619
1620<dd>The recipient's home directory. </dd>
1621
1622<dt><b>$recipient</b></dt>
1623
1624<dd>The full recipient address. </dd>
1625
1626<dt><b>$extension</b></dt>
1627
1628<dd>The optional recipient address extension. </dd>
1629
1630<dt><b>$domain</b></dt>
1631
1632<dd>The recipient domain. </dd>
1633
1634<dt><b>$local</b></dt>
1635
1636<dd>The entire recipient localpart. </dd>
1637
1638<dt><b>$recipient_delimiter</b></dt>
1639
1640<dd>The system-wide recipient address extension delimiter. </dd>
1641
1642<dt><b>${name?value}</b></dt>
1643
1644<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
1645
1646<dt><b>${name:value}</b></dt>
1647
1648<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
1649
1650</dl>
1651
1652<p>
1653Instead of $name you can also specify ${name} or $(name).
1654</p>
1655
1656<p>
1657Examples:
1658</p>
1659
1660<pre>
1661forward_path = /var/forward/$user
1662forward_path =
1663    /var/forward/$user/.forward$recipient_delimiter$extension,
1664    /var/forward/$user/.forward
1665</pre>
1666
1667%CLASS queue-hashing Queue directory hashing
1668
1669<p>
1670Queue directory hashing is a performance feature. Splitting one
1671queue directory across multiple subdirectory levels can speed up
1672file access by reducing the number of files per directory.
1673</p>
1674
1675<p>
1676Unfortunately, deeply hashing the incoming or deferred queue can
1677actually slow down the mail system (with a depth of 2, mailq with
1678an empty queue can take several seconds).
1679</p>
1680
1681<p>
1682Hashing must NOT be used with a world-writable maildrop directory.
1683Hashing MUST be used for the defer logfile directory, to avoid poor
1684performance when handling lots of deferred mail.
1685</p>
1686
1687%PARAM hash_queue_depth 1
1688
1689<p>
1690The number of subdirectory levels for queue directories listed with
1691the hash_queue_names parameter. Queue hashing is implemented by
1692creating one or more levels of directories with one-character names.
1693Originally, these directory names were equal to the first characters
1694of the queue file name, with the hexadecimal representation of the
1695file creation time in microseconds. </p>
1696
1697<p> With long queue file names, queue hashing produces the same
1698results as with short names. The file creation time in microseconds
1699is converted into hexadecimal form before the result is used for
1700queue hashing.  The base 16 encoding gives finer control over the
1701number of subdirectories than is possible with the base 52 encoding
1702of long queue file names.  </p>
1703
1704<p>
1705After changing the hash_queue_names or hash_queue_depth parameter,
1706execute the command "<b>postfix reload</b>".
1707</p>
1708
1709%PARAM hash_queue_names deferred, defer
1710
1711<p>
1712The names of queue directories that are split across multiple
1713subdirectory levels.
1714</p>
1715
1716<p> Before Postfix version 2.2, the default list of hashed queues
1717was significantly larger. Claims about improvements in file system
1718technology suggest that hashing of the incoming and active queues
1719is no longer needed. Fewer hashed directories speed up the time
1720needed to restart Postfix. </p>
1721
1722<p>
1723After changing the hash_queue_names or hash_queue_depth parameter,
1724execute the command "<b>postfix reload</b>".
1725</p>
1726
1727%CLASS headerbody-checks Content inspection built-in features
1728
1729<p>
1730The Postfix cleanup(8) server has a limited ability to inspect
1731message headers and body content for signs of trouble. This is not
1732meant to be a substitute for content filters that do complex
1733processing such attachment decoding and unzipping.
1734</p>
1735
1736%PARAM header_checks
1737
1738<p>
1739Optional lookup tables for content inspection of primary non-MIME
1740message headers, as specified in the header_checks(5) manual page.
1741</p>
1742
1743%PARAM header_size_limit 102400
1744
1745<p>
1746The maximal amount of memory in bytes for storing a message header.
1747If a header is larger, the excess is discarded.  The limit is
1748enforced by the cleanup(8) server.
1749</p>
1750
1751%PARAM home_mailbox
1752
1753<p>
1754Optional pathname of a mailbox file relative to a local(8) user's
1755home directory.
1756</p>
1757
1758<p>
1759Specify a pathname ending in "/" for qmail-style delivery.
1760</p>
1761
1762<p> The precedence of local(8) delivery features from high to low
1763is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
1764mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
1765fallback_transport_maps, fallback_transport and luser_relay.  </p>
1766
1767<p>
1768Examples:
1769</p>
1770
1771<pre>
1772home_mailbox = Mailbox
1773home_mailbox = Maildir/
1774</pre>
1775
1776%PARAM hopcount_limit 50
1777
1778<p>
1779The maximal number of Received:  message headers that is allowed
1780in the primary message headers. A message that exceeds the limit
1781is bounced, in order to stop a mailer loop.
1782</p>
1783
1784%PARAM ignore_mx_lookup_error no
1785
1786<p> Ignore DNS MX lookups that produce no response.  By default,
1787the Postfix SMTP client defers delivery and tries again after some
1788delay.  This behavior is required by the SMTP standard.  </p>
1789
1790<p>
1791Specify "ignore_mx_lookup_error = yes" to force a DNS A record
1792lookup instead. This violates the SMTP standard and can result in
1793mis-delivery of mail.
1794</p>
1795
1796%PARAM import_environment see "postconf -d" output
1797
1798<p>
1799The list of environment parameters that a Postfix process will
1800import from a non-Postfix parent process. Examples of relevant
1801parameters:
1802</p>
1803
1804<dl>
1805
1806<dt><b>TZ</b></dt>
1807
1808<dd>Needed for sane time keeping on most System-V-ish systems. </dd>
1809
1810<dt><b>DISPLAY</b></dt>
1811
1812<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
1813
1814<dt><b>XAUTHORITY</b></dt>
1815
1816<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
1817
1818<dt><b>MAIL_CONFIG</b></dt>
1819
1820<dd>Needed to make "<b>postfix -c</b>" work. </dd>
1821
1822</dl>
1823
1824<p> Specify a list of names and/or name=value pairs, separated by
1825whitespace or comma. The name=value form is supported with
1826Postfix version 2.1 and later.  </p>
1827
1828%PARAM in_flow_delay 1s
1829
1830<p> Time to pause before accepting a new message, when the message
1831arrival rate exceeds the message delivery rate. This feature is
1832turned on by default (it's disabled on SCO UNIX due to an SCO bug).
1833</p>
1834
1835<p>
1836With the default 100 Postfix SMTP server process limit, "in_flow_delay
1837= 1s" limits the mail inflow to 100 messages per second above the
1838number of messages delivered per second.
1839</p>
1840
1841<p>
1842Specify 0 to disable the feature. Valid delays are 0..10.
1843</p>
1844
1845%PARAM inet_interfaces all
1846
1847<p> The network interface addresses that this mail system receives
1848mail on. Specify "all" to receive mail on all network
1849interfaces (default), and "loopback-only" to receive mail
1850on loopback network interfaces only (Postfix version 2.2 and later).  The
1851parameter also controls delivery of mail to <tt>user@[ip.address]</tt>.
1852</p>
1853
1854<p>
1855Note 1: you need to stop and start Postfix when this parameter changes.
1856</p>
1857
1858<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
1859but this form is not required here. </p>
1860
1861<p> When inet_interfaces specifies just one IPv4 and/or IPv6 address
1862that is not a loopback address, the Postfix SMTP client will use
1863this address as the IP source address for outbound mail. Support
1864for IPv6 is available in Postfix version 2.2 and later. </p>
1865
1866<p>
1867On a multi-homed firewall with separate Postfix instances listening on the
1868"inside" and "outside" interfaces, this can prevent each instance from
1869being able to reach remote SMTP servers on the "other side" of the
1870firewall. Setting
1871smtp_bind_address to 0.0.0.0 avoids the potential problem for
1872IPv4, and setting smtp_bind_address6 to :: solves the problem
1873for IPv6. </p>
1874
1875<p>
1876A better solution for multi-homed firewalls is to leave inet_interfaces
1877at the default value and instead use explicit IP addresses in
1878the master.cf SMTP server definitions.  This preserves the Postfix
1879SMTP client's
1880loop detection, by ensuring that each side of the firewall knows that the
1881other IP address is still the same host. Setting $inet_interfaces to a
1882single IPv4 and/or IPV6 address is primarily useful with virtual
1883hosting of domains on
1884secondary IP addresses, when each IP address serves a different domain
1885(and has a different $myhostname setting). </p>
1886
1887<p>
1888See also the proxy_interfaces parameter, for network addresses that
1889are forwarded to Postfix by way of a proxy or address translator.
1890</p>
1891
1892<p>
1893Examples:
1894</p>
1895
1896<pre>
1897inet_interfaces = all (DEFAULT)
1898inet_interfaces = loopback-only (Postfix version 2.2 and later)
1899inet_interfaces = 127.0.0.1
1900inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later)
1901inet_interfaces = 192.168.1.2, 127.0.0.1
1902</pre>
1903
1904%PARAM inet_protocols all
1905
1906<p> The Internet protocols Postfix will attempt to use when making
1907or accepting connections. Specify one or more of "ipv4"
1908or "ipv6", separated by whitespace or commas. The form
1909"all" is equivalent to "ipv4, ipv6" or "ipv4", depending
1910on whether the operating system implements IPv6. </p>
1911
1912<p> With Postfix 2.8 and earlier the default is "ipv4". For backwards
1913compatibility with these releases, the Postfix 2.9 and later upgrade
1914procedure appends an explicit "inet_protocols = ipv4" setting to
1915main.cf when no explicit setting is present. This compatibility
1916workaround will be phased out as IPv6 deployment becomes more common.
1917</p>
1918
1919<p> This feature is available in Postfix 2.2 and later. </p>
1920
1921<p> Note: you MUST stop and start Postfix after changing this
1922parameter. </p>
1923
1924<p> On systems that pre-date IPV6_V6ONLY support (RFC 3493), an
1925IPv6 server will also accept IPv4 connections, even when IPv4 is
1926turned off with the inet_protocols parameter.  On systems with
1927IPV6_V6ONLY support, Postfix will use separate server sockets for
1928IPv6 and IPv4, and each will accept only connections for the
1929corresponding protocol.  </p>
1930
1931<p> When IPv4 support is enabled via the inet_protocols parameter,
1932Postfix will look up DNS type A records, and will convert
1933IPv4-in-IPv6 client IP addresses (::ffff:1.2.3.4) to their original
1934IPv4 form (1.2.3.4).  The latter is needed on hosts that pre-date
1935IPV6_V6ONLY support (RFC 3493). </p>
1936
1937<p> When IPv6 support is enabled via the inet_protocols parameter,
1938Postfix will do DNS type AAAA record lookups. </p>
1939
1940<p> When both IPv4 and IPv6 support are enabled, the Postfix SMTP
1941client will attempt to connect via IPv6 before attempting to use
1942IPv4.  </p>
1943
1944<p>
1945Examples:
1946</p>
1947
1948<pre>
1949inet_protocols = ipv4
1950inet_protocols = all (DEFAULT)
1951inet_protocols = ipv6
1952inet_protocols = ipv4, ipv6
1953</pre>
1954
1955%PARAM initial_destination_concurrency 5
1956
1957<p>
1958The initial per-destination concurrency level for parallel delivery
1959to the same destination.
1960With per-destination recipient limit &gt; 1, a destination is a domain,
1961otherwise it is a recipient.
1962</p>
1963
1964<p> Use <i>transport</i>_initial_destination_concurrency to specify
1965a transport-specific override, where <i>transport</i> is the master.cf
1966name of the message delivery transport (Postfix 2.5 and later). </p>
1967
1968<p>
1969Warning: with concurrency of 1, one bad message can be enough to
1970block all mail to a site.
1971</p>
1972
1973%PARAM invalid_hostname_reject_code 501
1974
1975<p>
1976The numerical Postfix SMTP server response code when the client
1977HELO or EHLO command parameter is rejected by the reject_invalid_helo_hostname
1978restriction.
1979</p>
1980
1981<p>
1982Do not change this unless you have a complete understanding of RFC 2821.
1983</p>
1984
1985%PARAM ipc_idle version dependent
1986
1987<p>
1988The time after which a client closes an idle internal communication
1989channel.  The purpose is to allow Postfix daemon processes to
1990terminate voluntarily after they become idle. This is used, for
1991example, by the Postfix address resolving and rewriting clients.
1992</p>
1993
1994<p> With Postfix 2.4 the default value was reduced from 100s to 5s. </p>
1995
1996<p>
1997Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1998The default time unit is s (seconds).
1999</p>
2000
2001%PARAM ipc_timeout 3600s
2002
2003<p>
2004The time limit for sending or receiving information over an internal
2005communication channel.  The purpose is to break out of deadlock
2006situations. If the time limit is exceeded the software aborts with a
2007fatal error.
2008</p>
2009
2010<p>
2011Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2012The default time unit is s (seconds).
2013</p>
2014
2015%PARAM ipc_ttl 1000s
2016
2017<p>
2018The time after which a client closes an active internal communication
2019channel.  The purpose is to allow Postfix daemon processes to
2020terminate voluntarily
2021after reaching their client limit.  This is used, for example, by
2022the Postfix address resolving and rewriting clients.
2023</p>
2024
2025<p>
2026Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2027The default time unit is s (seconds).
2028</p>
2029
2030<p>
2031This feature is available in Postfix 2.1 and later.
2032</p>
2033
2034%PARAM line_length_limit 2048
2035
2036<p> Upon input, long lines are chopped up into pieces of at most
2037this length; upon delivery, long lines are reconstructed.  </p>
2038
2039%PARAM lmtp_connect_timeout 0s
2040
2041<p> The Postfix LMTP client time limit for completing a TCP connection, or
2042zero (use the operating system built-in time limit).  When no
2043connection can be made within the deadline, the LMTP client tries
2044the next address on the mail exchanger list.  </p>
2045
2046<p>
2047Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2048The default time unit is s (seconds).
2049</p>
2050
2051<p>
2052Example:
2053</p>
2054
2055<pre>
2056lmtp_connect_timeout = 30s
2057</pre>
2058
2059%PARAM lmtp_data_done_timeout 600s
2060
2061<p> The Postfix LMTP client time limit for sending the LMTP ".",
2062and for receiving the remote LMTP server response.  When no response
2063is received within the deadline, a warning is logged that the mail
2064may be delivered multiple times.  </p>
2065
2066<p>
2067Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2068The default time unit is s (seconds).
2069</p>
2070
2071%PARAM lmtp_data_init_timeout 120s
2072
2073<p>
2074The Postfix LMTP client time limit for sending the LMTP DATA command,
2075and
2076for receiving the remote LMTP server response.
2077</p>
2078
2079<p>
2080Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2081The default time unit is s (seconds).
2082</p>
2083
2084%PARAM lmtp_data_xfer_timeout 180s
2085
2086<p>
2087The Postfix LMTP client time limit for sending the LMTP message
2088content.
2089When the connection stalls for more than $lmtp_data_xfer_timeout
2090the LMTP client terminates the transfer.
2091</p>
2092
2093<p>
2094Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2095The default time unit is s (seconds).
2096</p>
2097
2098%PARAM lmtp_lhlo_timeout 300s
2099
2100<p> The Postfix LMTP client time limit for receiving the LMTP
2101greeting banner.  When the remote LMTP server drops the connection
2102without sending a
2103greeting banner, or when it sends no greeting banner within the
2104deadline, the LMTP client tries the next address on the mail
2105exchanger list.  </p>
2106
2107<p>
2108Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2109The default time unit is s (seconds).
2110</p>
2111
2112%PARAM lmtp_mail_timeout 300s
2113
2114<p>
2115The Postfix LMTP client time limit for sending the MAIL FROM command,
2116and for receiving the remote LMTP server response.
2117</p>
2118
2119<p>
2120Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2121The default time unit is s (seconds).
2122</p>
2123
2124%PARAM lmtp_quit_timeout 300s
2125
2126<p>
2127The Postfix LMTP client time limit for sending the QUIT command,
2128and for receiving the remote LMTP server response.
2129</p>
2130
2131<p>
2132Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2133The default time unit is s (seconds).
2134</p>
2135
2136%PARAM lmtp_rcpt_timeout 300s
2137
2138<p>
2139The Postfix LMTP client time limit for sending the RCPT TO command,
2140and for receiving the remote LMTP server response.
2141</p>
2142
2143<p>
2144Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2145The default time unit is s (seconds).
2146</p>
2147
2148%PARAM lmtp_rset_timeout 20s
2149
2150<p> The Postfix LMTP client time limit for sending the RSET command,
2151and for receiving the remote LMTP server response. The LMTP client
2152sends RSET in
2153order to finish a recipient address probe, or to verify that a
2154cached connection is still alive.  </p>
2155
2156<p>
2157Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2158The default time unit is s (seconds).
2159</p>
2160
2161%PARAM lmtp_send_xforward_command no
2162
2163<p>
2164Send an XFORWARD command to the remote LMTP server when the LMTP LHLO
2165server response announces XFORWARD support.  This allows an lmtp(8)
2166delivery agent, used for content filter message injection, to
2167forward the name, address, protocol and HELO name of the original
2168client to the content filter and downstream queuing LMTP server.
2169Before you change the value to yes, it is best to make sure that
2170your content filter supports this command.
2171</p>
2172
2173<p>
2174This feature is available in Postfix 2.1 and later.
2175</p>
2176
2177%PARAM lmtp_skip_quit_response no
2178
2179<p>
2180Wait for the response to the LMTP QUIT command.
2181</p>
2182
2183%PARAM lmtp_xforward_timeout 300s
2184
2185<p>
2186The Postfix LMTP client time limit for sending the XFORWARD command,
2187and for receiving the remote LMTP server response.
2188</p>
2189
2190<p>
2191In case of problems the client does NOT try the next address on
2192the mail exchanger list.
2193</p>
2194
2195<p>
2196Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2197The default time unit is s (seconds).
2198</p>
2199
2200<p>
2201This feature is available in Postfix 2.1 and later.
2202</p>
2203
2204%PARAM local_command_shell
2205
2206<p>
2207Optional shell program for local(8) delivery to non-Postfix command.
2208By default, non-Postfix commands are executed directly; commands
2209are given to given to the default shell (typically, /bin/sh) only
2210when they contain shell meta characters or shell built-in commands.
2211</p>
2212
2213<p> "sendmail's restricted shell" (smrsh) is what most people will
2214use in order to restrict what programs can be run from e.g. .forward
2215files (smrsh is part of the Sendmail distribution).  </p>
2216
2217<p> Note: when a shell program is specified, it is invoked even
2218when the command contains no shell built-in commands or meta
2219characters.  </p>
2220
2221<p>
2222Example:
2223</p>
2224
2225<pre>
2226local_command_shell = /some/where/smrsh -c
2227local_command_shell = /bin/bash -c
2228</pre>
2229
2230%PARAM local_destination_concurrency_limit 2
2231
2232<p> The maximal number of parallel deliveries via the local mail
2233delivery transport to the same recipient (when
2234"local_destination_recipient_limit = 1") or the maximal number of
2235parallel deliveries to the same local domain (when
2236"local_destination_recipient_limit &gt; 1"). This limit is enforced by
2237the queue manager. The message delivery transport name is the first
2238field in the entry in the master.cf file. </p>
2239
2240<p> A low limit of 2 is recommended, just in case someone has an
2241expensive shell command in a .forward file or in an alias (e.g.,
2242a mailing list manager).  You don't want to run lots of those at
2243the same time.  </p>
2244
2245%PARAM local_destination_recipient_limit 1
2246
2247<p> The maximal number of recipients per message delivery via the
2248local mail delivery transport. This limit is enforced by the queue
2249manager. The message delivery transport name is the first field in
2250the entry in the master.cf file. </p>
2251
2252<p> Setting this parameter to a value &gt; 1 changes the meaning of
2253local_destination_concurrency_limit from concurrency per recipient
2254into concurrency per domain.  </p>
2255
2256%PARAM local_recipient_maps proxy:unix:passwd.byname $alias_maps
2257
2258<p> Lookup tables with all names or addresses of local recipients:
2259a recipient address is local when its domain matches $mydestination,
2260$inet_interfaces or $proxy_interfaces.  Specify @domain as a
2261wild-card for domains that do not have a valid recipient list.
2262Technically, tables listed with $local_recipient_maps are used as
2263lists: Postfix needs to know only if a lookup string is found or
2264not, but it does not use the result from table lookup.  </p>
2265
2266<p>
2267If this parameter is non-empty (the default), then the Postfix SMTP
2268server will reject mail for unknown local users.
2269</p>
2270
2271<p>
2272To turn off local recipient checking in the Postfix SMTP server,
2273specify "local_recipient_maps =" (i.e. empty).
2274</p>
2275
2276<p>
2277The default setting assumes that you use the default Postfix local
2278delivery agent for local delivery. You need to update the
2279local_recipient_maps setting if:
2280</p>
2281
2282<ul>
2283
2284<li>You redefine the local delivery agent in master.cf.
2285
2286<li>You redefine the "local_transport" setting in main.cf.
2287
2288<li>You use the "luser_relay", "mailbox_transport", or "fallback_transport"
2289feature of the Postfix local(8) delivery agent.
2290
2291</ul>
2292
2293<p>
2294Details are described in the LOCAL_RECIPIENT_README file.
2295</p>
2296
2297<p>
2298Beware: if the Postfix SMTP server runs chrooted, you need to access
2299the passwd file via the proxymap(8) service, in order to overcome
2300chroot access restrictions. The alternative, maintaining a copy of
2301the system password file in the chroot jail is not practical.
2302</p>
2303
2304<p>
2305Examples:
2306</p>
2307
2308<pre>
2309local_recipient_maps =
2310</pre>
2311
2312%PARAM local_transport local:$myhostname
2313
2314<p> The default mail delivery transport and next-hop destination
2315for final delivery to domains listed with mydestination, and for
2316[ipaddress] destinations that match $inet_interfaces or $proxy_interfaces.
2317This information can be overruled with the transport(5) table. </p>
2318
2319<p>
2320By default, local mail is delivered to the transport called "local",
2321which is just the name of a service that is defined the master.cf file.
2322</p>
2323
2324<p>
2325Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
2326is the name of a mail delivery transport defined in master.cf.
2327The <i>:nexthop</i> destination is optional; its syntax is documented
2328in the manual page of the corresponding delivery agent.
2329</p>
2330
2331<p>
2332Beware: if you override the default local delivery agent then you
2333need to review the LOCAL_RECIPIENT_README document, otherwise the
2334SMTP server may reject mail for local recipients.
2335</p>
2336
2337%PARAM luser_relay
2338
2339<p>
2340Optional catch-all destination for unknown local(8) recipients.
2341By default, mail for unknown recipients in domains that match
2342$mydestination, $inet_interfaces or $proxy_interfaces is returned
2343as undeliverable.
2344</p>
2345
2346<p>
2347The following $name expansions are done on luser_relay:
2348</p>
2349
2350<dl>
2351
2352<dt><b>$domain</b></dt>
2353
2354<dd>The recipient domain. </dd>
2355
2356<dt><b>$extension</b></dt>
2357
2358<dd>The recipient address extension. </dd>
2359
2360<dt><b>$home</b></dt>
2361
2362<dd>The recipient's home directory. </dd>
2363
2364<dt><b>$local</b></dt>
2365
2366<dd>The entire recipient address localpart. </dd>
2367
2368<dt><b>$recipient</b></dt>
2369
2370<dd>The full recipient address. </dd>
2371
2372<dt><b>$recipient_delimiter</b></dt>
2373
2374<dd>The system-wide recipient address extension delimiter. </dd>
2375
2376<dt><b>$shell</b></dt>
2377
2378<dd>The recipient's login shell. </dd>
2379
2380<dt><b>$user</b></dt>
2381
2382<dd>The recipient username. </dd>
2383
2384<dt><b>${name?value}</b></dt>
2385
2386<dd>Expands to <i>value</i> when <i>$name</i> has a non-empty value. </dd>
2387
2388<dt><b>${name:value}</b></dt>
2389
2390<dd>Expands to <i>value</i> when <i>$name</i> has an empty value. </dd>
2391
2392</dl>
2393
2394<p>
2395Instead of $name you can also specify ${name} or $(name).
2396</p>
2397
2398<p>
2399Note: luser_relay works only for the Postfix local(8) delivery agent.
2400</p>
2401
2402<p>
2403Note: if you use this feature for accounts not in the UNIX password
2404file, then you must specify "local_recipient_maps =" (i.e. empty)
2405in the main.cf file, otherwise the Postfix SMTP server will reject mail
2406for non-UNIX accounts with "User unknown in local recipient table".
2407</p>
2408
2409<p>
2410Examples:
2411</p>
2412
2413<pre>
2414luser_relay = $user@other.host
2415luser_relay = $local@other.host
2416luser_relay = admin+$local
2417</pre>
2418
2419%PARAM mail_name Postfix
2420
2421<p>
2422The mail system name that is displayed in Received: headers, in
2423the SMTP greeting banner, and in bounced mail.
2424</p>
2425
2426%PARAM mail_owner postfix
2427
2428<p>
2429The UNIX system account that owns the Postfix queue and most Postfix
2430daemon processes.  Specify the name of a user account that does
2431not share a group with other accounts and that owns no other files
2432or processes on the system.  In particular, don't specify nobody
2433or daemon.  PLEASE USE A DEDICATED USER ID AND GROUP ID.
2434</p>
2435
2436<p>
2437When this parameter value is changed you need to re-run "<b>postfix
2438set-permissions</b>" (with Postfix version 2.0 and earlier:
2439"<b>/etc/postfix/post-install set-permissions</b>".
2440</p>
2441
2442%PARAM mail_spool_directory see "postconf -d" output
2443
2444<p>
2445The directory where local(8) UNIX-style mailboxes are kept. The
2446default setting depends on the system type. Specify a name ending
2447in / for maildir-style delivery.
2448</p>
2449
2450<p>
2451Note: maildir delivery is done with the privileges of the recipient.
2452If you use the mail_spool_directory setting for maildir style
2453delivery, then you must create the top-level maildir directory in
2454advance. Postfix will not create it.
2455</p>
2456
2457<p>
2458Examples:
2459</p>
2460
2461<pre>
2462mail_spool_directory = /var/mail
2463mail_spool_directory = /var/spool/mail
2464</pre>
2465
2466%PARAM mail_version see "postconf -d" output
2467
2468<p>
2469The version of the mail system. Stable releases are named
2470<i>major</i>.<i>minor</i>.<i>patchlevel</i>. Experimental releases
2471also include the release date. The version string can be used in,
2472for example, the SMTP greeting banner.
2473</p>
2474
2475%PARAM mailbox_command
2476
2477<p>
2478Optional external command that the local(8) delivery agent should
2479use for mailbox delivery.  The command is run with the user ID and
2480the primary group ID privileges of the recipient.  Exception:
2481command delivery for root executes with $default_privs privileges.
2482This is not a problem, because 1) mail for root should always be
2483aliased to a real user and 2) don't log in as root, use "su" instead.
2484</p>
2485
2486<p>
2487The following environment variables are exported to the command:
2488</p>
2489
2490<dl>
2491
2492<dt><b>CLIENT_ADDRESS</b></dt>
2493
2494<dd>Remote client network address. Available in Postfix version 2.2 and
2495later. </dd>
2496
2497<dt><b>CLIENT_HELO</b></dt>
2498
2499<dd>Remote client EHLO command parameter. Available in Postfix version 2.2
2500and later.</dd>
2501
2502<dt><b>CLIENT_HOSTNAME</b></dt>
2503
2504<dd>Remote client hostname. Available in Postfix version 2.2 and later.
2505</dd>
2506
2507<dt><b>CLIENT_PROTOCOL</b></dt>
2508
2509<dd>Remote client protocol. Available in Postfix version 2.2 and later.
2510</dd>
2511
2512<dt><b>DOMAIN</b></dt>
2513
2514<dd>The domain part of the recipient address. </dd>
2515
2516<dt><b>EXTENSION</b></dt>
2517
2518<dd>The optional address extension. </dd>
2519
2520<dt><b>HOME</b></dt>
2521
2522<dd>The recipient home directory. </dd>
2523
2524<dt><b>LOCAL</b></dt>
2525
2526<dd>The recipient address localpart. </dd>
2527
2528<dt><b>LOGNAME</b></dt>
2529
2530<dd>The recipient's username. </dd>
2531
2532<dt><b>ORIGINAL_RECIPIENT</b></dt>
2533
2534<dd>The entire recipient address, before any address rewriting or
2535aliasing.  </dd>
2536
2537<dt><b>RECIPIENT</b></dt>
2538
2539<dd>The full recipient address. </dd>
2540
2541<dt><b>SASL_METHOD</b></dt>
2542
2543<dd>SASL authentication method specified in the remote client AUTH
2544command. Available in Postfix version 2.2 and later. </dd>
2545
2546<dt><b>SASL_SENDER</b></dt>
2547
2548<dd>SASL sender address specified in the remote client MAIL FROM
2549command. Available in Postfix version 2.2 and later. </dd>
2550
2551<dt><b>SASL_USER</b></dt>
2552
2553<dd>SASL username specified in the remote client AUTH command.
2554Available in Postfix version 2.2 and later.  </dd>
2555
2556<dt><b>SENDER</b></dt>
2557
2558<dd>The full sender address. </dd>
2559
2560<dt><b>SHELL</b></dt>
2561
2562<dd>The recipient's login shell. </dd>
2563
2564<dt><b>USER</b></dt>
2565
2566<dd>The recipient username. </dd>
2567
2568</dl>
2569
2570<p>
2571Unlike other Postfix configuration parameters, the mailbox_command
2572parameter is not subjected to $name substitutions. This is to make
2573it easier to specify shell syntax (see example below).
2574</p>
2575
2576<p>
2577If you can, avoid shell meta characters because they will force
2578Postfix to run an expensive shell process. If you're delivering
2579via Procmail then running a shell won't make a noticeable difference
2580in the total cost.
2581</p>
2582
2583<p>
2584Note: if you use the mailbox_command feature to deliver mail
2585system-wide, you must set up an alias that forwards mail for root
2586to a real user.
2587</p>
2588
2589<p> The precedence of local(8) delivery features from high to low
2590is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2591mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
2592fallback_transport_maps, fallback_transport and luser_relay.  </p>
2593
2594<p>
2595Examples:
2596</p>
2597
2598<pre>
2599mailbox_command = /some/where/procmail
2600mailbox_command = /some/where/procmail -a "$EXTENSION"
2601mailbox_command = /some/where/maildrop -d "$USER"
2602        -f "$SENDER" "$EXTENSION"
2603</pre>
2604
2605%PARAM mailbox_size_limit 51200000
2606
2607<p> The maximal size of any local(8) individual mailbox or maildir
2608file, or zero (no limit).  In fact, this limits the size of any
2609file that is written to upon local delivery, including files written
2610by external commands that are executed by the local(8) delivery
2611agent.  </p>
2612
2613<p>
2614This limit must not be smaller than the message size limit.
2615</p>
2616
2617%PARAM maps_rbl_reject_code 554
2618
2619<p>
2620The numerical Postfix SMTP server response code when a remote SMTP
2621client request is blocked by the reject_rbl_client, reject_rhsbl_client,
2622reject_rhsbl_reverse_client, reject_rhsbl_sender or
2623reject_rhsbl_recipient restriction.
2624</p>
2625
2626<p>
2627Do not change this unless you have a complete understanding of RFC 2821.
2628</p>
2629
2630%PARAM masquerade_classes envelope_sender, header_sender, header_recipient
2631
2632<p>
2633What addresses are subject to address masquerading.
2634</p>
2635
2636<p>
2637By default, address masquerading is limited to envelope sender
2638addresses, and to header sender and header recipient addresses.
2639This allows you to use address masquerading on a mail gateway while
2640still being able to forward mail to users on individual machines.
2641</p>
2642
2643<p>
2644Specify zero or more of: envelope_sender, envelope_recipient,
2645header_sender, header_recipient
2646</p>
2647
2648%PARAM masquerade_domains
2649
2650<p>
2651Optional list of domains whose subdomain structure will be stripped
2652off in email addresses.
2653</p>
2654
2655<p>
2656The list is processed left to right, and processing stops at the
2657first match.  Thus,
2658</p>
2659
2660<blockquote>
2661<pre>
2662masquerade_domains = foo.example.com example.com
2663</pre>
2664</blockquote>
2665
2666<p>
2667strips "user@any.thing.foo.example.com" to "user@foo.example.com",
2668but strips "user@any.thing.else.example.com" to "user@example.com".
2669</p>
2670
2671<p>
2672A domain name prefixed with ! means do not masquerade this domain
2673or its subdomains. Thus,
2674</p>
2675
2676<blockquote>
2677<pre>
2678masquerade_domains = !foo.example.com example.com
2679</pre>
2680</blockquote>
2681
2682<p>
2683does not change "user@any.thing.foo.example.com" or "user@foo.example.com",
2684but strips "user@any.thing.else.example.com" to "user@example.com".
2685</p>
2686
2687<p> Note: with Postfix version 2.2, message header address masquerading
2688happens only when message header address rewriting is enabled: </p>
2689
2690<ul>
2691
2692<li> The message is received with the Postfix sendmail(1) command,
2693
2694<li> The message is received from a network client that matches
2695$local_header_rewrite_clients,
2696
2697<li> The message is received from the network, and the
2698remote_header_rewrite_domain parameter specifies a non-empty value.
2699
2700</ul>
2701
2702<p> To get the behavior before Postfix version 2.2, specify
2703"local_header_rewrite_clients = static:all". </p>
2704
2705
2706<p>
2707Example:
2708</p>
2709
2710<pre>
2711masquerade_domains = $mydomain
2712</pre>
2713
2714%PARAM masquerade_exceptions
2715
2716<p>
2717Optional list of user names that are not subjected to address
2718masquerading, even when their address matches $masquerade_domains.
2719</p>
2720
2721<p>
2722By default, address masquerading makes no exceptions.
2723</p>
2724
2725<p>
2726Specify a list of user names, "/file/name" or "type:table" patterns,
2727separated by commas and/or whitespace. The list is matched left to
2728right, and the search stops on the first match. A "/file/name"
2729pattern is replaced
2730by its contents; a "type:table" lookup table is matched when a name
2731matches a lookup key (the lookup result is ignored).  Continue long
2732lines by starting the next line with whitespace. Specify "!pattern"
2733to exclude a name from the list. The form "!/file/name" is supported
2734only in Postfix version 2.4 and later.  </p>
2735
2736<p>
2737Examples:
2738</p>
2739
2740<pre>
2741masquerade_exceptions = root, mailer-daemon
2742masquerade_exceptions = root
2743</pre>
2744
2745%PARAM max_idle 100s
2746
2747<p>
2748The maximum amount of time that an idle Postfix daemon process waits
2749for an incoming connection before terminating voluntarily.  This
2750parameter
2751is ignored by the Postfix queue manager and by other long-lived
2752Postfix daemon processes.
2753</p>
2754
2755<p>
2756Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2757The default time unit is s (seconds).
2758</p>
2759
2760%PARAM max_use 100
2761
2762<p>
2763The maximal number of incoming connections that a Postfix daemon
2764process will service before terminating voluntarily.  This parameter
2765is ignored by the Postfix queue
2766manager and by other long-lived Postfix daemon processes.
2767</p>
2768
2769%PARAM maximal_backoff_time 4000s
2770
2771<p>
2772The maximal time between attempts to deliver a deferred message.
2773</p>
2774
2775<p> This parameter should be set to a value greater than or equal
2776to $minimal_backoff_time. See also $queue_run_delay.  </p>
2777
2778<p>
2779Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2780The default time unit is s (seconds).
2781</p>
2782
2783%PARAM maximal_queue_lifetime 5d
2784
2785<p>
2786The maximal time a message is queued before it is sent back as
2787undeliverable.
2788</p>
2789
2790<p>
2791Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2792The default time unit is d (days).
2793</p>
2794
2795<p>
2796Specify 0 when mail delivery should be tried only once.
2797</p>
2798
2799%PARAM message_size_limit 10240000
2800
2801<p>
2802The maximal size in bytes of a message, including envelope information.
2803</p>
2804
2805<p> Note: be careful when making changes.  Excessively small values
2806will result in the loss of non-delivery notifications, when a bounce
2807message size exceeds the local or remote MTA's message size limit.
2808</p>
2809
2810%PARAM minimal_backoff_time 300s
2811
2812<p>
2813The minimal time between attempts to deliver a deferred message;
2814prior to Postfix 2.4 the default value was 1000s.
2815</p>
2816
2817<p>
2818This parameter also limits the time an unreachable destination is
2819kept in the short-term, in-memory, destination status cache.
2820</p>
2821
2822<p> This parameter should be set greater than or equal to
2823$queue_run_delay. See also $maximal_backoff_time.  </p>
2824
2825<p>
2826Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2827The default time unit is s (seconds).
2828</p>
2829
2830%PARAM multi_recipient_bounce_reject_code 550
2831
2832<p>
2833The numerical Postfix SMTP server response code when a remote SMTP
2834client request is blocked by the reject_multi_recipient_bounce
2835restriction.
2836</p>
2837
2838<p>
2839Do not change this unless you have a complete understanding of RFC 2821.
2840</p>
2841
2842<p>
2843This feature is available in Postfix 2.1 and later.
2844</p>
2845
2846%PARAM mydestination $myhostname, localhost.$mydomain, localhost
2847
2848<p> The list of domains that are delivered via the $local_transport
2849mail delivery transport. By default this is the Postfix local(8)
2850delivery agent which looks up all recipients in /etc/passwd and
2851/etc/aliases. The SMTP server validates recipient addresses with
2852$local_recipient_maps and rejects non-existent recipients. See also
2853the local domain class in the ADDRESS_CLASS_README file.
2854</p>
2855
2856<p>
2857The default mydestination value specifies names for the local
2858machine only.  On a mail domain gateway, you should also include
2859$mydomain.
2860</p>
2861
2862<p>
2863The $local_transport delivery method is also selected for mail
2864addressed to user@[the.net.work.address] of the mail system (the
2865IP addresses specified with the inet_interfaces and proxy_interfaces
2866parameters).
2867</p>
2868
2869<p>
2870Warnings:
2871</p>
2872
2873<ul>
2874
2875<li><p>Do not specify the names of virtual domains - those domains
2876are specified elsewhere. See VIRTUAL_README for more information. </p>
2877
2878<li><p>Do not specify the names of domains that this machine is
2879backup MX host for. See STANDARD_CONFIGURATION_README for how to
2880set up backup MX hosts. </p>
2881
2882<li><p>By default, the Postfix SMTP server rejects mail for recipients
2883not listed with the local_recipient_maps parameter.  See the
2884postconf(5) manual for a description of the local_recipient_maps
2885and unknown_local_recipient_reject_code parameters. </p>
2886
2887</ul>
2888
2889<p>
2890Specify a list of host or domain names, "/file/name" or "type:table"
2891patterns, separated by commas and/or whitespace. A "/file/name"
2892pattern is replaced by its contents; a "type:table" lookup table
2893is matched when a name matches a lookup key (the lookup result is
2894ignored).  Continue long lines by starting the next line with
2895whitespace.  </p>
2896
2897<p>
2898Examples:
2899</p>
2900
2901<pre>
2902mydestination = $myhostname, localhost.$mydomain $mydomain
2903mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain
2904</pre>
2905
2906%PARAM mydomain see "postconf -d" output
2907
2908<p>
2909The internet domain name of this mail system.  The default is to
2910use $myhostname minus the first component, or "localdomain" (Postfix
29112.3 and later).  $mydomain is used as
2912a default value for many other configuration parameters.
2913</p>
2914
2915<p>
2916Example:
2917</p>
2918
2919<pre>
2920mydomain = domain.tld
2921</pre>
2922
2923%PARAM myhostname see "postconf -d" output
2924
2925<p>
2926The internet hostname of this mail system. The default is to use
2927the fully-qualified domain name (FQDN) from gethostname(), or to
2928use the non-FQDN result from gethostname() and append ".$mydomain".
2929$myhostname is used as a default value for many other configuration
2930parameters.  </p>
2931
2932<p>
2933Example:
2934</p>
2935
2936<pre>
2937myhostname = host.example.com
2938</pre>
2939
2940%PARAM mynetworks see "postconf -d" output
2941
2942<p>
2943The list of "trusted" remote SMTP clients that have more privileges than
2944"strangers".
2945</p>
2946
2947<p>
2948In particular, "trusted" SMTP clients are allowed to relay mail
2949through Postfix.  See the smtpd_recipient_restrictions parameter
2950description in the postconf(5) manual.
2951</p>
2952
2953<p>
2954You can specify the list of "trusted" network addresses by hand
2955or you can let Postfix do it for you (which is the default).
2956See the description of the mynetworks_style parameter for more
2957information.
2958</p>
2959
2960<p>
2961If you specify the mynetworks list by hand,
2962Postfix ignores the mynetworks_style setting.
2963</p>
2964
2965<p> Specify a list of network addresses or network/netmask patterns,
2966separated by commas and/or whitespace. Continue long lines by
2967starting the next line with whitespace. </p>
2968
2969<p> The netmask specifies the number of bits in the network part
2970of a host address.  You can also specify "/file/name" or "type:table"
2971patterns.  A "/file/name" pattern is replaced by its contents; a
2972"type:table" lookup table is matched when a table entry matches a
2973lookup string (the lookup result is ignored). </p>
2974
2975<p> The list is matched left to right, and the search stops on the
2976first match.  Specify "!pattern" to exclude an address or network
2977block from the list. The form "!/file/name" is supported only
2978in Postfix version 2.4 and later. </p>
2979
2980<p> Note: IP version 6 address information must be specified inside
2981<tt>[]</tt> in the mynetworks value, and in files specified with
2982"/file/name".  IP version 6 addresses contain the ":" character,
2983and would otherwise be confused with a "type:table" pattern.  </p>
2984
2985<p> Examples:  </p>
2986
2987<pre>
2988mynetworks = 127.0.0.0/8 168.100.189.0/28
2989mynetworks = !192.168.0.1, 192.168.0.0/28
2990mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64
2991mynetworks = $config_directory/mynetworks
2992mynetworks = hash:/etc/postfix/network_table
2993</pre>
2994
2995%PARAM myorigin $myhostname
2996
2997<p>
2998The domain name that locally-posted mail appears to come
2999from, and that locally posted mail is delivered to. The default,
3000$myhostname, is adequate for small sites.  If you run a domain with
3001multiple machines, you should (1) change this to $mydomain and (2)
3002set up a domain-wide alias database that aliases each user to
3003user@that.users.mailhost.
3004</p>
3005
3006<p>
3007Example:
3008</p>
3009
3010<pre>
3011myorigin = $mydomain
3012</pre>
3013
3014%PARAM notify_classes resource, software
3015
3016<p>
3017The list of error classes that are reported to the postmaster. The
3018default is to report only the most serious problems. The paranoid
3019may wish to turn on the policy (UCE and mail relaying) and protocol
3020error (broken mail software) reports.
3021</p>
3022
3023<p> NOTE: postmaster notifications may contain confidential information
3024such as SASL passwords or message content.  It is the system
3025administrator's responsibility to treat such information with care.
3026</p>
3027
3028<p>
3029The error classes are:
3030</p>
3031
3032<dl>
3033
3034<dt><b>bounce</b> (also implies <b>2bounce</b>)</dt>
3035
3036<dd>Send the postmaster copies of the headers of bounced mail, and
3037send transcripts of SMTP sessions when Postfix rejects mail. The
3038notification is sent to the address specified with the
3039bounce_notice_recipient configuration parameter (default: postmaster).
3040</dd>
3041
3042<dt><b>2bounce</b></dt>
3043
3044<dd>Send undeliverable bounced mail to the postmaster. The notification
3045is sent to the address specified with the 2bounce_notice_recipient
3046configuration parameter (default: postmaster). </dd>
3047
3048<dt><b>data</b></dt>
3049
3050<dd>Send the postmaster a transcript of the SMTP session with an
3051error because a critical data file was unavailable. The notification
3052is sent to the address specified with the error_notice_recipient
3053configuration parameter (default: postmaster). <br> This feature
3054is available in Postfix 2.9 and later.  </dd>
3055
3056<dt><b>delay</b></dt>
3057
3058<dd>Send the postmaster copies of the headers of delayed mail. The
3059notification is sent to the address specified with the
3060delay_notice_recipient configuration parameter (default: postmaster).
3061</dd>
3062
3063<dt><b>policy</b></dt>
3064
3065<dd>Send the postmaster a transcript of the SMTP session when a
3066client request was rejected because of (UCE) policy. The notification
3067is sent to the address specified with the error_notice_recipient
3068configuration parameter (default: postmaster).  </dd>
3069
3070<dt><b>protocol</b></dt>
3071
3072<dd>Send the postmaster a transcript of the SMTP session in case
3073of client or server protocol errors. The notification is sent to
3074the address specified with the error_notice_recipient configuration
3075parameter (default: postmaster). </dd>
3076
3077<dt><b>resource</b></dt>
3078
3079<dd>Inform the postmaster of mail not delivered due to resource
3080problems.  The notification is sent to the address specified with
3081the error_notice_recipient configuration parameter (default:
3082postmaster). </dd>
3083
3084<dt><b>software</b></dt>
3085
3086<dd>Inform the postmaster of mail not delivered due to software
3087problems.  The notification is sent to the address specified with
3088the error_notice_recipient configuration parameter (default:
3089postmaster). </dd>
3090
3091</dl>
3092
3093<p>
3094Examples:
3095</p>
3096
3097<pre>
3098notify_classes = bounce, delay, policy, protocol, resource, software
3099notify_classes = 2bounce, resource, software
3100</pre>
3101
3102%PARAM parent_domain_matches_subdomains see "postconf -d" output
3103
3104<p>
3105What Postfix features match subdomains of "domain.tld" automatically,
3106instead of requiring an explicit ".domain.tld" pattern.  This is
3107planned backwards compatibility:  eventually, all Postfix features
3108are expected to require explicit ".domain.tld" style patterns when
3109you really want to match subdomains.
3110</p>
3111
3112%PARAM propagate_unmatched_extensions canonical, virtual
3113
3114<p>
3115What address lookup tables copy an address extension from the lookup
3116key to the lookup result.
3117</p>
3118
3119<p>
3120For example, with a virtual(5) mapping of "<i>joe@example.com =&gt;
3121joe.user@example.net</i>", the address "<i>joe+foo@example.com</i>"
3122would rewrite to "<i>joe.user+foo@example.net</i>".
3123</p>
3124
3125<p>
3126Specify zero or more of <b>canonical</b>, <b>virtual</b>, <b>alias</b>,
3127<b>forward</b>, <b>include</b> or <b>generic</b>. These cause
3128address extension
3129propagation with canonical(5), virtual(5), and aliases(5) maps,
3130with local(8) .forward and :include: file lookups, and with smtp(8)
3131generic maps, respectively.  </p>
3132
3133<p>
3134Note: enabling this feature for types other than <b>canonical</b>
3135and <b>virtual</b> is likely to cause problems when mail is forwarded
3136to other sites, especially with mail that is sent to a mailing list
3137exploder address.
3138</p>
3139
3140<p>
3141Examples:
3142</p>
3143
3144<pre>
3145propagate_unmatched_extensions = canonical, virtual, alias,
3146        forward, include
3147propagate_unmatched_extensions = canonical, virtual
3148</pre>
3149
3150%PARAM proxy_interfaces
3151
3152<p>
3153The network interface addresses that this mail system receives mail
3154on by way of a proxy or network address translation unit.
3155</p>
3156
3157<p>
3158This feature is available in Postfix 2.0 and later.
3159</p>
3160
3161<p> You must specify your "outside" proxy/NAT addresses when your
3162system is a backup MX host for other domains, otherwise mail delivery
3163loops will happen when the primary MX host is down.  </p>
3164
3165<p>
3166Example:
3167</p>
3168
3169<pre>
3170proxy_interfaces = 1.2.3.4
3171</pre>
3172
3173%PARAM qmgr_message_active_limit 20000
3174
3175<p>
3176The maximal number of messages in the active queue.
3177</p>
3178
3179%PARAM qmgr_message_recipient_limit 20000
3180
3181<p> The maximal number of recipients held in memory by the Postfix
3182queue manager, and the maximal size of the size of the short-term,
3183in-memory "dead" destination status cache.  </p>
3184
3185%PARAM qmgr_message_recipient_minimum 10
3186
3187<p>
3188The minimal number of in-memory recipients for any message. This
3189takes priority over any other in-memory recipient limits (i.e.,
3190the global qmgr_message_recipient_limit and the per transport
3191_recipient_limit) if necessary. The minimum value allowed for this
3192parameter is 1.
3193</p>
3194
3195%PARAM qmqpd_authorized_clients
3196
3197<p>
3198What remote QMQP clients are allowed to connect to the Postfix QMQP
3199server port.
3200</p>
3201
3202<p>
3203By default, no client is allowed to use the service. This is
3204because the QMQP server will relay mail to any destination.
3205</p>
3206
3207<p>
3208Specify a list of client patterns. A list pattern specifies a host
3209name, a domain name, an internet address, or a network/mask pattern,
3210where the mask specifies the number of bits in the network part.
3211When a pattern specifies a file name, its contents are substituted
3212for the file name; when a pattern is a "type:table" table specification,
3213table lookup is used instead.  </p>
3214
3215<p>
3216Patterns are separated by whitespace and/or commas. In order to
3217reverse the result, precede a pattern with an
3218exclamation point (!). The form "!/file/name" is supported only
3219in Postfix version 2.4 and later.
3220</p>
3221
3222<p>
3223Example:
3224</p>
3225
3226<pre>
3227qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24
3228</pre>
3229
3230%PARAM qmqpd_error_delay 1s
3231
3232<p>
3233How long the Postfix QMQP server will pause before sending a negative
3234reply to the remote QMQP client. The purpose is to slow down confused
3235or malicious clients.
3236</p>
3237
3238<p>
3239Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3240The default time unit is s (seconds).
3241</p>
3242
3243%PARAM qmqpd_timeout 300s
3244
3245<p>
3246The time limit for sending or receiving information over the network.
3247If a read or write operation blocks for more than $qmqpd_timeout
3248seconds the Postfix QMQP server gives up and disconnects.
3249</p>
3250
3251<p>
3252Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3253The default time unit is s (seconds).
3254</p>
3255
3256%PARAM queue_minfree 0
3257
3258<p>
3259The minimal amount of free space in bytes in the queue file system
3260that is needed to receive mail.  This is currently used by the
3261Postfix SMTP server to decide if it will accept any mail at all.
3262</p>
3263
3264<p>
3265By default, the Postfix SMTP server rejects MAIL FROM commands when
3266the amount of free space is less than 1.5*$message_size_limit
3267(Postfix version 2.1 and later).
3268To specify a higher minimum free space limit, specify a queue_minfree
3269value that is at least 1.5*$message_size_limit.
3270</p>
3271
3272<p>
3273With Postfix versions 2.0 and earlier, a queue_minfree value of
3274zero means there is no minimum required amount of free space.
3275</p>
3276
3277%PARAM queue_run_delay 300s
3278
3279<p>
3280The time between deferred queue scans by the queue manager;
3281prior to Postfix 2.4 the default value was 1000s.
3282</p>
3283
3284<p> This parameter should be set less than or equal to
3285$minimal_backoff_time. See also $maximal_backoff_time.  </p>
3286
3287<p>
3288Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3289The default time unit is s (seconds).
3290</p>
3291
3292%PARAM rbl_reply_maps
3293
3294<p>
3295Optional lookup tables with RBL response templates. The tables are
3296indexed by the RBL domain name. By default, Postfix uses the default
3297template as specified with the default_rbl_reply configuration
3298parameter. See there for a discussion of the syntax of RBL reply
3299templates.
3300</p>
3301
3302<p>
3303This feature is available in Postfix 2.0 and later.
3304</p>
3305
3306%PARAM receive_override_options
3307
3308<p> Enable or disable recipient validation, built-in content
3309filtering, or address mapping. Typically, these are specified in
3310master.cf as command-line arguments for the smtpd(8), qmqpd(8) or
3311pickup(8) daemons. </p>
3312
3313<p> Specify zero or more of the following options.  The options
3314override main.cf settings and are either implemented by smtpd(8),
3315qmqpd(8), or pickup(8) themselves, or they are forwarded to the
3316cleanup server.  </p>
3317
3318<dl>
3319
3320<dt><b><a name="no_unknown_recipient_checks">no_unknown_recipient_checks</a></b></dt>
3321
3322<dd>Do not try to reject unknown recipients (SMTP server only).
3323This is typically specified AFTER an external content filter.
3324</dd>
3325
3326<dt><b><a name="no_address_mappings">no_address_mappings</a></b></dt>
3327
3328<dd>Disable canonical address mapping, virtual alias map expansion,
3329address masquerading, and automatic BCC (blind carbon-copy)
3330recipients. This is typically specified BEFORE an external content
3331filter. </dd>
3332
3333<dt><b><a name="no_header_body_checks">no_header_body_checks</a></b></dt>
3334
3335<dd>Disable header/body_checks. This is typically specified AFTER
3336an external content filter. </dd>
3337
3338<dt><b><a name="no_milters">no_milters</a></b></dt>
3339
3340<dd>Disable Milter (mail filter) applications. This is typically
3341specified AFTER an external content filter. </dd>
3342
3343</dl>
3344
3345<p>
3346Note: when the "BEFORE content filter" receive_override_options
3347setting is specified in the main.cf file, specify the "AFTER content
3348filter" receive_override_options setting in master.cf (and vice
3349versa).
3350</p>
3351
3352<p>
3353Examples:
3354</p>
3355
3356<pre>
3357receive_override_options =
3358    no_unknown_recipient_checks, no_header_body_checks
3359receive_override_options = no_address_mappings
3360</pre>
3361
3362<p>
3363This feature is available in Postfix 2.1 and later.
3364</p>
3365
3366%PARAM recipient_bcc_maps
3367
3368<p>
3369Optional BCC (blind carbon-copy) address lookup tables, indexed by
3370recipient address.  The BCC address (multiple results are not
3371supported) is added when mail enters from outside of Postfix.
3372</p>
3373
3374<p>
3375This feature is available in Postfix 2.1 and later.
3376</p>
3377
3378<p>
3379The table search order is as follows:
3380</p>
3381
3382<ul>
3383
3384<li> Look up the "user+extension@domain.tld" address including the
3385optional address extension.
3386
3387<li> Look up the "user@domain.tld" address without the optional
3388address extension.
3389
3390<li> Look up the "user+extension" address local part when the
3391recipient domain equals $myorigin, $mydestination, $inet_interfaces
3392or $proxy_interfaces.
3393
3394<li> Look up the "user" address local part when the recipient domain
3395equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces.
3396
3397<li> Look up the "@domain.tld" part.
3398
3399</ul>
3400
3401<p>
3402Specify the types and names of databases to use.  After change,
3403run "<b>postmap /etc/postfix/recipient_bcc</b>".
3404</p>
3405
3406<p>
3407Note: if mail to the BCC address bounces it will be returned to
3408the sender.
3409</p>
3410
3411<p> Note: automatic BCC recipients are produced only for new mail.
3412To avoid mailer loops, automatic BCC recipients are not generated
3413after Postfix forwards mail internally, or after Postfix generates
3414mail itself. </p>
3415
3416<p>
3417Example:
3418</p>
3419
3420<pre>
3421recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
3422</pre>
3423
3424%PARAM recipient_canonical_maps
3425
3426<p>
3427Optional address mapping lookup tables for envelope and header
3428recipient addresses.
3429The table format and lookups are documented in canonical(5).
3430</p>
3431
3432<p>
3433Note: $recipient_canonical_maps is processed before $canonical_maps.
3434</p>
3435
3436<p>
3437Example:
3438</p>
3439
3440<pre>
3441recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
3442</pre>
3443
3444%PARAM recipient_delimiter
3445
3446<p>
3447The separator between user names and address extensions (user+foo).
3448See canonical(5), local(8), relocated(5) and virtual(5) for the
3449effects this has on aliases, canonical, virtual, relocated and
3450on .forward file lookups.  Basically, the software tries user+foo
3451and .forward+foo before trying user and .forward.
3452</p>
3453
3454<p>
3455Example:
3456</p>
3457
3458<pre>
3459recipient_delimiter = +
3460</pre>
3461
3462%PARAM reject_code 554
3463
3464<p>
3465The numerical Postfix SMTP server response code when a remote SMTP
3466client request is rejected by the "reject" restriction.
3467</p>
3468
3469<p>
3470Do not change this unless you have a complete understanding of RFC 2821.
3471</p>
3472
3473%PARAM relay_domains $mydestination
3474
3475<p> What destination domains (and subdomains thereof) this system
3476will relay mail to. Subdomain matching is controlled with the
3477parent_domain_matches_subdomains parameter. For details about how
3478the relay_domains value is used, see the description of the
3479permit_auth_destination and reject_unauth_destination SMTP recipient
3480restrictions.  </p>
3481
3482<p> Domains that match $relay_domains are delivered with the
3483$relay_transport mail delivery transport. The SMTP server validates
3484recipient addresses with $relay_recipient_maps and rejects non-existent
3485recipients. See also the relay domains address class in the
3486ADDRESS_CLASS_README file.  </p>
3487
3488<p> Note: Postfix will not automatically forward mail for domains
3489that list this system as their primary or backup MX host. See the
3490permit_mx_backup restriction in the postconf(5) manual page.  </p>
3491
3492<p> Specify a list of host or domain names, "/file/name" patterns
3493or "type:table" lookup tables, separated by commas and/or whitespace.
3494Continue long lines by starting the next line with whitespace. A
3495"/file/name" pattern is replaced by its contents; a "type:table"
3496lookup table is matched when a (parent) domain appears as lookup
3497key. Specify "!pattern" to exclude a domain from the list. The form
3498"!/file/name" is supported only in Postfix version 2.4 and later.
3499</p>
3500
3501%PARAM relay_domains_reject_code 554
3502
3503<p>
3504The numerical Postfix SMTP server response code when a client
3505request is rejected by the reject_unauth_destination recipient
3506restriction.
3507</p>
3508
3509<p>
3510Do not change this unless you have a complete understanding of RFC 2821.
3511</p>
3512
3513%PARAM relay_recipient_maps
3514
3515<p> Optional lookup tables with all valid addresses in the domains
3516that match $relay_domains. Specify @domain as a wild-card for
3517domains that have no valid recipient list, and become a source of
3518backscatter mail: Postfix accepts spam for non-existent recipients
3519and then floods innocent people with undeliverable mail.  Technically,
3520tables
3521listed with $relay_recipient_maps are used as lists: Postfix needs
3522to know only if a lookup string is found or not, but it does not
3523use the result from table lookup.  </p>
3524
3525<p>
3526If this parameter is non-empty, then the Postfix SMTP server will reject
3527mail to unknown relay users. This feature is off by default.
3528</p>
3529
3530<p>
3531See also the relay domains address class in the ADDRESS_CLASS_README
3532file.
3533</p>
3534
3535<p>
3536Example:
3537</p>
3538
3539<pre>
3540relay_recipient_maps = hash:/etc/postfix/relay_recipients
3541</pre>
3542
3543<p>
3544This feature is available in Postfix 2.0 and later.
3545</p>
3546
3547%PARAM relayhost
3548
3549<p>
3550The next-hop destination of non-local mail; overrides non-local
3551domains in recipient addresses. This information is overruled with
3552relay_transport, sender_dependent_default_transport_maps,
3553default_transport, sender_dependent_relayhost_maps
3554and with the transport(5) table.
3555</p>
3556
3557<p>
3558On an intranet, specify the organizational domain name. If your
3559internal DNS uses no MX records, specify the name of the intranet
3560gateway host instead.
3561</p>
3562
3563<p>
3564In the case of SMTP, specify a domain name, hostname, hostname:port,
3565[hostname]:port, [hostaddress] or [hostaddress]:port. The form
3566[hostname] turns off MX lookups.
3567</p>
3568
3569<p>
3570If you're connected via UUCP, see the UUCP_README file for useful
3571information.
3572</p>
3573
3574<p>
3575Examples:
3576</p>
3577
3578<pre>
3579relayhost = $mydomain
3580relayhost = [gateway.example.com]
3581relayhost = uucphost
3582relayhost = [an.ip.add.ress]
3583</pre>
3584
3585%PARAM relocated_maps
3586
3587<p>
3588Optional lookup tables with new contact information for users or
3589domains that no longer exist.  The table format and lookups are
3590documented in relocated(5).
3591</p>
3592
3593<p>
3594If you use this feature, run "<b>postmap /etc/postfix/relocated</b>" to
3595build the necessary DBM or DB file after change, then "<b>postfix
3596reload</b>" to make the changes visible.
3597</p>
3598
3599<p>
3600Examples:
3601</p>
3602
3603<pre>
3604relocated_maps = dbm:/etc/postfix/relocated
3605relocated_maps = hash:/etc/postfix/relocated
3606</pre>
3607
3608%PARAM require_home_directory no
3609
3610<p>
3611Require that a local(8) recipient's home directory exists
3612before mail delivery is attempted. By default this test is disabled.
3613It can be useful for environments that import home directories to
3614the mail server (IMPORTING HOME DIRECTORIES IS NOT RECOMMENDED).
3615</p>
3616
3617%PARAM resolve_dequoted_address yes
3618
3619<p> Resolve a recipient address safely instead of correctly, by
3620looking inside quotes.  </p>
3621
3622<p> By default, the Postfix address resolver does not quote the
3623address localpart as per RFC 822, so that additional @ or % or !
3624operators remain visible. This behavior is safe but it is also
3625technically incorrect.  </p>
3626
3627<p> If you specify "resolve_dequoted_address = no", then
3628the Postfix
3629resolver will not know about additional @ etc. operators in the
3630address localpart. This opens opportunities for obscure mail relay
3631attacks with user@domain@domain addresses when Postfix provides
3632backup MX service for Sendmail systems.  </p>
3633
3634%PARAM resolve_null_domain no
3635
3636<p> Resolve an address that ends in the "@" null domain as if the
3637local hostname were specified, instead of rejecting the address as
3638invalid.  </p>
3639
3640<p> This feature is available in Postfix 2.1 and later.
3641Earlier versions always resolve the null domain as the local
3642hostname.  </p>
3643
3644<p> The Postfix SMTP server uses this feature to reject mail from
3645or to addresses that end in the "@" null domain, and from addresses
3646that rewrite into a form that ends in the "@" null domain.  </p>
3647
3648%PARAM sender_bcc_maps
3649
3650<p> Optional BCC (blind carbon-copy) address lookup tables, indexed
3651by sender address.  The BCC address (multiple results are not
3652supported) is added when mail enters from outside of Postfix.  </p>
3653
3654<p>
3655This feature is available in Postfix 2.1 and later.
3656</p>
3657
3658<p>
3659The table search order is as follows:
3660</p>
3661
3662<ul>
3663
3664<li> Look up the "user+extension@domain.tld" address including the
3665optional address extension.
3666
3667<li> Look up the "user@domain.tld" address without the optional
3668address extension.
3669
3670<li> Look up the "user+extension" address local part when the
3671sender domain equals $myorigin, $mydestination, $inet_interfaces
3672or $proxy_interfaces.
3673
3674<li> Look up the "user" address local part when the sender domain
3675equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces.
3676
3677<li> Look up the "@domain.tld" part.
3678
3679</ul>
3680
3681<p>
3682Specify the types and names of databases to use.  After change,
3683run "<b>postmap /etc/postfix/sender_bcc</b>".
3684</p>
3685
3686<p>
3687Note: if mail to the BCC address bounces it will be returned to
3688the sender.
3689</p>
3690
3691<p> Note: automatic BCC recipients are produced only for new mail.
3692To avoid mailer loops, automatic BCC recipients are not generated
3693after Postfix forwards mail internally, or after Postfix generates
3694mail itself. </p>
3695
3696<p>
3697Example:
3698</p>
3699
3700<pre>
3701sender_bcc_maps = hash:/etc/postfix/sender_bcc
3702</pre>
3703
3704%PARAM sender_canonical_maps
3705
3706<p>
3707Optional address mapping lookup tables for envelope and header
3708sender addresses.
3709The table format and lookups are documented in canonical(5).
3710</p>
3711
3712<p>
3713Example: you want to rewrite the SENDER address "user@ugly.domain"
3714to "user@pretty.domain", while still being able to send mail to
3715the RECIPIENT address "user@ugly.domain".
3716</p>
3717
3718<p>
3719Note: $sender_canonical_maps is processed before $canonical_maps.
3720</p>
3721
3722<p>
3723Example:
3724</p>
3725
3726<pre>
3727sender_canonical_maps = hash:/etc/postfix/sender_canonical
3728</pre>
3729
3730%PARAM smtp_always_send_ehlo yes
3731
3732<p>
3733Always send EHLO at the start of an SMTP session.
3734</p>
3735
3736<p>
3737With "smtp_always_send_ehlo = no", the Postfix SMTP client sends
3738EHLO only when
3739the word "ESMTP" appears in the server greeting banner (example:
3740220 spike.porcupine.org ESMTP Postfix).
3741</p>
3742
3743%PARAM smtp_bind_address
3744
3745<p>
3746An optional numerical network address that the Postfix SMTP client
3747should bind to when making an IPv4 connection.
3748</p>
3749
3750<p>
3751This can be specified in the main.cf file for all SMTP clients, or
3752it can be specified in the master.cf file for a specific client,
3753for example:
3754</p>
3755
3756<blockquote>
3757<pre>
3758/etc/postfix/master.cf:
3759    smtp ... smtp -o smtp_bind_address=11.22.33.44
3760</pre>
3761</blockquote>
3762
3763<p> Note 1: when inet_interfaces specifies no more than one IPv4
3764address, and that address is a non-loopback address, it is
3765automatically used as the smtp_bind_address.  This supports virtual
3766IP hosting, but can be a problem on multi-homed firewalls. See the
3767inet_interfaces documentation for more detail. </p>
3768
3769<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
3770but this form is not required here. </p>
3771
3772%PARAM smtp_bind_address6
3773
3774<p>
3775An optional numerical network address that the Postfix SMTP client
3776should bind to when making an IPv6 connection.
3777</p>
3778
3779<p> This feature is available in Postfix 2.2 and later. </p>
3780
3781<p>
3782This can be specified in the main.cf file for all SMTP clients, or
3783it can be specified in the master.cf file for a specific client,
3784for example:
3785</p>
3786
3787<blockquote>
3788<pre>
3789/etc/postfix/master.cf:
3790    smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8
3791</pre>
3792</blockquote>
3793
3794<p> Note 1: when inet_interfaces specifies no more than one IPv6
3795address, and that address is a non-loopback address, it is
3796automatically used as the smtp_bind_address6.  This supports virtual
3797IP hosting, but can be a problem on multi-homed firewalls. See the
3798inet_interfaces documentation for more detail. </p>
3799
3800<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
3801but this form is not recommended here. </p>
3802
3803%PARAM smtp_connection_cache_time_limit 2s
3804
3805<p> When SMTP connection caching is enabled, the amount of time that
3806an unused SMTP client socket is kept open before it is closed.  Do
3807not specify larger values without permission from the remote sites.
3808</p>
3809
3810<p> This feature is available in Postfix 2.2 and later. </p>
3811
3812%PARAM smtp_connection_cache_reuse_limit 10
3813
3814<p> When SMTP connection caching is enabled, the number of times that
3815an SMTP session may be reused before it is closed.
3816</p>
3817
3818<p> This feature is available in Postfix 2.2. In Postfix 2.3 it is
3819replaced by $smtp_connection_reuse_time_limit.</p>
3820
3821%PARAM smtp_connection_reuse_time_limit 300s
3822
3823<p> The amount of time during which Postfix will use an SMTP
3824connection repeatedly.  The timer starts when the connection is
3825initiated (i.e. it includes the connect, greeting and helo latency,
3826in addition to the latencies of subsequent mail delivery transactions).
3827</p>
3828
3829<p> This feature addresses a performance stability problem with
3830remote SMTP servers. This problem is not specific to Postfix: it
3831can happen when any MTA sends large amounts of SMTP email to a site
3832that has multiple MX hosts. </p>
3833
3834<p> The problem starts when one of a set of MX hosts becomes slower
3835than the rest.  Even though SMTP clients connect to fast and slow
3836MX hosts with equal probability, the slow MX host ends up with more
3837simultaneous inbound connections than the faster MX hosts, because
3838the slow MX host needs more time to serve each client request. </p>
3839
3840<p> The slow MX host becomes a connection attractor.  If one MX
3841host becomes N times slower than the rest, it dominates mail delivery
3842latency unless there are more than N fast MX hosts to counter the
3843effect. And if the number of MX hosts is smaller than N, the mail
3844delivery latency becomes effectively that of the slowest MX host
3845divided by the total number of MX hosts. </p>
3846
3847<p> The solution uses connection caching in a way that differs from
3848Postfix version 2.2.  By limiting the amount of time during which a connection
3849can be used repeatedly (instead of limiting the number of deliveries
3850over that connection), Postfix not only restores fairness in the
3851distribution of simultaneous connections across a set of MX hosts,
3852it also favors deliveries over connections that perform well, which
3853is exactly what we want.  </p>
3854
3855<p> The default reuse time limit, 300s, is comparable to the various
3856smtp transaction timeouts which are fair estimates of maximum excess
3857latency for a slow delivery.  Note that hosts may accept thousands
3858of messages over a single connection within the default connection
3859reuse time limit. This number is much larger than the default Postfix
3860version 2.2 limit of 10 messages per cached connection. It may prove necessary
3861to lower the limit to avoid interoperability issues with MTAs that
3862exhibit bugs when many messages are delivered via a single connection.
3863A lower reuse time limit risks losing the benefit of connection
3864reuse when the average connection and mail delivery latency exceeds
3865the reuse time limit.  </p>
3866
3867<p> This feature is available in Postfix 2.3 and later. </p>
3868
3869%PARAM smtp_connection_cache_destinations
3870
3871<p> Permanently enable SMTP connection caching for the specified
3872destinations.  With SMTP connection caching, a connection is not
3873closed immediately after completion of a mail transaction.  Instead,
3874the connection is kept open for up to $smtp_connection_cache_time_limit
3875seconds.  This allows connections to be reused for other deliveries,
3876and can improve mail delivery performance. </p>
3877
3878<p> Specify a comma or white space separated list of destinations
3879or pseudo-destinations: </p>
3880
3881<ul>
3882
3883<li> if mail is sent without a relay host: a domain name (the
3884right-hand side of an email address, without the [] around a numeric
3885IP address),
3886
3887<li> if mail is sent via a relay host: a relay host name (without
3888[] or non-default TCP port), as specified in main.cf or in the
3889transport map,
3890
3891<li> if mail is sent via a UNIX-domain socket: a pathname (without
3892the unix: prefix),
3893
3894<li> a /file/name with domain names and/or relay host names as
3895defined above,
3896
3897<li> a "type:table" with domain names and/or relay host names on
3898the left-hand side.  The right-hand side result from "type:table"
3899lookups is ignored.
3900
3901</ul>
3902
3903<p> This feature is available in Postfix 2.2 and later. </p>
3904
3905%PARAM smtp_connection_cache_on_demand yes
3906
3907<p> Temporarily enable SMTP connection caching while a destination
3908has a high volume of mail in the active queue.  With SMTP connection
3909caching, a connection is not closed immediately after completion
3910of a mail transaction.  Instead, the connection is kept open for
3911up to $smtp_connection_cache_time_limit seconds.  This allows
3912connections to be reused for other deliveries, and can improve mail
3913delivery performance. </p>
3914
3915<p> This feature is available in Postfix 2.2 and later. </p>
3916
3917%PARAM smtp_connect_timeout 30s
3918
3919<p>
3920The Postfix SMTP client time limit for completing a TCP connection, or
3921zero (use the operating system built-in time limit).
3922</p>
3923
3924<p>
3925When no connection can be made within the deadline, the Postfix
3926SMTP client
3927tries the next address on the mail exchanger list. Specify 0 to
3928disable the time limit (i.e. use whatever timeout is implemented by
3929the operating system).
3930</p>
3931
3932<p>
3933Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3934The default time unit is s (seconds).
3935</p>
3936
3937%PARAM smtp_data_done_timeout 600s
3938
3939<p>
3940The Postfix SMTP client time limit for sending the SMTP ".", and
3941for receiving the remote SMTP server response.
3942</p>
3943
3944<p>
3945When no response is received within the deadline, a warning is
3946logged that the mail may be delivered multiple times.
3947</p>
3948
3949<p>
3950Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3951The default time unit is s (seconds).
3952</p>
3953
3954%PARAM smtp_data_init_timeout 120s
3955
3956<p>
3957The Postfix SMTP client time limit for sending the SMTP DATA command,
3958and for receiving the remote SMTP server response.
3959</p>
3960
3961<p>
3962Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3963The default time unit is s (seconds).
3964</p>
3965
3966%PARAM smtp_data_xfer_timeout 180s
3967
3968<p>
3969The Postfix SMTP client time limit for sending the SMTP message content.
3970When the connection makes no progress for more than $smtp_data_xfer_timeout
3971seconds the Postfix SMTP client terminates the transfer.
3972</p>
3973
3974<p>
3975Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3976The default time unit is s (seconds).
3977</p>
3978
3979%PARAM smtp_defer_if_no_mx_address_found no
3980
3981<p>
3982Defer mail delivery when no MX record resolves to an IP address.
3983</p>
3984
3985<p>
3986The default (no) is to return the mail as undeliverable. With older
3987Postfix versions the default was to keep trying to deliver the mail
3988until someone fixed the MX record or until the mail was too old.
3989</p>
3990
3991<p>
3992Note: the Postfix SMTP client always ignores MX records with equal
3993or worse preference
3994than the local MTA itself.
3995</p>
3996
3997<p>
3998This feature is available in Postfix 2.1 and later.
3999</p>
4000
4001%PARAM lmtp_destination_concurrency_limit $default_destination_concurrency_limit
4002
4003<p> The maximal number of parallel deliveries to the same destination
4004via the lmtp message delivery transport. This limit is enforced by
4005the queue manager. The message delivery transport name is the first
4006field in the entry in the master.cf file.  </p>
4007
4008%PARAM lmtp_destination_recipient_limit $default_destination_recipient_limit
4009
4010<p> The maximal number of recipients per message for the lmtp
4011message delivery transport. This limit is enforced by the queue
4012manager. The message delivery transport name is the first field in
4013the entry in the master.cf file.  </p>
4014
4015<p> Setting this parameter to a value of 1 changes the meaning of
4016lmtp_destination_concurrency_limit from concurrency per domain into
4017concurrency per recipient.  </p>
4018
4019%PARAM relay_destination_concurrency_limit $default_destination_concurrency_limit
4020
4021<p> The maximal number of parallel deliveries to the same destination
4022via the relay message delivery transport. This limit is enforced
4023by the queue manager. The message delivery transport name is the
4024first field in the entry in the master.cf file.  </p>
4025
4026<p> This feature is available in Postfix 2.0 and later. </p>
4027
4028%PARAM relay_destination_recipient_limit $default_destination_recipient_limit
4029
4030<p> The maximal number of recipients per message for the relay
4031message delivery transport. This limit is enforced by the queue
4032manager. The message delivery transport name is the first field in
4033the entry in the master.cf file.  </p>
4034
4035<p> Setting this parameter to a value of 1 changes the meaning of
4036relay_destination_concurrency_limit from concurrency per domain
4037into concurrency per recipient.  </p>
4038
4039<p> This feature is available in Postfix 2.0 and later. </p>
4040
4041%PARAM smtp_destination_concurrency_limit $default_destination_concurrency_limit
4042
4043<p> The maximal number of parallel deliveries to the same destination
4044via the smtp message delivery transport. This limit is enforced by
4045the queue manager. The message delivery transport name is the first
4046field in the entry in the master.cf file.  </p>
4047
4048%PARAM smtp_destination_recipient_limit $default_destination_recipient_limit
4049
4050<p> The maximal number of recipients per message for the smtp
4051message delivery transport. This limit is enforced by the queue
4052manager. The message delivery transport name is the first field in
4053the entry in the master.cf file.  </p>
4054
4055<p> Setting this parameter to a value of 1 changes the meaning of
4056smtp_destination_concurrency_limit from concurrency per domain
4057into concurrency per recipient.  </p>
4058
4059%PARAM virtual_destination_concurrency_limit $default_destination_concurrency_limit
4060
4061<p> The maximal number of parallel deliveries to the same destination
4062via the virtual message delivery transport. This limit is enforced
4063by the queue manager. The message delivery transport name is the
4064first field in the entry in the master.cf file.  </p>
4065
4066%PARAM virtual_destination_recipient_limit $default_destination_recipient_limit
4067
4068<p> The maximal number of recipients per message for the virtual
4069message delivery transport. This limit is enforced by the queue
4070manager. The message delivery transport name is the first field in
4071the entry in the master.cf file.  </p>
4072
4073<p> Setting this parameter to a value of 1 changes the meaning of
4074virtual_destination_concurrency_limit from concurrency per domain
4075into concurrency per recipient.  </p>
4076
4077%PARAM smtp_helo_name $myhostname
4078
4079<p>
4080The hostname to send in the SMTP EHLO or HELO command.
4081</p>
4082
4083<p>
4084The default value is the machine hostname.  Specify a hostname or
4085[ip.add.re.ss].
4086</p>
4087
4088<p>
4089This information can be specified in the main.cf file for all SMTP
4090clients, or it can be specified in the master.cf file for a specific
4091client, for example:
4092</p>
4093
4094<blockquote>
4095<pre>
4096/etc/postfix/master.cf:
4097    mysmtp ... smtp -o smtp_helo_name=foo.bar.com
4098</pre>
4099</blockquote>
4100
4101<p>
4102This feature is available in Postfix 2.0 and later.
4103</p>
4104
4105%PARAM smtp_helo_timeout 300s
4106
4107<p>
4108The Postfix SMTP client time limit for sending the HELO or EHLO command,
4109and for receiving the initial remote SMTP server response.
4110</p>
4111
4112<p>
4113Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4114The default time unit is s (seconds).
4115</p>
4116
4117%PARAM smtp_host_lookup dns
4118
4119<p>
4120What mechanisms the Postfix SMTP client uses to look up a host's IP
4121address.  This parameter is ignored when DNS lookups are disabled
4122(see: disable_dns_lookups).
4123</p>
4124
4125<p>
4126Specify one of the following:
4127</p>
4128
4129<dl>
4130
4131<dt><b>dns</b></dt>
4132
4133<dd>Hosts can be found in the DNS (preferred).  </dd>
4134
4135<dt><b>native</b></dt>
4136
4137<dd>Use the native naming service only (nsswitch.conf, or equivalent
4138mechanism).  </dd>
4139
4140<dt><b>dns, native</b></dt>
4141
4142<dd>Use the native service for hosts not found in the DNS.  </dd>
4143
4144</dl>
4145
4146<p>
4147This feature is available in Postfix 2.1 and later.
4148</p>
4149
4150%PARAM smtp_line_length_limit 998
4151
4152<p>
4153The maximal length of message header and body lines that Postfix
4154will send via SMTP. This limit does not include the &lt;CR&gt;&lt;LF&gt;
4155at the end of each line.  Longer lines are broken by inserting
4156"&lt;CR&gt;&lt;LF&gt;&lt;SPACE&gt;", to minimize the damage to MIME
4157formatted mail.
4158</p>
4159
4160<p>
4161The Postfix limit of 998 characters not including &lt;CR&gt;&lt;LF&gt;
4162is consistent with the SMTP limit of 1000 characters including
4163&lt;CR&gt;&lt;LF&gt;.  The Postfix limit was 990 with Postfix 2.8
4164and earlier.
4165</p>
4166
4167%PARAM smtp_mail_timeout 300s
4168
4169<p>
4170The Postfix SMTP client time limit for sending the MAIL FROM command,
4171and for receiving the remote SMTP server response.
4172</p>
4173
4174<p>
4175Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4176The default time unit is s (seconds).
4177</p>
4178
4179%PARAM smtp_mx_address_limit 5
4180
4181<p>
4182The maximal number of MX (mail exchanger) IP addresses that can
4183result from Postfix SMTP client mail exchanger lookups, or zero (no
4184limit). Prior to
4185Postfix version 2.3, this limit was disabled by default.
4186</p>
4187
4188<p>
4189This feature is available in Postfix 2.1 and later.
4190</p>
4191
4192%PARAM smtp_mx_session_limit 2
4193
4194<p> The maximal number of SMTP sessions per delivery request before
4195the Postfix SMTP client
4196gives up or delivers to a fall-back relay host, or zero (no
4197limit). This restriction ignores sessions that fail to complete the
4198SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to
4199complete the EHLO and TLS handshake (Postfix version 2.3 and later).  </p>
4200
4201<p> This feature is available in Postfix 2.1 and later.  </p>
4202
4203%PARAM smtp_never_send_ehlo no
4204
4205<p> Never send EHLO at the start of an SMTP session. See also the
4206smtp_always_send_ehlo parameter.  </p>
4207
4208%PARAM smtp_pix_workaround_threshold_time 500s
4209
4210<p> How long a message must be queued before the Postfix SMTP client
4211turns on the PIX firewall "&lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;"
4212bug workaround for delivery through firewalls with "smtp fixup"
4213mode turned on.  </p>
4214
4215<p>
4216By default, the workaround is turned off for mail that is queued
4217for less than 500 seconds. In other words, the workaround is normally
4218turned off for the first delivery attempt.
4219</p>
4220
4221<p>
4222Specify 0 to enable the PIX firewall
4223"&lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;" bug workaround upon the
4224first delivery attempt.
4225</p>
4226
4227%PARAM smtp_quit_timeout 300s
4228
4229<p>
4230The Postfix SMTP client time limit for sending the QUIT command,
4231and for receiving the remote SMTP server response.
4232</p>
4233
4234<p>
4235Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4236The default time unit is s (seconds).
4237</p>
4238
4239%PARAM smtp_quote_rfc821_envelope yes
4240
4241<p>
4242Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO commands
4243as required
4244by RFC 2821. This includes putting quotes around an address localpart
4245that ends in ".".
4246</p>
4247
4248<p>
4249The default is to comply with RFC 2821. If you have to send mail to
4250a broken SMTP server, configure a special SMTP client in master.cf:
4251</p>
4252
4253<blockquote>
4254<pre>
4255/etc/postfix/master.cf:
4256    broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no
4257</pre>
4258</blockquote>
4259
4260<p>
4261and route mail for the destination in question to the "broken-smtp"
4262message delivery with a transport(5) table.
4263</p>
4264
4265<p>
4266This feature is available in Postfix 2.1 and later.
4267</p>
4268
4269%PARAM smtp_rcpt_timeout 300s
4270
4271<p>
4272The Postfix SMTP client time limit for sending the SMTP RCPT TO
4273command, and for receiving the remote SMTP server response.
4274</p>
4275
4276<p>
4277Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4278The default time unit is s (seconds).
4279</p>
4280
4281%PARAM smtp_sasl_auth_enable no
4282
4283<p>
4284Enable SASL authentication in the Postfix SMTP client.  By default,
4285the Postfix SMTP client uses no authentication.
4286</p>
4287
4288<p>
4289Example:
4290</p>
4291
4292<pre>
4293smtp_sasl_auth_enable = yes
4294</pre>
4295
4296%PARAM smtp_sasl_password_maps
4297
4298<p>
4299Optional Postfix SMTP client lookup tables with one username:password
4300entry
4301per remote hostname or domain, or sender address when sender-dependent
4302authentication is enabled.  If no username:password entry is found,
4303then the Postfix SMTP client will not
4304attempt to authenticate to the remote host.
4305</p>
4306
4307<p>
4308The Postfix SMTP client opens the lookup table before going to
4309chroot jail, so you can leave the password file in /etc/postfix.
4310</p>
4311
4312%PARAM smtp_sasl_security_options noplaintext, noanonymous
4313
4314<p> Postfix SMTP client SASL security options; as of Postfix 2.3
4315the list of available
4316features depends on the SASL client implementation that is selected
4317with <b>smtp_sasl_type</b>.  </p>
4318
4319<p> The following security features are defined for the <b>cyrus</b>
4320client SASL implementation: </p>
4321
4322<p>
4323Specify zero or more of the following:
4324</p>
4325
4326<dl>
4327
4328<dt><b>noplaintext</b></dt>
4329
4330<dd>Disallow methods that use plaintext passwords. </dd>
4331
4332<dt><b>noactive</b></dt>
4333
4334<dd>Disallow methods subject to active (non-dictionary) attack.
4335</dd>
4336
4337<dt><b>nodictionary</b></dt>
4338
4339<dd>Disallow methods subject to passive (dictionary) attack. </dd>
4340
4341<dt><b>noanonymous</b></dt>
4342
4343<dd>Disallow methods that allow anonymous authentication. </dd>
4344
4345<dt><b>mutual_auth</b></dt>
4346
4347<dd>Only allow methods that provide mutual authentication (not
4348available with SASL version 1). </dd>
4349
4350</dl>
4351
4352<p>
4353Example:
4354</p>
4355
4356<pre>
4357smtp_sasl_security_options = noplaintext
4358</pre>
4359
4360%PARAM smtp_sasl_mechanism_filter
4361
4362<p>
4363If non-empty, a Postfix SMTP client filter for the remote SMTP
4364server's list of offered SASL mechanisms.  Different client and
4365server implementations may support different mechanism lists. By
4366default, the Postfix SMTP client will use the intersection of the
4367two. smtp_sasl_mechanism_filter further restricts what server
4368mechanisms the client will take into consideration.  </p>
4369
4370<p> Specify mechanism names, "/file/name" patterns or "type:table"
4371lookup tables. The right-hand side result from "type:table" lookups
4372is ignored. Specify "!pattern" to exclude a mechanism name from the
4373list. The form "!/file/name" is supported only in Postfix version
43742.4 and later. </p>
4375
4376<p> This feature is available in Postfix 2.2 and later. </p>
4377
4378<p>
4379Examples:
4380</p>
4381
4382<pre>
4383smtp_sasl_mechanism_filter = plain, login
4384smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs
4385smtp_sasl_mechanism_filter = !gssapi, !login, static:rest
4386</pre>
4387
4388%PARAM smtp_send_xforward_command no
4389
4390<p>
4391Send the non-standard XFORWARD command when the Postfix SMTP server
4392EHLO response announces XFORWARD support.
4393</p>
4394
4395<p>
4396This allows a Postfix SMTP delivery agent, used for injecting mail
4397into
4398a content filter, to forward the name, address, protocol and HELO
4399name of the original client to the content filter and downstream
4400queuing SMTP server. This can produce more useful logging than
4401localhost[127.0.0.1] etc.
4402</p>
4403
4404<p>
4405This feature is available in Postfix 2.1 and later.
4406</p>
4407
4408%PARAM smtp_skip_4xx_greeting yes
4409
4410<p>
4411Skip SMTP servers that greet with a 4XX status code (go away, try
4412again later).
4413</p>
4414
4415<p>
4416By default, the Postfix SMTP client moves on the next mail exchanger.
4417Specify
4418"smtp_skip_4xx_greeting = no" if Postfix should defer delivery
4419immediately.
4420</p>
4421
4422<p> This feature is available in Postfix 2.0 and earlier.
4423Later Postfix versions always skip remote SMTP servers that greet
4424with a
44254XX status code. </p>
4426
4427%PARAM smtp_skip_5xx_greeting yes
4428
4429<p>
4430Skip remote SMTP servers that greet with a 5XX status code (go away,
4431do
4432not try again later).
4433</p>
4434
4435<p> By default, the Postfix SMTP client moves on the next mail
4436exchanger. Specify "smtp_skip_5xx_greeting = no" if Postfix should
4437bounce the mail immediately. The default setting is incorrect, but
4438it is what a lot of people expect to happen.  </p>
4439
4440%PARAM smtp_skip_quit_response yes
4441
4442<p>
4443Do not wait for the response to the SMTP QUIT command.
4444</p>
4445
4446%PARAM smtp_xforward_timeout 300s
4447
4448<p>
4449The Postfix SMTP client time limit for sending the XFORWARD command,
4450and for receiving the remote SMTP server response.
4451</p>
4452
4453<p>
4454Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4455The default time unit is s (seconds).
4456</p>
4457
4458<p>
4459This feature is available in Postfix 2.1 and later.
4460</p>
4461
4462%PARAM authorized_verp_clients $mynetworks
4463
4464<p> What remote SMTP clients are allowed to specify the XVERP command.
4465This command requests that mail be delivered one recipient at a
4466time with a per recipient return address.  </p>
4467
4468<p> By default, only trusted clients are allowed to specify XVERP.
4469</p>
4470
4471<p> This parameter was introduced with Postfix version 1.1.  Postfix
4472version 2.1 renamed this parameter to smtpd_authorized_verp_clients
4473and changed the default to none. </p>
4474
4475<p> Specify a list of network/netmask patterns, separated by commas
4476and/or whitespace. The mask specifies the number of bits in the
4477network part of a host address. You can also specify hostnames or
4478.domain names (the initial dot causes the domain to match any name
4479below it),  "/file/name" or "type:table" patterns.  A "/file/name"
4480pattern is replaced by its contents; a "type:table" lookup table
4481is matched when a table entry matches a lookup string (the lookup
4482result is ignored).  Continue long lines by starting the next line
4483with whitespace. Specify "!pattern" to exclude an address or network
4484block from the list. The form "!/file/name" is supported only in
4485Postfix version 2.4 and later. </p>
4486
4487<p> Note: IP version 6 address information must be specified inside
4488<tt>[]</tt> in the authorized_verp_clients value, and in files
4489specified with "/file/name".  IP version 6 addresses contain the
4490":" character, and would otherwise be confused with a "type:table"
4491pattern.  </p>
4492
4493%PARAM smtpd_authorized_verp_clients $authorized_verp_clients
4494
4495<p> What remote SMTP clients are allowed to specify the XVERP command.
4496This command requests that mail be delivered one recipient at a
4497time with a per recipient return address.  </p>
4498
4499<p> By default, no clients are allowed to specify XVERP.  </p>
4500
4501<p> This parameter was renamed with Postfix version 2.1. The default value
4502is backwards compatible with Postfix version 2.0.  </p>
4503
4504<p> Specify a list of network/netmask patterns, separated by commas
4505and/or whitespace. The mask specifies the number of bits in the
4506network part of a host address. You can also specify hostnames or
4507.domain names (the initial dot causes the domain to match any name
4508below it),  "/file/name" or "type:table" patterns.  A "/file/name"
4509pattern is replaced by its contents; a "type:table" lookup table
4510is matched when a table entry matches a lookup string (the lookup
4511result is ignored).  Continue long lines by starting the next line
4512with whitespace. Specify "!pattern" to exclude an address or network
4513block from the list. The form "!/file/name" is supported only in
4514Postfix version 2.4 and later.  </p>
4515
4516<p> Note: IP version 6 address information must be specified inside
4517<tt>[]</tt> in the smtpd_authorized_verp_clients value, and in
4518files specified with "/file/name".  IP version 6 addresses contain
4519the ":" character, and would otherwise be confused with a "type:table"
4520pattern.  </p>
4521
4522%PARAM smtpd_authorized_xclient_hosts
4523
4524<p>
4525What remote SMTP clients are allowed to use the XCLIENT feature.  This
4526command overrides remote SMTP client information that is used for access
4527control. Typical use is for SMTP-based content filters, fetchmail-like
4528programs, or SMTP server access rule testing. See the XCLIENT_README
4529document for details.
4530</p>
4531
4532<p>
4533This feature is available in Postfix 2.1 and later.
4534</p>
4535
4536<p>
4537By default, no clients are allowed to specify XCLIENT.
4538</p>
4539
4540<p>
4541Specify a list of network/netmask patterns, separated by commas
4542and/or whitespace. The mask specifies the number of bits in the
4543network part of a host address. You can also specify hostnames or
4544.domain names (the initial dot causes the domain to match any name
4545below it),  "/file/name" or "type:table" patterns.  A "/file/name"
4546pattern is replaced by its contents; a "type:table" lookup table
4547is matched when a table entry matches a lookup string (the lookup
4548result is ignored).  Continue long lines by starting the next line
4549with whitespace. Specify "!pattern" to exclude an address or network
4550block from the list. The form "!/file/name" is supported only in
4551Postfix version 2.4 and later.  </p>
4552
4553<p> Note: IP version 6 address information must be specified inside
4554<tt>[]</tt> in the smtpd_authorized_xclient_hosts value, and in
4555files specified with "/file/name".  IP version 6 addresses contain
4556the ":" character, and would otherwise be confused with a "type:table"
4557pattern.  </p>
4558
4559%PARAM smtpd_authorized_xforward_hosts
4560
4561<p>
4562What remote SMTP clients are allowed to use the XFORWARD feature.  This
4563command forwards information that is used to improve logging after
4564SMTP-based content filters. See the XFORWARD_README document for
4565details.
4566</p>
4567
4568<p>
4569This feature is available in Postfix 2.1 and later.
4570</p>
4571
4572<p>
4573By default, no clients are allowed to specify XFORWARD.
4574</p>
4575
4576<p>
4577Specify a list of network/netmask patterns, separated by commas
4578and/or whitespace. The mask specifies the number of bits in the
4579network part of a host address. You can also specify hostnames or
4580.domain names (the initial dot causes the domain to match any name
4581below it),  "/file/name" or "type:table" patterns.  A "/file/name"
4582pattern is replaced by its contents; a "type:table" lookup table
4583is matched when a table entry matches a lookup string (the lookup
4584result is ignored).  Continue long lines by starting the next line
4585with whitespace. Specify "!pattern" to exclude an address or network
4586block from the list. The form "!/file/name" is supported only in
4587Postfix version 2.4 and later.  </p>
4588
4589<p> Note: IP version 6 address information must be specified inside
4590<tt>[]</tt> in the smtpd_authorized_xforward_hosts value, and in
4591files specified with "/file/name".  IP version 6 addresses contain
4592the ":" character, and would otherwise be confused with a "type:table"
4593pattern.  </p>
4594
4595%PARAM smtpd_banner $myhostname ESMTP $mail_name
4596
4597<p>
4598The text that follows the 220 status code in the SMTP greeting
4599banner. Some people like to see the mail version advertised. By
4600default, Postfix shows no version.
4601</p>
4602
4603<p>
4604You MUST specify $myhostname at the start of the text. This is
4605required by the SMTP protocol.
4606</p>
4607
4608<p>
4609Example:
4610</p>
4611
4612<pre>
4613smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
4614</pre>
4615
4616%PARAM smtpd_client_connection_count_limit 50
4617
4618<p>
4619How many simultaneous connections any client is allowed to
4620make to this service.  By default, the limit is set to half
4621the default process limit value.
4622</p>
4623
4624<p>
4625To disable this feature, specify a limit of 0.
4626</p>
4627
4628<p>
4629WARNING: The purpose of this feature is to limit abuse. It must
4630not be used to regulate legitimate mail traffic.
4631</p>
4632
4633<p>
4634This feature is available in Postfix 2.2 and later.
4635</p>
4636
4637%PARAM smtpd_client_event_limit_exceptions $mynetworks
4638
4639<p>
4640Clients that are excluded from smtpd_client_*_count/rate_limit
4641restrictions. See the mynetworks parameter
4642description for the parameter value syntax.
4643</p>
4644
4645<p>
4646By default, clients in trusted networks are excluded. Specify a
4647list of network blocks, hostnames or .domain names (the initial
4648dot causes the domain to match any name below it).
4649</p>
4650
4651<p> Note: IP version 6 address information must be specified inside
4652<tt>[]</tt> in the smtpd_client_event_limit_exceptions value, and
4653in files specified with "/file/name".  IP version 6 addresses
4654contain the ":" character, and would otherwise be confused with a
4655"type:table" pattern.  </p>
4656
4657<p>
4658This feature is available in Postfix 2.2 and later.
4659</p>
4660
4661%PARAM smtpd_client_connection_rate_limit 0
4662
4663<p>
4664The maximal number of connection attempts any client is allowed to
4665make to this service per time unit.  The time unit is specified
4666with the anvil_rate_time_unit configuration parameter.
4667</p>
4668
4669<p>
4670By default, a client can make as many connections per time unit as
4671Postfix can accept.
4672</p>
4673
4674<p>
4675To disable this feature, specify a limit of 0.
4676</p>
4677
4678<p>
4679WARNING: The purpose of this feature is to limit abuse. It must
4680not be used to regulate legitimate mail traffic.
4681</p>
4682
4683<p>
4684This feature is available in Postfix 2.2 and later.
4685</p>
4686
4687<p>
4688Example:
4689</p>
4690
4691<pre>
4692smtpd_client_connection_rate_limit = 1000
4693</pre>
4694
4695%PARAM smtpd_client_message_rate_limit 0
4696
4697<p>
4698The maximal number of message delivery requests that any client is
4699allowed to make to this service per time unit, regardless of whether
4700or not Postfix actually accepts those messages.  The time unit is
4701specified with the anvil_rate_time_unit configuration parameter.
4702</p>
4703
4704<p>
4705By default, a client can send as many message delivery requests
4706per time unit as Postfix can accept.
4707</p>
4708
4709<p>
4710To disable this feature, specify a limit of 0.
4711</p>
4712
4713<p>
4714WARNING: The purpose of this feature is to limit abuse. It must
4715not be used to regulate legitimate mail traffic.
4716</p>
4717
4718<p>
4719This feature is available in Postfix 2.2 and later.
4720</p>
4721
4722<p>
4723Example:
4724</p>
4725
4726<pre>
4727smtpd_client_message_rate_limit = 1000
4728</pre>
4729
4730%PARAM smtpd_client_recipient_rate_limit 0
4731
4732<p>
4733The maximal number of recipient addresses that any client is allowed
4734to send to this service per time unit, regardless of whether or not
4735Postfix actually accepts those recipients.  The time unit is specified
4736with the anvil_rate_time_unit configuration parameter.
4737</p>
4738
4739<p>
4740By default, a client can send as many recipient addresses per time
4741unit as Postfix can accept.
4742</p>
4743
4744<p>
4745To disable this feature, specify a limit of 0.
4746</p>
4747
4748<p>
4749WARNING: The purpose of this feature is to limit abuse. It must
4750not be used to regulate legitimate mail traffic.
4751</p>
4752
4753<p>
4754This feature is available in Postfix 2.2 and later.
4755</p>
4756
4757<p>
4758Example:
4759</p>
4760
4761<pre>
4762smtpd_client_recipient_rate_limit = 1000
4763</pre>
4764
4765%PARAM smtpd_client_new_tls_session_rate_limit 0
4766
4767<p>
4768The maximal number of new (i.e., uncached) TLS sessions that a
4769remote SMTP client is allowed to negotiate with this service per
4770time unit.  The time unit is specified with the anvil_rate_time_unit
4771configuration parameter.
4772</p>
4773
4774<p>
4775By default, a remote SMTP client can negotiate as many new TLS
4776sessions per time unit as Postfix can accept.
4777</p>
4778
4779<p>
4780To disable this feature, specify a limit of 0. Otherwise, specify
4781a limit that is at least the per-client concurrent session limit,
4782or else legitimate client sessions may be rejected.
4783</p>
4784
4785<p>
4786WARNING: The purpose of this feature is to limit abuse. It must
4787not be used to regulate legitimate mail traffic.
4788</p>
4789
4790<p>
4791This feature is available in Postfix 2.3 and later.
4792</p>
4793
4794<p>
4795Example:
4796</p>
4797
4798<pre>
4799smtpd_client_new_tls_session_rate_limit = 100
4800</pre>
4801
4802%PARAM smtpd_client_restrictions
4803
4804<p>
4805Optional Postfix SMTP server access restrictions in the context of
4806a remote SMTP client connection request.
4807See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
4808restriction lists" for a discussion of evaluation context and time.
4809</p>
4810
4811<p>
4812The default is to allow all connection requests.
4813</p>
4814
4815<p>
4816Specify a list of restrictions, separated by commas and/or whitespace.
4817Continue long lines by starting the next line with whitespace.
4818Restrictions are applied in the order as specified; the first
4819restriction that matches wins.
4820</p>
4821
4822<p>
4823The following restrictions are specific to client hostname or
4824client network address information.
4825</p>
4826
4827<dl>
4828
4829<dt><b><a name="check_ccert_access">check_ccert_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
4830
4831<dd> Use the remote SMTP client certificate fingerprint or the public key
4832fingerprint (Postfix 2.9 and later) as lookup key for the specified
4833access(5) database; with Postfix version 2.2, also require that the
4834remote SMTP client certificate is verified successfully.
4835The fingerprint digest algorithm is configurable via the
4836smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
4837Postfix version 2.5).  This feature is available with Postfix version
48382.2 and later. </dd>
4839
4840<dt><b><a name="check_client_access">check_client_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
4841
4842<dd>Search the specified access database for the client hostname,
4843parent domains, client IP address, or networks obtained by stripping
4844least significant octets. See the access(5) manual page for details. </dd>
4845
4846<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>
4847
4848<dd>Search the specified access(5) database for the MX hosts for the
4849client hostname, and execute the corresponding action.  Note: a result
4850of "OK" is not allowed for safety reasons. Instead, use DUNNO in order
4851to exclude specific hosts from blacklists.  This feature is available
4852in Postfix 2.7 and later.  </dd>
4853
4854<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>
4855
4856<dd>Search the specified access(5) database for the DNS servers for
4857the client hostname, and execute the corresponding action.  Note: a
4858result of "OK" is not allowed for safety reasons. Instead, use DUNNO
4859in order to exclude specific hosts from blacklists.  This feature is
4860available in Postfix 2.7 and later.  </dd>
4861
4862<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>
4863
4864<dd>Search the specified access database for the unverified reverse
4865client hostname, parent domains, client IP address, or networks
4866obtained by stripping least significant octets. See the access(5)
4867manual page for details.  Note: a result of "OK" is not allowed for
4868safety reasons.  Instead, use DUNNO in order to exclude specific
4869hosts from blacklists.  This feature is available in Postfix 2.6
4870and later.</dd>
4871
4872<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>
4873
4874<dd>Search the specified access(5) database for the MX hosts for the
4875unverified reverse client hostname, and execute the corresponding
4876action.  Note: a result of "OK" is not allowed for safety reasons.
4877Instead, use DUNNO in order to exclude specific hosts from blacklists.
4878This feature is available in Postfix 2.7 and later.  </dd>
4879
4880<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>
4881
4882<dd>Search the specified access(5) database for the DNS servers for
4883the unverified reverse client hostname, and execute the corresponding
4884action.  Note: a result of "OK" is not allowed for safety reasons.
4885Instead, use DUNNO in order to exclude specific hosts from blacklists.
4886This feature is available in Postfix 2.7 and later.  </dd>
4887
4888<dt><b><a name="permit_inet_interfaces">permit_inet_interfaces</a></b></dt>
4889
4890<dd>Permit the request when the client IP address matches
4891$inet_interfaces. </dd>
4892
4893<dt><b><a name="permit_mynetworks">permit_mynetworks</a></b></dt>
4894
4895<dd>Permit the request when the client IP address matches any
4896network or network address listed in  $mynetworks. </dd>
4897
4898<dt><b><a name="permit_sasl_authenticated">permit_sasl_authenticated</a></b></dt>
4899
4900<dd> Permit the request when the client is successfully
4901authenticated via the RFC 4954 (AUTH) protocol. </dd>
4902
4903
4904<dt><b><a name="permit_tls_all_clientcerts">permit_tls_all_clientcerts</a></b></dt>
4905
4906<dd> Permit the request when the remote SMTP client certificate is
4907verified successfully.  This option must be used only if a special
4908CA issues the certificates and only this CA is listed as trusted
4909CA. Otherwise, clients with a third-party certificate would also
4910be allowed to relay.  Specify "tls_append_default_CA = no" when the
4911trusted CA is specified with smtpd_tls_CAfile or smtpd_tls_CApath,
4912to prevent Postfix from appending the system-supplied default CAs.
4913This feature is available with Postfix version 2.2.</dd>
4914
4915<dt><b><a name="permit_tls_clientcerts">permit_tls_clientcerts</a></b></dt>
4916
4917<dd>Permit the request when the remote SMTP client certificate
4918fingerprint or public key fingerprint (Postfix 2.9 and later) is
4919listed in $relay_clientcerts.
4920The fingerprint digest algorithm is configurable via the
4921smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
4922Postfix version 2.5).  This feature is available with Postfix version
49232.2. </dd>
4924
4925<dt><b><a name="reject_rbl_client">reject_rbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
4926
4927<dd>Reject the request when the reversed client network address is
4928listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
4929(Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
4930or a pattern inside "[]" that contains one or more ";"-separated
4931numbers or number..number ranges (Postfix version 2.8 and later).
4932If no "<i>=d.d.d.d</i>" is specified, reject the request when the
4933reversed client network address is listed with any A record under
4934<i>rbl_domain</i>. <br>
4935The maps_rbl_reject_code parameter specifies the response code for
4936rejected requests (default:  554), the default_rbl_reply  parameter
4937specifies the default server reply, and the rbl_reply_maps  parameter
4938specifies tables with server replies indexed by <i>rbl_domain</i>.
4939This feature is available in Postfix 2.0 and later.  </dd>
4940
4941<dt><b><a name="permit_dnswl_client">permit_dnswl_client <i>dnswl_domain=d.d.d.d</i></a></b></dt>
4942
4943<dd>Accept the request when the reversed client network address is
4944listed with the A record "<i>d.d.d.d</i>" under <i>dnswl_domain</i>.
4945Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
4946one or more ";"-separated numbers or number..number ranges.
4947If no "<i>=d.d.d.d</i>" is specified, accept the request when the
4948reversed client network address is listed with any A record under
4949<i>dnswl_domain</i>. <br> For safety, permit_dnswl_client is silently
4950ignored when it would override reject_unauth_destination.  The
4951result is DEFER_IF_REJECT when whitelist lookup fails.  This feature
4952is available in Postfix 2.8 and later.  </dd>
4953
4954<dt><b><a name="reject_rhsbl_client">reject_rhsbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
4955
4956<dd>Reject the request when the client hostname is listed with the
4957A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
49582.1 and later only).  Each "<i>d</i>" is a number, or a pattern
4959inside "[]" that contains one or more ";"-separated numbers or
4960number..number ranges (Postfix version 2.8 and later).  If no
4961"<i>=d.d.d.d</i>" is specified, reject the request when the client
4962hostname is listed with
4963any A record under <i>rbl_domain</i>. See the reject_rbl_client
4964description above for additional RBL related configuration parameters.
4965This feature is available in Postfix 2.0 and later; with Postfix
4966version 2.8 and later, reject_rhsbl_reverse_client will usually
4967produce better results.  </dd>
4968
4969<dt><b><a name="permit_rhswl_client">permit_rhswl_client <i>rhswl_domain=d.d.d.d</i></a></b></dt>
4970
4971<dd>Accept the request when the client hostname is listed with the
4972A record "<i>d.d.d.d</i>" under <i>rhswl_domain</i>.  Each "<i>d</i>"
4973is a number, or a pattern inside "[]" that contains one or more
4974";"-separated numbers or number..number ranges. If no
4975"<i>=d.d.d.d</i>" is specified, accept the request when the client
4976hostname is listed with any A record under <i>rhswl_domain</i>.
4977<br> Caution: client name whitelisting is fragile, since the client
4978name lookup can fail due to temporary outages.  Client name
4979whitelisting should be used only to reduce false positives in e.g.
4980DNS-based blocklists, and not for making access rule exceptions.
4981<br> For safety, permit_rhswl_client is silently ignored when it
4982would override reject_unauth_destination.  The result is DEFER_IF_REJECT
4983when whitelist lookup fails.  This feature is available in Postfix
49842.8 and later.  </dd>
4985
4986<dt><b><a name="reject_rhsbl_reverse_client">reject_rhsbl_reverse_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
4987
4988<dd>Reject the request when the unverified reverse client hostname
4989is listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>.
4990Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
4991one or more ";"-separated numbers or number..number ranges.
4992If no "<i>=d.d.d.d</i>" is specified, reject the request when the
4993unverified reverse client hostname is listed with any A record under
4994<i>rbl_domain</i>. See the reject_rbl_client description above for
4995additional RBL related configuration parameters.  This feature is
4996available in Postfix 2.8 and later.  </dd>
4997
4998<dt><b><a name="reject_unknown_client_hostname">reject_unknown_client_hostname</a></b> (with Postfix &lt; 2.3: reject_unknown_client)</dt>
4999
5000<dd>Reject the request when 1) the client IP address-&gt;name mapping
5001fails, 2) the name-&gt;address mapping fails, or 3) the name-&gt;address
5002mapping does not match the client IP address.  <br> This is a
5003stronger restriction than the reject_unknown_reverse_client_hostname
5004feature, which triggers only under condition 1) above. <br> The
5005unknown_client_reject_code parameter specifies the response code
5006for rejected requests (default: 450). The reply is always 450 in
5007case the address-&gt;name or name-&gt;address lookup failed due to
5008a temporary problem. </dd>
5009
5010<dt><b><a name="reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a></b></dt>
5011
5012<dd>Reject the request when the client IP address has no address-&gt;name
5013mapping. <br> This is a weaker restriction than the
5014reject_unknown_client_hostname feature, which requires not only
5015that the address-&gt;name and name-&gt;address mappings exist, but
5016also that the two mappings reproduce the client IP address.  <br>
5017The unknown_client_reject_code parameter specifies the response
5018code for rejected requests (default: 450).  The reply is always 450
5019in case the address-&gt;name lookup failed due to a temporary
5020problem. <br> This feature is available in Postfix 2.3 and
5021later.  </dd>
5022
5023#<dt><b><a name="reject_unknown_forward_client_hostname">reject_unknown_forward_client_hostname</a></b></dt>
5024#
5025#<dd>Reject the request when the client IP address has no address-&gt;name
5026#or name -&gt;address mapping. <br> This is a weaker restriction
5027#than the reject_unknown_client_hostname feature, which requires not
5028#only that the address-&gt;name and name-&gt;address mappings exist,
5029#but also that the two mappings reproduce the client IP address.
5030#<br> The unknown_client_reject_code parameter specifies the response
5031#code for rejected requests (default: 450).  The reply is always 450
5032#in case the address-&gt;name or name -&gt;address lookup failed due
5033#to a temporary problem. <br> This feature is available in Postfix
5034#version 2.3 and later.  </dd>
5035
5036</dl>
5037
5038<p>
5039In addition, you can use any of the following <a name="generic">
5040generic</a> restrictions.  These restrictions are applicable in
5041any SMTP command context.
5042</p>
5043
5044<dl>
5045
5046<dt><b><a name="check_policy_service">check_policy_service <i>servername</i></a></b></dt>
5047
5048<dd>Query the specified policy server. See the SMTPD_POLICY_README
5049document for details. This feature is available in Postfix 2.1
5050and later. </dd>
5051
5052<dt><b><a name="defer">defer</a></b></dt>
5053
5054<dd>Defer the request. The client is told to try again later. This
5055restriction is useful at the end of a restriction list, to make
5056the default policy explicit. <br> The defer_code parameter specifies
5057the SMTP server reply code (default: 450).</dd>
5058
5059<dt><b><a name="defer_if_permit">defer_if_permit</a></b></dt>
5060
5061<dd>Defer the request if some later restriction would result in an
5062explicit or implicit PERMIT action.  This is useful when a blacklisting
5063feature fails due to a temporary problem.  This feature is available
5064in Postfix version 2.1 and later.  </dd>
5065
5066<dt><b><a name="defer_if_reject">defer_if_reject</a></b></dt>
5067
5068<dd>Defer the request if some later restriction would result in a
5069REJECT action.  This is useful when a whitelisting feature fails
5070due to a temporary problem.  This feature is available in Postfix
5071version 2.1 and later.  </dd>
5072
5073<dt><b><a name="permit">permit</a></b></dt>
5074
5075<dd>Permit the request. This restriction is useful at the end of
5076a restriction list, to make the default policy explicit.</dd>
5077
5078<dt><b><a name="reject_multi_recipient_bounce">reject_multi_recipient_bounce</a></b></dt>
5079
5080<dd>Reject the request when the envelope sender is the null address,
5081and the message has multiple envelope recipients. This usage has
5082rare but legitimate applications: under certain conditions,
5083multi-recipient mail that was posted with the DSN option NOTIFY=NEVER
5084may be forwarded with the null sender address.
5085<br> Note: this restriction can only work reliably
5086when used in smtpd_data_restrictions or
5087smtpd_end_of_data_restrictions, because the total number of
5088recipients is not known at an earlier stage of the SMTP conversation.
5089Use at the RCPT stage will only reject the second etc.  recipient.
5090<br>
5091The multi_recipient_bounce_reject_code parameter specifies the
5092response code for rejected requests (default:  550).  This feature
5093is available in Postfix 2.1 and later. </dd>
5094
5095<dt><b><a name="reject_plaintext_session">reject_plaintext_session</a></b></dt>
5096
5097<dd>Reject the request when the connection is not encrypted. This
5098restriction should not be used before the client has had a chance
5099to negotiate encryption with the AUTH or STARTTLS commands.
5100<br>
5101The plaintext_reject_code parameter specifies the response
5102code for rejected requests (default:  450).  This feature is available
5103in Postfix 2.3 and later. </dd>
5104
5105<dt><b><a name="reject_unauth_pipelining">reject_unauth_pipelining</a></b></dt>
5106
5107<dd>Reject the request when the client sends SMTP commands ahead
5108of time where it is not allowed, or when the client sends SMTP
5109commands ahead of time without knowing that Postfix actually supports
5110ESMTP command pipelining. This stops mail from bulk mail software
5111that improperly uses ESMTP command pipelining in order to speed up
5112deliveries.
5113<br> With Postfix 2.6 and later, the SMTP server sets a per-session
5114flag whenever it detects illegal pipelining, including pipelined
5115EHLO or HELO commands. The reject_unauth_pipelining feature simply
5116tests whether the flag was set at any point in time during the
5117session.
5118<br> With older Postfix versions, reject_unauth_pipelining checks
5119the current status of the input read queue, and its usage is not
5120recommended in contexts other than smtpd_data_restrictions.  </dd>
5121
5122<dt><b><a name="reject">reject</a></b></dt>
5123
5124<dd>Reject the request. This restriction is useful at the end of
5125a restriction list, to make the default policy explicit.  The
5126reject_code configuration parameter specifies the response code for
5127rejected requests (default: 554).</dd>
5128
5129<dt><b><a name="sleep">sleep <i>seconds</i></a></b></dt>
5130
5131<dd>Pause for the specified number of seconds and proceed with
5132the next restriction in the list, if any. This may stop zombie
5133mail when used as:
5134<pre>
5135/etc/postfix/main.cf:
5136    smtpd_client_restrictions =
5137        sleep 1, reject_unauth_pipelining
5138    smtpd_delay_reject = no
5139</pre>
5140This feature is available in Postfix 2.3. </dd>
5141
5142<dt><b><a name="warn_if_reject">warn_if_reject</a></b></dt>
5143
5144<dd>Change the meaning of the next restriction, so that it logs
5145a warning instead of rejecting a request (look for logfile records
5146that contain "reject_warning"). This is useful for testing new
5147restrictions in a "live" environment without risking unnecessary
5148loss of mail. </dd>
5149
5150</dl>
5151
5152<p>
5153Other restrictions that are valid in this context:
5154</p>
5155
5156<ul>
5157
5158<li> SMTP command specific restrictions that are described under
5159the smtpd_helo_restrictions, smtpd_sender_restrictions or
5160smtpd_recipient_restrictions parameters. When helo, sender or
5161recipient restrictions are listed under smtpd_client_restrictions,
5162they have effect only with "smtpd_delay_reject = yes", so that
5163$smtpd_client_restrictions is evaluated at the time of the RCPT TO
5164command.
5165
5166</ul>
5167
5168<p>
5169Example:
5170</p>
5171
5172<pre>
5173smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname
5174</pre>
5175
5176%CLASS smtpd-tarpit Tarpit features
5177
5178<p>
5179When a remote SMTP client makes errors, the Postfix SMTP server
5180can insert delays before responding. This can help to slow down
5181run-away software.  The behavior is controlled by an error counter
5182that counts the number of errors within an SMTP session that a
5183client makes without delivering mail.
5184</p>
5185
5186<ul>
5187
5188<li><p>When the error counter is less than $smtpd_soft_error_limit the
5189Postfix SMTP server replies immediately (Postfix version 2.0 and earlier
5190delay their 4xx or 5xx error response). </p>
5191
5192<li><p>When the error counter reaches $smtpd_soft_error_limit, the Postfix
5193SMTP server delays all its responses. </p>
5194
5195<li><p>When the error counter reaches $smtpd_hard_error_limit the Postfix
5196SMTP server breaks the connection. </p>
5197
5198</ul>
5199
5200%PARAM smtpd_error_sleep_time 1s
5201
5202<p>With Postfix version 2.1 and later: the SMTP server response delay after
5203a client has made more than $smtpd_soft_error_limit errors, and
5204fewer than $smtpd_hard_error_limit errors, without delivering mail.
5205</p>
5206
5207<p>With Postfix version 2.0 and earlier: the SMTP server delay before
5208sending a reject (4xx or 5xx) response, when the client has made
5209fewer than $smtpd_soft_error_limit errors without delivering
5210mail. </p>
5211
5212%PARAM smtpd_soft_error_limit 10
5213
5214<p>
5215The number of errors a remote SMTP client is allowed to make without
5216delivering mail before the Postfix SMTP server slows down all its
5217responses.
5218</p>
5219
5220<ul>
5221
5222<li><p>With Postfix version 2.1 and later, the Postfix SMTP server
5223delays all responses by $smtpd_error_sleep_time seconds. </p>
5224
5225<li><p>With Postfix versions 2.0 and earlier, the Postfix SMTP
5226server delays all responses by (number of errors) seconds. </p>
5227
5228</ul>
5229
5230%PARAM smtpd_hard_error_limit normal: 20, overload: 1
5231
5232<p>
5233The maximal number of errors a remote SMTP client is allowed to
5234make without delivering mail. The Postfix SMTP server disconnects
5235when the limit is exceeded. Normally the default limit is 20, but
5236it changes under overload to just 1. With Postfix 2.5 and earlier,
5237the SMTP server always allows up to 20 errors by default.
5238
5239</p>
5240
5241%PARAM smtpd_junk_command_limit normal: 100, overload: 1
5242
5243<p>
5244The number of junk commands (NOOP, VRFY, ETRN or RSET) that a remote
5245SMTP client can send before the Postfix SMTP server starts to
5246increment the error counter with each junk command.  The junk
5247command count is reset after mail is delivered.  See also the
5248smtpd_error_sleep_time and smtpd_soft_error_limit configuration
5249parameters.  Normally the default limit is 100, but it changes under
5250overload to just 1. With Postfix 2.5 and earlier, the SMTP server
5251always allows up to 100 junk commands by default.  </p>
5252
5253%PARAM smtpd_recipient_overshoot_limit 1000
5254
5255<p> The number of recipients that a remote SMTP client can send in
5256excess of the limit specified with $smtpd_recipient_limit, before
5257the Postfix SMTP server increments the per-session error count
5258for each excess recipient.  </p>
5259
5260%PARAM smtpd_etrn_restrictions
5261
5262<p>
5263Optional SMTP server access restrictions in the context of a client
5264ETRN request.
5265See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5266restriction lists" for a discussion of evaluation context and time.
5267</p>
5268
5269<p>
5270The Postfix ETRN implementation accepts only destinations that are
5271eligible for the Postfix "fast flush" service. See the ETRN_README
5272file for details.
5273</p>
5274
5275<p>
5276Specify a list of restrictions, separated by commas and/or whitespace.
5277Continue long lines by starting the next line with whitespace.
5278Restrictions are applied in the order as specified; the first
5279restriction that matches wins.
5280</p>
5281
5282<p>
5283The following restrictions are specific to the domain name information
5284received with the ETRN command.
5285</p>
5286
5287<dl>
5288
5289<dt><b><a name="check_etrn_access">check_etrn_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5290
5291<dd>Search the specified access database for the ETRN domain name
5292or its parent domains. See the access(5) manual page for details.
5293</dd>
5294
5295</dl>
5296
5297<p>
5298Other restrictions that are valid in this context:
5299</p>
5300
5301<ul>
5302
5303<li><a href="#generic">Generic</a> restrictions that can be used
5304in any SMTP command context, described under smtpd_client_restrictions.
5305
5306<li>SMTP command specific restrictions described under
5307smtpd_client_restrictions and smtpd_helo_restrictions.
5308
5309</ul>
5310
5311<p>
5312Example:
5313</p>
5314
5315<pre>
5316smtpd_etrn_restrictions = permit_mynetworks, reject
5317</pre>
5318
5319%PARAM smtpd_expansion_filter see "postconf -d" output
5320
5321<p>
5322What characters are allowed in $name expansions of RBL reply
5323templates. Characters not in the allowed set are replaced by "_".
5324Use C like escapes to specify special characters such as whitespace.
5325</p>
5326
5327<p>
5328This parameter is not subjected to $parameter expansion.
5329</p>
5330
5331<p>
5332This feature is available in Postfix 2.0 and later.
5333</p>
5334
5335%PARAM smtpd_forbidden_commands CONNECT, GET, POST
5336
5337<p>
5338List of commands that cause the Postfix SMTP server to immediately
5339terminate the session with a 221 code. This can be used to disconnect
5340clients that obviously attempt to abuse the system. In addition to the
5341commands listed in this parameter, commands that follow the "Label:"
5342format of message headers will also cause a disconnect.
5343</p>
5344
5345<p>
5346This feature is available in Postfix 2.2 and later.
5347</p>
5348
5349%PARAM smtpd_helo_required no
5350
5351<p>
5352Require that a remote SMTP client introduces itself with the HELO
5353or EHLO command before sending the MAIL command or other commands
5354that require EHLO negotiation.
5355</p>
5356
5357<p>
5358Example:
5359</p>
5360
5361<pre>
5362smtpd_helo_required = yes
5363</pre>
5364
5365%PARAM smtpd_helo_restrictions
5366
5367<p>
5368Optional restrictions that the Postfix SMTP server applies in the
5369context of the SMTP HELO command.
5370See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5371restriction lists" for a discussion of evaluation context and time.
5372</p>
5373
5374<p>
5375The default is to permit everything.
5376</p>
5377
5378<p> Note: specify "smtpd_helo_required = yes" to fully enforce this
5379restriction (without "smtpd_helo_required = yes", a client can
5380simply skip smtpd_helo_restrictions by not sending HELO or EHLO).
5381</p>
5382
5383<p>
5384Specify a list of restrictions, separated by commas and/or whitespace.
5385Continue long lines by starting the next line with whitespace.
5386Restrictions are applied in the order as specified; the first
5387restriction that matches wins.
5388</p>
5389
5390<p>
5391The following restrictions are specific to the hostname information
5392received with the HELO or EHLO command.
5393</p>
5394
5395<dl>
5396
5397<dt><b><a name="check_helo_access">check_helo_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5398
5399<dd>Search the specified access(5) database for the HELO or EHLO
5400hostname or parent domains, and execute the corresponding action.
5401Note: specify "smtpd_helo_required = yes" to fully enforce this
5402restriction (without "smtpd_helo_required = yes", a client can
5403simply skip check_helo_access by not sending HELO or EHLO).  </dd>
5404
5405<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>
5406
5407<dd>Search the specified access(5) database for the MX hosts for
5408the HELO or EHLO hostname, and execute the corresponding action.
5409Note 1: a result of "OK" is not allowed for safety reasons. Instead,
5410use DUNNO in order to exclude specific hosts from blacklists.  Note
54112: specify "smtpd_helo_required = yes" to fully enforce this
5412restriction (without "smtpd_helo_required = yes", a client can
5413simply skip check_helo_mx_access by not sending HELO or EHLO).  This
5414feature is available in Postfix 2.1 and later.
5415</dd>
5416
5417<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>
5418
5419<dd>Search the specified access(5) database for the DNS servers
5420for the HELO or EHLO hostname, and execute the corresponding action.
5421Note 1: a result of "OK" is not allowed for safety reasons. Instead,
5422use DUNNO in order to exclude specific hosts from blacklists.  Note
54232: specify "smtpd_helo_required = yes" to fully enforce this
5424restriction (without "smtpd_helo_required = yes", a client can
5425simply skip check_helo_ns_access by not sending HELO or EHLO). This
5426feature is available in Postfix 2.1 and later.
5427</dd>
5428
5429<dt><b><a name="reject_invalid_helo_hostname">reject_invalid_helo_hostname</a></b> (with Postfix &lt; 2.3: reject_invalid_hostname)</dt>
5430
5431<dd>Reject the request when the HELO or EHLO hostname syntax is
5432invalid. Note: specify "smtpd_helo_required = yes" to fully enforce
5433this restriction (without "smtpd_helo_required = yes", a client can simply
5434skip reject_invalid_helo_hostname by not sending HELO or EHLO).
5435<br> The invalid_hostname_reject_code specifies the response code
5436for rejected requests (default: 501).</dd>
5437
5438<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>
5439
5440<dd>Reject the request when the HELO or EHLO hostname is not in
5441fully-qualified domain form, as required by the RFC. Note: specify
5442"smtpd_helo_required = yes" to fully enforce this restriction
5443(without "smtpd_helo_required = yes", a client can simply skip
5444reject_non_fqdn_helo_hostname by not sending HELO or EHLO).  <br>
5445The non_fqdn_reject_code parameter specifies the response code for
5446rejected requests (default: 504).</dd>
5447
5448<dt><b><a name="reject_rhsbl_helo">reject_rhsbl_helo <i>rbl_domain=d.d.d.d</i></a></b></dt>
5449
5450<dd>Reject the request when the HELO or EHLO hostname hostname is
5451listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
5452(Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
5453or a pattern inside "[]" that contains one or more ";"-separated
5454numbers or number..number ranges (Postfix version 2.8 and later).
5455If no "<i>=d.d.d.d</i>" is
5456specified, reject the request when the HELO or EHLO hostname is
5457listed with any A record under <i>rbl_domain</i>. See the
5458reject_rbl_client description for additional RBL related configuration
5459parameters.  Note: specify "smtpd_helo_required = yes" to fully
5460enforce this restriction (without "smtpd_helo_required = yes", a
5461client can simply skip reject_rhsbl_helo by not sending HELO or
5462EHLO). This feature is available in Postfix 2.0
5463and later.  </dd>
5464
5465<dt><b><a name="reject_unknown_helo_hostname">reject_unknown_helo_hostname</a></b> (with Postfix &lt; 2.3: reject_unknown_hostname)</dt>
5466
5467<dd>Reject the request when the HELO or EHLO hostname has no DNS A
5468or MX record. <br> The unknown_hostname_reject_code parameter
5469specifies the numerical response code for rejected requests (default:
5470450). <br> The unknown_helo_hostname_tempfail_action parameter
5471specifies the action after a temporary DNS error (default:
5472defer_if_permit). Note: specify "smtpd_helo_required = yes" to fully
5473enforce this restriction (without "smtpd_helo_required = yes", a
5474client can simply skip reject_unknown_helo_hostname by not sending
5475HELO or EHLO). </dd>
5476
5477</dl>
5478
5479<p>
5480Other restrictions that are valid in this context:
5481</p>
5482
5483<ul>
5484
5485<li> <a href="#generic">Generic</a> restrictions that can be used
5486in any SMTP command context, described under smtpd_client_restrictions.
5487
5488<li> Client hostname or network address specific restrictions
5489described under smtpd_client_restrictions.
5490
5491<li> SMTP command specific restrictions described under
5492smtpd_sender_restrictions or smtpd_recipient_restrictions.  When
5493sender or recipient restrictions are listed under smtpd_helo_restrictions,
5494they have effect only with "smtpd_delay_reject = yes", so that
5495$smtpd_helo_restrictions is evaluated at the time of the RCPT TO
5496command.
5497
5498</ul>
5499
5500<p>
5501Examples:
5502</p>
5503
5504<pre>
5505smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname
5506smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname
5507</pre>
5508
5509%PARAM smtpd_history_flush_threshold 100
5510
5511<p>
5512The maximal number of lines in the Postfix SMTP server command history
5513before it is flushed upon receipt of EHLO, RSET, or end of DATA.
5514</p>
5515
5516%PARAM smtpd_noop_commands
5517
5518<p>
5519List of commands that the Postfix SMTP server replies to with "250
5520Ok", without doing any syntax checks and without changing state.
5521This list overrides any commands built into the Postfix SMTP server.
5522</p>
5523
5524%PARAM smtpd_proxy_ehlo $myhostname
5525
5526<p>
5527How the Postfix SMTP server announces itself to the proxy filter.
5528By default, the Postfix hostname is used.
5529</p>
5530
5531<p>
5532This feature is available in Postfix 2.1 and later.
5533</p>
5534
5535%PARAM smtpd_proxy_options
5536
5537<p>
5538List of options that control how the Postfix SMTP server
5539communicates with a before-queue content filter. Specify zero or
5540more of the following, separated by comma or whitespace.  </p>
5541
5542<dl>
5543
5544<dt><b>speed_adjust</b></dt>
5545
5546<dd> <p> Do not connect to a before-queue content filter until an entire
5547message has been received. This reduces the number of simultaneous
5548before-queue content filter processes. </p>
5549
5550<p> NOTE 1: A filter must not <i>selectively</i> reject recipients
5551of a multi-recipient message.  Rejecting all recipients is OK, as
5552is accepting all recipients. </p>
5553
5554<p> NOTE 2: This feature increases the minimum amount of free queue
5555space by $message_size_limit. The extra space is needed to save the
5556message to a temporary file. </p> </dd>
5557
5558</dl>
5559
5560<p>
5561This feature is available in Postfix 2.7 and later.
5562</p>
5563
5564%CLASS smtpd-proxy SMTP Proxy filter
5565
5566<p>
5567As of Postfix version 2.1, the SMTP server can forward all incoming
5568mail to a content filtering proxy server that inspects all mail
5569BEFORE it is stored in the Postfix mail queue.
5570</p>
5571
5572<p>
5573WARNING: the proxy filter must reply within a fixed deadline or
5574else the remote SMTP client times out and mail duplication happens.
5575This becomes a problem as mail load increases so that fewer and
5576fewer CPU cycles remain available to mead the fixed deadline.
5577</p>
5578
5579%PARAM smtpd_proxy_filter
5580
5581<p> The hostname and TCP port of the mail filtering proxy server.
5582The proxy receives all mail from the Postfix SMTP server, and is
5583supposed to give the result to another Postfix SMTP server process.
5584</p>
5585
5586<p> Specify "host:port" or "inet:host:port" for a TCP endpoint, or
5587"unix:pathname" for a UNIX-domain endpoint. The host can be specified
5588as an IP address or as a symbolic name; no MX lookups are done.
5589When no "host" or "host:"  are specified, the local machine is
5590assumed.  Pathname interpretation is relative to the Postfix queue
5591directory.  </p>
5592
5593<p> This feature is available in Postfix 2.1 and later.  </p>
5594
5595<p> The "inet:" and "unix:" prefixes are available in Postfix 2.3
5596and later.  </p>
5597
5598%PARAM smtpd_proxy_timeout 100s
5599
5600<p>
5601The time limit for connecting to a proxy filter and for sending or
5602receiving information.  When a connection fails the client gets a
5603generic error message while more detailed information is logged to
5604the maillog file.
5605</p>
5606
5607<p>
5608Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
5609The default time unit is s (seconds).
5610</p>
5611
5612<p>
5613This feature is available in Postfix 2.1 and later.
5614</p>
5615
5616%PARAM smtpd_recipient_limit 1000
5617
5618<p>
5619The maximal number of recipients that the Postfix SMTP server
5620accepts per message delivery request.
5621</p>
5622
5623%PARAM smtpd_recipient_restrictions permit_mynetworks, reject_unauth_destination
5624
5625<p>
5626The access restrictions that the Postfix SMTP server applies in
5627the context of the RCPT TO command.
5628See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5629restriction lists" for a discussion of evaluation context and time.
5630</p>
5631
5632<p>
5633By default, the Postfix SMTP server accepts:
5634</p>
5635
5636<ul>
5637
5638<li> Mail from clients whose IP address matches $mynetworks, or:
5639
5640<li> Mail to remote destinations that match $relay_domains, except
5641for addresses that contain sender-specified routing
5642(user@elsewhere@domain), or:
5643
5644<li> Mail to local destinations that match $inet_interfaces
5645or $proxy_interfaces, $mydestination, $virtual_alias_domains, or
5646$virtual_mailbox_domains.
5647
5648</ul>
5649
5650<p>
5651IMPORTANT: If you change this parameter setting, you must specify
5652at least one of the following restrictions. Otherwise Postfix will
5653refuse to receive mail:
5654</p>
5655
5656<blockquote>
5657<pre>
5658reject, defer, defer_if_permit, reject_unauth_destination
5659</pre>
5660</blockquote>
5661
5662<p>
5663Specify a list of restrictions, separated by commas and/or whitespace.
5664Continue long lines by starting the next line with whitespace.
5665Restrictions are applied in the order as specified; the first
5666restriction that matches wins.
5667</p>
5668
5669<p>
5670The following restrictions are specific to the recipient address
5671that is received with the RCPT TO command.
5672</p>
5673
5674<dl>
5675
5676<dt><b><a name="check_recipient_access">check_recipient_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5677
5678<dd>Search the specified access(5) database for the resolved RCPT
5679TO address, domain, parent domains, or localpart@, and execute the
5680corresponding action.  </dd>
5681
5682<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>
5683
5684<dd>Search the specified access(5) database for the MX hosts for
5685the RCPT TO domain, and execute the corresponding action.  Note:
5686a result of "OK" is not allowed for safety reasons. Instead, use
5687DUNNO in order to exclude specific hosts from blacklists.  This
5688feature is available in Postfix 2.1 and later. </dd>
5689
5690<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>
5691
5692<dd>Search the specified access(5) database for the DNS servers
5693for the RCPT TO domain, and execute the corresponding action.
5694Note: a result of "OK" is not allowed for safety reasons. Instead,
5695use DUNNO in order to exclude specific hosts from blacklists.  This
5696feature is available in Postfix 2.1 and later.  </dd>
5697
5698<dt><b><a name="permit_auth_destination">permit_auth_destination</a></b></dt>
5699
5700<dd>Permit the request when one of the following is true:
5701
5702<ul>
5703
5704<li> Postfix is mail forwarder: the resolved RCPT TO domain matches
5705$relay_domains or a subdomain thereof, and the address contains no
5706sender-specified routing (user@elsewhere@domain),
5707
5708<li> Postfix is the final destination: the resolved RCPT TO domain
5709matches $mydestination, $inet_interfaces, $proxy_interfaces,
5710$virtual_alias_domains, or $virtual_mailbox_domains, and the address
5711contains no sender-specified routing (user@elsewhere@domain).
5712
5713</ul></dd>
5714
5715<dt><b><a name="permit_mx_backup">permit_mx_backup</a></b></dt>
5716
5717<dd>Permit the request when the local mail system is backup MX for
5718the RCPT TO domain, or when the domain is an authorized destination
5719(see permit_auth_destination for definition).
5720
5721<ul>
5722
5723<li> Safety: permit_mx_backup does not accept addresses that have
5724sender-specified routing information (example: user@elsewhere@domain).
5725
5726<li> Safety: permit_mx_backup can be vulnerable to mis-use when
5727access is not restricted with permit_mx_backup_networks.
5728
5729<li> Safety: as of Postfix version 2.3, permit_mx_backup no longer
5730accepts the address when the local mail system is primary MX for
5731the recipient domain.  Exception: permit_mx_backup accepts the address
5732when it specifies an authorized destination (see permit_auth_destination
5733for definition).
5734
5735<li> Limitation: mail may be rejected in case of a temporary DNS
5736lookup problem with Postfix prior to version 2.0.
5737
5738</ul></dd>
5739
5740<dt><b><a name="reject_non_fqdn_recipient">reject_non_fqdn_recipient</a></b></dt>
5741
5742<dd>Reject the request when the RCPT TO address is not in
5743fully-qualified domain form, as required by the RFC. <br> The
5744non_fqdn_reject_code parameter specifies the response code for
5745rejected requests (default: 504). </dd>
5746
5747<dt><b><a name="reject_rhsbl_recipient">reject_rhsbl_recipient <i>rbl_domain=d.d.d.d</i></a></b></dt>
5748
5749<dd>Reject the request when the RCPT TO domain is listed with the
5750A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
57512.1 and later only).  Each "<i>d</i>" is a number, or a pattern
5752inside "[]" that contains one or more ";"-separated numbers or
5753number..number ranges (Postfix version 2.8 and later). If no
5754"<i>=d.d.d.d</i>" is specified, reject
5755the request when the RCPT TO domain is listed with
5756any A record under <i>rbl_domain</i>. <br> The maps_rbl_reject_code
5757parameter specifies the response code for rejected requests (default:
5758554); the default_rbl_reply parameter specifies the default server
5759reply; and the rbl_reply_maps parameter specifies tables with server
5760replies indexed by <i>rbl_domain</i>.  This feature is available
5761in Postfix version 2.0 and later.</dd>
5762
5763<dt><b><a name="reject_unauth_destination">reject_unauth_destination</a></b></dt>
5764
5765<dd>Reject the request unless one of the following is true:
5766
5767<ul>
5768
5769<li> Postfix is mail forwarder: the resolved RCPT TO domain matches
5770$relay_domains or a subdomain thereof, and contains no sender-specified
5771routing (user@elsewhere@domain),
5772
5773<li> Postfix is the final destination: the resolved RCPT TO domain
5774matches $mydestination, $inet_interfaces, $proxy_interfaces,
5775$virtual_alias_domains, or $virtual_mailbox_domains, and contains
5776no sender-specified routing (user@elsewhere@domain).
5777
5778</ul> The relay_domains_reject_code parameter specifies the response
5779code for rejected requests (default: 554). </dd>
5780
5781<dt><b><a name="reject_unknown_recipient_domain">reject_unknown_recipient_domain</a></b></dt>
5782
5783<dd>Reject the request when Postfix is not final destination for
5784the recipient domain, and the RCPT TO domain has 1) no DNS A or MX
5785record or 2) a malformed MX record such as a record with
5786a zero-length MX hostname (Postfix version 2.3 and later). <br> The
5787unknown_address_reject_code parameter specifies the numerical
5788response code for rejected requests (default: 450).  The response
5789is always 450 in case of a temporary DNS error. <br> The
5790unknown_address_tempfail_action parameter specifies the action
5791after a temporary DNS error (default: defer_if_permit).  </dd>
5792
5793<dt><b><a name="reject_unlisted_recipient">reject_unlisted_recipient</a></b> (with Postfix version 2.0: check_recipient_maps)</dt>
5794
5795<dd> Reject the request when the RCPT TO address is not listed in
5796the list of valid recipients for its domain class. See the
5797smtpd_reject_unlisted_recipient parameter description for details.
5798This feature is available in Postfix 2.1 and later.</dd>
5799
5800<dt><b><a name="reject_unverified_recipient">reject_unverified_recipient</a></b></dt>
5801
5802<dd>Reject the request when mail to the RCPT TO address is known
5803to bounce, or when the recipient address destination is not reachable.
5804Address verification information is managed by the verify(8) server;
5805see the ADDRESS_VERIFICATION_README file for details.  <br> The
5806unverified_recipient_reject_code parameter specifies the numerical
5807response code when an address is known to bounce (default: 450,
5808change into 550 when you are confident that it is safe to do so).
5809<br>The unverified_recipient_defer_code parameter specifies the
5810numerical response code when an address probe failed due to a
5811temporary problem (default: 450). <br> The
5812unverified_recipient_tempfail_action parameter specifies the action
5813after addres probe failure due to a temporary problem (default:
5814defer_if_permit).  <br>  This feature is available in Postfix 2.1
5815and later.  </dd>
5816
5817</dl>
5818
5819<p>
5820Other restrictions that are valid in this context:
5821</p>
5822
5823<ul>
5824
5825<li><a href="#generic">Generic</a> restrictions that can be used
5826in any SMTP command context, described under smtpd_client_restrictions.
5827
5828<li>SMTP command specific restrictions described under
5829smtpd_client_restrictions, smtpd_helo_restrictions and
5830smtpd_sender_restrictions.
5831
5832</ul>
5833
5834<p>
5835Example:
5836</p>
5837
5838<pre>
5839smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
5840</pre>
5841
5842%CLASS sasl-auth SASL Authentication
5843
5844<p>
5845Postfix SASL support (RFC 4954) can be used to authenticate remote
5846SMTP clients to the Postfix SMTP server, and to authenticate the
5847Postfix SMTP client to a remote SMTP server.
5848See the SASL_README document for details.
5849</p>
5850
5851%PARAM smtpd_sasl_auth_enable no
5852
5853<p>
5854Enable SASL authentication in the Postfix SMTP server. By default,
5855the Postfix SMTP server does not use authentication.
5856</p>
5857
5858<p>
5859If a remote SMTP client is authenticated, the permit_sasl_authenticated
5860access restriction can be used to permit relay access, like this:
5861</p>
5862
5863<blockquote>
5864<pre>
5865smtpd_recipient_restrictions =
5866    permit_mynetworks, permit_sasl_authenticated, ...
5867</pre>
5868</blockquote>
5869
5870<p> To reject all SMTP connections from unauthenticated clients,
5871specify "smtpd_delay_reject = yes" (which is the default) and use:
5872</p>
5873
5874<blockquote>
5875<pre>
5876smtpd_client_restrictions = permit_sasl_authenticated, reject
5877</pre>
5878</blockquote>
5879
5880<p>
5881See the SASL_README file for SASL configuration and operation details.
5882</p>
5883
5884%PARAM smtpd_sasl_authenticated_header no
5885
5886<p> Report the SASL authenticated user name in the smtpd(8) Received
5887message header.  </p>
5888
5889<p> This feature is available in Postfix 2.3 and later.  </p>
5890
5891%PARAM smtpd_sasl_exceptions_networks
5892
5893<p>
5894What remote SMTP clients the Postfix SMTP server will not offer
5895AUTH support to.
5896</p>
5897
5898<p>
5899Some clients (Netscape 4 at least) have a bug that causes them to
5900require a login and password whenever AUTH is offered, whether it's
5901necessary or not. To work around this, specify, for example,
5902$mynetworks to prevent Postfix from offering AUTH to local clients.
5903</p>
5904
5905<p>
5906Specify a list of network/netmask patterns, separated by commas
5907and/or whitespace. The mask specifies the number of bits in the
5908network part of a host address. You can also "/file/name" or
5909"type:table" patterns.  A "/file/name" pattern is replaced by its
5910contents; a "type:table" lookup table is matched when a table entry
5911matches a lookup string (the lookup result is ignored).  Continue
5912long lines by starting the next line with whitespace. Specify
5913"!pattern" to exclude an address or network block from the list.
5914The form "!/file/name" is supported only in Postfix version 2.4 and
5915later.  </p>
5916
5917<p> Note: IP version 6 address information must be specified inside
5918<tt>[]</tt> in the smtpd_sasl_exceptions_networks value, and in
5919files specified with "/file/name".  IP version 6 addresses contain
5920the ":" character, and would otherwise be confused with a "type:table"
5921pattern.  </p>
5922
5923<p>
5924Example:
5925</p>
5926
5927<pre>
5928smtpd_sasl_exceptions_networks = $mynetworks
5929</pre>
5930
5931<p>
5932This feature is available in Postfix 2.1 and later.
5933</p>
5934
5935%PARAM smtpd_sasl_local_domain
5936
5937<p>
5938The name of the Postfix SMTP server's local SASL authentication
5939realm.
5940</p>
5941
5942<p>
5943By default, the local authentication realm name is the null string.
5944</p>
5945
5946<p>
5947Examples:
5948</p>
5949
5950<pre>
5951smtpd_sasl_local_domain = $mydomain
5952smtpd_sasl_local_domain = $myhostname
5953</pre>
5954
5955%PARAM smtpd_sasl_security_options noanonymous
5956
5957<p> Postfix SMTP server SASL security options; as of Postfix 2.3
5958the list of available
5959features depends on the SASL server implementation that is selected
5960with <b>smtpd_sasl_type</b>.  </p>
5961
5962<p> The following security features are defined for the <b>cyrus</b>
5963server SASL implementation: </p>
5964
5965<p>
5966Restrict what authentication mechanisms the Postfix SMTP server
5967will offer to the client.  The list of available authentication
5968mechanisms is system dependent.
5969</p>
5970
5971<p>
5972Specify zero or more of the following:
5973</p>
5974
5975<dl>
5976
5977<dt><b>noplaintext</b></dt>
5978
5979<dd>Disallow methods that use plaintext passwords. </dd>
5980
5981<dt><b>noactive</b></dt>
5982
5983<dd>Disallow methods subject to active (non-dictionary) attack. </dd>
5984
5985<dt><b>nodictionary</b></dt>
5986
5987<dd>Disallow methods subject to passive (dictionary) attack. </dd>
5988
5989<dt><b>noanonymous</b></dt>
5990
5991<dd>Disallow methods that allow anonymous authentication. </dd>
5992
5993<dt><b>forward_secrecy</b></dt>
5994
5995<dd>Only allow methods that support forward secrecy (Dovecot only).
5996</dd>
5997
5998<dt><b>mutual_auth</b></dt>
5999
6000<dd>Only allow methods that provide mutual authentication (not available
6001with Cyrus SASL version 1). </dd>
6002
6003</dl>
6004
6005<p>
6006By default, the Postfix SMTP server accepts plaintext passwords but
6007not anonymous logins.
6008</p>
6009
6010<p>
6011Warning: it appears that clients try authentication methods in the
6012order as advertised by the server (e.g., PLAIN ANONYMOUS CRAM-MD5)
6013which means that if you disable plaintext passwords, clients will
6014log in anonymously, even when they should be able to use CRAM-MD5.
6015So, if you disable plaintext logins, disable anonymous logins too.
6016Postfix treats anonymous login as no authentication.
6017</p>
6018
6019<p>
6020Example:
6021</p>
6022
6023<pre>
6024smtpd_sasl_security_options = noanonymous, noplaintext
6025</pre>
6026
6027%PARAM smtpd_sender_login_maps
6028
6029<p>
6030Optional lookup table with the SASL login names that own sender
6031(MAIL FROM) addresses.
6032</p>
6033
6034<p>
6035Specify zero or more "type:table" lookup tables. With lookups from
6036indexed files such as DB or DBM, or from networked tables such as
6037NIS, LDAP or SQL, the following search operations are done with a
6038sender address of <i>user@domain</i>:  </p>
6039
6040<dl>
6041
6042<dt> 1) <i>user@domain</i> </dt>
6043
6044<dd>This table lookup is always done and has the highest precedence. </dd>
6045
6046<dt> 2) <i>user</i> </dt>
6047
6048<dd>This table lookup is done only when the <i>domain</i> part of the
6049sender address matches $myorigin, $mydestination, $inet_interfaces
6050or $proxy_interfaces. </dd>
6051
6052<dt> 3) <i>@domain</i> </dt>
6053
6054<dd>This table lookup is done last and has the lowest precedence. </dd>
6055
6056</dl>
6057
6058<p>
6059In all cases the result of table lookup must be either "not found"
6060or a list of SASL login names separated by comma and/or whitespace.
6061</p>
6062
6063%PARAM smtpd_sender_restrictions
6064
6065<p>
6066Optional restrictions that the Postfix SMTP server applies in the
6067context of the MAIL FROM command.
6068See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6069restriction lists" for a discussion of evaluation context and time.
6070</p>
6071
6072<p>
6073The default is to permit everything.
6074</p>
6075
6076<p>
6077Specify a list of restrictions, separated by commas and/or whitespace.
6078Continue long lines by starting the next line with whitespace.
6079Restrictions are applied in the order as specified; the first
6080restriction that matches wins.
6081</p>
6082
6083<p>
6084The following restrictions are specific to the sender address
6085received with the MAIL FROM command.
6086</p>
6087
6088<dl>
6089
6090<dt><b><a name="check_sender_access">check_sender_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
6091
6092<dd>Search the specified access(5) database for the MAIL FROM
6093address, domain, parent domains, or localpart@, and execute the
6094corresponding action. </dd>
6095
6096<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>
6097
6098<dd>Search the specified access(5) database for the MX hosts for
6099the MAIL FROM address, and execute the corresponding action.  Note:
6100a result of "OK" is not allowed for safety reasons. Instead, use
6101DUNNO in order to exclude specific hosts from blacklists.  This
6102feature is available in Postfix 2.1 and later. </dd>
6103
6104<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>
6105
6106<dd>Search the specified access(5) database for the DNS servers
6107for the MAIL FROM address, and execute the corresponding action.
6108Note: a result of "OK" is not allowed for safety reasons. Instead,
6109use DUNNO in order to exclude specific hosts from blacklists.  This
6110feature is available in Postfix 2.1 and later.  </dd>
6111
6112<dt><b><a name="reject_authenticated_sender_login_mismatch">reject_authenticated_sender_login_mismatch</a></b></dt>
6113
6114<dd>Enforces the reject_sender_login_mismatch restriction for
6115authenticated clients only. This feature is available in
6116Postfix version 2.1 and later. </dd>
6117
6118<dt><b><a name="reject_non_fqdn_sender">reject_non_fqdn_sender</a></b></dt>
6119
6120<dd>Reject the request when the MAIL FROM address is not in
6121fully-qualified domain form, as required by the RFC. <br> The
6122non_fqdn_reject_code parameter specifies the response code for
6123rejected requests (default: 504). </dd>
6124
6125<dt><b><a name="reject_rhsbl_sender">reject_rhsbl_sender <i>rbl_domain=d.d.d.d</i></a></b></dt>
6126
6127<dd>Reject the request when the MAIL FROM domain is listed with
6128the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix
6129version 2.1 and later only).  Each "<i>d</i>" is a number, or a
6130pattern inside "[]" that contains one or more ";"-separated numbers
6131or number..number ranges (Postfix version 2.8 and later). If no
6132"<i>=d.d.d.d</i>" is specified,
6133reject the request when the MAIL FROM domain is
6134listed with any A record under <i>rbl_domain</i>. <br> The
6135maps_rbl_reject_code parameter specifies the response code for
6136rejected requests (default:  554); the default_rbl_reply parameter
6137specifies the default server reply; and the rbl_reply_maps parameter
6138specifies tables with server replies indexed by <i>rbl_domain</i>.
6139This feature is available in Postfix 2.0 and later.</dd>
6140
6141<dt><b><a name="reject_sender_login_mismatch">reject_sender_login_mismatch</a></b></dt>
6142
6143<dd>Reject the request when $smtpd_sender_login_maps specifies an
6144owner for the MAIL FROM address, but the client is not (SASL) logged
6145in as that MAIL FROM address owner; or when the client is (SASL)
6146logged in, but the client login name doesn't own the MAIL FROM
6147address according to $smtpd_sender_login_maps.</dd>
6148
6149<dt><b><a name="reject_unauthenticated_sender_login_mismatch">reject_unauthenticated_sender_login_mismatch</a></b></dt>
6150
6151<dd>Enforces the reject_sender_login_mismatch restriction for
6152unauthenticated clients only. This feature is available in
6153Postfix version 2.1 and later. </dd>
6154
6155<dt><b><a name="reject_unknown_sender_domain">reject_unknown_sender_domain</a></b></dt>
6156
6157<dd>Reject the request when Postfix is not final destination for
6158the sender address, and the MAIL FROM domain has 1) no DNS A or MX
6159record, or 2) a malformed MX record such as a record with
6160a zero-length MX hostname (Postfix version 2.3 and later). <br> The
6161unknown_address_reject_code parameter specifies the numerical
6162response code for rejected requests (default: 450).  The response
6163is always 450 in case of a temporary DNS error. <br> The
6164unknown_address_tempfail_action parameter specifies the action
6165after a temporary DNS error (default: defer_if_permit). </dd>
6166
6167<dt><b><a name="reject_unlisted_sender">reject_unlisted_sender</a></b></dt>
6168
6169<dd>Reject the request when the MAIL FROM address is not listed in
6170the list of valid recipients for its domain class. See the
6171smtpd_reject_unlisted_sender parameter description for details.
6172This feature is available in Postfix 2.1 and later.</dd>
6173
6174<dt><b><a name="reject_unverified_sender">reject_unverified_sender</a></b></dt>
6175
6176<dd>Reject the request when mail to the MAIL FROM address is known to
6177bounce, or when the sender address destination is not reachable.
6178Address verification information is managed by the verify(8) server;
6179see the ADDRESS_VERIFICATION_README file for details. <br> The
6180unverified_sender_reject_code parameter specifies the numerical
6181response code when an address is known to bounce (default: 450,
6182change into 550 when you are confident that it is safe to do so).
6183<br>The unverified_sender_defer_code specifies the numerical response
6184code when an address address probe failed due to a temporary problem
6185(default: 450).  <br> The unverified_sender_tempfail_action parameter
6186specifies the action after address probe failure due to a temporary
6187problem (default: defer_if_permit).  <br> This feature is available
6188in Postfix 2.1 and later.  </dd>
6189
6190</dl>
6191
6192<p>
6193Other restrictions that are valid in this context:
6194</p>
6195
6196<ul>
6197
6198<li> <a href="#generic">Generic</a> restrictions that can be used
6199in any SMTP command context, described under smtpd_client_restrictions.
6200
6201<li> SMTP command specific restrictions described under
6202smtpd_client_restrictions and smtpd_helo_restrictions.
6203
6204<li> SMTP command specific restrictions described under
6205smtpd_recipient_restrictions. When recipient restrictions are listed
6206under smtpd_sender_restrictions, they have effect only with
6207"smtpd_delay_reject = yes", so that $smtpd_sender_restrictions is
6208evaluated at the time of the RCPT TO command.
6209
6210</ul>
6211
6212<p>
6213Examples:
6214</p>
6215
6216<pre>
6217smtpd_sender_restrictions = reject_unknown_sender_domain
6218smtpd_sender_restrictions = reject_unknown_sender_domain,
6219    check_sender_access hash:/etc/postfix/access
6220</pre>
6221
6222%PARAM smtpd_timeout normal: 300s, overload: 10s
6223
6224<p>
6225The time limit for sending a Postfix SMTP server response and for
6226receiving a remote SMTP client request. Normally the default limit
6227is 300s, but it changes under overload to just 10s. With Postfix
62282.5 and earlier, the SMTP server always uses a time limit of 300s
6229by default.
6230</p>
6231
6232<p>
6233Note: if you set SMTP time limits to very large values you may have
6234to update the global ipc_timeout parameter.
6235</p>
6236
6237<p>
6238Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6239The default time unit is s (seconds).
6240</p>
6241
6242%PARAM soft_bounce no
6243
6244<p>
6245Safety net to keep mail queued that would otherwise be returned to
6246the sender.  This parameter disables locally-generated bounces,
6247and prevents the Postfix SMTP server from rejecting mail permanently,
6248by changing 5xx reply codes into 4xx.  However, soft_bounce is no
6249cure for address rewriting mistakes or mail routing mistakes.
6250</p>
6251
6252<p>
6253Example:
6254</p>
6255
6256<pre>
6257soft_bounce = yes
6258</pre>
6259
6260%PARAM stale_lock_time 500s
6261
6262<p>
6263The time after which a stale exclusive mailbox lockfile is removed.
6264This is used for delivery to file or mailbox.
6265</p>
6266
6267<p>
6268Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6269The default time unit is s (seconds).
6270</p>
6271
6272%PARAM strict_rfc821_envelopes no
6273
6274<p>
6275Require that addresses received in SMTP MAIL FROM and RCPT TO
6276commands are enclosed with &lt;&gt;, and that those addresses do
6277not contain RFC 822 style comments or phrases.  This stops mail
6278from poorly written software.
6279</p>
6280
6281<p>
6282By default, the Postfix SMTP server accepts RFC 822 syntax in MAIL
6283FROM and RCPT TO addresses.
6284</p>
6285
6286%PARAM swap_bangpath yes
6287
6288<p>
6289Enable the rewriting of "site!user" into "user@site".  This is
6290necessary if your machine is connected to UUCP networks.  It is
6291enabled by default.
6292</p>
6293
6294<p> Note: with Postfix version 2.2, message header address rewriting
6295happens only when one of the following conditions is true: </p>
6296
6297<ul>
6298
6299<li> The message is received with the Postfix sendmail(1) command,
6300
6301<li> The message is received from a network client that matches
6302$local_header_rewrite_clients,
6303
6304<li> The message is received from the network, and the
6305remote_header_rewrite_domain parameter specifies a non-empty value.
6306
6307</ul>
6308
6309<p> To get the behavior before Postfix version 2.2, specify
6310"local_header_rewrite_clients = static:all". </p>
6311
6312<p>
6313Example:
6314</p>
6315
6316<pre>
6317swap_bangpath = no
6318</pre>
6319
6320%PARAM syslog_facility mail
6321
6322<p>
6323The syslog facility of Postfix logging. Specify a facility as
6324defined in syslog.conf(5). The default facility is "mail".
6325</p>
6326
6327<p>
6328Warning: a non-default syslog_facility setting takes effect only
6329after a Postfix process has completed initialization.  Errors during
6330process initialization will be logged with the default facility.
6331Examples are errors while parsing the command line arguments, and
6332errors while accessing the Postfix main.cf configuration file.
6333</p>
6334
6335%PARAM syslog_name see "postconf -d" output
6336
6337<p>
6338The mail system name that is prepended to the process name in syslog
6339records, so that "smtpd" becomes, for example, "postfix/smtpd".
6340</p>
6341
6342<p>
6343Warning: a non-default syslog_name setting takes effect only after
6344a Postfix process has completed initialization. Errors during
6345process initialization will be logged with the default name. Examples
6346are errors while parsing the command line arguments, and errors
6347while accessing the Postfix main.cf configuration file.
6348</p>
6349
6350%PARAM transport_maps
6351
6352<p>
6353Optional lookup tables with mappings from recipient address to
6354(message delivery transport, next-hop destination).  See transport(5)
6355for details.
6356</p>
6357
6358<p>
6359Specify zero or more "type:table" lookup tables.  If you use this
6360feature with local files, run "<b>postmap /etc/postfix/transport</b>"
6361after making a change.  </p>
6362
6363<p> For safety reasons, as of Postfix 2.3 this feature does not
6364allow $number substitutions in regular expression maps. </p>
6365
6366<p>
6367Examples:
6368</p>
6369
6370<pre>
6371transport_maps = dbm:/etc/postfix/transport
6372transport_maps = hash:/etc/postfix/transport
6373</pre>
6374
6375%PARAM transport_retry_time 60s
6376
6377<p>
6378The time between attempts by the Postfix queue manager to contact
6379a malfunctioning message delivery transport.
6380</p>
6381
6382<p>
6383Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6384The default time unit is s (seconds).
6385</p>
6386
6387%PARAM trigger_timeout 10s
6388
6389<p>
6390The time limit for sending a trigger to a Postfix daemon (for
6391example, the pickup(8) or qmgr(8) daemon). This time limit prevents
6392programs from getting stuck when the mail system is under heavy
6393load.
6394</p>
6395
6396<p>
6397Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6398The default time unit is s (seconds).
6399</p>
6400
6401%PARAM unknown_address_reject_code 450
6402
6403<p>
6404The numerical Postfix SMTP server response code when a sender or
6405recipient address is rejected by the reject_unknown_sender_domain
6406or reject_unknown_recipient_domain restriction.  The response is
6407always 450 in case of a temporary DNS error.
6408</p>
6409
6410<p>
6411Do not change this unless you have a complete understanding of RFC 2821.
6412</p>
6413
6414%PARAM unknown_client_reject_code 450
6415
6416<p>
6417The numerical Postfix SMTP server response code when a client
6418without valid address &lt;=&gt; name mapping is rejected by the
6419reject_unknown_client_hostname restriction. The SMTP server always replies
6420with 450 when the mapping failed due to a temporary error condition.
6421</p>
6422
6423<p>
6424Do not change this unless you have a complete understanding of RFC 2821.
6425</p>
6426
6427%PARAM unknown_hostname_reject_code 450
6428
6429<p>
6430The numerical Postfix SMTP server response code when the hostname
6431specified with the HELO or EHLO command is rejected by the
6432reject_unknown_helo_hostname restriction.
6433</p>
6434
6435<p>
6436Do not change this unless you have a complete understanding of RFC 2821.
6437</p>
6438
6439%PARAM unknown_local_recipient_reject_code 550
6440
6441<p>
6442The numerical Postfix SMTP server response code when a recipient
6443address is local, and $local_recipient_maps specifies a list of
6444lookup tables that does not match the recipient.  A recipient
6445address is local when its domain matches $mydestination,
6446$proxy_interfaces or $inet_interfaces.
6447</p>
6448
6449<p>
6450The default setting is 550 (reject mail) but it is safer to initially
6451use 450 (try again later) so you have time to find out if your
6452local_recipient_maps settings are OK.
6453</p>
6454
6455<p>
6456Example:
6457</p>
6458
6459<pre>
6460unknown_local_recipient_reject_code = 450
6461</pre>
6462
6463<p>
6464This feature is available in Postfix 2.0 and later.
6465</p>
6466
6467%PARAM unverified_recipient_reject_code 450
6468
6469<p>
6470The numerical Postfix SMTP server response when a recipient address
6471is rejected by the reject_unverified_recipient restriction.
6472</p>
6473
6474<p>
6475Unlike elsewhere in Postfix, you can specify 250 in order to
6476accept the address anyway.
6477</p>
6478
6479<p>
6480Do not change this unless you have a complete understanding of RFC 2821.
6481</p>
6482
6483<p>
6484This feature is available in Postfix 2.1 and later.
6485</p>
6486
6487%PARAM unverified_recipient_defer_code 450
6488
6489<p>
6490The numerical Postfix SMTP server response when a recipient address
6491probe fails due to a temporary error condition.
6492</p>
6493
6494<p>
6495Unlike elsewhere in Postfix, you can specify 250 in order to
6496accept the address anyway.
6497</p>
6498
6499<p>
6500Do not change this unless you have a complete understanding of RFC 2821.
6501</p>
6502
6503<p>
6504This feature is available in Postfix 2.6 and later.
6505</p>
6506
6507%PARAM unverified_sender_reject_code 450
6508
6509<p>
6510The numerical Postfix SMTP server response code when a recipient
6511address is rejected by the reject_unverified_sender restriction.
6512</p>
6513
6514<p>
6515Unlike elsewhere in Postfix, you can specify 250 in order to
6516accept the address anyway.
6517</p>
6518
6519<p>
6520Do not change this unless you have a complete understanding of RFC 2821.
6521</p>
6522
6523<p>
6524This feature is available in Postfix 2.1 and later.
6525</p>
6526
6527%PARAM unverified_sender_defer_code 450
6528
6529<p>
6530The numerical Postfix SMTP server response code when a sender address
6531probe fails due to a temporary error condition.
6532</p>
6533
6534<p>
6535Unlike elsewhere in Postfix, you can specify 250 in order to
6536accept the address anyway.
6537</p>
6538
6539<p>
6540Do not change this unless you have a complete understanding of RFC 2821.
6541</p>
6542
6543<p>
6544This feature is available in Postfix 2.6 and later.
6545</p>
6546
6547%PARAM virtual_alias_domains $virtual_alias_maps
6548
6549<p> Postfix is final destination for the specified list of virtual
6550alias domains, that is, domains for which all addresses are aliased
6551to addresses in other local or remote domains. The SMTP server
6552validates recipient addresses with $virtual_alias_maps and rejects
6553non-existent recipients. See also the virtual alias domain class
6554in the ADDRESS_CLASS_README file </p>
6555
6556<p>
6557This feature is available in Postfix 2.0 and later. The default
6558value is backwards compatible with Postfix version 1.1.
6559</p>
6560
6561<p>
6562The default value is $virtual_alias_maps so that you can keep all
6563information about virtual alias domains in one place.  If you have
6564many users, it is better to separate information that changes more
6565frequently (virtual address -&gt; local or remote address mapping)
6566from information that changes less frequently (the list of virtual
6567domain names).
6568</p>
6569
6570<p> Specify a list of host or domain names, "/file/name" or
6571"type:table" patterns, separated by commas and/or whitespace. A
6572"/file/name" pattern is replaced by its contents; a "type:table"
6573lookup table is matched when a table entry matches a lookup string
6574(the lookup result is ignored).  Continue long lines by starting
6575the next line with whitespace. Specify "!pattern" to exclude a host
6576or domain name from the list. The form "!/file/name" is supported
6577only in Postfix version 2.4 and later.  </p>
6578
6579<p>
6580See also the VIRTUAL_README and ADDRESS_CLASS_README documents
6581for further information.
6582</p>
6583
6584<p>
6585Example:
6586</p>
6587
6588<pre>
6589virtual_alias_domains = virtual1.tld virtual2.tld
6590</pre>
6591
6592%PARAM virtual_alias_expansion_limit 1000
6593
6594<p>
6595The maximal number of addresses that virtual alias expansion produces
6596from each original recipient.
6597</p>
6598
6599<p>
6600This feature is available in Postfix 2.1 and later.
6601</p>
6602
6603%PARAM virtual_alias_maps $virtual_maps
6604
6605<p>
6606Optional lookup tables that alias specific mail addresses or domains
6607to other local or remote address.  The table format and lookups
6608are documented in virtual(5). For an overview of Postfix address
6609manipulations see the ADDRESS_REWRITING_README document.
6610</p>
6611
6612<p>
6613This feature is available in Postfix 2.0 and later. The default
6614value is backwards compatible with Postfix version 1.1.
6615</p>
6616
6617<p>
6618If you use this feature with indexed files, run "<b>postmap
6619/etc/postfix/virtual</b>" after changing the file.
6620</p>
6621
6622<p>
6623Examples:
6624</p>
6625
6626<pre>
6627virtual_alias_maps = dbm:/etc/postfix/virtual
6628virtual_alias_maps = hash:/etc/postfix/virtual
6629</pre>
6630
6631%PARAM virtual_alias_recursion_limit 1000
6632
6633<p>
6634The maximal nesting depth of virtual alias expansion.  Currently
6635the recursion limit is applied only to the left branch of the
6636expansion graph, so the depth of the tree can in the worst case
6637reach the sum of the expansion and recursion limits.  This may
6638change in the future.
6639</p>
6640
6641<p>
6642This feature is available in Postfix 2.1 and later.
6643</p>
6644
6645%CLASS trouble-shooting Trouble shooting
6646
6647<p>
6648The DEBUG_README document describes how to debug parts of the
6649Postfix mail system. The methods vary from making the software log
6650a lot of detail, to running some daemon processes under control of
6651a call tracer or debugger.
6652</p>
6653
6654%PARAM debugger_command
6655
6656<p>
6657The external command to execute when a Postfix daemon program is
6658invoked with the -D option.
6659</p>
6660
6661<p>
6662Use "command .. &amp; sleep 5" so that the debugger can attach before
6663the process marches on. If you use an X-based debugger, be sure to
6664set up your XAUTHORITY environment variable before starting Postfix.
6665</p>
6666
6667<p>
6668Example:
6669</p>
6670
6671<pre>
6672debugger_command =
6673    PATH=/usr/bin:/usr/X11R6/bin
6674    ddd $daemon_directory/$process_name $process_id &amp; sleep 5
6675</pre>
6676
6677%PARAM 2bounce_notice_recipient postmaster
6678
6679<p> The recipient of undeliverable mail that cannot be returned to
6680the sender.  This feature is enabled with the notify_classes
6681parameter.  </p>
6682
6683%PARAM address_verify_service_name verify
6684
6685<p>
6686The name of the verify(8) address verification service. This service
6687maintains the status of sender and/or recipient address verification
6688probes, and generates probes on request by other Postfix processes.
6689</p>
6690
6691%PARAM alternate_config_directories
6692
6693<p>
6694A list of non-default Postfix configuration directories that may
6695be specified with "-c config_directory" on the command line, or
6696via the MAIL_CONFIG environment parameter.
6697</p>
6698
6699<p>
6700This list must be specified in the default Postfix configuration
6701directory, and is used by set-gid Postfix commands such as postqueue(1)
6702and postdrop(1).
6703</p>
6704
6705%PARAM append_at_myorigin yes
6706
6707<p>
6708With locally submitted mail, append the string "@$myorigin" to mail
6709addresses without domain information. With remotely submitted mail,
6710append the string "@$remote_header_rewrite_domain" instead.
6711</p>
6712
6713<p>
6714Note 1: this feature is enabled by default and must not be turned off.
6715Postfix does not support domain-less addresses.
6716</p>
6717
6718<p> Note 2: with Postfix version 2.2, message header address rewriting
6719happens only when one of the following conditions is true: </p>
6720
6721<ul>
6722
6723<li> The message is received with the Postfix sendmail(1) command,
6724
6725<li> The message is received from a network client that matches
6726$local_header_rewrite_clients,
6727
6728<li> The message is received from the network, and the
6729remote_header_rewrite_domain parameter specifies a non-empty value.
6730
6731</ul>
6732
6733<p> To get the behavior before Postfix version 2.2, specify
6734"local_header_rewrite_clients = static:all". </p>
6735
6736%PARAM append_dot_mydomain yes
6737
6738<p>
6739With locally submitted mail, append the string ".$mydomain" to
6740addresses that have no ".domain" information. With remotely submitted
6741mail, append the string ".$remote_header_rewrite_domain"
6742instead.
6743</p>
6744
6745<p>
6746Note 1: this feature is enabled by default. If disabled, users will not be
6747able to send mail to "user@partialdomainname" but will have to
6748specify full domain names instead.
6749</p>
6750
6751<p> Note 2: with Postfix version 2.2, message header address rewriting
6752happens only when one of the following conditions is true: </p>
6753
6754<ul>
6755
6756<li> The message is received with the Postfix sendmail(1) command,
6757
6758<li> The message is received from a network client that matches
6759$local_header_rewrite_clients,
6760
6761<li> The message is received from the network, and the
6762remote_header_rewrite_domain parameter specifies a non-empty value.
6763
6764</ul>
6765
6766<p> To get the behavior before Postfix version 2.2, specify
6767"local_header_rewrite_clients = static:all". </p>
6768
6769%PARAM application_event_drain_time 100s
6770
6771<p>
6772How long the postkick(1) command waits for a request to enter the
6773Postfix daemon process input buffer before giving up.
6774</p>
6775
6776<p>
6777Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6778The default time unit is s (seconds).
6779</p>
6780
6781<p>
6782This feature is available in Postfix 2.1 and later.
6783</p>
6784
6785%PARAM authorized_flush_users static:anyone
6786
6787<p>
6788List of users who are authorized to flush the queue.
6789</p>
6790
6791<p>
6792By default, all users are allowed to flush the queue.  Access is
6793always granted if the invoking user is the super-user or the
6794$mail_owner user.  Otherwise, the real UID of the process is looked
6795up in the system password file, and access is granted only if the
6796corresponding login name is on the access list.  The username
6797"unknown" is used for processes whose real UID is not found in the
6798password file.  </p>
6799
6800<p>
6801Specify a list of user names, "/file/name" or "type:table" patterns,
6802separated by commas and/or whitespace. The list is matched left to
6803right, and the search stops on the first match. A "/file/name"
6804pattern is replaced
6805by its contents; a "type:table" lookup table is matched when a name
6806matches a lookup key (the lookup result is ignored).  Continue long
6807lines by starting the next line with whitespace. Specify "!pattern"
6808to exclude a name from the list. The form "!/file/name" is supported
6809only in Postfix version 2.4 and later.  </p>
6810
6811<p>
6812This feature is available in Postfix 2.2 and later.
6813</p>
6814
6815%PARAM authorized_mailq_users static:anyone
6816
6817<p>
6818List of users who are authorized to view the queue.
6819</p>
6820
6821<p>
6822By default, all users are allowed to view the queue.  Access is
6823always granted if the invoking user is the super-user or the
6824$mail_owner user.  Otherwise, the real UID of the process is looked
6825up in the system password file, and access is granted only if the
6826corresponding login name is on the access list.  The username
6827"unknown" is used for processes whose real UID is not found in the
6828password file.  </p>
6829
6830<p>
6831Specify a list of user names, "/file/name" or "type:table" 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 "type:table" 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 user name from the list. The form "!/file/name" is
6839supported only in Postfix version 2.4 and later.  </p>
6840
6841<p>
6842This feature is available in Postfix 2.2 and later.
6843</p>
6844
6845%PARAM authorized_submit_users static:anyone
6846
6847<p>
6848List of users who are authorized to submit mail with the sendmail(1)
6849command (and with the privileged postdrop(1) helper command).
6850</p>
6851
6852<p>
6853By default, all users are allowed to submit mail.  Otherwise, the
6854real UID of the process is looked up in the system password file,
6855and access is granted only if the corresponding login name is on
6856the access list.  The username "unknown" is used for processes
6857whose real UID is not found in the password file. To deny mail
6858submission access to all users specify an empty list.  </p>
6859
6860<p>
6861Specify a list of user names, "/file/name" or "type:table" patterns,
6862separated by commas and/or whitespace. The list is matched left to right,
6863and the search stops on the first match. A "/file/name" pattern is
6864replaced by its contents;
6865a "type:table" lookup table is matched when a name matches a lookup key
6866(the lookup result is ignored).  Continue long lines by starting the
6867next line with whitespace. Specify "!pattern" to exclude a user
6868name from the list. The form "!/file/name" is supported only in
6869Postfix version 2.4 and later.  </p>
6870
6871<p>
6872Example:
6873</p>
6874
6875<pre>
6876authorized_submit_users = !www, static:all
6877</pre>
6878
6879<p>
6880This feature is available in Postfix 2.2 and later.
6881</p>
6882
6883%PARAM backwards_bounce_logfile_compatibility yes
6884
6885<p>
6886Produce additional bounce(8) logfile records that can be read by
6887Postfix versions before 2.0. The current and more extensible "name =
6888value" format is needed in order to implement more sophisticated
6889functionality.
6890</p>
6891
6892<p>
6893This feature is available in Postfix 2.1 and later.
6894</p>
6895
6896%PARAM bounce_notice_recipient postmaster
6897
6898<p>
6899The recipient of postmaster notifications with the message headers
6900of mail that Postfix did not deliver and of SMTP conversation
6901transcripts of mail that Postfix did not receive.  This feature is
6902enabled with the notify_classes parameter.  </p>
6903
6904%PARAM bounce_service_name bounce
6905
6906<p>
6907The name of the bounce(8) service. This service maintains a record
6908of failed delivery attempts and generates non-delivery notifications.
6909</p>
6910
6911<p>
6912This feature is available in Postfix 2.0 and later.
6913</p>
6914
6915%PARAM broken_sasl_auth_clients no
6916
6917<p>
6918Enable inter-operability with remote SMTP clients that implement an obsolete
6919version of the AUTH command (RFC 4954). Examples of such clients
6920are MicroSoft Outlook Express version 4 and MicroSoft Exchange
6921version 5.0.
6922</p>
6923
6924<p>
6925Specify "broken_sasl_auth_clients = yes" to have Postfix advertise
6926AUTH support in a non-standard way.
6927</p>
6928
6929%PARAM cleanup_service_name cleanup
6930
6931<p>
6932The name of the cleanup(8) service. This service rewrites addresses
6933into the standard form, and performs canonical(5) address mapping
6934and virtual(5) aliasing.
6935</p>
6936
6937<p>
6938This feature is available in Postfix 2.0 and later.
6939</p>
6940
6941%PARAM anvil_status_update_time 600s
6942
6943<p>
6944How frequently the anvil(8) connection and rate limiting server
6945logs peak usage information.
6946</p>
6947
6948<p>
6949This feature is available in Postfix 2.2 and later.
6950</p>
6951
6952<p>
6953Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6954The default time unit is s (seconds).
6955</p>
6956
6957%PARAM enable_errors_to no
6958
6959<p> Report mail delivery errors to the address specified with the
6960non-standard Errors-To: message header, instead of the envelope
6961sender address (this feature is removed with Postfix version 2.2, is
6962turned off by default with Postfix version 2.1, and is always turned on
6963with older Postfix versions).  </p>
6964
6965%PARAM extract_recipient_limit 10240
6966
6967<p>
6968The maximal number of recipient addresses that Postfix will extract
6969from message headers when mail is submitted with "<b>sendmail -t</b>".
6970</p>
6971
6972<p>
6973This feature was removed in Postfix version 2.1.
6974</p>
6975
6976%PARAM anvil_rate_time_unit 60s
6977
6978<p>
6979The time unit over which client connection rates and other rates
6980are calculated.
6981</p>
6982
6983<p>
6984This feature is implemented by the anvil(8) service which is available
6985in Postfix version 2.2 and later.
6986</p>
6987
6988<p>
6989The default interval is relatively short. Because of the high
6990frequency of updates, the anvil(8) server uses volatile memory
6991only. Thus, information is lost whenever the process terminates.
6992</p>
6993
6994<p>
6995Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6996The default time unit is s (seconds).
6997</p>
6998
6999%PARAM command_expansion_filter see "postconf -d" output
7000
7001<p>
7002Restrict the characters that the local(8) delivery agent allows in
7003$name expansions of $mailbox_command and $command_execution_directory.
7004Characters outside the
7005allowed set are replaced by underscores.
7006</p>
7007
7008%PARAM content_filter
7009
7010<p> After the message is queued, send the entire message to the
7011specified <i>transport:destination</i>. The <i>transport</i> name
7012specifies the first field of a mail delivery agent definition in
7013master.cf; the syntax of the next-hop <i>destination</i> is described
7014in the manual page of the corresponding delivery agent.  More
7015information about external content filters is in the Postfix
7016FILTER_README file.  </p>
7017
7018<p> Notes: </p>
7019
7020<ul>
7021
7022<li> <p> This setting has lower precedence than a FILTER action
7023that is specified in an access(5), header_checks(5) or body_checks(5)
7024table. </p>
7025
7026<li> <p> The meaning of an empty next-hop filter <i>destination</i>
7027is version dependent.  Postfix 2.7 and later will use the recipient
7028domain; earlier versions will use $myhostname.  Specify
7029"default_filter_nexthop = $myhostname" for compatibility with Postfix
70302.6 or earlier, or specify a content_filter value with an explicit
7031next-hop <i>destination</i>.  </p>
7032
7033</ul>
7034
7035%PARAM default_delivery_slot_discount 50
7036
7037<p>
7038The default value for transport-specific _delivery_slot_discount
7039settings.
7040</p>
7041
7042<p>
7043This parameter speeds up the moment when a message preemption can
7044happen. Instead of waiting until the full amount of delivery slots
7045required is available, the preemption can happen when
7046transport_delivery_slot_discount percent of the required amount
7047plus transport_delivery_slot_loan still remains to be accumulated.
7048Note that the full amount will still have to be accumulated before
7049another preemption can take place later.
7050</p>
7051
7052<p> Use <i>transport</i>_delivery_slot_discount to specify a
7053transport-specific override, where <i>transport</i> is the master.cf
7054name of the message delivery transport.
7055</p>
7056
7057%PARAM default_delivery_slot_loan 3
7058
7059<p>
7060The default value for transport-specific _delivery_slot_loan
7061settings.
7062</p>
7063
7064<p>
7065This parameter speeds up the moment when a message preemption can
7066happen. Instead of waiting until the full amount of delivery slots
7067required is available, the preemption can happen when
7068transport_delivery_slot_discount percent of the required amount
7069plus transport_delivery_slot_loan still remains to be accumulated.
7070Note that the full amount will still have to be accumulated before
7071another preemption can take place later.
7072</p>
7073
7074<p> Use <i>transport</i>_delivery_slot_loan to specify a
7075transport-specific override, where <i>transport</i> is the master.cf
7076name of the message delivery transport.
7077</p>
7078
7079%CLASS verp VERP Support
7080
7081<p>
7082With VERP style delivery, each recipient of a message receives a
7083customized copy of the message with his/her own recipient address
7084encoded in the envelope sender address.  The VERP_README file
7085describes configuration and operation details of Postfix support
7086for variable envelope return path addresses.  VERP style delivery
7087is requested with the SMTP XVERP command or with the "<b>sendmail
7088-V</b>" command-line option and is available in Postfix
70891.1 and later.
7090</p>
7091
7092%PARAM default_verp_delimiters +=
7093
7094<p> The two default VERP delimiter characters. These are used when
7095no explicit delimiters are specified with the SMTP XVERP command
7096or with the "<b>sendmail -V</b>" command-line option. Specify
7097characters that are allowed by the verp_delimiter_filter setting.
7098</p>
7099
7100<p>
7101This feature is available in Postfix 1.1 and later.
7102</p>
7103
7104%PARAM defer_service_name defer
7105
7106<p>
7107The name of the defer service. This service is implemented by the
7108bounce(8) daemon and maintains a record
7109of failed delivery attempts and generates non-delivery notifications.
7110</p>
7111
7112<p>
7113This feature is available in Postfix 2.0 and later.
7114</p>
7115
7116%PARAM delay_notice_recipient postmaster
7117
7118<p>
7119The recipient of postmaster notifications with the message headers
7120of mail that cannot be delivered within $delay_warning_time time
7121units.  </p>
7122
7123<p>
7124This feature is enabled with the delay_warning_time parameter.
7125</p>
7126
7127%PARAM delay_warning_time 0h
7128
7129<p>
7130The time after which the sender receives the message headers of
7131mail that is still queued.
7132</p>
7133
7134<p>
7135To enable this feature, specify a non-zero time value (an integral
7136value plus an optional one-letter suffix that specifies the time
7137unit).
7138</p>
7139
7140<p>
7141Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
7142The default time unit is h (hours).
7143</p>
7144
7145%PARAM disable_dns_lookups no
7146
7147<p>
7148Disable DNS lookups in the Postfix SMTP and LMTP clients. When
7149disabled, hosts are looked up with the getaddrinfo() system
7150library routine which normally also looks in /etc/hosts.
7151</p>
7152
7153<p>
7154DNS lookups are enabled by default.
7155</p>
7156
7157%CLASS mime MIME Processing
7158
7159<p>
7160MIME processing is available in Postfix as of version 2.0.  Older
7161Postfix versions do not recognize MIME headers inside the message
7162body.
7163</p>
7164
7165%PARAM disable_mime_input_processing no
7166
7167<p>
7168Turn off MIME processing while receiving mail. This means that no
7169special treatment is given to Content-Type: message headers, and
7170that all text after the initial message headers is considered to
7171be part of the message body.
7172</p>
7173
7174<p>
7175This feature is available in Postfix 2.0 and later.
7176</p>
7177
7178<p>
7179Mime input processing is enabled by default, and is needed in order
7180to recognize MIME headers in message content.
7181</p>
7182
7183%PARAM disable_mime_output_conversion no
7184
7185<p>
7186Disable the conversion of 8BITMIME format to 7BIT format.  Mime
7187output conversion is needed when the destination does not advertise
71888BITMIME support.
7189</p>
7190
7191<p>
7192This feature is available in Postfix 2.0 and later.
7193</p>
7194
7195%PARAM disable_verp_bounces no
7196
7197<p>
7198Disable sending one bounce report per recipient.
7199</p>
7200
7201<p>
7202The default, one per recipient, is what ezmlm needs.
7203</p>
7204
7205<p>
7206This feature is available in Postfix 1.1 and later.
7207</p>
7208
7209%PARAM dont_remove 0
7210
7211<p>
7212Don't remove queue files and save them to the "saved" mail queue.
7213This is a debugging aid.  To inspect the envelope information and
7214content of a Postfix queue file, use the postcat(1) command.
7215</p>
7216
7217%PARAM empty_address_recipient MAILER-DAEMON
7218
7219<p>
7220The recipient of mail addressed to the null address.  Postfix does
7221not accept such addresses in SMTP commands, but they may still be
7222created locally as the result of configuration or software error.
7223</p>
7224
7225%PARAM error_notice_recipient postmaster
7226
7227<p> The recipient of postmaster notifications about mail delivery
7228problems that are caused by policy, resource, software or protocol
7229errors.  These notifications are enabled with the notify_classes
7230parameter.  </p>
7231
7232%PARAM error_service_name error
7233
7234<p>
7235The name of the error(8) pseudo delivery agent. This service always
7236returns mail as undeliverable.
7237</p>
7238
7239<p>
7240This feature is available in Postfix 2.0 and later.
7241</p>
7242
7243%PARAM expand_owner_alias no
7244
7245<p>
7246When delivering to an alias "aliasname" that has an "owner-aliasname"
7247companion alias, set the envelope sender address to the expansion
7248of the "owner-aliasname" alias. Normally, Postfix sets the envelope
7249sender address to the name of the "owner-aliasname" alias.
7250</p>
7251
7252%PARAM fallback_transport
7253
7254<p>
7255Optional message delivery transport that the local(8) delivery
7256agent should use for names that are not found in the aliases(5)
7257or UNIX password database.
7258</p>
7259
7260<p> The precedence of local(8) delivery features from high to low
7261is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
7262mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
7263fallback_transport_maps, fallback_transport and luser_relay.  </p>
7264
7265%PARAM fault_injection_code 0
7266
7267<p>
7268Force specific internal tests to fail, to test the handling of
7269errors that are difficult to reproduce otherwise.
7270</p>
7271
7272%PARAM flush_service_name flush
7273
7274<p>
7275The name of the flush(8) service. This service maintains per-destination
7276logfiles with the queue file names of mail that is queued for those
7277destinations.
7278</p>
7279
7280<p>
7281This feature is available in Postfix 2.0 and later.
7282</p>
7283
7284%PARAM forward_expansion_filter see "postconf -d" output
7285
7286<p>
7287Restrict the characters that the local(8) delivery agent allows in
7288$name expansions of $forward_path.  Characters outside the
7289allowed set are replaced by underscores.
7290</p>
7291
7292%PARAM header_address_token_limit 10240
7293
7294<p>
7295The maximal number of address tokens are allowed in an address
7296message header. Information that exceeds the limit is discarded.
7297The limit is enforced by the cleanup(8) server.
7298</p>
7299
7300%PARAM helpful_warnings yes
7301
7302<p>
7303Log warnings about problematic configuration settings, and provide
7304helpful suggestions.
7305</p>
7306
7307<p>
7308This feature is available in Postfix 2.0 and later.
7309</p>
7310
7311%PARAM lmtp_cache_connection yes
7312
7313<p>
7314Keep Postfix LMTP client connections open for up to $max_idle
7315seconds. When the LMTP client receives a request for the same
7316connection the connection is reused.
7317</p>
7318
7319<p> This parameter is available in Postfix version 2.2 and earlier.
7320With Postfix version 2.3 and later, see lmtp_connection_cache_on_demand,
7321lmtp_connection_cache_destinations, or lmtp_connection_reuse_time_limit.
7322</p>
7323
7324<p>
7325The effectiveness of cached connections will be determined by the
7326number of remote LMTP servers in use, and the concurrency limit specified
7327for the Postfix LMTP client. Cached connections are closed under any of
7328the following conditions:
7329</p>
7330
7331<ul>
7332
7333<li> The Postfix LMTP client idle time limit is reached.  This limit is
7334specified with the Postfix max_idle configuration parameter.
7335
7336<li> A delivery request specifies a different destination than the
7337one currently cached.
7338
7339<li> The per-process limit on the number of delivery requests is
7340reached.  This limit is specified with the Postfix max_use
7341configuration parameter.
7342
7343<li> Upon the onset of another delivery request, the remote LMTP server
7344associated with the current session does not respond to the RSET
7345command.
7346
7347</ul>
7348
7349<p>
7350Most of these limitations have been with the Postfix
7351a connection cache that is shared among multiple LMTP client
7352programs.
7353</p>
7354
7355%PARAM lmtp_sasl_auth_enable no
7356
7357<p>
7358Enable SASL authentication in the Postfix LMTP client.
7359</p>
7360
7361%PARAM lmtp_sasl_password_maps
7362
7363<p>
7364Optional Postfix LMTP client lookup tables with one username:password entry
7365per host or domain.  If a remote host or domain has no username:password
7366entry, then the Postfix LMTP client will not attempt to authenticate
7367to the remote host.
7368</p>
7369
7370%PARAM lmtp_sasl_security_options noplaintext, noanonymous
7371
7372<p> SASL security options; as of Postfix 2.3 the list of available
7373features depends on the SASL client implementation that is selected
7374with <b>lmtp_sasl_type</b>.  </p>
7375
7376<p> The following security features are defined for the <b>cyrus</b>
7377client SASL implementation: </p>
7378
7379<dl>
7380
7381<dt><b>noplaintext</b></dt>
7382
7383<dd>Disallow authentication methods that use plaintext passwords. </dd>
7384
7385<dt><b>noactive</b></dt>
7386
7387<dd>Disallow authentication methods that are vulnerable to non-dictionary
7388active attacks. </dd>
7389
7390<dt><b>nodictionary</b></dt>
7391
7392<dd>Disallow authentication methods that are vulnerable to passive
7393dictionary attack. </dd>
7394
7395<dt><b>noanonymous</b></dt>
7396
7397<dd>Disallow anonymous logins. </dd>
7398
7399</dl>
7400
7401<p>
7402Example:
7403</p>
7404
7405<pre>
7406lmtp_sasl_security_options = noplaintext
7407</pre>
7408
7409%PARAM lmtp_tcp_port 24
7410
7411<p>
7412The default TCP port that the Postfix LMTP client connects to.
7413</p>
7414
7415%PARAM mail_release_date see "postconf -d" output
7416
7417<p>
7418The Postfix release date, in "YYYYMMDD" format.
7419</p>
7420
7421%PARAM mailbox_command_maps
7422
7423<p>
7424Optional lookup tables with per-recipient external commands to use
7425for local(8) mailbox delivery.  Behavior is as with mailbox_command.
7426</p>
7427
7428<p> The precedence of local(8) delivery features from high to low
7429is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
7430mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
7431fallback_transport_maps, fallback_transport and luser_relay.  </p>
7432
7433%PARAM mailbox_delivery_lock see "postconf -d" output
7434
7435<p>
7436How to lock a UNIX-style local(8) mailbox before attempting delivery.
7437For a list of available file locking methods, use the "<b>postconf
7438-l</b>" command.
7439</p>
7440
7441<p>
7442This setting is ignored with <b>maildir</b> style delivery,
7443because such deliveries are safe without explicit locks.
7444</p>
7445
7446<p>
7447Note: The <b>dotlock</b> method requires that the recipient UID or
7448GID has write access to the parent directory of the mailbox file.
7449</p>
7450
7451<p>
7452Note: the default setting of this parameter is system dependent.
7453</p>
7454
7455%PARAM mailbox_transport
7456
7457<p>
7458Optional message delivery transport that the local(8) delivery
7459agent should use for mailbox delivery to all local recipients,
7460whether or not they are found in the UNIX passwd database.
7461</p>
7462
7463<p> The precedence of local(8) delivery features from high to low
7464is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
7465mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
7466fallback_transport_maps, fallback_transport and luser_relay.  </p>
7467
7468%PARAM mailq_path see "postconf -d" output
7469
7470<p>
7471Sendmail compatibility feature that specifies where the Postfix
7472mailq(1) command is installed. This command can be used to
7473list the Postfix mail queue.
7474</p>
7475
7476%PARAM manpage_directory see "postconf -d" output
7477
7478<p>
7479Where the Postfix manual pages are installed.
7480</p>
7481
7482%PARAM maps_rbl_domains
7483
7484<p>
7485Obsolete feature: use the reject_rbl_client feature instead.
7486</p>
7487
7488%PARAM mime_boundary_length_limit 2048
7489
7490<p>
7491The maximal length of MIME multipart boundary strings. The MIME
7492processor is unable to distinguish between boundary strings that
7493do not differ in the first $mime_boundary_length_limit characters.
7494</p>
7495
7496<p>
7497This feature is available in Postfix 2.0 and later.
7498</p>
7499
7500%PARAM mime_header_checks $header_checks
7501
7502<p>
7503Optional lookup tables for content inspection of MIME related
7504message headers, as described in the header_checks(5) manual page.
7505</p>
7506
7507<p>
7508This feature is available in Postfix 2.0 and later.
7509</p>
7510
7511%PARAM mime_nesting_limit 100
7512
7513<p>
7514The maximal recursion level that the MIME processor will handle.
7515Postfix refuses mail that is nested deeper than the specified limit.
7516</p>
7517
7518<p>
7519This feature is available in Postfix 2.0 and later.
7520</p>
7521
7522%PARAM mynetworks_style subnet
7523
7524<p>
7525The method to generate the default value for the mynetworks parameter.
7526This is the list of trusted networks for relay access control etc.
7527</p>
7528
7529<ul>
7530
7531<li><p>Specify "mynetworks_style = host" when Postfix should
7532"trust" only the local machine. </p>
7533
7534<li><p>Specify "mynetworks_style = subnet" when Postfix
7535should "trust" remote SMTP clients in the same IP subnetworks as the local
7536machine.  On Linux, this works correctly only with interfaces
7537specified with the "ifconfig" command. </p>
7538
7539<li><p>Specify "mynetworks_style = class" when Postfix should
7540"trust" remote SMTP clients in the same IP class A/B/C networks as the
7541local machine.  Don't do this with a dialup site - it would cause
7542Postfix to "trust" your entire provider's network.  Instead, specify
7543an explicit mynetworks list by hand, as described with the mynetworks
7544configuration parameter. </p>
7545
7546</ul>
7547
7548%PARAM nested_header_checks $header_checks
7549
7550<p>
7551Optional lookup tables for content inspection of non-MIME message
7552headers in attached messages, as described in the header_checks(5)
7553manual page.
7554</p>
7555
7556<p>
7557This feature is available in Postfix 2.0 and later.
7558</p>
7559
7560%PARAM newaliases_path see "postconf -d" output
7561
7562<p>
7563Sendmail compatibility feature that specifies the location of the
7564newaliases(1) command. This command can be used to rebuild the
7565local(8) aliases(5) database.
7566</p>
7567
7568%PARAM non_fqdn_reject_code 504
7569
7570<p>
7571The numerical Postfix SMTP server reply code when a client request
7572is rejected by the reject_non_fqdn_helo_hostname, reject_non_fqdn_sender
7573or reject_non_fqdn_recipient restriction.
7574</p>
7575
7576%PARAM owner_request_special yes
7577
7578<p>
7579Give special treatment to owner-listname and listname-request
7580address localparts: don't split such addresses when the
7581recipient_delimiter is set to "-".  This feature is useful for
7582mailing lists.
7583</p>
7584
7585%PARAM permit_mx_backup_networks
7586
7587<p>
7588Restrict the use of the permit_mx_backup SMTP access feature to
7589only domains whose primary MX hosts match the listed networks.
7590The parameter value syntax is the same as with the mynetworks
7591parameter; note, however, that the default value is empty.  </p>
7592
7593%PARAM pickup_service_name pickup
7594
7595<p>
7596The name of the pickup(8) service. This service picks up local mail
7597submissions from the Postfix maildrop queue.
7598</p>
7599
7600<p>
7601This feature is available in Postfix 2.0 and later.
7602</p>
7603
7604%PARAM prepend_delivered_header command, file, forward
7605
7606<p> The message delivery contexts where the Postfix local(8) delivery
7607agent prepends a Delivered-To:  message header with the address
7608that the mail was delivered to. This information is used for mail
7609delivery loop detection.  </p>
7610
7611<p>
7612By default, the Postfix local delivery agent prepends a Delivered-To:
7613header when forwarding mail and when delivering to file (mailbox)
7614and command. Turning off the Delivered-To: header when forwarding
7615mail is not recommended.
7616</p>
7617
7618<p>
7619Specify zero or more of <b>forward</b>, <b>file</b>, or <b>command</b>.
7620</p>
7621
7622<p>
7623Example:
7624</p>
7625
7626<pre>
7627prepend_delivered_header = forward
7628</pre>
7629
7630%PARAM process_name read-only
7631
7632<p>
7633The process name of a Postfix command or daemon process.
7634</p>
7635
7636%PARAM process_id read-only
7637
7638<p>
7639The process ID of a Postfix command or daemon process.
7640</p>
7641
7642%PARAM process_id_directory pid
7643
7644<p>
7645The location of Postfix PID files relative to $queue_directory.
7646This is a read-only parameter.
7647</p>
7648
7649%PARAM proxy_read_maps see "postconf -d" output
7650
7651<p>
7652The lookup tables that the proxymap(8) server is allowed to
7653access for the read-only service.
7654Table references that don't begin with proxy: are ignored.
7655</p>
7656
7657<p>
7658This feature is available in Postfix 2.0 and later.
7659</p>
7660
7661%PARAM proxy_write_maps see "postconf -d" output
7662
7663<p> The lookup tables that the proxymap(8) server is allowed to
7664access for the read-write service. Postfix-owned local database
7665files should be stored under the Postfix-owned data_directory.
7666Table references that don't begin with proxy: are ignored.  </p>
7667
7668<p>
7669This feature is available in Postfix 2.5 and later.
7670</p>
7671
7672%PARAM qmgr_clog_warn_time 300s
7673
7674<p>
7675The minimal delay between warnings that a specific destination is
7676clogging up the Postfix active queue. Specify 0 to disable.
7677</p>
7678
7679<p>
7680This feature is enabled with the helpful_warnings parameter.
7681</p>
7682
7683<p>
7684This feature is available in Postfix 2.0 and later.
7685</p>
7686
7687%PARAM qmgr_fudge_factor 100
7688
7689<p>
7690Obsolete feature: the percentage of delivery resources that a busy
7691mail system will use up for delivery of a large mailing  list
7692message.
7693</p>
7694
7695<p>
7696This feature exists only in the oqmgr(8) old queue manager. The
7697current queue manager solves the problem in a better way.
7698</p>
7699
7700%PARAM queue_directory see "postconf -d" output
7701
7702<p>
7703The location of the Postfix top-level queue directory. This is the
7704root directory of Postfix daemon processes that run chrooted.
7705</p>
7706
7707%PARAM queue_file_attribute_count_limit 100
7708
7709<p>
7710The maximal number of (name=value) attributes that may be stored
7711in a Postfix queue file. The limit is enforced by the cleanup(8)
7712server.
7713</p>
7714
7715<p>
7716This feature is available in Postfix 2.0 and later.
7717</p>
7718
7719%PARAM queue_service_name qmgr
7720
7721<p>
7722The name of the qmgr(8) service. This service manages the Postfix
7723queue and schedules delivery requests.
7724</p>
7725
7726<p>
7727This feature is available in Postfix 2.0 and later.
7728</p>
7729
7730%PARAM html_directory see "postconf -d" output
7731
7732<p>
7733The location of Postfix HTML files that describe how to build,
7734configure or operate a specific Postfix subsystem or feature.
7735</p>
7736
7737%PARAM readme_directory see "postconf -d" output
7738
7739<p>
7740The location of Postfix README files that describe how to build,
7741configure or operate a specific Postfix subsystem or feature.
7742</p>
7743
7744%PARAM relay_transport relay
7745
7746<p>
7747The default mail delivery transport and next-hop destination for
7748remote delivery to domains listed with $relay_domains. In order of
7749decreasing precedence, the nexthop destination is taken from
7750$relay_transport, $sender_dependent_relayhost_maps, $relayhost, or
7751from the recipient domain. This information can be overruled with
7752the transport(5) table.
7753</p>
7754
7755<p>
7756Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
7757is the name of a mail delivery transport defined in master.cf.
7758The <i>:nexthop</i> destination is optional; its syntax is documented
7759in the manual page of the corresponding delivery agent.
7760</p>
7761
7762<p>
7763See also the relay domains address class in the ADDRESS_CLASS_README
7764file.
7765</p>
7766
7767<p>
7768This feature is available in Postfix 2.0 and later.
7769</p>
7770
7771%PARAM rewrite_service_name rewrite
7772
7773<p>
7774The name of the address rewriting service. This service rewrites
7775addresses to standard form and resolves them to a (delivery method,
7776next-hop host, recipient) triple.
7777</p>
7778
7779<p>
7780This feature is available in Postfix 2.0 and later.
7781</p>
7782
7783%PARAM sample_directory /etc/postfix
7784
7785<p>
7786The name of the directory with example Postfix configuration files.
7787Starting with Postfix 2.1, these files have been replaced with the
7788postconf(5) manual page.
7789</p>
7790
7791%PARAM sender_based_routing no
7792
7793<p>
7794This parameter should not be used. It was replaced by sender_dependent_relayhost_maps
7795in Postfix version 2.3.
7796</p>
7797
7798%PARAM sendmail_path see "postconf -d" output
7799
7800<p>
7801A Sendmail compatibility feature that specifies the location of
7802the Postfix sendmail(1) command. This command can be used to
7803submit mail into the Postfix queue.
7804</p>
7805
7806%PARAM service_throttle_time 60s
7807
7808<p>
7809How long the Postfix master(8) waits before forking a server that
7810appears to be malfunctioning.
7811</p>
7812
7813<p>
7814Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
7815The default time unit is s (seconds).
7816</p>
7817
7818%PARAM setgid_group postdrop
7819
7820<p>
7821The group ownership of set-gid Postfix commands and of group-writable
7822Postfix directories. When this parameter value is changed you need
7823to re-run "<b>postfix set-permissions</b>" (with Postfix version 2.0 and
7824earlier: "<b>/etc/postfix/post-install set-permissions</b>".
7825</p>
7826
7827%PARAM show_user_unknown_table_name yes
7828
7829<p>
7830Display the name of the recipient table in the "User unknown"
7831responses.  The extra detail makes trouble shooting easier but also
7832reveals information that is nobody elses business.
7833</p>
7834
7835<p>
7836This feature is available in Postfix 2.0 and later.
7837</p>
7838
7839%PARAM showq_service_name showq
7840
7841<p>
7842The name of the showq(8) service. This service produces mail queue
7843status reports.
7844</p>
7845
7846<p>
7847This feature is available in Postfix 2.0 and later.
7848</p>
7849
7850%PARAM smtp_pix_workaround_delay_time 10s
7851
7852<p>
7853How long the Postfix SMTP client pauses before sending
7854".&lt;CR&gt;&lt;LF&gt;" in order to work around the PIX firewall
7855"&lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;" bug.
7856</p>
7857
7858<p>
7859Choosing a too short time makes this workaround ineffective when
7860sending large messages over slow network connections.
7861</p>
7862
7863%PARAM smtp_randomize_addresses yes
7864
7865<p>
7866Randomize the order of equal-preference MX host addresses.  This
7867is a performance feature of the Postfix SMTP client.
7868</p>
7869
7870%PARAM smtp_rset_timeout 20s
7871
7872<p> The Postfix SMTP client time limit for sending the RSET command,
7873and for receiving the remote SMTP server response. The SMTP client
7874sends RSET in
7875order to finish a recipient address probe, or to verify that a
7876cached session is still usable.  </p>
7877
7878<p> This feature is available in Postfix 2.1 and later.  </p>
7879
7880%PARAM smtpd_data_restrictions
7881
7882<p>
7883Optional access restrictions that the Postfix SMTP server applies
7884in the context of the SMTP DATA command.
7885See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
7886restriction lists" for a discussion of evaluation context and time.
7887</p>
7888
7889<p>
7890This feature is available in Postfix 2.0 and later.
7891</p>
7892
7893<p>
7894Specify a list of restrictions, separated by commas and/or whitespace.
7895Continue long lines by starting the next line with whitespace.
7896Restrictions are applied in the order as specified; the first
7897restriction that matches wins.
7898</p>
7899
7900<p>
7901The following restrictions are valid in this context:
7902</p>
7903
7904<ul>
7905
7906<li><a href="#generic">Generic</a> restrictions that can be used
7907in any SMTP command context, described under smtpd_client_restrictions.
7908
7909<li>SMTP command specific restrictions described under
7910smtpd_client_restrictions, smtpd_helo_restrictions,
7911smtpd_sender_restrictions or smtpd_recipient_restrictions.
7912
7913<li>However, no recipient information is available in the case of
7914multi-recipient mail. Acting on only one recipient would be misleading,
7915because any decision will affect all recipients equally. Acting on
7916all recipients would require a possibly very large amount of memory,
7917and would also be misleading for the reasons mentioned before.
7918
7919</ul>
7920
7921<p>
7922Examples:
7923</p>
7924
7925<pre>
7926smtpd_data_restrictions = reject_unauth_pipelining
7927smtpd_data_restrictions = reject_multi_recipient_bounce
7928</pre>
7929
7930%PARAM smtpd_end_of_data_restrictions
7931
7932<p> Optional access restrictions that the Postfix SMTP server
7933applies in the context of the SMTP END-OF-DATA command.
7934See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
7935restriction lists" for a discussion of evaluation context and time.
7936</p>
7937
7938<p> This feature is available in Postfix 2.2 and later. </p>
7939
7940<p> See smtpd_data_restrictions for details and limitations. </p>
7941
7942%PARAM smtpd_delay_reject yes
7943
7944<p>
7945Wait until the RCPT TO command before evaluating
7946$smtpd_client_restrictions, $smtpd_helo_restrictions and
7947$smtpd_sender_restrictions, or wait until the ETRN command before
7948evaluating $smtpd_client_restrictions and $smtpd_helo_restrictions.
7949</p>
7950
7951<p>
7952This feature is turned on by default because some clients apparently
7953mis-behave when the Postfix SMTP server rejects commands before
7954RCPT TO.
7955</p>
7956
7957<p>
7958The default setting has one major benefit: it allows Postfix to log
7959recipient address information when rejecting a client name/address
7960or sender address, so that it is possible to find out whose mail
7961is being rejected.
7962</p>
7963
7964%PARAM smtpd_null_access_lookup_key &lt;&gt;
7965
7966<p>
7967The lookup key to be used in SMTP access(5) tables instead of the
7968null sender address.
7969</p>
7970
7971%CLASS smtpd-policy SMTP server policy delegation
7972
7973<p>
7974The Postfix SMTP server has a number of built-in mechanisms to
7975block or accept mail at specific SMTP protocol stages. As of version
79762.1 Postfix can be configured to delegate policy decisions to an
7977external server that runs outside Postfix. See the file
7978SMTPD_POLICY_README for more information.
7979</p>
7980
7981%PARAM smtpd_policy_service_max_idle 300s
7982
7983<p>
7984The time after which an idle SMTPD policy service connection is
7985closed.
7986</p>
7987
7988<p>
7989This feature is available in Postfix 2.1 and later.
7990</p>
7991
7992%PARAM smtpd_policy_service_max_ttl 1000s
7993
7994<p>
7995The time after which an active SMTPD policy service connection is
7996closed.
7997</p>
7998
7999<p>
8000This feature is available in Postfix 2.1 and later.
8001</p>
8002
8003%PARAM smtpd_policy_service_timeout 100s
8004
8005<p>
8006The time limit for connecting to, writing to or receiving from a
8007delegated SMTPD policy server.
8008</p>
8009
8010<p>
8011This feature is available in Postfix 2.1 and later.
8012</p>
8013
8014%PARAM smtpd_reject_unlisted_recipient yes
8015
8016<p>
8017Request that the Postfix SMTP server rejects mail for unknown
8018recipient addresses, even when no explicit reject_unlisted_recipient
8019access restriction is specified. This prevents the Postfix queue
8020from filling up with undeliverable MAILER-DAEMON messages.
8021</p>
8022
8023<p> An address is always considered "known" when it matches a
8024virtual(5) alias or a canonical(5) mapping.
8025
8026<ul>
8027
8028<li> The recipient domain matches $mydestination, $inet_interfaces
8029or $proxy_interfaces, but the recipient is not listed in
8030$local_recipient_maps, and $local_recipient_maps is not null.
8031
8032<li> The recipient domain matches $virtual_alias_domains but the
8033recipient is not listed in $virtual_alias_maps.
8034
8035<li> The recipient domain matches $virtual_mailbox_domains but the
8036recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps
8037is not null.
8038
8039<li> The recipient domain matches $relay_domains but the recipient
8040is not listed in $relay_recipient_maps, and $relay_recipient_maps
8041is not null.
8042
8043</ul>
8044
8045<p>
8046This feature is available in Postfix 2.1 and later.
8047</p>
8048
8049%PARAM smtpd_reject_unlisted_sender no
8050
8051<p> Request that the Postfix SMTP server rejects mail from unknown
8052sender addresses, even when no explicit reject_unlisted_sender
8053access restriction is specified. This can slow down an explosion
8054of forged mail from worms or viruses.  </p>
8055
8056<p> An address is always considered "known" when it matches a
8057virtual(5) alias or a canonical(5) mapping.
8058
8059<ul>
8060
8061<li> The sender domain matches $mydestination, $inet_interfaces or
8062$proxy_interfaces, but the sender is not listed in
8063$local_recipient_maps, and $local_recipient_maps is not null.
8064
8065<li> The sender domain matches $virtual_alias_domains but the sender
8066is not listed in $virtual_alias_maps.
8067
8068<li> The sender domain matches $virtual_mailbox_domains but the
8069sender is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps
8070is not null.
8071
8072<li> The sender domain matches $relay_domains but the sender is
8073not listed in $relay_recipient_maps, and $relay_recipient_maps is
8074not null.
8075
8076</ul>
8077
8078<p>
8079This feature is available in Postfix 2.1 and later.
8080</p>
8081
8082%PARAM smtpd_restriction_classes
8083
8084<p>
8085User-defined aliases for groups of access restrictions. The aliases
8086can be specified in smtpd_recipient_restrictions etc., and on the
8087right-hand side of a Postfix access(5) table.
8088</p>
8089
8090<p>
8091One major application is for implementing per-recipient UCE control.
8092See the RESTRICTION_CLASS_README document for other examples.
8093</p>
8094
8095%PARAM smtpd_sasl_application_name smtpd
8096
8097<p>
8098The application name that the Postfix SMTP server uses for SASL
8099server initialization. This
8100controls the name of the SASL configuration file. The default value
8101is <b>smtpd</b>, corresponding to a SASL configuration file named
8102<b>smtpd.conf</b>.
8103</p>
8104
8105<p>
8106This feature is available in Postfix 2.1 and 2.2. With Postfix 2.3
8107it was renamed to smtpd_sasl_path.
8108</p>
8109
8110%PARAM strict_7bit_headers no
8111
8112<p>
8113Reject mail with 8-bit text in message headers. This blocks mail
8114from poorly written applications.
8115</p>
8116
8117<p>
8118This feature should not be enabled on a general purpose mail server,
8119because it is likely to reject legitimate email.
8120</p>
8121
8122<p>
8123This feature is available in Postfix 2.0 and later.
8124</p>
8125
8126%PARAM strict_8bitmime no
8127
8128<p>
8129Enable both strict_7bit_headers and strict_8bitmime_body.
8130</p>
8131
8132<p>
8133This feature should not be enabled on a general purpose mail server,
8134because it is likely to reject legitimate email.
8135</p>
8136
8137<p>
8138This feature is available in Postfix 2.0 and later.
8139</p>
8140
8141%PARAM strict_8bitmime_body no
8142
8143<p>
8144Reject 8-bit message body text without 8-bit MIME content encoding
8145information.  This blocks mail from poorly written applications.
8146</p>
8147
8148<p>
8149Unfortunately, this also rejects majordomo approval requests when
8150the included request contains valid 8-bit MIME mail, and it rejects
8151bounces from mailers that do not MIME encapsulate 8-bit content
8152(for example, bounces from qmail or from old versions of Postfix).
8153</p>
8154
8155<p>
8156This feature should not be enabled on a general purpose mail server,
8157because it is likely to reject legitimate email.
8158</p>
8159
8160<p>
8161This feature is available in Postfix 2.0 and later.
8162</p>
8163
8164%PARAM strict_mime_encoding_domain no
8165
8166<p>
8167Reject mail with invalid Content-Transfer-Encoding: information
8168for the message/* or multipart/* MIME content types.  This blocks
8169mail from poorly written software.
8170</p>
8171
8172<p>
8173This feature should not be enabled on a general purpose mail server,
8174because it will reject mail after a single violation.
8175</p>
8176
8177<p>
8178This feature is available in Postfix 2.0 and later.
8179</p>
8180
8181%PARAM sun_mailtool_compatibility no
8182
8183<p>
8184Obsolete SUN mailtool compatibility feature. Instead, use
8185"mailbox_delivery_lock = dotlock".
8186</p>
8187
8188%PARAM trace_service_name trace
8189
8190<p>
8191The name of the trace service. This service is implemented by the
8192bounce(8) daemon and maintains a record
8193of mail deliveries and produces a mail delivery report when verbose
8194delivery is requested with "<b>sendmail -v</b>".
8195</p>
8196
8197<p>
8198This feature is available in Postfix 2.1 and later.
8199</p>
8200
8201%PARAM undisclosed_recipients_header see "postconf -d" output
8202
8203<p>
8204Message header that the Postfix cleanup(8) server inserts when a
8205message contains no To: or Cc: message header. With Postfix 2.8
8206and later, the default value is empty. With Postfix 2.4-2.7,
8207specify an empty value to disable this feature.  </p>
8208
8209<p> Example: </p>
8210
8211<pre>
8212# Default value before Postfix 2.8.
8213# Note: the ":" and ";" are both required.
8214undisclosed_recipients_header = To: undisclosed-recipients:;
8215</pre>
8216
8217%PARAM unknown_relay_recipient_reject_code 550
8218
8219<p>
8220The numerical Postfix SMTP server reply code when a recipient
8221address matches $relay_domains, and relay_recipient_maps specifies
8222a list of lookup tables that does not match the recipient address.
8223</p>
8224
8225<p>
8226This feature is available in Postfix 2.0 and later.
8227</p>
8228
8229%PARAM unknown_virtual_alias_reject_code 550
8230
8231<p>
8232The Postfix SMTP server reply code when a recipient address matches
8233$virtual_alias_domains, and $virtual_alias_maps specifies a list
8234of lookup tables that does not match the recipient address.
8235</p>
8236
8237<p>
8238This feature is available in Postfix 2.0 and later.
8239</p>
8240
8241%PARAM unknown_virtual_mailbox_reject_code 550
8242
8243<p>
8244The Postfix SMTP server reply code when a recipient address matches
8245$virtual_mailbox_domains, and $virtual_mailbox_maps specifies a list
8246of lookup tables that does not match the recipient address.
8247</p>
8248
8249<p>
8250This feature is available in Postfix 2.0 and later.
8251</p>
8252
8253%PARAM verp_delimiter_filter -=+
8254
8255<p>
8256The characters Postfix accepts as VERP delimiter characters on the
8257Postfix sendmail(1) command line and in SMTP commands.
8258</p>
8259
8260<p>
8261This feature is available in Postfix 1.1 and later.
8262</p>
8263
8264%PARAM virtual_gid_maps
8265
8266<p>
8267Lookup tables with the per-recipient group ID for virtual(8) mailbox
8268delivery.
8269</p>
8270
8271<p>
8272In a lookup table, specify a left-hand side of "@domain.tld" to
8273match any user in the specified domain that does not have a specific
8274"user@domain.tld" entry.
8275</p>
8276
8277<p>
8278When a recipient address has an optional address extension
8279(user+foo@domain.tld), the virtual(8) delivery agent looks up
8280the full address first, and when the lookup fails, it looks up the
8281unextended address (user@domain.tld).
8282</p>
8283
8284<p>
8285Note 1: for security reasons, the virtual(8) delivery agent disallows
8286regular expression substitution of $1 etc. in regular expression
8287lookup tables, because that would open a security hole.
8288</p>
8289
8290<p>
8291Note 2: for security reasons, the virtual(8) delivery agent will
8292silently ignore requests to use the proxymap(8) server. Instead
8293it will open the table directly. Before Postfix version 2.2, the
8294virtual(8) delivery agent will terminate with a fatal error.
8295</p>
8296
8297%PARAM virtual_mailbox_base
8298
8299<p>
8300A prefix that the virtual(8) delivery agent prepends to all pathname
8301results from $virtual_mailbox_maps table lookups.  This is a safety
8302measure to ensure that an out of control map doesn't litter the
8303file system with mailboxes.  While virtual_mailbox_base could be
8304set to "/", this setting isn't recommended.
8305</p>
8306
8307<p>
8308Example:
8309</p>
8310
8311<pre>
8312virtual_mailbox_base = /var/mail
8313</pre>
8314
8315%PARAM virtual_mailbox_domains $virtual_mailbox_maps
8316
8317<p> Postfix is final destination for the specified list of domains;
8318mail is delivered via the $virtual_transport mail delivery transport.
8319By default this is the Postfix virtual(8) delivery agent.  The SMTP
8320server validates recipient addresses with $virtual_mailbox_maps
8321and rejects mail for non-existent recipients.  See also the virtual
8322mailbox domain class in the ADDRESS_CLASS_README file.  </p>
8323
8324<p> This parameter expects the same syntax as the mydestination
8325configuration parameter.  </p>
8326
8327<p>
8328This feature is available in Postfix 2.0 and later. The default
8329value is backwards compatible with Postfix version 1.1.
8330</p>
8331
8332%PARAM virtual_mailbox_limit 51200000
8333
8334<p>
8335The maximal size in bytes of an individual virtual(8) mailbox or
8336maildir file, or zero (no limit).  </p>
8337
8338%PARAM virtual_mailbox_lock see "postconf -d" output
8339
8340<p>
8341How to lock a UNIX-style virtual(8) mailbox before attempting
8342delivery.  For a list of available file locking methods, use the
8343"<b>postconf -l</b>" command.
8344</p>
8345
8346<p>
8347This setting is ignored with <b>maildir</b> style delivery, because
8348such deliveries are safe without application-level locks.
8349</p>
8350
8351<p>
8352Note 1: the <b>dotlock</b> method requires that the recipient UID
8353or GID has write access to the parent directory of the recipient's
8354mailbox file.
8355</p>
8356
8357<p>
8358Note 2: the default setting of this parameter is system dependent.
8359</p>
8360
8361%PARAM virtual_mailbox_maps
8362
8363<p>
8364Optional lookup tables with all valid addresses in the domains that
8365match $virtual_mailbox_domains.
8366</p>
8367
8368<p>
8369In a lookup table, specify a left-hand side of "@domain.tld" to
8370match any user in the specified domain that does not have a specific
8371"user@domain.tld" entry.
8372</p>
8373
8374<p>
8375The virtual(8) delivery agent uses this table to look up the
8376per-recipient mailbox or maildir pathname.  If the lookup result
8377ends in a slash ("/"), maildir-style delivery is carried out,
8378otherwise the path is assumed to specify a UNIX-style mailbox file.
8379Note that $virtual_mailbox_base is unconditionally prepended to
8380this path.
8381</p>
8382
8383<p>
8384When a recipient address has an optional address extension
8385(user+foo@domain.tld), the virtual(8) delivery agent looks up
8386the full address first, and when the lookup fails, it looks up the
8387unextended address (user@domain.tld).
8388</p>
8389
8390<p>
8391Note 1: for security reasons, the virtual(8) delivery agent disallows
8392regular expression substitution of $1 etc. in regular expression
8393lookup tables, because that would open a security hole.
8394</p>
8395
8396<p>
8397Note 2: for security reasons, the virtual(8) delivery agent will
8398silently ignore requests to use the proxymap(8) server. Instead
8399it will open the table directly. Before Postfix version 2.2, the
8400virtual(8) delivery agent will terminate with a fatal error.
8401</p>
8402
8403%PARAM virtual_minimum_uid 100
8404
8405<p>
8406The minimum user ID value that the virtual(8) delivery agent accepts
8407as a result from $virtual_uid_maps table lookup.  Returned
8408values less than this will be rejected, and the message will be
8409deferred.
8410</p>
8411
8412%PARAM virtual_transport virtual
8413
8414<p>
8415The default mail delivery transport and next-hop destination for
8416final delivery to domains listed with $virtual_mailbox_domains.
8417This information can be overruled with the transport(5) table.
8418</p>
8419
8420<p>
8421Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
8422is the name of a mail delivery transport defined in master.cf.
8423The <i>:nexthop</i> destination is optional; its syntax is documented
8424in the manual page of the corresponding delivery agent.
8425</p>
8426
8427<p>
8428This feature is available in Postfix 2.0 and later.
8429</p>
8430
8431%PARAM virtual_uid_maps
8432
8433<p>
8434Lookup tables with the per-recipient user ID that the virtual(8)
8435delivery agent uses while writing to the recipient's mailbox.
8436</p>
8437
8438<p>
8439In a lookup table, specify a left-hand side of "@domain.tld"
8440to match any user in the specified domain that does not have a
8441specific "user@domain.tld" entry.
8442</p>
8443
8444<p>
8445When a recipient address has an optional address extension
8446(user+foo@domain.tld), the virtual(8) delivery agent looks up
8447the full address first, and when the lookup fails, it looks up the
8448unextended address (user@domain.tld).
8449</p>
8450
8451<p>
8452Note 1: for security reasons, the virtual(8) delivery agent disallows
8453regular expression substitution of $1 etc. in regular expression
8454lookup tables, because that would open a security hole.
8455</p>
8456
8457<p>
8458Note 2: for security reasons, the virtual(8) delivery agent will
8459silently ignore requests to use the proxymap(8) server. Instead
8460it will open the table directly. Before Postfix version 2.2, the
8461virtual(8) delivery agent will terminate with a fatal error.
8462</p>
8463
8464%PARAM config_directory see "postconf -d" output
8465
8466<p> The default location of the Postfix main.cf and master.cf
8467configuration files. This can be overruled via the following
8468mechanisms: </p>
8469
8470<ul>
8471
8472<li> <p> The MAIL_CONFIG environment variable (daemon processes
8473and commands). </p>
8474
8475<li> <p> The "-c" command-line option (commands only). </p>
8476
8477</ul>
8478
8479<p> With Postfix command that run with set-gid privileges, a
8480config_directory override requires either root privileges, or it
8481requires that the directory is listed with the alternate_config_directories
8482parameter in the default main.cf file.  </p>
8483
8484%PARAM virtual_maps
8485
8486<p> Optional lookup tables with a) names of domains for which all
8487addresses are aliased to addresses in other local or remote domains,
8488and b) addresses that are aliased to addresses in other local or
8489remote domains.  Available before Postfix version 2.0. With Postfix
8490version 2.0 and later, this is replaced by separate controls: virtual_alias_domains
8491and virtual_alias_maps. </p>
8492
8493%PARAM smtp_discard_ehlo_keywords
8494
8495<p> A case insensitive list of EHLO keywords (pipelining, starttls,
8496auth, etc.) that the Postfix SMTP client will ignore in the EHLO
8497response from a remote SMTP server. </p>
8498
8499<p> This feature is available in Postfix 2.2 and later. </p>
8500
8501<p> Notes: </p>
8502
8503<ul>
8504
8505<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
8506this action from being logged. </p>
8507
8508<li> <p> Use the smtp_discard_ehlo_keyword_address_maps feature to
8509discard EHLO keywords selectively. </p>
8510
8511</ul>
8512
8513%PARAM smtpd_discard_ehlo_keywords
8514
8515<p> A case insensitive list of EHLO keywords (pipelining, starttls,
8516auth, etc.) that the Postfix SMTP server will not send in the EHLO
8517response
8518to a remote SMTP client. </p>
8519
8520<p> This feature is available in Postfix 2.2 and later. </p>
8521
8522<p> Notes: </p>
8523
8524<ul>
8525
8526<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
8527this action from being logged. </p>
8528
8529<li> <p> Use the smtpd_discard_ehlo_keyword_address_maps feature
8530to discard EHLO keywords selectively.  </p>
8531
8532</ul>
8533
8534%PARAM smtp_discard_ehlo_keyword_address_maps
8535
8536<p> Lookup tables, indexed by the remote SMTP server address, with
8537case insensitive lists of EHLO keywords (pipelining, starttls, auth,
8538etc.) that the Postfix SMTP client will ignore in the EHLO response from a
8539remote SMTP server. See smtp_discard_ehlo_keywords for details. The
8540table is not indexed by hostname for consistency with
8541smtpd_discard_ehlo_keyword_address_maps. </p>
8542
8543<p> This feature is available in Postfix 2.2 and later. </p>
8544
8545%PARAM smtpd_discard_ehlo_keyword_address_maps
8546
8547<p> Lookup tables, indexed by the remote SMTP client address, with
8548case insensitive lists of EHLO keywords (pipelining, starttls, auth,
8549etc.) that the Postfix SMTP server will not send in the EHLO response
8550to a
8551remote SMTP client. See smtpd_discard_ehlo_keywords for details.
8552The table is not searched by hostname for robustness reasons.  </p>
8553
8554<p> This feature is available in Postfix 2.2 and later. </p>
8555
8556%PARAM connection_cache_service_name scache
8557
8558<p> The name of the scache(8) connection cache service.  This service
8559maintains a limited pool of cached sessions.  </p>
8560
8561<p> This feature is available in Postfix 2.2 and later. </p>
8562
8563%PARAM connection_cache_ttl_limit 2s
8564
8565<p> The maximal time-to-live value that the scache(8) connection
8566cache server
8567allows. Requests that specify a larger TTL will be stored with the
8568maximum allowed TTL. The purpose of this additional control is to
8569protect the infrastructure against careless people. The cache TTL
8570is already bounded by $max_idle.  </p>
8571
8572%PARAM connection_cache_status_update_time 600s
8573
8574<p> How frequently the scache(8) server logs usage statistics with
8575connection cache hit and miss rates for logical destinations and for
8576physical endpoints. </p>
8577
8578%PARAM remote_header_rewrite_domain
8579
8580<p> Don't rewrite message headers from remote clients at all when
8581this parameter is empty; otherwise, rewrite message headers and
8582append the specified domain name to incomplete addresses.  The
8583local_header_rewrite_clients parameter controls what clients Postfix
8584considers local. </p>
8585
8586<p> Examples:  </p>
8587
8588<p> The safe setting: append "domain.invalid" to incomplete header
8589addresses from remote SMTP clients, so that those addresses cannot
8590be confused with local addresses. </p>
8591
8592<blockquote>
8593<pre>
8594remote_header_rewrite_domain = domain.invalid
8595</pre>
8596</blockquote>
8597
8598<p> The default, purist, setting: don't rewrite headers from remote
8599clients at all. </p>
8600
8601<blockquote>
8602<pre>
8603remote_header_rewrite_domain =
8604</pre>
8605</blockquote>
8606
8607%PARAM local_header_rewrite_clients permit_inet_interfaces
8608
8609<p> Rewrite message header addresses in mail from these clients and
8610update incomplete addresses with the domain name in $myorigin or
8611$mydomain; either don't rewrite message headers from other clients
8612at all, or rewrite message headers and update incomplete addresses
8613with the domain specified in the remote_header_rewrite_domain
8614parameter.  </p>
8615
8616<p> See the append_at_myorigin and append_dot_mydomain parameters
8617for details of how domain names are appended to incomplete addresses.
8618</p>
8619
8620<p> Specify a list of zero or more of the following:  </p>
8621
8622<dl>
8623
8624<dt><b>permit_inet_interfaces</b></dt>
8625
8626<dd> Append the domain name in $myorigin or $mydomain when the
8627client IP address matches $inet_interfaces. This is enabled by
8628default. </dd>
8629
8630<dt><b>permit_mynetworks</b></dt>
8631
8632<dd> Append the domain name in $myorigin or $mydomain when the
8633client IP address matches any network or network address listed in
8634$mynetworks. This setting will not prevent remote mail header
8635address rewriting when mail from a remote client is forwarded by
8636a neighboring system.  </dd>
8637
8638<dt><b>permit_sasl_authenticated </b></dt>
8639
8640<dd> Append the domain name in $myorigin or $mydomain when the
8641client is successfully authenticated via the RFC 4954 (AUTH)
8642protocol. </dd>
8643
8644<dt><b>permit_tls_clientcerts </b></dt>
8645
8646<dd> Append the domain name in $myorigin or $mydomain when the
8647remote SMTP client TLS certificate fingerprint or public key fingerprint
8648(Postfix 2.9 and later) is listed in $relay_clientcerts.
8649The fingerprint digest algorithm is configurable via the
8650smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
8651Postfix version 2.5).  </dd>
8652
8653<dt><b>permit_tls_all_clientcerts </b></dt>
8654
8655<dd> Append the domain name in $myorigin or $mydomain when the
8656remote SMTP client TLS certificate is successfully verified, regardless of
8657whether it is listed on the server, and regardless of the certifying
8658authority. </dd>
8659
8660<dt><b><a name="check_address_map">check_address_map</a> <i><a href="DATABASE_README.html">type:table</a></i> </b></dt>
8661
8662<dt><b><i><a href="DATABASE_README.html">type:table</a></i> </b></dt>
8663
8664<dd> Append the domain name in $myorigin or $mydomain when the
8665client IP address matches the specified lookup table.
8666The lookup result is ignored, and no subnet lookup is done. This
8667is suitable for, e.g., pop-before-smtp lookup tables. </dd>
8668
8669</dl>
8670
8671<p> Examples:  </p>
8672
8673<p> The Postfix &lt; 2.2 backwards compatible setting: always rewrite
8674message headers, and always append my own domain to incomplete
8675header addresses.  </p>
8676
8677<blockquote>
8678<pre>
8679local_header_rewrite_clients = static:all
8680</pre>
8681</blockquote>
8682
8683<p> The purist (and default) setting: rewrite headers only in mail
8684from Postfix sendmail and in SMTP mail from this machine. </p>
8685
8686<blockquote>
8687<pre>
8688local_header_rewrite_clients = permit_inet_interfaces
8689</pre>
8690</blockquote>
8691
8692<p> The intermediate setting: rewrite header addresses and append
8693$myorigin or $mydomain information only with mail from Postfix
8694sendmail, from local clients, or from authorized SMTP clients. </p>
8695
8696<p> Note: this setting will not prevent remote mail header address
8697rewriting when mail from a remote client is forwarded by a neighboring
8698system.  </p>
8699
8700<blockquote>
8701<pre>
8702local_header_rewrite_clients = permit_mynetworks,
8703    permit_sasl_authenticated permit_tls_clientcerts
8704    check_address_map hash:/etc/postfix/pop-before-smtp
8705</pre>
8706</blockquote>
8707
8708%PARAM smtpd_tls_cert_file
8709
8710<p> File with the Postfix SMTP server RSA certificate in PEM format.
8711This file may also contain the Postfix SMTP server private RSA key. </p>
8712
8713<p> Public Internet MX hosts without certificates signed by a "reputable"
8714CA must generate, and be prepared to present to most clients, a
8715self-signed or private-CA signed certificate. The client will not be
8716able to authenticate the server, but unless it is running Postfix 2.3 or
8717similar software, it will still insist on a server certificate. </p>
8718
8719<p> For servers that are <b>not</b> public Internet MX hosts, Postfix
87202.3 supports configurations with no certificates. This entails the
8721use of just the anonymous TLS ciphers, which are not supported by
8722typical SMTP clients. Since such clients will not, as a rule, fall
8723back to plain text after a TLS handshake failure, the server will
8724be unable to receive email from TLS enabled clients. To avoid
8725accidental configurations with no certificates, Postfix 2.3 enables
8726certificate-less operation only when the administrator explicitly
8727sets "smtpd_tls_cert_file = none". This ensures that new Postfix
8728configurations will not accidentally run with no certificates. </p>
8729
8730<p> Both RSA and DSA certificates are supported.  When both types
8731are present, the cipher used determines which certificate will be
8732presented to the client.  For Netscape and OpenSSL clients without
8733special cipher choices the RSA certificate is preferred. </p>
8734
8735<p> To enable a remote SMTP client to verify the Postfix SMTP server
8736certificate, the issuing CA certificates must be made available to the
8737client. You should include the required certificates in the server
8738certificate file, the server certificate first, then the issuing
8739CA(s) (bottom-up order). </p>
8740
8741<p> Example: the certificate for "server.example.com" was issued by
8742"intermediate CA" which itself has a certificate of "root CA".
8743Create the server.pem file with "cat server_cert.pem intermediate_CA.pem
8744root_CA.pem &gt; server.pem". </p>
8745
8746<p> If you also want to verify client certificates issued by these
8747CAs, you can add the CA certificates to the smtpd_tls_CAfile, in which
8748case it is not necessary to have them in the smtpd_tls_cert_file or
8749smtpd_tls_dcert_file. </p>
8750
8751<p> A certificate supplied here must be usable as an SSL server certificate
8752and hence pass the "openssl verify -purpose sslserver ..." test. </p>
8753
8754<p> Example: </p>
8755
8756<pre>
8757smtpd_tls_cert_file = /etc/postfix/server.pem
8758</pre>
8759
8760<p> This feature is available in Postfix 2.2 and later.  </p>
8761
8762%PARAM smtpd_tls_key_file $smtpd_tls_cert_file
8763
8764<p> File with the Postfix SMTP server RSA private key in PEM format.
8765This file may be combined with the Postfix SMTP server RSA certificate
8766file specified with $smtpd_tls_cert_file. </p>
8767
8768<p> The private key must be accessible without a pass-phrase, i.e. it
8769must not be encrypted. File permissions should grant read-only
8770access to the system superuser account ("root"), and no access
8771to anyone else. </p>
8772
8773%PARAM smtpd_tls_dcert_file
8774
8775<p> File with the Postfix SMTP server DSA certificate in PEM format.
8776This file may also contain the Postfix SMTP server private DSA key. </p>
8777
8778<p> See the discussion under smtpd_tls_cert_file for more details.
8779</p>
8780
8781<p> Example: </p>
8782
8783<pre>
8784smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
8785</pre>
8786
8787<p> This feature is available in Postfix 2.2 and later.  </p>
8788
8789%PARAM smtpd_tls_dkey_file $smtpd_tls_dcert_file
8790
8791<p> File with the Postfix SMTP server DSA private key in PEM format.
8792This file may be combined with the Postfix SMTP server DSA certificate
8793file specified with $smtpd_tls_dcert_file. </p>
8794
8795<p> The private key must be accessible without a pass-phrase, i.e. it
8796must not be encrypted. File permissions should grant read-only
8797access to the system superuser account ("root"), and no access
8798to anyone else. </p>
8799
8800<p> This feature is available in Postfix 2.2 and later.  </p>
8801
8802%PARAM smtpd_tls_CAfile
8803
8804<p> A file containing (PEM format) CA certificates of root CAs trusted
8805to sign either remote SMTP client certificates or intermediate CA
8806certificates.  These are loaded into memory before the smtpd(8) server
8807enters the chroot jail. If the number of trusted roots is large, consider
8808using smtpd_tls_CApath instead, but note that the latter directory must
8809be present in the chroot jail if the smtpd(8) server is chrooted. This
8810file may also be used to augment the server certificate trust chain,
8811but it is best to include all the required certificates directly in the
8812server certificate file. </p>
8813
8814<p> Specify "tls_append_default_CA = no" to prevent Postfix from
8815appending the system-supplied default CAs and trusting third-party
8816certificates. </p>
8817
8818<p> By default (see smtpd_tls_ask_ccert), client certificates are not
8819requested, and smtpd_tls_CAfile should remain empty. If you do make use
8820of client certificates, the distinguished names (DNs) of the certificate
8821authorities listed in smtpd_tls_CAfile are sent to the remote SMTP client
8822in the client certificate request message. MUAs with multiple client
8823certificates may use the list of preferred certificate authorities
8824to select the correct client certificate.  You may want to put your
8825"preferred" CA or CAs in this file, and install other trusted CAs in
8826$smtpd_tls_CApath. </p>
8827
8828<p> Example: </p>
8829
8830<pre>
8831smtpd_tls_CAfile = /etc/postfix/CAcert.pem
8832</pre>
8833
8834<p> This feature is available in Postfix 2.2 and later.  </p>
8835
8836%PARAM smtpd_tls_CApath
8837
8838<p> A directory containing (PEM format) CA certificates of root CAs
8839trusted to sign either remote SMTP client certificates or intermediate CA
8840certificates. Do not forget to create the necessary "hash" links with,
8841for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". To use
8842smtpd_tls_CApath in chroot mode, this directory (or a copy) must be
8843inside the chroot jail. </p>
8844
8845<p> Specify "tls_append_default_CA = no" to prevent Postfix from
8846appending the system-supplied default CAs and trusting third-party
8847certificates. </p>
8848
8849<p> By default (see smtpd_tls_ask_ccert), client certificates are
8850not requested, and smtpd_tls_CApath should remain empty. In contrast
8851to smtpd_tls_CAfile, DNs of certificate authorities installed
8852in $smtpd_tls_CApath are not included in the client certificate
8853request message. MUAs with multiple client certificates may use the
8854list of preferred certificate authorities to select the correct
8855client certificate.  You may want to put your "preferred" CA or
8856CAs in $smtpd_tls_CAfile, and install the remaining trusted CAs in
8857$smtpd_tls_CApath. </p>
8858
8859<p> Example: </p>
8860
8861<pre>
8862smtpd_tls_CApath = /etc/postfix/certs
8863</pre>
8864
8865<p> This feature is available in Postfix 2.2 and later.  </p>
8866
8867%PARAM smtpd_tls_loglevel 0
8868
8869<p> Enable additional Postfix SMTP server logging of TLS activity.
8870Each logging level also includes the information that is logged at
8871a lower logging level.  </p>
8872
8873<dl compact>
8874
8875<dt> </dt> <dd> 0 Log only a summary message on TLS handshake completion
8876&mdash; no logging of remote SMTP client certificate trust-chain verification
8877errors
8878if client certificate verification is not required. With Postfix 2.8
8879and earlier, disable logging of TLS activity. </dd>
8880
8881<dt> </dt> <dd> 1 Also log trust-chain verification errors and peer
8882certificate name and issuer. With Postfix 2.8 and earlier, log TLS
8883handshake and certificate information. </dd>
8884
8885<dt> </dt> <dd> 2 Also log levels during TLS negotiation. </dd>
8886
8887<dt> </dt> <dd> 3 Also log hexadecimal and ASCII dump of TLS negotiation
8888process. </dd>
8889
8890<dt> </dt> <dd> 4 Also log hexadecimal and ASCII dump of complete
8891transmission after STARTTLS. </dd>
8892
8893</dl>
8894
8895<p> Do not use "smtpd_tls_loglevel = 2" or higher except in case
8896of problems. Use of loglevel 4 is strongly discouraged. </p>
8897
8898<p> This feature is available in Postfix 2.2 and later.  </p>
8899
8900%PARAM smtpd_tls_received_header no
8901
8902<p> Request that the Postfix SMTP server produces Received:  message
8903headers that include information about the protocol and cipher used,
8904as well as the remote SMTP client CommonName and client certificate issuer
8905CommonName.  This is disabled by default, as the information may
8906be modified in transit through other mail servers.  Only information
8907that was recorded by the final destination can be trusted. </p>
8908
8909<p> This feature is available in Postfix 2.2 and later.  </p>
8910
8911%PARAM smtpd_use_tls no
8912
8913<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
8914but do not require that clients use TLS encryption. </p>
8915
8916<p> Note: when invoked via "<b>sendmail -bs</b>", Postfix will never offer
8917STARTTLS due to insufficient privileges to access the server private
8918key. This is intended behavior. </p>
8919
8920<p> This feature is available in Postfix 2.2 and later. With
8921Postfix 2.3 and later use smtpd_tls_security_level instead. </p>
8922
8923%PARAM smtpd_enforce_tls no
8924
8925<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients,
8926and require that clients use TLS encryption.  According to RFC 2487
8927this MUST NOT be applied in case of a publicly-referenced SMTP
8928server.  This option is therefore off by default. </p>
8929
8930<p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p>
8931
8932<p> Note 2: when invoked via "<b>sendmail -bs</b>", Postfix will never offer
8933STARTTLS due to insufficient privileges to access the server private
8934key. This is intended behavior. </p>
8935
8936<p> This feature is available in Postfix 2.2 and later. With
8937Postfix 2.3 and later use smtpd_tls_security_level instead. </p>
8938
8939%PARAM smtpd_tls_wrappermode no
8940
8941<p> Run the Postfix SMTP server in the non-standard "wrapper" mode,
8942instead of using the STARTTLS command. </p>
8943
8944<p> If you want to support this service, enable a special port in
8945master.cf, and specify "-o smtpd_tls_wrappermode=yes" on the SMTP
8946server's command line. Port 465 (smtps) was once chosen for this
8947purpose. </p>
8948
8949<p> This feature is available in Postfix 2.2 and later.  </p>
8950
8951%PARAM smtpd_tls_ask_ccert no
8952
8953<p> Ask a remote SMTP client for a client certificate. This
8954information is needed for certificate based mail relaying with,
8955for example, the permit_tls_clientcerts feature. </p>
8956
8957<p> Some clients such as Netscape will either complain if no
8958certificate is available (for the list of CAs in $smtpd_tls_CAfile)
8959or will offer multiple client certificates to choose from. This
8960may be annoying, so this option is "off" by default. </p>
8961
8962<p> This feature is available in Postfix 2.2 and later.  </p>
8963
8964%PARAM smtpd_tls_req_ccert no
8965
8966<p> With mandatory TLS encryption, require a trusted remote SMTP client
8967certificate in order to allow TLS connections to proceed.  This
8968option implies "smtpd_tls_ask_ccert = yes". </p>
8969
8970<p> When TLS encryption is optional, this setting is ignored with
8971a warning written to the mail log. </p>
8972
8973<p> This feature is available in Postfix 2.2 and later.  </p>
8974
8975%PARAM smtpd_tls_ccert_verifydepth 9
8976
8977<p> The verification depth for remote SMTP client certificates. A
8978depth of 1 is sufficient if the issuing CA is listed in a local CA
8979file. </p>
8980
8981<p> The default verification depth is 9 (the OpenSSL default) for
8982compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
8983the default value was 5, but the limit was not actually enforced. If
8984you have set this to a lower non-default value, certificates with longer
8985trust chains may now fail to verify. Certificate chains with 1 or 2
8986CAs are common, deeper chains are more rare and any number between 5
8987and 9 should suffice in practice. You can choose a lower number if,
8988for example, you trust certificates directly signed by an issuing CA
8989but not any CAs it delegates to. </p>
8990
8991<p> This feature is available in Postfix 2.2 and later.  </p>
8992
8993%PARAM smtpd_tls_auth_only no
8994
8995<p> When TLS encryption is optional in the Postfix SMTP server, do
8996not announce or accept SASL authentication over unencrypted
8997connections. </p>
8998
8999<p> This feature is available in Postfix 2.2 and later.  </p>
9000
9001%PARAM smtpd_tls_session_cache_database
9002
9003<p> Name of the file containing the optional Postfix SMTP server
9004TLS session cache. Specify a database type that supports enumeration,
9005such as <b>btree</b> or <b>sdbm</b>; there is no need to support
9006concurrent access.  The file is created if it does not exist. The smtpd(8)
9007daemon does not use this parameter directly, rather the cache is
9008implemented indirectly in the tlsmgr(8) daemon. This means that
9009per-smtpd-instance master.cf overrides of this parameter are not
9010effective. Note, that each of the cache databases supported by tlsmgr(8)
9011daemon: $smtpd_tls_session_cache_database, $smtp_tls_session_cache_database
9012(and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to be
9013stored separately. It is not at this time possible to store multiple
9014caches in a single database. </p>
9015
9016<p> Note: <b>dbm</b> databases are not suitable. TLS
9017session objects are too large. </p>
9018
9019<p> As of version 2.5, Postfix no longer uses root privileges when
9020opening this file. The file should now be stored under the Postfix-owned
9021data_directory. As a migration aid, an attempt to open the file
9022under a non-Postfix directory is redirected to the Postfix-owned
9023data_directory, and a warning is logged. </p>
9024
9025<p> Example: </p>
9026
9027<pre>
9028smtpd_tls_session_cache_database = btree:/var/db/postfix/smtpd_scache
9029</pre>
9030
9031<p> This feature is available in Postfix 2.2 and later.  </p>
9032
9033%PARAM smtpd_tls_session_cache_timeout 3600s
9034
9035<p> The expiration time of Postfix SMTP server TLS session cache
9036information. A cache cleanup is performed periodically
9037every $smtpd_tls_session_cache_timeout seconds. As with
9038$smtpd_tls_session_cache_database, this parameter is implemented in the
9039tlsmgr(8) daemon and therefore per-smtpd-instance master.cf overrides
9040are not possible. </p>
9041
9042<p> This feature is available in Postfix 2.2 and later.  </p>
9043
9044%PARAM relay_clientcerts
9045
9046<p> List of tables with remote SMTP client-certificate fingerprints or
9047public key fingerprints (Postfix 2.9 and later) for which the Postfix
9048SMTP server will allow access with the permit_tls_clientcerts
9049feature.  The fingerprint digest algorithm is configurable via the
9050smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
9051Postfix version 2.5).  </p>
9052
9053<p> Postfix lookup tables are in the form of (key, value) pairs.
9054Since we only need the key, the value can be chosen freely, e.g.
9055the name of the user or host:
9056D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home </p>
9057
9058<p> Example: </p>
9059
9060<pre>
9061relay_clientcerts = hash:/etc/postfix/relay_clientcerts
9062</pre>
9063
9064<p>For more fine-grained control, use check_ccert_access to select
9065an appropriate access(5) policy for each client.
9066See RESTRICTION_CLASS_README.</p>
9067
9068<p>This feature is available with Postfix version 2.2.</p>
9069
9070%PARAM smtpd_tls_cipherlist
9071
9072<p> Obsolete Postfix &lt; 2.3 control for the Postfix SMTP server TLS
9073cipher list. It is easy to create inter-operability problems by choosing
9074a non-default cipher list. Do not use a non-default TLS cipherlist for
9075MX hosts on the public Internet. Clients that begin the TLS handshake,
9076but are unable to agree on a common cipher, may not be able to send any
9077email to the SMTP server. Using a restricted cipher list may be more
9078appropriate for a dedicated MSA or an internal mailhub, where one can
9079exert some control over the TLS software and settings of the connecting
9080clients. </p>
9081
9082<p> <b>Note:</b> do not use "" quotes around the parameter value. </p>
9083
9084<p>This feature is available with Postfix version 2.2. It is not used with
9085Postfix 2.3 and later; use smtpd_tls_mandatory_ciphers instead. </p>
9086
9087%PARAM smtpd_tls_dh1024_param_file
9088
9089<p> File with DH parameters that the Postfix SMTP server should
9090use with EDH ciphers. </p>
9091
9092<p> Instead of using the exact same parameter sets as distributed
9093with other TLS packages, it is more secure to generate your own
9094set of parameters with something like the following command:  </p>
9095
9096<blockquote>
9097<pre>
9098openssl gendh -out /etc/postfix/dh_1024.pem -2 1024
9099</pre>
9100</blockquote>
9101
9102<p> Your actual source for entropy may differ. Some systems have
9103/dev/random; on other system you may consider using the "Entropy
9104Gathering Daemon EGD", available at http://egd.sourceforge.net/
9105</p>
9106
9107<p> Example: </p>
9108
9109<pre>
9110smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem
9111</pre>
9112
9113<p>This feature is available with Postfix version 2.2.</p>
9114
9115%PARAM smtpd_tls_dh512_param_file
9116
9117<p> File with DH parameters that the Postfix SMTP server should
9118use with EDH ciphers. </p>
9119
9120<p> See also the discussion under the smtpd_tls_dh1024_param_file
9121configuration parameter.  </p>
9122
9123<p> Example: </p>
9124
9125<pre>
9126smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
9127</pre>
9128
9129<p>This feature is available with Postfix version 2.2.</p>
9130
9131%PARAM smtpd_starttls_timeout see "postconf -d" output
9132
9133<p> The time limit for Postfix SMTP server write and read operations
9134during TLS startup and shutdown handshake procedures. The current
9135default value is stress-dependent. Before Postfix version 2.8, it
9136was fixed at 300s. </p>
9137
9138<p> This feature is available in Postfix 2.2 and later.  </p>
9139
9140%PARAM smtp_tls_cert_file
9141
9142<p> File with the Postfix SMTP client RSA certificate in PEM format.
9143This file may also contain the Postfix SMTP client private RSA key,
9144and these may be the same as the Postfix SMTP server RSA certificate and key
9145file. </p>
9146
9147<p> Do not configure client certificates unless you <b>must</b> present
9148client TLS certificates to one or more servers. Client certificates are
9149not usually needed, and can cause problems in configurations that work
9150well without them. The recommended setting is to let the defaults stand: </p>
9151
9152<blockquote>
9153<pre>
9154smtp_tls_cert_file =
9155smtp_tls_key_file =
9156smtp_tls_dcert_file =
9157smtp_tls_dkey_file =
9158smtp_tls_eccert_file =
9159smtp_tls_eckey_file =
9160</pre>
9161</blockquote>
9162
9163<p> The best way to use the default settings is to comment out the above
9164parameters in main.cf if present. </p>
9165
9166<p> To enable remote SMTP servers to verify the Postfix SMTP client
9167certificate, the issuing CA certificates must be made available to the
9168server. You should include the required certificates in the client
9169certificate file, the client certificate first, then the issuing
9170CA(s) (bottom-up order). </p>
9171
9172<p> Example: the certificate for "client.example.com" was issued by
9173"intermediate CA" which itself has a certificate issued by "root CA".
9174Create the client.pem file with "cat client_cert.pem intermediate_CA.pem
9175root_CA.pem &gt; client.pem". </p>
9176
9177<p> If you also want to verify remote SMTP server certificates issued by
9178these CAs, you can add the CA certificates to the smtp_tls_CAfile, in
9179which case it is not necessary to have them in the smtp_tls_cert_file,
9180smtp_tls_dcert_file or smtp_tls_eccert_file. </p>
9181
9182<p> A certificate supplied here must be usable as an SSL client certificate
9183and hence pass the "openssl verify -purpose sslclient ..." test. </p>
9184
9185<p> Example: </p>
9186
9187<pre>
9188smtp_tls_cert_file = /etc/postfix/client.pem
9189</pre>
9190
9191<p> This feature is available in Postfix 2.2 and later.  </p>
9192
9193%PARAM smtp_tls_key_file $smtp_tls_cert_file
9194
9195<p> File with the Postfix SMTP client RSA private key in PEM format.
9196This file may be combined with the Postfix SMTP client RSA certificate
9197file specified with $smtp_tls_cert_file. </p>
9198
9199<p> The private key must be accessible without a pass-phrase, i.e. it
9200must not be encrypted. File permissions should grant read-only
9201access to the system superuser account ("root"), and no access
9202to anyone else. </p>
9203
9204<p> Example: </p>
9205
9206<pre>
9207smtp_tls_key_file = $smtp_tls_cert_file
9208</pre>
9209
9210<p> This feature is available in Postfix 2.2 and later.  </p>
9211
9212%PARAM smtp_tls_CAfile
9213
9214<p> A file containing CA certificates of root CAs trusted to sign
9215either remote SMTP server certificates or intermediate CA certificates.
9216These are loaded into memory before the smtp(8) client enters the
9217chroot jail. If the number of trusted roots is large, consider using
9218smtp_tls_CApath instead, but note that the latter directory must be
9219present in the chroot jail if the smtp(8) client is chrooted. This
9220file may also be used to augment the client certificate trust chain,
9221but it is best to include all the required certificates directly in
9222$smtp_tls_cert_file. </p>
9223
9224<p> Specify "tls_append_default_CA = no" to prevent Postfix from
9225appending the system-supplied default CAs and trusting third-party
9226certificates. </p>
9227
9228<p> Example: </p>
9229
9230<pre>
9231smtp_tls_CAfile = /etc/postfix/CAcert.pem
9232</pre>
9233
9234<p> This feature is available in Postfix 2.2 and later.  </p>
9235
9236%PARAM smtp_tls_CApath
9237
9238<p> Directory with PEM format certificate authority certificates
9239that the Postfix SMTP client uses to verify a remote SMTP server
9240certificate.  Don't forget to create the necessary "hash" links
9241with, for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs".
9242</p>
9243
9244<p> To use this option in chroot mode, this directory (or a copy)
9245must be inside the chroot jail. </p>
9246
9247<p> Specify "tls_append_default_CA = no" to prevent Postfix from
9248appending the system-supplied default CAs and trusting third-party
9249certificates. </p>
9250
9251<p> Example: </p>
9252
9253<pre>
9254smtp_tls_CApath = /etc/postfix/certs
9255</pre>
9256
9257<p> This feature is available in Postfix 2.2 and later.  </p>
9258
9259%PARAM smtp_tls_loglevel 0
9260
9261<p> Enable additional Postfix SMTP client logging of TLS activity.
9262Each logging level also includes the information that is logged at
9263a lower logging level.  </p>
9264
9265<dl compact>
9266
9267<dt> </dt> <dd> 0 Log only a summary message on TLS handshake completion
9268&mdash; no logging of remote SMTP server certificate trust-chain
9269verification errors if server certificate verification is not required.
9270With Postfix 2.8 and earlier, disable logging of TLS activity.  </dd>
9271
9272<dt> </dt> <dd> 1 Also log remote SMTP server trust-chain verification
9273errors and peer certificate summary information. With Postfix 2.8
9274and earlier, log TLS handshake and certificate information.  </dd>
9275
9276<dt> </dt> <dd> 2 Also log levels during TLS negotiation.  </dd>
9277
9278<dt> </dt> <dd> 3 Also log hexadecimal and ASCII dump of TLS negotiation
9279process.  </dd>
9280
9281<dt> </dt> <dd> 4 Also log hexadecimal and ASCII dump of complete
9282transmission after STARTTLS. </dd>
9283
9284</dl>
9285
9286<p> Do not use "smtp_tls_loglevel = 2" or higher except in case of
9287problems. Use of loglevel 4 is strongly discouraged. </p>
9288
9289<p> This feature is available in Postfix 2.2 and later.  </p>
9290
9291%PARAM smtp_tls_session_cache_database
9292
9293<p> Name of the file containing the optional Postfix SMTP client
9294TLS session cache. Specify a database type that supports enumeration,
9295such as <b>btree</b> or <b>sdbm</b>; there is no need to support
9296concurrent access.  The file is created if it does not exist. The smtp(8)
9297daemon does not use this parameter directly, rather the cache is
9298implemented indirectly in the tlsmgr(8) daemon. This means that
9299per-smtp-instance master.cf overrides of this parameter are not effective.
9300Note, that each of the cache databases supported by tlsmgr(8) daemon:
9301$smtpd_tls_session_cache_database, $smtp_tls_session_cache_database
9302(and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to
9303be stored separately. It is not at this time possible to store multiple
9304caches in a single database. </p>
9305
9306<p> Note: <b>dbm</b> databases are not suitable. TLS
9307session objects are too large. </p>
9308
9309<p> As of version 2.5, Postfix no longer uses root privileges when
9310opening this file. The file should now be stored under the Postfix-owned
9311data_directory. As a migration aid, an attempt to open the file
9312under a non-Postfix directory is redirected to the Postfix-owned
9313data_directory, and a warning is logged. </p>
9314
9315<p> Example: </p>
9316
9317<pre>
9318smtp_tls_session_cache_database = btree:/var/db/postfix/smtp_scache
9319</pre>
9320
9321<p> This feature is available in Postfix 2.2 and later.  </p>
9322
9323%PARAM smtp_tls_session_cache_timeout 3600s
9324
9325<p> The expiration time of Postfix SMTP client TLS session cache
9326information.  A cache cleanup is performed periodically
9327every $smtp_tls_session_cache_timeout seconds. As with
9328$smtp_tls_session_cache_database, this parameter is implemented in the
9329tlsmgr(8) daemon and therefore per-smtp-instance master.cf overrides
9330are not possible. </p>
9331
9332<p> This feature is available in Postfix 2.2 and later.  </p>
9333
9334%PARAM smtp_use_tls no
9335
9336<p> Opportunistic mode: use TLS when a remote SMTP server announces
9337STARTTLS support, otherwise send the mail in the clear. Beware:
9338some SMTP servers offer STARTTLS even if it is not configured.  With
9339Postfix &lt; 2.3, if the TLS handshake fails, and no other server is
9340available, delivery is deferred and mail stays in the queue. If this
9341is a concern for you, use the smtp_tls_per_site feature instead.  </p>
9342
9343<p> This feature is available in Postfix 2.2 and later. With
9344Postfix 2.3 and later use smtp_tls_security_level instead. </p>
9345
9346%PARAM smtp_enforce_tls no
9347
9348<p> Enforcement mode: require that remote SMTP servers use TLS
9349encryption, and never send mail in the clear.  This also requires
9350that the remote SMTP server hostname matches the information in
9351the remote server certificate, and that the remote SMTP server
9352certificate was issued by a CA that is trusted by the Postfix SMTP
9353client. If the certificate doesn't verify or the hostname doesn't
9354match, delivery is deferred and mail stays in the queue.  </p>
9355
9356<p> The server hostname is matched against all names provided as
9357dNSNames in the SubjectAlternativeName.  If no dNSNames are specified,
9358the CommonName is checked.  The behavior may be changed with the
9359smtp_tls_enforce_peername option.  </p>
9360
9361<p> This option is useful only if you are definitely sure that you
9362will only connect to servers that support RFC 2487 _and_ that
9363provide valid server certificates.  Typical use is for clients that
9364send all their email to a dedicated mailhub.  </p>
9365
9366<p> This feature is available in Postfix 2.2 and later. With
9367Postfix 2.3 and later use smtp_tls_security_level instead. </p>
9368
9369%PARAM smtp_tls_enforce_peername yes
9370
9371<p> With mandatory TLS encryption, require that the remote SMTP
9372server hostname matches the information in the remote SMTP server
9373certificate.  As of RFC 2487 the requirements for hostname checking
9374for MTA clients are not specified. </p>
9375
9376<p> This option can be set to "no" to disable strict peer name
9377checking. This setting has no effect on sessions that are controlled
9378via the smtp_tls_per_site table.  </p>
9379
9380<p> Disabling the hostname verification can make sense in closed
9381environment where special CAs are created.  If not used carefully,
9382this option opens the danger of a "man-in-the-middle" attack (the
9383CommonName of this attacker will be logged). </p>
9384
9385<p> This feature is available in Postfix 2.2 and later. With
9386Postfix 2.3 and later use smtp_tls_security_level instead. </p>
9387
9388%PARAM smtp_tls_per_site
9389
9390<p> Optional lookup tables with the Postfix SMTP client TLS usage
9391policy by next-hop destination and by remote SMTP server hostname.
9392When both lookups succeed, the more specific per-site policy (NONE,
9393MUST, etc) overrides the less specific one (MAY), and the more secure
9394per-site policy (MUST, etc) overrides the less secure one (NONE).
9395With Postfix 2.3 and later smtp_tls_per_site is strongly discouraged:
9396use smtp_tls_policy_maps instead. </p>
9397
9398<p> Use of the bare hostname as the per-site table lookup key is
9399discouraged. Always use the full destination nexthop (enclosed in
9400[] with a possible ":port" suffix). A recipient domain or MX-enabled
9401transport next-hop with no port suffix may look like a bare hostname,
9402but is still a suitable <i>destination</i>. </p>
9403
9404<p> Specify a next-hop destination or server hostname on the left-hand
9405side; no wildcards are allowed. The next-hop destination is either
9406the recipient domain, or the destination specified with a transport(5)
9407table, the relayhost parameter, or the relay_transport parameter.
9408On the right hand side specify one of the following keywords:  </p>
9409
9410<dl>
9411
9412<dt> NONE </dt> <dd> Don't use TLS at all. This overrides a less
9413specific <b>MAY</b> lookup result from the alternate host or next-hop
9414lookup key, and overrides the global smtp_use_tls, smtp_enforce_tls,
9415and smtp_tls_enforce_peername settings. </dd>
9416
9417<dt> MAY </dt> <dd> Try to use TLS if the server announces support,
9418otherwise use the unencrypted connection. This has less precedence
9419than a more specific result (including <b>NONE</b>) from the alternate
9420host or next-hop lookup key, and has less precedence than the more
9421specific global "smtp_enforce_tls = yes" or "smtp_tls_enforce_peername
9422= yes".  </dd>
9423
9424<dt> MUST_NOPEERMATCH </dt> <dd> Require TLS encryption, but do not
9425require that the remote SMTP server hostname matches the information
9426in the remote SMTP server certificate, or that the server certificate
9427was issued by a trusted CA. This overrides a less secure <b>NONE</b>
9428or a less specific <b>MAY</b> lookup result from the alternate host
9429or next-hop lookup key, and overrides the global smtp_use_tls,
9430smtp_enforce_tls and smtp_tls_enforce_peername settings.  </dd>
9431
9432<dt> MUST </dt> <dd> Require TLS encryption, require that the remote
9433SMTP server hostname matches the information in the remote SMTP
9434server certificate, and require that the remote SMTP server certificate
9435was issued by a trusted CA. This overrides a less secure <b>NONE</b>
9436and <b>MUST_NOPEERMATCH</b> or a less specific <b>MAY</b> lookup
9437result from the alternate host or next-hop lookup key, and overrides
9438the global smtp_use_tls, smtp_enforce_tls and smtp_tls_enforce_peername
9439settings.  </dd>
9440
9441</dl>
9442
9443<p> The above keywords correspond to the "none", "may", "encrypt" and
9444"verify" security levels for the new smtp_tls_security_level parameter
9445introduced in Postfix 2.3. Starting with Postfix 2.3, and independently
9446of how the policy is specified, the smtp_tls_mandatory_ciphers and
9447smtp_tls_mandatory_protocols parameters apply when TLS encryption
9448is mandatory. Connections for which encryption is optional typically
9449enable all "export" grade and better ciphers (see smtp_tls_ciphers
9450and smtp_tls_protocols). </p>
9451
9452<p> As long as no secure DNS lookup mechanism is available, false
9453hostnames in MX or CNAME responses can change the server hostname
9454that Postfix uses for TLS policy lookup and server certificate
9455verification. Even with a perfect match between the server hostname and
9456the server certificate, there is no guarantee that Postfix is connected
9457to the right server.  See TLS_README (Closing a DNS loophole with obsolete
9458per-site TLS policies) for a possible work-around. </p>
9459
9460<p> This feature is available in Postfix 2.2 and later. With
9461Postfix 2.3 and later use smtp_tls_policy_maps instead. </p>
9462
9463%PARAM smtp_tls_scert_verifydepth 9
9464
9465<p> The verification depth for remote SMTP server certificates. A depth
9466of 1 is sufficient if the issuing CA is listed in a local CA file. </p>
9467
9468<p> The default verification depth is 9 (the OpenSSL default) for
9469compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
9470the default value was 5, but the limit was not actually enforced. If
9471you have set this to a lower non-default value, certificates with longer
9472trust chains may now fail to verify. Certificate chains with 1 or 2
9473CAs are common, deeper chains are more rare and any number between 5
9474and 9 should suffice in practice. You can choose a lower number if,
9475for example, you trust certificates directly signed by an issuing CA
9476but not any CAs it delegates to. </p>
9477
9478<p> This feature is available in Postfix 2.2 and later.  </p>
9479
9480%PARAM smtp_tls_note_starttls_offer no
9481
9482<p> Log the hostname of a remote SMTP server that offers STARTTLS,
9483when TLS is not already enabled for that server. </p>
9484
9485<p> The logfile record looks like:  </p>
9486
9487<pre>
9488postfix/smtp[pid]:  Host offered STARTTLS: [name.of.host]
9489</pre>
9490
9491<p> This feature is available in Postfix 2.2 and later.  </p>
9492
9493%PARAM smtp_tls_cipherlist
9494
9495<p> Obsolete Postfix &lt; 2.3 control for the Postfix SMTP client TLS
9496cipher list. As this feature applies to all TLS security levels, it is easy
9497to create inter-operability problems by choosing a non-default cipher
9498list. Do not use a non-default TLS cipher list on hosts that deliver email
9499to the public Internet: you will be unable to send email to servers that
9500only support the ciphers you exclude. Using a restricted cipher list
9501may be more appropriate for an internal MTA, where one can exert some
9502control over the TLS software and settings of the peer servers. </p>
9503
9504<p> <b>Note:</b> do not use "" quotes around the parameter value. </p>
9505
9506<p> This feature is available in Postfix version 2.2. It is not used with
9507Postfix 2.3 and later; use smtp_tls_mandatory_ciphers instead. </p>
9508
9509%PARAM smtp_starttls_timeout 300s
9510
9511<p> Time limit for Postfix SMTP client write and read operations
9512during TLS startup and shutdown handshake procedures. </p>
9513
9514<p> This feature is available in Postfix 2.2 and later.  </p>
9515
9516%PARAM smtp_tls_dkey_file $smtp_tls_dcert_file
9517
9518<p> File with the Postfix SMTP client DSA private key in PEM format.
9519This file may be combined with the Postfix SMTP client DSA certificate
9520file specified with $smtp_tls_dcert_file. </p>
9521
9522<p> The private key must be accessible without a pass-phrase, i.e. it
9523must not be encrypted. File permissions should grant read-only
9524access to the system superuser account ("root"), and no access
9525to anyone else. </p>
9526
9527<p> This feature is available in Postfix 2.2 and later.  </p>
9528
9529%PARAM smtp_tls_dcert_file
9530
9531<p> File with the Postfix SMTP client DSA certificate in PEM format.
9532This file may also contain the Postfix SMTP client private DSA key. </p>
9533
9534<p> See the discussion under smtp_tls_cert_file for more details.
9535</p>
9536
9537<p> Example: </p>
9538
9539<pre>
9540smtp_tls_dcert_file = /etc/postfix/client-dsa.pem
9541</pre>
9542
9543<p> This feature is available in Postfix 2.2 and later.  </p>
9544
9545%PARAM tls_append_default_CA no
9546
9547<p> Append the system-supplied default certificate authority
9548certificates to the ones specified with *_tls_CApath or *_tls_CAfile.
9549The default is "no"; this prevents Postfix from trusting third-party
9550certificates and giving them relay permission with
9551permit_tls_all_clientcerts.  </p>
9552
9553<p> This feature is available in Postfix 2.4.15, 2.5.11, 2.6.8,
95542.7.2 and later versions. Specify "tls_append_default_CA = yes" for
9555backwards compatibility, to avoid breaking certificate verification
9556with sites that don't use permit_tls_all_clientcerts. </p>
9557
9558%PARAM tls_random_exchange_name see "postconf -d" output
9559
9560<p> Name of the pseudo random number generator (PRNG) state file
9561that is maintained by tlsmgr(8). The file is created when it does
9562not exist, and its length is fixed at 1024 bytes.  </p>
9563
9564<p> As of version 2.5, Postfix no longer uses root privileges when
9565opening this file, and the default file location was changed from
9566${config_directory}/prng_exch to ${data_directory}/prng_exch.  As
9567a migration aid, an attempt to open the file under a non-Postfix
9568directory is redirected to the Postfix-owned data_directory, and a
9569warning is logged. </p>
9570
9571<p> This feature is available in Postfix 2.2 and later.  </p>
9572
9573%PARAM tls_random_source see "postconf -d" output
9574
9575<p> The external entropy source for the in-memory tlsmgr(8) pseudo
9576random number generator (PRNG) pool. Be sure to specify a non-blocking
9577source.  If this source is not a regular file, the entropy source
9578type must be prepended:  egd:/path/to/egd_socket for a source with
9579EGD compatible socket interface, or dev:/path/to/device for a
9580device file.  </p>
9581
9582<p> Note: on OpenBSD systems specify /dev/arandom when /dev/urandom
9583gives timeout errors.  </p>
9584
9585<p> This feature is available in Postfix 2.2 and later.  </p>
9586
9587%PARAM tls_random_bytes 32
9588
9589<p> The number of bytes that tlsmgr(8) reads from $tls_random_source
9590when (re)seeding the in-memory pseudo random number generator (PRNG)
9591pool. The default of 32 bytes (256 bits) is good enough for 128bit
9592symmetric keys.  If using EGD or a device file, a maximum of 255
9593bytes is read. </p>
9594
9595<p> This feature is available in Postfix 2.2 and later.  </p>
9596
9597%PARAM tls_random_reseed_period 3600s
9598
9599<p> The maximal time between attempts by tlsmgr(8) to re-seed the
9600in-memory pseudo random number generator (PRNG) pool from external
9601sources.  The actual time between re-seeding attempts is calculated
9602using the PRNG, and is between 0 and the time specified.  </p>
9603
9604<p> This feature is available in Postfix 2.2 and later.  </p>
9605
9606%PARAM tls_random_prng_update_period 3600s
9607
9608<p> The time between attempts by tlsmgr(8) to save the state of
9609the pseudo random number generator (PRNG) to the file specified
9610with $tls_random_exchange_name.  </p>
9611
9612<p> This feature is available in Postfix 2.2 and later.  </p>
9613
9614%PARAM tls_daemon_random_bytes 32
9615
9616<p> The number of pseudo-random bytes that an smtp(8) or smtpd(8)
9617process requests from the tlsmgr(8) server in order to seed its
9618internal pseudo random number generator (PRNG).  The default of 32
9619bytes (equivalent to 256 bits) is sufficient to generate a 128bit
9620(or 168bit) session key. </p>
9621
9622<p> This feature is available in Postfix 2.2 and later.  </p>
9623
9624%PARAM smtp_sasl_tls_security_options $smtp_sasl_security_options
9625
9626<p> The SASL authentication security options that the Postfix SMTP
9627client uses for TLS encrypted SMTP sessions. </p>
9628
9629<p> This feature is available in Postfix 2.2 and later.  </p>
9630
9631%PARAM smtpd_sasl_tls_security_options $smtpd_sasl_security_options
9632
9633<p> The SASL authentication security options that the Postfix SMTP
9634server uses for TLS encrypted SMTP sessions. </p>
9635
9636<p> This feature is available in Postfix 2.2 and later.  </p>
9637
9638%PARAM smtp_generic_maps
9639
9640<p> Optional lookup tables that perform address rewriting in the
9641Postfix SMTP client, typically to transform a locally valid address into
9642a globally valid address when sending mail across the Internet.
9643This is needed when the local machine does not have its own Internet
9644domain name, but uses something like <i>localdomain.local</i>
9645instead.  </p>
9646
9647<p> The table format and lookups are documented in generic(5);
9648examples are shown in the ADDRESS_REWRITING_README and
9649STANDARD_CONFIGURATION_README documents. </p>
9650
9651<p> This feature is available in Postfix 2.2 and later.  </p>
9652
9653%PARAM message_reject_characters
9654
9655<p> The set of characters that Postfix will reject in message
9656content.  The usual C-like escape sequences are recognized: <tt>\a
9657\b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and
9658<tt>\\</tt>. </p>
9659
9660<p> Note 1: this feature does not recognize text that requires MIME
9661decoding. It inspects raw message content, just like header_checks
9662and body_checks.  </p>
9663
9664<p> Note 2: this feature is disabled with "receive_override_options
9665= no_header_body_checks".  </p>
9666
9667<p> Example: </p>
9668
9669<pre>
9670message_reject_characters = \0
9671</pre>
9672
9673<p> This feature is available in Postfix 2.3 and later.  </p>
9674
9675%PARAM message_strip_characters
9676
9677<p> The set of characters that Postfix will remove from message
9678content.  The usual C-like escape sequences are recognized: <tt>\a
9679\b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and
9680<tt>\\</tt>. </p>
9681
9682<p> Note 1: this feature does not recognize text that requires MIME
9683decoding. It inspects raw message content, just like header_checks
9684and body_checks.  </p>
9685
9686<p> Note 2: this feature is disabled with "receive_override_options
9687= no_header_body_checks".  </p>
9688
9689<p> Example: </p>
9690
9691<pre>
9692message_strip_characters = \0
9693</pre>
9694
9695<p> This feature is available in Postfix 2.3 and later.  </p>
9696
9697%PARAM frozen_delivered_to yes
9698
9699<p> Update the local(8) delivery agent's idea of the Delivered-To:
9700address (see prepend_delivered_header) only once, at the start of
9701a delivery attempt; do not update the Delivered-To: address while
9702expanding aliases or .forward files. </p>
9703
9704<p> This feature is available in Postfix 2.3 and later. With older
9705Postfix releases, the behavior is as if this parameter is set to
9706"no". The old setting can be expensive with deeply nested aliases
9707or .forward files. When an alias or .forward file changes the
9708Delivered-To: address, it ties up one queue file and one cleanup
9709process instance while mail is being forwarded.  </p>
9710
9711%PARAM smtpd_peername_lookup yes
9712
9713<p> Attempt to look up the remote SMTP client hostname, and verify that
9714the name matches the client IP address. A client name is set to
9715"unknown" when it cannot be looked up or verified, or when name
9716lookup is disabled.  Turning off name lookup reduces delays due to
9717DNS lookup and increases the maximal inbound delivery rate. </p>
9718
9719<p> This feature is available in Postfix 2.3 and later.  </p>
9720
9721%PARAM delay_logging_resolution_limit 2
9722
9723<p> The maximal number of digits after the decimal point when logging
9724sub-second delay values.  Specify a number in the range 0..6.  </p>
9725
9726<p> Large delay values are rounded off to an integral number seconds;
9727delay values below the delay_logging_resolution_limit are logged
9728as "0", and small delay values are logged with at most two-digit
9729precision.  </p>
9730
9731<p> The format of the "delays=a/b/c/d" logging is as follows: </p>
9732
9733<ul>
9734
9735<li> a = time from message arrival to last active queue entry
9736
9737<li> b = time from last active queue entry to connection setup
9738
9739<li> c = time in connection setup, including DNS, EHLO and STARTTLS
9740
9741<li> d = time in message transmission
9742
9743</ul>
9744
9745<p> This feature is available in Postfix 2.3 and later.  </p>
9746
9747%PARAM bounce_template_file
9748
9749<p> Pathname of a configuration file with bounce message templates.
9750These override the built-in templates of delivery status notification
9751(DSN) messages for undeliverable mail, for delayed mail, successful
9752delivery, or delivery verification. The bounce(5) manual page
9753describes how to edit and test template files.  </p>
9754
9755<p> Template message body text may contain $name references to
9756Postfix configuration parameters. The result of $name expansion can
9757be previewed with "<b>postconf -b <i>file_name</i></b>" before the file
9758is placed into the Postfix configuration directory.  </p>
9759
9760<p> This feature is available in Postfix 2.3 and later.  </p>
9761
9762%PARAM sender_dependent_relayhost_maps
9763
9764<p> A sender-dependent override for the global relayhost parameter
9765setting. The tables are searched by the envelope sender address and
9766@domain. A lookup result of DUNNO terminates the search without
9767overriding the global relayhost parameter setting (Postfix 2.6 and
9768later). This information is overruled with relay_transport,
9769sender_dependent_default_transport_maps, default_transport and with
9770the transport(5) table. </p>
9771
9772<p> For safety reasons, this feature does not allow $number
9773substitutions in regular expression maps. </p>
9774
9775<p>
9776This feature is available in Postfix 2.3 and later.
9777</p>
9778
9779%PARAM empty_address_relayhost_maps_lookup_key &lt;&gt;
9780
9781<p> The sender_dependent_relayhost_maps search string that will be
9782used instead of the null sender address. </p>
9783
9784<p> This feature is available in Postfix 2.5 and later. With
9785earlier versions, sender_dependent_relayhost_maps lookups were
9786skipped for the null sender address.  </p>
9787
9788%PARAM address_verify_sender_dependent_relayhost_maps $sender_dependent_relayhost_maps
9789
9790<p>
9791Overrides the sender_dependent_relayhost_maps parameter setting for address
9792verification probes.
9793</p>
9794
9795<p>
9796This feature is available in Postfix 2.3 and later.
9797</p>
9798
9799%PARAM smtp_sender_dependent_authentication no
9800
9801<p>
9802Enable sender-dependent authentication in the Postfix SMTP client; this is
9803available only with SASL authentication, and disables SMTP connection
9804caching to ensure that mail from different senders will use the
9805appropriate credentials.  </p>
9806
9807<p>
9808This feature is available in Postfix 2.3 and later.
9809</p>
9810
9811%PARAM lmtp_lhlo_name $myhostname
9812
9813<p>
9814The hostname to send in the LMTP LHLO command.
9815</p>
9816
9817<p>
9818The default value is the machine hostname.  Specify a hostname or
9819[ip.add.re.ss].
9820</p>
9821
9822<p>
9823This information can be specified in the main.cf file for all LMTP
9824clients, or it can be specified in the master.cf file for a specific
9825client, for example:
9826</p>
9827
9828<blockquote>
9829<pre>
9830/etc/postfix/master.cf:
9831    mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com
9832</pre>
9833</blockquote>
9834
9835<p>
9836This feature is available in Postfix 2.3 and later.
9837</p>
9838
9839%PARAM lmtp_discard_lhlo_keyword_address_maps
9840
9841<p> Lookup tables, indexed by the remote LMTP server address, with
9842case insensitive lists of LHLO keywords (pipelining, starttls,
9843auth, etc.) that the Postfix LMTP client will ignore in the LHLO
9844response
9845from a remote LMTP server. See lmtp_discard_lhlo_keywords for
9846details. The table is not indexed by hostname for consistency with
9847smtpd_discard_ehlo_keyword_address_maps. </p>
9848
9849<p> This feature is available in Postfix 2.3 and later. </p>
9850
9851%PARAM lmtp_discard_lhlo_keywords
9852
9853<p> A case insensitive list of LHLO keywords (pipelining, starttls,
9854auth, etc.) that the Postfix LMTP client will ignore in the LHLO
9855response
9856from a remote LMTP server. </p>
9857
9858<p> This feature is available in Postfix 2.3 and later. </p>
9859
9860<p> Notes: </p>
9861
9862<ul>
9863
9864<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
9865this action from being logged. </p>
9866
9867<li> <p> Use the lmtp_discard_lhlo_keyword_address_maps feature to
9868discard LHLO keywords selectively. </p>
9869
9870</ul>
9871
9872%PARAM lmtp_lhlo_timeout 300s
9873
9874<p> The Postfix LMTP client time limit for sending the LHLO command,
9875and for receiving the initial remote LMTP server response. </p>
9876
9877<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
9878(weeks).  The default time unit is s (seconds).  </p>
9879
9880%PARAM lmtp_sasl_tls_security_options $lmtp_sasl_security_options
9881
9882<p> The LMTP-specific version of the smtp_sasl_tls_security_options
9883configuration parameter.  See there for details. </p>
9884
9885<p> This feature is available in Postfix 2.3 and later. </p>
9886
9887%PARAM lmtp_sasl_mechanism_filter
9888
9889<p> The LMTP-specific version of the smtp_sasl_mechanism_filter
9890configuration parameter.  See there for details. </p>
9891
9892<p> This feature is available in Postfix 2.3 and later. </p>
9893
9894%PARAM lmtp_bind_address
9895
9896<p> The LMTP-specific version of the smtp_bind_address configuration
9897parameter.  See there for details. </p>
9898
9899<p> This feature is available in Postfix 2.3 and later. </p>
9900
9901%PARAM lmtp_bind_address6
9902
9903<p> The LMTP-specific version of the smtp_bind_address6 configuration
9904parameter.  See there for details. </p>
9905
9906<p> This feature is available in Postfix 2.3 and later. </p>
9907
9908%PARAM lmtp_host_lookup dns
9909
9910<p> The LMTP-specific version of the smtp_host_lookup configuration
9911parameter.  See there for details. </p>
9912
9913<p> This feature is available in Postfix 2.3 and later. </p>
9914
9915%PARAM lmtp_connection_cache_destinations
9916
9917<p> The LMTP-specific version of the smtp_connection_cache_destinations
9918configuration parameter.  See there for details. </p>
9919
9920<p> This feature is available in Postfix 2.3 and later. </p>
9921
9922%PARAM lmtp_tls_per_site
9923
9924<p> The LMTP-specific version of the smtp_tls_per_site configuration
9925parameter.  See there for details. </p>
9926
9927<p> This feature is available in Postfix 2.3 and later. </p>
9928
9929%PARAM lmtp_generic_maps
9930
9931<p> The LMTP-specific version of the smtp_generic_maps configuration
9932parameter.  See there for details. </p>
9933
9934<p> This feature is available in Postfix 2.3 and later. </p>
9935
9936%PARAM lmtp_pix_workaround_threshold_time 500s
9937
9938<p> The LMTP-specific version of the smtp_pix_workaround_threshold_time
9939configuration parameter.  See there for details. </p>
9940
9941<p> This feature is available in Postfix 2.3 and later. </p>
9942
9943%PARAM lmtp_pix_workaround_delay_time 10s
9944
9945<p> The LMTP-specific version of the smtp_pix_workaround_delay_time
9946configuration parameter.  See there for details. </p>
9947
9948<p> This feature is available in Postfix 2.3 and later. </p>
9949
9950%PARAM lmtp_connection_reuse_time_limit 300s
9951
9952<p> The LMTP-specific version of the smtp_connection_reuse_time_limit
9953configuration parameter.  See there for details. </p>
9954
9955<p> This feature is available in Postfix 2.3 and later. </p>
9956
9957%PARAM lmtp_starttls_timeout 300s
9958
9959<p> The LMTP-specific version of the smtp_starttls_timeout configuration
9960parameter.  See there for details. </p>
9961
9962<p> This feature is available in Postfix 2.3 and later. </p>
9963
9964%PARAM lmtp_line_length_limit 990
9965
9966<p> The LMTP-specific version of the smtp_line_length_limit
9967configuration parameter.  See there for details. </p>
9968
9969<p> This feature is available in Postfix 2.3 and later. </p>
9970
9971%PARAM lmtp_mx_address_limit 5
9972
9973<p> The LMTP-specific version of the smtp_mx_address_limit configuration
9974parameter.  See there for details. </p>
9975
9976<p> This feature is available in Postfix 2.3 and later. </p>
9977
9978%PARAM lmtp_mx_session_limit 2
9979
9980<p> The LMTP-specific version of the smtp_mx_session_limit configuration
9981parameter.  See there for details. </p>
9982
9983<p> This feature is available in Postfix 2.3 and later. </p>
9984
9985%PARAM lmtp_tls_scert_verifydepth 9
9986
9987<p> The LMTP-specific version of the smtp_tls_scert_verifydepth
9988configuration parameter.  See there for details. </p>
9989
9990<p> This feature is available in Postfix 2.3 and later. </p>
9991
9992%PARAM lmtp_skip_5xx_greeting yes
9993
9994<p> The LMTP-specific version of the smtp_skip_5xx_greeting
9995configuration parameter.  See there for details. </p>
9996
9997<p> This feature is available in Postfix 2.3 and later. </p>
9998
9999%PARAM lmtp_randomize_addresses yes
10000
10001<p> The LMTP-specific version of the smtp_randomize_addresses
10002configuration parameter.  See there for details. </p>
10003
10004<p> This feature is available in Postfix 2.3 and later. </p>
10005
10006%PARAM lmtp_quote_rfc821_envelope yes
10007
10008<p> The LMTP-specific version of the smtp_quote_rfc821_envelope
10009configuration parameter.  See there for details. </p>
10010
10011<p> This feature is available in Postfix 2.3 and later. </p>
10012
10013%PARAM lmtp_defer_if_no_mx_address_found no
10014
10015<p> The LMTP-specific version of the smtp_defer_if_no_mx_address_found
10016configuration parameter.  See there for details. </p>
10017
10018<p> This feature is available in Postfix 2.3 and later. </p>
10019
10020%PARAM lmtp_connection_cache_on_demand yes
10021
10022<p> The LMTP-specific version of the smtp_connection_cache_on_demand
10023configuration parameter.  See there for details. </p>
10024
10025<p> This feature is available in Postfix 2.3 and later. </p>
10026
10027%PARAM lmtp_use_tls no
10028
10029<p> The LMTP-specific version of the smtp_use_tls configuration
10030parameter.  See there for details. </p>
10031
10032<p> This feature is available in Postfix 2.3 and later. </p>
10033
10034%PARAM lmtp_enforce_tls no
10035
10036<p> The LMTP-specific version of the smtp_enforce_tls configuration
10037parameter.  See there for details. </p>
10038
10039<p> This feature is available in Postfix 2.3 and later. </p>
10040
10041%PARAM lmtp_tls_security_level
10042
10043<p> The LMTP-specific version of the smtp_tls_security_level configuration
10044parameter.  See there for details. </p>
10045
10046<p> This feature is available in Postfix 2.3 and later. </p>
10047
10048%PARAM lmtp_tls_enforce_peername yes
10049
10050<p> The LMTP-specific version of the smtp_tls_enforce_peername
10051configuration parameter.  See there for details. </p>
10052
10053<p> This feature is available in Postfix 2.3 and later. </p>
10054
10055%PARAM lmtp_tls_note_starttls_offer no
10056
10057<p> The LMTP-specific version of the smtp_tls_note_starttls_offer
10058configuration parameter.  See there for details. </p>
10059
10060<p> This feature is available in Postfix 2.3 and later. </p>
10061
10062%PARAM lmtp_sender_dependent_authentication no
10063
10064<p> The LMTP-specific version of the smtp_sender_dependent_authentication
10065configuration parameter.  See there for details. </p>
10066
10067<p> This feature is available in Postfix 2.3 and later. </p>
10068
10069%PARAM connection_cache_protocol_timeout 5s
10070
10071<p> Time limit for connection cache connect, send or receive
10072operations.  The time limit is enforced in the client. </p>
10073
10074<p> This feature is available in Postfix 2.3 and later. </p>
10075
10076%PARAM smtpd_sasl_type cyrus
10077
10078<p> The SASL plug-in type that the Postfix SMTP server should use
10079for authentication. The available types are listed with the
10080"<b>postconf -a</b>" command. </p>
10081
10082<p> This feature is available in Postfix 2.3 and later. </p>
10083
10084%PARAM smtp_sasl_type cyrus
10085
10086<p> The SASL plug-in type that the Postfix SMTP client should use
10087for authentication.  The available types are listed with the
10088"<b>postconf -A</b>" command. </p>
10089
10090<p> This feature is available in Postfix 2.3 and later. </p>
10091
10092
10093%PARAM lmtp_sasl_type cyrus
10094
10095<p> The SASL plug-in type that the Postfix LMTP client should use
10096for authentication.  The available types are listed with the
10097"<b>postconf -A</b>" command. </p>
10098
10099<p> This feature is available in Postfix 2.3 and later. </p>
10100
10101%PARAM smtpd_sasl_path smtpd
10102
10103<p> Implementation-specific information that the Postfix SMTP server
10104passes through to
10105the SASL plug-in implementation that is selected with
10106<b>smtpd_sasl_type</b>.  Typically this specifies the name of a
10107configuration file or rendezvous point. </p>
10108
10109<p> This feature is available in Postfix 2.3 and later. In earlier
10110releases it was called <b>smtpd_sasl_application_name</b>. </p>
10111
10112%PARAM cyrus_sasl_config_path
10113
10114<p> Search path for Cyrus SASL application configuration files,
10115currently used only to locate the $smtpd_sasl_path.conf file.
10116Specify zero or more directories separated by a colon character,
10117or an empty value to use Cyrus SASL's built-in search path.  </p>
10118
10119<p> This feature is available in Postfix 2.5 and later when compiled
10120with Cyrus SASL 2.1.22 or later. </p>
10121
10122%PARAM smtp_sasl_path
10123
10124<p> Implementation-specific information that the Postfix SMTP client
10125passes through to
10126the SASL plug-in implementation that is selected with
10127<b>smtp_sasl_type</b>.  Typically this specifies the name of a
10128configuration file or rendezvous point. </p>
10129
10130<p> This feature is available in Postfix 2.3 and later. </p>
10131
10132%PARAM lmtp_sasl_path
10133
10134<p> Implementation-specific information that is passed through to
10135the SASL plug-in implementation that is selected with
10136<b>lmtp_sasl_type</b>.  Typically this specifies the name of a
10137configuration file or rendezvous point. </p>
10138
10139<p> This feature is available in Postfix 2.3 and later. </p>
10140
10141%PARAM plaintext_reject_code 450
10142
10143<p>
10144The numerical Postfix SMTP server response code when a request
10145is rejected by the <b>reject_plaintext_session</b> restriction.
10146</p>
10147
10148<p> This feature is available in Postfix 2.3 and later. </p>
10149
10150%PARAM resolve_numeric_domain no
10151
10152<p> Resolve "user@ipaddress" as "user@[ipaddress]", instead of
10153rejecting the address as invalid.  </p>
10154
10155<p> This feature is available in Postfix 2.3 and later.
10156
10157%PARAM mailbox_transport_maps
10158
10159<p> Optional lookup tables with per-recipient message delivery
10160transports to use for local(8) mailbox delivery, whether or not the
10161recipients are found in the UNIX passwd database. </p>
10162
10163<p> The precedence of local(8) delivery features from high to low
10164is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
10165mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
10166fallback_transport_maps, fallback_transport and luser_relay.  </p>
10167
10168<p> For safety reasons, this feature does not allow $number
10169substitutions in regular expression maps. </p>
10170
10171<p> This feature is available in Postfix 2.3 and later. </p>
10172
10173%PARAM fallback_transport_maps
10174
10175<p> Optional lookup tables with per-recipient message delivery
10176transports for recipients that the local(8) delivery agent could
10177not find in the aliases(5) or UNIX password database. </p>
10178
10179<p> The precedence of local(8) delivery features from high to low
10180is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
10181mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
10182fallback_transport_maps, fallback_transport and luser_relay.  </p>
10183
10184<p> For safety reasons, this feature does not allow $number
10185substitutions in regular expression maps. </p>
10186
10187<p> This feature is available in Postfix 2.3 and later. </p>
10188
10189%PARAM smtp_cname_overrides_servername version dependent
10190
10191<p> Allow DNS CNAME records to override the servername that the
10192Postfix SMTP client uses for logging, SASL password lookup, TLS
10193policy decisions, or TLS certificate verification. The value "no"
10194hardens Postfix smtp_tls_per_site hostname-based policies against
10195false hostname information in DNS CNAME records, and makes SASL
10196password file lookups more predictable. This is the default setting
10197as of Postfix 2.3. </p>
10198
10199<p> This feature is available in Postfix 2.2.9 and later. </p>
10200
10201%PARAM lmtp_cname_overrides_servername yes
10202
10203<p> The LMTP-specific version of the smtp_cname_overrides_servername
10204configuration parameter.  See there for details. </p>
10205
10206<p> This feature is available in Postfix 2.3 and later. </p>
10207
10208%PARAM smtp_sasl_tls_verified_security_options $smtp_sasl_tls_security_options
10209
10210<p> The SASL authentication security options that the Postfix SMTP
10211client uses for TLS encrypted SMTP sessions with a verified server
10212certificate. </p>
10213
10214<p> When mail is sent to the public MX host for the recipient's
10215domain, server certificates are by default optional, and delivery
10216proceeds even if certificate verification fails. For delivery via
10217a submission service that requires SASL authentication, it may be
10218appropriate to send plaintext passwords only when the connection
10219to the server is strongly encrypted <b>and</b> the server identity
10220is verified. </p>
10221
10222<p> The smtp_sasl_tls_verified_security_options parameter makes it
10223possible to only enable plaintext mechanisms when a secure connection
10224to the server is available. Submission servers subject to this
10225policy must either have verifiable certificates or offer suitable
10226non-plaintext SASL mechanisms. </p>
10227
10228<p> This feature is available in Postfix 2.6 and later. </p>
10229
10230%PARAM lmtp_sasl_tls_verified_security_options $lmtp_sasl_tls_security_options
10231
10232<p> The LMTP-specific version of the
10233smtp_sasl_tls_verified_security_options configuration parameter.
10234See there for details. </p>
10235
10236<p> This feature is available in Postfix 2.3 and later. </p>
10237
10238%PARAM lmtp_connection_cache_time_limit 2s
10239
10240<p> The LMTP-specific version of the
10241smtp_connection_cache_time_limit configuration parameter.
10242See there for details. </p>
10243
10244<p> This feature is available in Postfix 2.3 and later. </p>
10245
10246%PARAM smtpd_delay_open_until_valid_rcpt yes
10247
10248<p> Postpone the start of an SMTP mail transaction until a valid
10249RCPT TO command is received. Specify "no" to create a mail transaction
10250as soon as the Postfix SMTP server receives a valid MAIL FROM
10251command. </p>
10252
10253<p> With sites that reject lots of mail, the default setting reduces
10254the use of
10255disk, CPU and memory resources. The downside is that rejected
10256recipients are logged with NOQUEUE instead of a mail transaction
10257ID. This complicates the logfile analysis of multi-recipient mail.
10258</p>
10259
10260<p> This feature is available in Postfix 2.3 and later. </p>
10261
10262%PARAM lmtp_tls_cert_file
10263
10264<p> The LMTP-specific version of the smtp_tls_cert_file
10265configuration parameter.  See there for details. </p>
10266
10267<p> This feature is available in Postfix 2.3 and later. </p>
10268
10269%PARAM lmtp_tls_key_file $lmtp_tls_cert_file
10270
10271<p> The LMTP-specific version of the smtp_tls_key_file
10272configuration parameter.  See there for details. </p>
10273
10274<p> This feature is available in Postfix 2.3 and later. </p>
10275
10276%PARAM lmtp_tls_dcert_file
10277
10278<p> The LMTP-specific version of the smtp_tls_dcert_file
10279configuration parameter.  See there for details. </p>
10280
10281<p> This feature is available in Postfix 2.3 and later. </p>
10282
10283%PARAM lmtp_tls_dkey_file $lmtp_tls_dcert_file
10284
10285<p> The LMTP-specific version of the smtp_tls_dkey_file
10286configuration parameter.  See there for details. </p>
10287
10288<p> This feature is available in Postfix 2.3 and later. </p>
10289
10290%PARAM lmtp_tls_CAfile
10291
10292<p> The LMTP-specific version of the smtp_tls_CAfile
10293configuration parameter.  See there for details. </p>
10294
10295<p> This feature is available in Postfix 2.3 and later. </p>
10296
10297%PARAM lmtp_tls_CApath
10298
10299<p> The LMTP-specific version of the smtp_tls_CApath
10300configuration parameter.  See there for details. </p>
10301
10302<p> This feature is available in Postfix 2.3 and later. </p>
10303
10304%PARAM lmtp_tls_loglevel 0
10305
10306<p> The LMTP-specific version of the smtp_tls_loglevel
10307configuration parameter.  See there for details. </p>
10308
10309<p> This feature is available in Postfix 2.3 and later. </p>
10310
10311%PARAM lmtp_tls_session_cache_database
10312
10313<p> The LMTP-specific version of the smtp_tls_session_cache_database
10314configuration parameter. See there for details. </p>
10315
10316<p> This feature is available in Postfix 2.3 and later. </p>
10317
10318%PARAM lmtp_tls_session_cache_timeout  3600s
10319
10320<p> The LMTP-specific version of the smtp_tls_session_cache_timeout
10321configuration parameter.  See there for details. </p>
10322
10323<p> This feature is available in Postfix 2.3 and later. </p>
10324
10325%PARAM smtp_tls_policy_maps
10326
10327<p> Optional lookup tables with the Postfix SMTP client TLS security
10328policy by next-hop destination; when a non-empty value is specified,
10329this overrides the obsolete smtp_tls_per_site parameter.  See
10330TLS_README for a more detailed discussion of TLS security levels.
10331</p>
10332
10333<p> The TLS policy table is indexed by the full next-hop destination,
10334which is either the recipient domain, or the verbatim next-hop
10335specified in the transport table, $local_transport, $virtual_transport,
10336$relay_transport or $default_transport. This includes any enclosing
10337square brackets and any non-default destination server port suffix. The
10338LMTP socket type prefix (inet: or unix:) is not included in the lookup
10339key. </p>
10340
10341<p> Only the next-hop domain, or $myhostname with LMTP over UNIX-domain
10342sockets, is used as the nexthop name for certificate verification. The
10343port and any enclosing square brackets are used in the table lookup key,
10344but are not used for server name verification. </p>
10345
10346<p> When the lookup key is a domain name without enclosing square brackets
10347or any <i>:port</i> suffix (typically the recipient domain), and the full
10348domain is not found in the table, just as with the transport(5) table,
10349the parent domain starting with a leading "." is matched recursively. This
10350allows one to specify a security policy for a recipient domain and all
10351its sub-domains. </p>
10352
10353<p> The lookup result is a security level, followed by an optional list
10354of whitespace and/or comma separated name=value attributes that override
10355related main.cf settings. The TLS security levels in order of increasing
10356security are: </p>
10357
10358<dl>
10359
10360<dt><b>none</b></dt>
10361<dd>No TLS. No additional attributes are supported at this level. </dd>
10362
10363<dt><b>may</b></dt>
10364<dd>Opportunistic TLS. Since sending in the clear is acceptable,
10365demanding stronger than default TLS security merely reduces
10366inter-operability. The optional "ciphers", "exclude" and "protocols"
10367attributes (available for opportunistic TLS with Postfix &ge; 2.6)
10368override the "smtp_tls_ciphers", "smtp_tls_exclude_ciphers" and
10369"smtp_tls_protocols" configuration parameters. When opportunistic TLS
10370handshakes fail, Postfix retries the connection with TLS disabled.
10371This allows mail delivery to sites with non-interoperable TLS
10372implementations.</dd>
10373
10374<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption. At this level
10375and higher, the optional "protocols" attribute overrides the main.cf
10376smtp_tls_mandatory_protocols parameter, the optional "ciphers" attribute
10377overrides the main.cf smtp_tls_mandatory_ciphers parameter, and the
10378optional "exclude" attribute (Postfix &ge; 2.6) overrides the main.cf
10379smtp_tls_mandatory_exclude_ciphers parameter. In the policy table,
10380multiple protocols or excluded ciphers must be separated by colons,
10381as attribute values may not contain whitespace or commas. </dd>
10382
10383<dt><b>fingerprint</b></dt> <dd>Certificate fingerprint
10384verification. Available with Postfix 2.5 and later. At this security
10385level, there are no trusted certificate authorities. The certificate
10386trust chain, expiration date, ... are not checked. Instead,
10387the optional <b>match</b> attribute, or else the main.cf
10388<b>smtp_tls_fingerprint_cert_match</b> parameter, lists the certificate
10389fingerprints or the public key fingerprint (Postfix 2.9 and later)
10390of the valid server certificate. The digest
10391algorithm used to calculate the fingerprint is selected by the
10392<b>smtp_tls_fingerprint_digest</b> parameter. Multiple fingerprints can
10393be combined with a "|" delimiter in a single match attribute, or multiple
10394match attributes can be employed. The ":" character is not used as a
10395delimiter as it occurs between each pair of fingerprint (hexadecimal)
10396digits. </dd>
10397
10398<dt><b>verify</b></dt> <dd>Mandatory TLS verification.  At this security
10399level, DNS MX lookups are trusted to be secure enough, and the name
10400verified in the server certificate is usually obtained indirectly via
10401unauthenticated DNS MX lookups.  The optional "match" attribute overrides
10402the main.cf smtp_tls_verify_cert_match parameter. In the policy table,
10403multiple match patterns and strategies must be separated by colons.
10404In practice explicit control over matching is more common with the
10405"secure" policy, described below. </dd>
10406
10407<dt><b>secure</b></dt> <dd>Secure-channel TLS. At this security level, DNS
10408MX lookups, though potentially used to determine the candidate next-hop
10409gateway IP addresses, are <b>not</b> trusted to be secure enough for TLS
10410peername verification. Instead, the default name verified in the server
10411certificate is obtained directly from the next-hop, or is explicitly
10412specified via the optional <b>match</b> attribute which overrides the
10413main.cf smtp_tls_secure_cert_match parameter. In the policy table,
10414multiple match patterns and strategies must be separated by colons.
10415The match attribute is most useful when multiple domains are supported by
10416common server, the policy entries for additional domains specify matching
10417rules for the primary domain certificate. While transport table overrides
10418routing the secondary domains to the primary nexthop also allow secure
10419verification, they risk delivery to the wrong destination when domains
10420change hands or are re-assigned to new gateways. With the "match"
10421attribute approach, routing is not perturbed, and mail is deferred if
10422verification of a new MX host fails. </dd>
10423
10424</dl>
10425
10426<p>
10427Example:
10428</p>
10429
10430<pre>
10431/etc/postfix/main.cf:
10432    smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
10433    # Postfix 2.5 and later
10434    smtp_tls_fingerprint_digest = md5
10435</pre>
10436
10437<pre>
10438/etc/postfix/tls_policy:
10439    example.edu                 none
10440    example.mil                 may
10441    example.gov                 encrypt protocols=TLSv1
10442    example.com                 verify ciphers=high
10443    example.net                 secure
10444    .example.net                secure match=.example.net:example.net
10445    [mail.example.org]:587      secure match=nexthop
10446    # Postfix 2.5 and later
10447    [thumb.example.org]          fingerprint
10448    	match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
10449	match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
10450</pre>
10451
10452<p> <b>Note:</b> The <b>hostname</b> strategy if listed in a non-default
10453setting of smtp_tls_secure_cert_match or in the <b>match</b> attribute
10454in the policy table can render the <b>secure</b> level vulnerable to
10455DNS forgery. Do not use the <b>hostname</b> strategy for secure-channel
10456configurations in environments where DNS security is not assured. </p>
10457
10458<p> This feature is available in Postfix 2.3 and later. </p>
10459
10460%PARAM smtp_tls_mandatory_protocols !SSLv2
10461
10462<p> List of SSL/TLS protocols that the Postfix SMTP client will use with
10463mandatory TLS encryption.  In main.cf the values are separated by
10464whitespace, commas or colons. In the policy table "protocols" attribute
10465(see smtp_tls_policy_maps) the only valid separator is colon. An
10466empty value means allow all protocols. The valid protocol names, (see
10467<b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" and "TLSv1". </p>
10468
10469<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1"
10470and "TLSv1.2". If an older Postfix version is linked against OpenSSL
104711.0.1 or later, these, or any other new protocol versions, are
10472unconditionally enabled. </p>
10473
10474<p> With Postfix &ge; 2.5 the parameter syntax is expanded to support
10475protocol exclusions. One can now explicitly exclude SSLv2 by setting
10476"smtp_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and
10477SSLv3 set "smtp_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing
10478the protocols to include, rather than protocols to exclude, is
10479supported, but not recommended. The exclusion form more closely
10480matches the behaviour when the OpenSSL library is newer than Postfix.
10481</p>
10482
10483<p> Since SSL version 2 has known protocol weaknesses and is now
10484deprecated, the default setting excludes "SSLv2".  This means that by
10485default, SSL version 2 will not be used at the "encrypt" security level
10486and higher. </p>
10487
10488<p> See the documentation of the smtp_tls_policy_maps parameter and
10489TLS_README for more information about security levels. </p>
10490
10491<p> Example: </p>
10492
10493<pre>
10494# Preferred form with Postfix &ge; 2.5:
10495smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
10496# Alternative form.
10497smtp_tls_mandatory_protocols = TLSv1
10498</pre>
10499
10500<p> This feature is available in Postfix 2.3 and later. </p>
10501
10502%PARAM smtp_tls_verify_cert_match hostname
10503
10504<p> How the Postfix SMTP client verifies the server certificate
10505peername for the
10506"verify" TLS security level. In a "verify" TLS policy table
10507($smtp_tls_policy_maps) entry the optional "match" attribute
10508overrides this main.cf setting. </p>
10509
10510<p> This parameter specifies one or more patterns or strategies separated
10511by commas, whitespace or colons.  In the policy table the only valid
10512separator is the colon character. </p>
10513
10514<p> Patterns specify domain names, or domain name suffixes: </p>
10515
10516<dl>
10517
10518<dt><i>example.com</i></dt> <dd> Match the <i>example.com</i> domain,
10519i.e. one of the names the server certificate must be <i>example.com</i>,
10520upper and lower case distinctions are ignored. </dd>
10521
10522<dt><i>.example.com</i></dt>
10523<dd> Match subdomains of the <i>example.com</i> domain, i.e. match
10524a name in the server certificate that consists of a non-zero number of
10525labels followed by a <i>.example.com</i> suffix. Case distinctions are
10526ignored.</dd>
10527
10528</dl>
10529
10530<p> Strategies specify a transformation from the next-hop domain
10531to the expected name in the server certificate: </p>
10532
10533<dl>
10534
10535<dt>nexthop</dt>
10536<dd> Match against the next-hop domain, which is either the recipient
10537domain, or the transport next-hop configured for the domain stripped of
10538any optional socket type prefix, enclosing square brackets and trailing
10539port. When MX lookups are not suppressed, this is the original nexthop
10540domain prior to the MX lookup, not the result of the MX lookup. For
10541LMTP delivery via UNIX-domain sockets, the verified next-hop name is
10542$myhostname.  This strategy is suitable for use with the "secure"
10543policy. Case is ignored.</dd>
10544
10545<dt>dot-nexthop</dt>
10546<dd> As above, but match server certificate names that are subdomains
10547of the next-hop domain. Case is ignored.</dd>
10548
10549<dt>hostname</dt> <dd> Match against the hostname of the server, often
10550obtained via an unauthenticated DNS MX lookup. For LMTP delivery via
10551UNIX-domain sockets, the verified name is $myhostname. This matches
10552the verification strategy of the "MUST" keyword in the obsolete
10553smtp_tls_per_site table, and is suitable for use with the "verify"
10554security level. When the next-hop name is enclosed in square brackets
10555to suppress MX lookups, the "hostname" strategy is the same as the
10556"nexthop" strategy. Case is ignored.</dd>
10557
10558</dl>
10559
10560<p>
10561Sample main.cf setting:
10562</p>
10563
10564<pre>
10565smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
10566</pre>
10567
10568<p>
10569Sample policy table override:
10570</p>
10571
10572<pre>
10573example.com     verify  match=hostname:nexthop
10574.example.com    verify  match=example.com:.example.com:hostname
10575</pre>
10576
10577<p> This feature is available in Postfix 2.3 and later. </p>
10578
10579%PARAM smtp_tls_secure_cert_match nexthop, dot-nexthop
10580
10581<p> How the Postfix SMTP client verifies the server certificate
10582peername for the
10583"secure" TLS security level. In a "secure" TLS policy table
10584($smtp_tls_policy_maps) entry the optional "match" attribute
10585overrides this main.cf setting. </p>
10586
10587<p> This parameter specifies one or more patterns or strategies separated
10588by commas, whitespace or colons.  In the policy table the only valid
10589separator is the colon character. </p>
10590
10591<p> For a description of the pattern and strategy syntax see the
10592smtp_tls_verify_cert_match parameter. The "hostname" strategy should
10593be avoided in this context, as in the absence of a secure global DNS, using
10594the results of MX lookups in certificate verification is not immune to active
10595(man-in-the-middle) attacks on DNS. </p>
10596
10597<p>
10598Sample main.cf setting:
10599</p>
10600
10601<blockquote>
10602<pre>
10603smtp_tls_secure_cert_match = nexthop
10604</pre>
10605</blockquote>
10606
10607<p>
10608Sample policy table override:
10609</p>
10610
10611<blockquote>
10612<pre>
10613example.net     secure match=example.com:.example.com
10614.example.net    secure match=example.com:.example.com
10615</pre>
10616</blockquote>
10617
10618<p> This feature is available in Postfix 2.3 and later. </p>
10619
10620%PARAM lmtp_tls_policy_maps
10621
10622<p> The LMTP-specific version of the smtp_tls_policy_maps
10623configuration parameter. See there for details. </p>
10624
10625<p> This feature is available in Postfix 2.3 and later. </p>
10626
10627%PARAM lmtp_tls_mandatory_protocols !SSLv2
10628
10629<p> The LMTP-specific version of the smtp_tls_mandatory_protocols
10630configuration parameter. See there for details. </p>
10631
10632<p> This feature is available in Postfix 2.3 and later. </p>
10633
10634%PARAM lmtp_tls_verify_cert_match hostname
10635
10636<p> The LMTP-specific version of the smtp_tls_verify_cert_match
10637configuration parameter. See there for details. </p>
10638
10639<p> This feature is available in Postfix 2.3 and later. </p>
10640
10641%PARAM lmtp_tls_secure_cert_match nexthop
10642
10643<p> The LMTP-specific version of the smtp_tls_secure_cert_match
10644configuration parameter. See there for details. </p>
10645
10646<p> This feature is available in Postfix 2.3 and later. </p>
10647
10648%PARAM smtpd_tls_mandatory_protocols !SSLv2
10649
10650<p> The SSL/TLS protocols accepted by the Postfix SMTP server with
10651mandatory TLS encryption. If the list is empty, the server supports all
10652available SSL/TLS protocol versions.  A non-empty value is a list
10653of protocol
10654names separated by whitespace, commas or colons. The supported protocol
10655names are "SSLv2", "SSLv3" and "TLSv1", and are not case sensitive. </p>
10656
10657<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1"
10658and "TLSv1.2". If an older Postfix version is linked against OpenSSL
106591.0.1 or later, these, or any other new protocol versions, are
10660unconditionally enabled. </p>
10661
10662<p> With Postfix &ge; 2.5 the parameter syntax is expanded to support
10663protocol exclusions. One can now explicitly exclude SSLv2 by setting
10664"smtpd_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and
10665SSLv3 set "smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing
10666the protocols to include, rather than protocols to exclude, is
10667supported, but not recommended. The exclusion form more closely
10668matches the behaviour when the OpenSSL library is newer than Postfix.
10669</p>
10670
10671<p> Since SSL version 2 has known protocol weaknesses and is now
10672deprecated, the default setting excludes "SSLv2".  This means that
10673by default, SSL version 2 will not be used at the "encrypt" security
10674level. </p>
10675
10676<p> Example: </p>
10677
10678<pre>
10679smtpd_tls_mandatory_protocols = TLSv1
10680# Alternative form with Postfix &ge; 2.5:
10681smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
10682</pre>
10683
10684<p> This feature is available in Postfix 2.3 and later. </p>
10685
10686%PARAM smtp_tls_security_level
10687
10688<p> The default SMTP TLS security level for the Postfix SMTP client;
10689when a non-empty value is specified, this overrides the obsolete
10690parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername.
10691</p>
10692
10693<p> Specify one of the following security levels: </p>
10694
10695<dl>
10696
10697<dt><b>none</b></dt> <dd> TLS will not be used unless enabled for specific
10698destinations via smtp_tls_policy_maps. </dd>
10699
10700<dt><b>may</b></dt>
10701<dd> Opportunistic TLS. Use TLS if this is supported by the remote
10702SMTP server, otherwise use plaintext. Since
10703sending in the clear is acceptable, demanding stronger than default TLS
10704security merely reduces inter-operability.
10705The "smtp_tls_ciphers" and "smtp_tls_protocols" (Postfix &ge; 2.6)
10706configuration parameters provide control over the protocols and
10707cipher grade used with opportunistic TLS.  With earlier releases the
10708opportunistic TLS cipher grade is always "export" and no protocols
10709are disabled.
10710When TLS handshakes fail, the connection is retried with TLS disabled.
10711This allows mail delivery to sites with non-interoperable TLS
10712implementations. </dd>
10713
10714<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption. Since a minimum
10715level of security is intended, it is reasonable to be specific about
10716sufficiently secure protocol versions and ciphers. At this security level
10717and higher, the main.cf parameters smtp_tls_mandatory_protocols and
10718smtp_tls_mandatory_ciphers specify the TLS protocols and minimum
10719cipher grade which the administrator considers secure enough for
10720mandatory encrypted sessions. This security level is not an appropriate
10721default for systems delivering mail to the Internet. </dd>
10722
10723<dt><b>fingerprint</b></dt> <dd>Certificate fingerprint
10724verification. Available with Postfix 2.5 and later. At this security
10725level, there are no trusted certificate authorities. The certificate
10726trust chain, expiration date, ... are not checked. Instead, the
10727<b>smtp_tls_fingerprint_cert_match</b> parameter lists the certificate
10728fingerprint or public key fingerprint (Postfix 2.9 and later) of
10729the valid server certificate. The digest
10730algorithm used to calculate the fingerprint is selected by the
10731<b>smtp_tls_fingerprint_digest</b> parameter. </dd>
10732
10733<dt><b>verify</b></dt> <dd>Mandatory TLS verification. At this security
10734level, DNS MX lookups are trusted to be secure enough, and the name
10735verified in the server certificate is usually obtained indirectly
10736via unauthenticated DNS MX lookups. The smtp_tls_verify_cert_match
10737parameter controls how the server name is verified. In practice explicit
10738control over matching is more common at the "secure" level, described
10739below. This security level is not an appropriate default for systems
10740delivering mail to the Internet. </dd>
10741
10742<dt><b>secure</b></dt> <dd>Secure-channel TLS.  At this security level,
10743DNS MX lookups, though potentially used to determine the candidate
10744next-hop gateway IP addresses, are <b>not</b> trusted to be secure enough
10745for TLS peername verification. Instead, the default name verified in
10746the server certificate is obtained from the next-hop domain as specified
10747in the smtp_tls_secure_cert_match configuration parameter. The default
10748matching rule is that a server certificate matches when its name is equal
10749to or is a sub-domain of the nexthop domain. This security level is not
10750an appropriate default for systems delivering mail to the Internet. </dd>
10751
10752</dl>
10753
10754<p>
10755Examples:
10756</p>
10757
10758<pre>
10759# No TLS. Formerly: smtp_use_tls=no and smtp_enforce_tls=no.
10760smtp_tls_security_level = none
10761</pre>
10762
10763<pre>
10764# Opportunistic TLS.
10765smtp_tls_security_level = may
10766# Postfix &ge; 2.6:
10767# Do not tweak opportunistic ciphers or protocol unless it is essential
10768# to do so (if a security vulnerability is found in the SSL library that
10769# can be mitigated by disabling a particular protocol or raising the
10770# cipher grade from "export" to "low" or "medium").
10771smtp_tls_ciphers = export
10772smtp_tls_protocols = !SSLv2
10773</pre>
10774
10775<pre>
10776# Mandatory (high-grade) TLS encryption.
10777smtp_tls_security_level = encrypt
10778smtp_tls_mandatory_ciphers = high
10779</pre>
10780
10781<pre>
10782# Mandatory TLS verification of hostname or nexthop domain.
10783smtp_tls_security_level = verify
10784smtp_tls_mandatory_ciphers = high
10785smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
10786</pre>
10787
10788<pre>
10789# Secure channel TLS with exact nexthop name match.
10790smtp_tls_security_level = secure
10791smtp_tls_mandatory_protocols = TLSv1
10792smtp_tls_mandatory_ciphers = high
10793smtp_tls_secure_cert_match = nexthop
10794</pre>
10795
10796<pre>
10797# Certificate fingerprint verification (Postfix &ge; 2.5).
10798# The CA-less "fingerprint" security level only scales to a limited
10799# number of destinations. As a global default rather than a per-site
10800# setting, this is practical when mail for all recipients is sent
10801# to a central mail hub.
10802relayhost = [mailhub.example.com]
10803smtp_tls_security_level = fingerprint
10804smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
10805smtp_tls_mandatory_ciphers = high
10806smtp_tls_fingerprint_cert_match =
10807    3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
10808    EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
10809</pre>
10810
10811<p> This feature is available in Postfix 2.3 and later. </p>
10812
10813%PARAM smtpd_milters
10814
10815<p> A list of Milter (mail filter) applications for new mail that
10816arrives via the Postfix smtpd(8) server. Specify space or comma as
10817separator. See the MILTER_README document for details.  </p>
10818
10819<p> This feature is available in Postfix 2.3 and later. </p>
10820
10821%PARAM non_smtpd_milters
10822
10823<p> A list of Milter (mail filter) applications for new mail that
10824does not arrive via the Postfix smtpd(8) server. This includes local
10825submission via the sendmail(1) command line, new mail that arrives
10826via the Postfix qmqpd(8) server, and old mail that is re-injected
10827into the queue with "postsuper -r".  Specify space or comma as
10828separator. See the MILTER_README document for details.  </p>
10829
10830<p> This feature is available in Postfix 2.3 and later. </p>
10831
10832%PARAM milter_protocol 6
10833
10834<p> The mail filter protocol version and optional protocol extensions
10835for communication with a Milter application; prior to Postfix 2.6
10836the default protocol is 2. Postfix
10837sends this version number during the initial protocol handshake.
10838It should match the version number that is expected by the mail
10839filter application (or by its Milter library).  </p>
10840
10841<p>Protocol versions: </p>
10842
10843<dl compact>
10844
10845<dt>2</dt> <dd>Use Sendmail 8 mail filter protocol version 2 (default
10846with Sendmail version 8.11 .. 8.13 and Postfix version 2.3 ..
108472.5).</dd>
10848
10849<dt>3</dt> <dd>Use Sendmail 8 mail filter protocol version 3.</dd>
10850
10851<dt>4</dt> <dd>Use Sendmail 8 mail filter protocol version 4.</dd>
10852
10853<dt>6</dt> <dd>Use Sendmail 8 mail filter protocol version 6 (default
10854with Sendmail version 8.14 and Postfix version 2.6).</dd>
10855
10856</dl>
10857
10858<p>Protocol extensions: </p>
10859
10860<dl compact>
10861
10862<dt>no_header_reply</dt> <dd> Specify this when the Milter application
10863will not reply for each individual message header.</dd>
10864
10865</dl>
10866
10867<p> This feature is available in Postfix 2.3 and later. </p>
10868
10869%PARAM milter_default_action tempfail
10870
10871<p> The default action when a Milter (mail filter) application is
10872unavailable or mis-configured. Specify one of the following: </p>
10873
10874<dl compact>
10875
10876<dt>accept</dt> <dd>Proceed as if the mail filter was not present.
10877</dd>
10878
10879<dt>reject</dt> <dd>Reject all further commands in this session
10880with a permanent status code.</dd>
10881
10882<dt>tempfail</dt> <dd>Reject all further commands in this session
10883with a temporary status code. </dd>
10884
10885<dt>quarantine</dt> <dd>Like "accept", but freeze the message in
10886the "hold" queue. Available with Postfix 2.6 and later. </dd>
10887
10888</dl>
10889
10890<p> This feature is available in Postfix 2.3 and later. </p>
10891
10892%PARAM milter_connect_timeout 30s
10893
10894<p> The time limit for connecting to a Milter (mail filter)
10895application, and for negotiating protocol options. </p>
10896
10897<p> Specify a non-zero time value (an integral value plus an optional
10898one-letter suffix that specifies the time unit). </p>
10899
10900<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
10901(weeks). The default time unit is s (seconds). </p>
10902
10903<p> This feature is available in Postfix 2.3 and later. </p>
10904
10905%PARAM milter_command_timeout 30s
10906
10907<p> The time limit for sending an SMTP command to a Milter (mail
10908filter) application, and for receiving the response.  </p>
10909
10910<p> Specify a non-zero time value (an integral value plus an optional
10911one-letter suffix that specifies the time unit). </p>
10912
10913<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
10914(weeks). The default time unit is s (seconds). </p>
10915
10916<p> This feature is available in Postfix 2.3 and later. </p>
10917
10918%PARAM milter_content_timeout 300s
10919
10920<p> The time limit for sending message content to a Milter (mail
10921filter) application, and for receiving the response.  </p>
10922
10923<p> Specify a non-zero time value (an integral value plus an optional
10924one-letter suffix that specifies the time unit). </p>
10925
10926<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
10927(weeks). The default time unit is s (seconds). </p>
10928
10929<p> This feature is available in Postfix 2.3 and later. </p>
10930
10931%PARAM milter_connect_macros see "postconf -d" output
10932
10933<p> The macros that are sent to Milter (mail filter) applications
10934after completion of an SMTP connection. See MILTER_README
10935for a list of available macro names and their meanings. </p>
10936
10937<p> This feature is available in Postfix 2.3 and later. </p>
10938
10939%PARAM milter_helo_macros see "postconf -d" output
10940
10941<p> The macros that are sent to Milter (mail filter) applications
10942after the SMTP HELO or EHLO command. See
10943MILTER_README for a list of available macro names and their meanings.
10944</p>
10945
10946<p> This feature is available in Postfix 2.3 and later. </p>
10947
10948%PARAM milter_mail_macros see "postconf -d" output
10949
10950<p> The macros that are sent to Milter (mail filter) applications
10951after the SMTP MAIL FROM command. See MILTER_README
10952for a list of available macro names and their meanings. </p>
10953
10954<p> This feature is available in Postfix 2.3 and later. </p>
10955
10956%PARAM milter_rcpt_macros see "postconf -d" output
10957
10958<p> The macros that are sent to Milter (mail filter) applications
10959after the SMTP RCPT TO command. See MILTER_README
10960for a list of available macro names and their meanings. </p>
10961
10962<p> This feature is available in Postfix 2.3 and later. </p>
10963
10964%PARAM milter_data_macros see "postconf -d" output
10965
10966<p> The macros that are sent to version 4 or higher Milter (mail
10967filter) applications after the SMTP DATA command. See MILTER_README
10968for a list of available macro names and their meanings.  </p>
10969
10970<p> This feature is available in Postfix 2.3 and later. </p>
10971
10972%PARAM milter_end_of_header_macros see "postconf -d" output
10973
10974<p> The macros that are sent to Milter (mail filter) applications
10975after the end of the message header. See MILTER_README for a list
10976of available macro names and their meanings.  </p>
10977
10978<p> This feature is available in Postfix 2.5 and later. </p>
10979
10980%PARAM milter_end_of_data_macros see "postconf -d" output
10981
10982<p> The macros that are sent to Milter (mail filter) applications
10983after the message end-of-data. See MILTER_README for a list of
10984available macro names and their meanings.  </p>
10985
10986<p> This feature is available in Postfix 2.3 and later. </p>
10987
10988%PARAM milter_unknown_command_macros see "postconf -d" output
10989
10990<p> The macros that are sent to version 3 or higher Milter (mail
10991filter) applications after an unknown SMTP command.  See MILTER_README
10992for a list of available macro names and their meanings.  </p>
10993
10994<p> This feature is available in Postfix 2.3 and later. </p>
10995
10996%PARAM milter_macro_daemon_name $myhostname
10997
10998<p> The {daemon_name} macro value for Milter (mail filter) applications.
10999See MILTER_README for a list of available macro names and their
11000meanings.  </p>
11001
11002<p> This feature is available in Postfix 2.3 and later. </p>
11003
11004%PARAM milter_macro_v $mail_name $mail_version
11005
11006<p> The {v} macro value for Milter (mail filter) applications.
11007See MILTER_README for a list of available macro names and their
11008meanings.  </p>
11009
11010<p> This feature is available in Postfix 2.3 and later. </p>
11011
11012%PARAM smtpd_tls_mandatory_ciphers medium
11013
11014<p> The minimum TLS cipher grade that the Postfix SMTP server will
11015use with mandatory TLS encryption. The default grade ("medium") is
11016sufficiently strong that any benefit from globally restricting TLS
11017sessions to a more stringent grade is likely negligible, especially
11018given the fact that many implementations still do not offer any stronger
11019("high" grade) ciphers, while those that do, will always use "high"
11020grade ciphers. So insisting on "high" grade ciphers is generally
11021counter-productive. Allowing "export" or "low" ciphers is typically
11022not a good idea, as systems limited to just these are limited to
11023obsolete browsers. No known SMTP clients fail to support at least
11024one "medium" or "high" grade cipher. </p>
11025
11026<p> The following cipher grades are supported: </p>
11027
11028<dl>
11029<dt><b>export</b></dt>
11030<dd> Enable "EXPORT" grade or stronger OpenSSL ciphers.
11031This is the most appropriate setting for public MX hosts, and is always
11032used with opportunistic TLS encryption. The underlying cipherlist
11033is specified via the tls_export_cipherlist configuration parameter,
11034which you are strongly encouraged to not change. </dd>
11035
11036<dt><b>low</b></dt>
11037<dd> Enable "LOW" grade or stronger OpenSSL ciphers. The
11038underlying cipherlist is specified via the tls_low_cipherlist
11039configuration parameter, which you are strongly encouraged to
11040not change. </dd>
11041
11042<dt><b>medium</b></dt>
11043<dd> Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use 128-bit
11044or longer symmetric bulk-encryption keys. This is the default minimum
11045strength for mandatory TLS encryption. The underlying cipherlist is
11046specified via the tls_medium_cipherlist configuration parameter, which
11047you are strongly encouraged to not change. </dd>
11048
11049<dt><b>high</b></dt>
11050<dd> Enable only "HIGH" grade OpenSSL ciphers. The
11051underlying cipherlist is specified via the tls_high_cipherlist
11052configuration parameter, which you are strongly encouraged to
11053not change. </dd>
11054
11055<dt><b>null</b></dt>
11056<dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication
11057without encryption.  This setting is only appropriate in the rare
11058case that all clients are prepared to use NULL ciphers (not normally
11059enabled in TLS clients). The underlying cipherlist is specified via the
11060tls_null_cipherlist configuration parameter, which you are strongly
11061encouraged to not change. </dd>
11062
11063</dl>
11064
11065<p> Cipher types listed in
11066smtpd_tls_mandatory_exclude_ciphers or smtpd_tls_exclude_ciphers are
11067excluded from the base definition of the selected cipher grade. See
11068smtpd_tls_ciphers for cipher controls that apply to opportunistic
11069TLS. </p>
11070
11071<p> The underlying cipherlists for grades other than "null" include
11072anonymous ciphers, but these are automatically filtered out if the
11073server is configured to ask for remote SMTP client certificates.  You are very
11074unlikely to need to take any steps to exclude anonymous ciphers, they
11075are excluded automatically as required.  If you must exclude anonymous
11076ciphers even when Postfix does not need or use peer certificates, set
11077"smtpd_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers only
11078when TLS is enforced, set "smtpd_tls_mandatory_exclude_ciphers = aNULL". </p>
11079
11080<p> This feature is available in Postfix 2.3 and later. </p>
11081
11082%PARAM smtpd_tls_exclude_ciphers
11083
11084<p> List of ciphers or cipher types to exclude from the SMTP server
11085cipher list at all TLS security levels. Excluding valid ciphers
11086can create interoperability problems. DO NOT exclude ciphers unless it
11087is essential to do so. This is not an OpenSSL cipherlist; it is a simple
11088list separated by whitespace and/or commas. The elements are a single
11089cipher, or one or more "+" separated cipher properties, in which case
11090only ciphers matching <b>all</b> the properties are excluded. </p>
11091
11092<p> Examples (some of these will cause problems): </p>
11093
11094<blockquote>
11095<pre>
11096smtpd_tls_exclude_ciphers = aNULL
11097smtpd_tls_exclude_ciphers = MD5, DES
11098smtpd_tls_exclude_ciphers = DES+MD5
11099smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
11100smtpd_tls_exclude_ciphers = kEDH+aRSA
11101</pre>
11102</blockquote>
11103
11104<p> The first setting disables anonymous ciphers. The next setting
11105disables ciphers that use the MD5 digest algorithm or the (single) DES
11106encryption algorithm. The next setting disables ciphers that use MD5 and
11107DES together.  The next setting disables the two ciphers "AES256-SHA"
11108and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
11109key exchange with RSA authentication. </p>
11110
11111<p> This feature is available in Postfix 2.3 and later. </p>
11112
11113%PARAM smtpd_tls_mandatory_exclude_ciphers
11114
11115<p> Additional list of ciphers or cipher types to exclude from the
11116Postfix SMTP server cipher list at mandatory TLS security levels.
11117This list
11118works in addition to the exclusions listed with smtpd_tls_exclude_ciphers
11119(see there for syntax details).  </p>
11120
11121<p> This feature is available in Postfix 2.3 and later. </p>
11122
11123%PARAM smtp_tls_mandatory_ciphers medium
11124
11125<p> The minimum TLS cipher grade that the Postfix SMTP client will
11126use with
11127mandatory TLS encryption.  The default value "medium" is suitable
11128for most destinations with which you may want to enforce TLS, and
11129is beyond the reach of today's cryptanalytic methods. See
11130smtp_tls_policy_maps for information on how to configure ciphers
11131on a per-destination basis. </p>
11132
11133<p> The following cipher grades are supported: </p>
11134
11135<dl>
11136<dt><b>export</b></dt>
11137<dd> Enable "EXPORT" grade or better OpenSSL
11138ciphers.  This is the default for opportunistic encryption. It is
11139not recommended for mandatory encryption unless you must enforce TLS
11140with "crippled" peers. The underlying cipherlist is specified via the
11141tls_export_cipherlist configuration parameter, which you are strongly
11142encouraged to not change. </dd>
11143
11144<dt><b>low</b></dt>
11145<dd> Enable "LOW" grade or better OpenSSL ciphers.  This
11146setting is only appropriate for internal mail servers.  The underlying
11147cipherlist is specified via the tls_low_cipherlist configuration
11148parameter, which you are strongly encouraged to not change. </dd>
11149
11150<dt><b>medium</b></dt>
11151<dd> Enable "MEDIUM" grade or better OpenSSL ciphers.
11152The underlying cipherlist is specified via the tls_medium_cipherlist
11153configuration parameter, which you are strongly encouraged to not change.
11154</dd>
11155
11156<dt><b>high</b></dt>
11157<dd> Enable only "HIGH" grade OpenSSL ciphers.  This setting may
11158be appropriate when all mandatory TLS destinations (e.g. when all
11159mail is routed to a suitably capable relayhost) support at least one
11160"HIGH" grade cipher. The underlying cipherlist is specified via the
11161tls_high_cipherlist configuration parameter, which you are strongly
11162encouraged to not change. </dd>
11163
11164<dt><b>null</b></dt>
11165<dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication
11166without encryption.  This setting is only appropriate in the rare case
11167that all servers are prepared to use NULL ciphers (not normally enabled
11168in TLS servers). A plausible use-case is an LMTP server listening on a
11169UNIX-domain socket that is configured to support "NULL" ciphers. The
11170underlying cipherlist is specified via the tls_null_cipherlist
11171configuration parameter, which you are strongly encouraged to not
11172change. </dd>
11173
11174</dl>
11175
11176<p> The underlying cipherlists for grades other than "null" include
11177anonymous ciphers, but these are automatically filtered out if the
11178Postfix SMTP client is configured to verify server certificates.
11179You are very unlikely to need to take any steps to exclude anonymous
11180ciphers, they are excluded automatically as necessary.  If you must
11181exclude anonymous ciphers at the "may" or "encrypt" security levels,
11182when the Postfix SMTP client does not need or use peer certificates, set
11183"smtp_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers only when
11184TLS is enforced, set "smtp_tls_mandatory_exclude_ciphers = aNULL". </p>
11185
11186<p> This feature is available in Postfix 2.3 and later. </p>
11187
11188%PARAM smtp_tls_exclude_ciphers
11189
11190<p> List of ciphers or cipher types to exclude from the Postfix
11191SMTP client cipher
11192list at all TLS security levels. This is not an OpenSSL cipherlist, it is
11193a simple list separated by whitespace and/or commas. The elements are a
11194single cipher, or one or more "+" separated cipher properties, in which
11195case only ciphers matching <b>all</b> the properties are excluded. </p>
11196
11197<p> Examples (some of these will cause problems): </p>
11198
11199<blockquote>
11200<pre>
11201smtp_tls_exclude_ciphers = aNULL
11202smtp_tls_exclude_ciphers = MD5, DES
11203smtp_tls_exclude_ciphers = DES+MD5
11204smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
11205smtp_tls_exclude_ciphers = kEDH+aRSA
11206</pre>
11207</blockquote>
11208
11209<p> The first setting, disables anonymous ciphers. The next setting
11210disables ciphers that use the MD5 digest algorithm or the (single) DES
11211encryption algorithm. The next setting disables ciphers that use MD5 and
11212DES together.  The next setting disables the two ciphers "AES256-SHA"
11213and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
11214key exchange with RSA authentication. </p>
11215
11216<p> This feature is available in Postfix 2.3 and later. </p>
11217
11218%PARAM smtp_tls_mandatory_exclude_ciphers
11219
11220<p> Additional list of ciphers or cipher types to exclude from the
11221Postfix SMTP client cipher list at mandatory TLS security levels. This list
11222works in addition to the exclusions listed with smtp_tls_exclude_ciphers
11223(see there for syntax details).  </p>
11224
11225<p> Starting with Postfix 2.6, the mandatory cipher exclusions can be
11226specified on a per-destination basis via the TLS policy "exclude"
11227attribute. See smtp_tls_policy_maps for notes and examples. </p>
11228
11229<p> This feature is available in Postfix 2.3 and later. </p>
11230
11231%PARAM tls_high_cipherlist ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH
11232
11233<p> The OpenSSL cipherlist for "HIGH" grade ciphers. This defines
11234the meaning of the "high" setting in smtpd_tls_mandatory_ciphers,
11235smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are
11236strongly encouraged to not change this setting. With OpenSSL 1.0.0 and
11237later the cipherlist may start with an "aNULL:" prefix, which restores
11238the 0.9.8-compatible ordering of the aNULL ciphers to the top of the
11239list when they are enabled. This prefix is not needed with previous
11240OpenSSL releases. </p>
11241
11242<p> This feature is available in Postfix 2.3 and later. </p>
11243
11244%PARAM tls_medium_cipherlist ALL:!EXPORT:!LOW:+RC4:@STRENGTH
11245
11246<p> The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This
11247defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers,
11248smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is
11249the default cipherlist for mandatory TLS encryption in the TLS
11250client (with anonymous ciphers disabled when verifying server
11251certificates). You are strongly encouraged to not change this
11252setting.  With OpenSSL 1.0.0 and later the cipherlist may start with an
11253"aNULL:" prefix, which restores the 0.9.8-compatible ordering of the
11254aNULL ciphers to the top of the list when they are enabled. This prefix
11255is not needed with previous OpenSSL releases. </p>
11256
11257<p> This feature is available in Postfix 2.3 and later. </p>
11258
11259%PARAM tls_low_cipherlist ALL:!EXPORT:+RC4:@STRENGTH
11260
11261<p> The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines
11262the meaning of the "low" setting in smtpd_tls_mandatory_ciphers,
11263smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are
11264strongly encouraged to not change this setting.  With OpenSSL 1.0.0 and
11265later the cipherlist may start with an "aNULL:" prefix, which restores
11266the 0.9.8-compatible ordering of the aNULL ciphers to the top of the
11267list when they are enabled. This prefix is not needed with previous
11268OpenSSL releases. </p>
11269
11270<p> This feature is available in Postfix 2.3 and later. </p>
11271
11272%PARAM tls_export_cipherlist ALL:+RC4:@STRENGTH
11273
11274<p> The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This
11275defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers,
11276smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is
11277the cipherlist for the opportunistic ("may") TLS client security
11278level and is the default cipherlist for the SMTP server. You are
11279strongly encouraged to not change this setting. With OpenSSL 1.0.0 and
11280later the cipherlist may start with an "aNULL:" prefix, which restores
11281the 0.9.8-compatible ordering of the aNULL ciphers to the top of the
11282list when they are enabled. This prefix is not needed with previous
11283OpenSSL releases. </p>
11284
11285<p> This feature is available in Postfix 2.3 and later. </p>
11286
11287%PARAM tls_null_cipherlist eNULL:!aNULL
11288
11289<p> The OpenSSL cipherlist for "NULL" grade ciphers that provide
11290authentication without encryption. This defines the meaning of the "null"
11291setting in smtpd_mandatory_tls_ciphers, smtp_tls_mandatory_ciphers and
11292lmtp_tls_mandatory_ciphers.  You are strongly encouraged to not
11293change this setting. </p>
11294
11295<p> This feature is available in Postfix 2.3 and later. </p>
11296
11297%PARAM lmtp_tls_mandatory_ciphers
11298
11299<p> The LMTP-specific version of the smtp_tls_mandatory_ciphers
11300configuration parameter.  See there for details. </p>
11301
11302<p> This feature is available in Postfix 2.3 and later. </p>
11303
11304%PARAM lmtp_tls_exclude_ciphers
11305
11306<p> The LMTP-specific version of the smtp_tls_exclude_ciphers
11307configuration parameter.  See there for details. </p>
11308
11309<p> This feature is available in Postfix 2.3 and later. </p>
11310
11311%PARAM lmtp_tls_mandatory_exclude_ciphers
11312
11313<p> The LMTP-specific version of the smtp_tls_mandatory_exclude_ciphers
11314configuration parameter.  See there for details. </p>
11315
11316<p> This feature is available in Postfix 2.3 and later. </p>
11317
11318%PARAM smtpd_tls_security_level
11319
11320<p> The SMTP TLS security level for the Postfix SMTP server; when
11321a non-empty value is specified, this overrides the obsolete parameters
11322smtpd_use_tls and smtpd_enforce_tls. This parameter is ignored with
11323"smtpd_tls_wrappermode = yes".  </p>
11324
11325<p> Specify one of the following security levels: </p>
11326
11327<dl>
11328
11329<dt><b>none</b></dt> <dd> TLS will not be used. </dd>
11330
11331<dt><b>may</b></dt> <dd> Opportunistic TLS: announce STARTTLS support
11332to remote SMTP clients, but do not require that clients use TLS encryption.
11333</dd>
11334
11335<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption: announce
11336STARTTLS support to remote SMTP clients, and require that clients use TLS
11337encryption. According to RFC 2487 this MUST NOT be applied in case
11338of a publicly-referenced SMTP server. Instead, this option should
11339be used only on dedicated servers. </dd>
11340
11341</dl>
11342
11343<p> Note 1: the "fingerprint", "verify" and "secure" levels are not
11344supported here.
11345The Postfix SMTP server logs a warning and uses "encrypt" instead.
11346To verify remote SMTP client certificates, see TLS_README for a discussion
11347of the smtpd_tls_ask_ccert, smtpd_tls_req_ccert, and permit_tls_clientcerts
11348features.  </p>
11349
11350<p> Note 2: The parameter setting "smtpd_tls_security_level =
11351encrypt" implies "smtpd_tls_auth_only = yes".</p>
11352
11353<p> Note 3: when invoked via "sendmail -bs", Postfix will never
11354offer STARTTLS due to insufficient privileges to access the server
11355private key. This is intended behavior.</p>
11356
11357<p> This feature is available in Postfix 2.3 and later. </p>
11358
11359%PARAM internal_mail_filter_classes
11360
11361<p> What categories of Postfix-generated mail are subject to
11362before-queue content inspection by non_smtpd_milters, header_checks
11363and body_checks.  Specify zero or more of the following, separated
11364by whitespace or comma.  </p>
11365
11366<dl>
11367
11368<dt><b>bounce</b></dt> <dd> Inspect the content of delivery
11369status notifications. </dd>
11370
11371<dt><b>notify</b></dt> <dd> Inspect the content of postmaster
11372notifications by the smtp(8) and smtpd(8) processes. </dd>
11373
11374</dl>
11375
11376<p> NOTE: It's generally not safe to enable content inspection of
11377Postfix-generated email messages. The user is warned. </p>
11378
11379<p> This feature is available in Postfix 2.3 and later. </p>
11380
11381%PARAM smtpd_tls_always_issue_session_ids yes
11382
11383<p> Force the Postfix SMTP server to issue a TLS session id, even
11384when TLS session caching is turned off (smtpd_tls_session_cache_database
11385is empty). This behavior is compatible with Postfix &lt; 2.3. </p>
11386
11387<p> With Postfix 2.3 and later the Postfix SMTP server can disable
11388session id generation when TLS session caching is turned off. This
11389keeps remote SMTP clients from caching sessions that almost certainly cannot
11390be re-used.  </p>
11391
11392<p> By default, the Postfix SMTP server always generates TLS session
11393ids. This works around a known defect in mail client applications
11394such as MS Outlook, and may also prevent interoperability issues
11395with other MTAs. </p>
11396
11397<p> Example: </p>
11398
11399<pre>
11400smtpd_tls_always_issue_session_ids = no
11401</pre>
11402
11403<p> This feature is available in Postfix 2.3 and later. </p>
11404
11405%PARAM smtp_pix_workarounds disable_esmtp, delay_dotcrlf
11406
11407<p> A list that specifies zero or more workarounds for CISCO PIX
11408firewall bugs. These workarounds are implemented by the Postfix
11409SMTP client. Workaround names are separated by comma or space, and
11410are case insensitive.  This parameter setting can be overruled with
11411per-destination smtp_pix_workaround_maps settings. </p>
11412
11413<dl>
11414
11415<dt><b>delay_dotcrlf</b><dd> Insert a delay before sending
11416".&lt;CR&gt;&lt;LF&gt;" after the end of the message content.  The
11417delay is subject to the smtp_pix_workaround_delay_time and
11418smtp_pix_workaround_threshold_time parameter settings. </dd>
11419
11420<dt><b>disable_esmtp</b><dd> Disable all extended SMTP commands:
11421send HELO instead of EHLO. </dd>
11422
11423</dl>
11424
11425<p> This feature is available in Postfix 2.4 and later. The default
11426settings are backwards compatible with earlier Postfix versions.
11427</p>
11428
11429%PARAM smtp_pix_workaround_maps
11430
11431<p> Lookup tables, indexed by the remote SMTP server address, with
11432per-destination workarounds for CISCO PIX firewall bugs.  The table
11433is not indexed by hostname for consistency with
11434smtp_discard_ehlo_keyword_address_maps. </p>
11435
11436<p> This feature is available in Postfix 2.4 and later. </p>
11437
11438%PARAM lmtp_pix_workarounds
11439
11440<p> The LMTP-specific version of the smtp_pix_workaround
11441configuration parameter.  See there for details. </p>
11442
11443<p> This feature is available in Postfix 2.4 and later. </p>
11444
11445%PARAM smtp_tls_fingerprint_digest md5
11446
11447<p> The message digest algorithm used to construct remote SMTP server
11448certificate fingerprints. At the "fingerprint" TLS security level
11449(<b>smtp_tls_security_level</b> = fingerprint), the server certificate is
11450verified by directly matching its certificate fingerprint or its public
11451key fingerprint (Postfix 2.9 and later). The fingerprint is the
11452message digest of the server certificate (or its public key)
11453using the selected
11454algorithm. With a digest algorithm resistant to "second pre-image"
11455attacks, it is not feasible to create a new public key and a matching
11456certificate (or public/private key-pair) that has the same fingerprint. </p>
11457
11458<p> The default algorithm is <b>md5</b>; this is consistent with
11459the backwards compatible setting of the digest used to verify client
11460certificates in the SMTP server. </p>
11461
11462<p> The best practice algorithm is now <b>sha1</b>. Recent advances in hash
11463function cryptanalysis have led to md5 being deprecated in favor of sha1.
11464However, as long as there are no known "second pre-image" attacks
11465against md5, its use in this context can still be considered safe.
11466</p>
11467
11468<p> While additional digest algorithms are often available with OpenSSL's
11469libcrypto, only those used by libssl in SSL cipher suites are available to
11470Postfix. For now this means just md5 or sha1. </p>
11471
11472<p> To find the fingerprint of a specific certificate file, with a
11473specific digest algorithm, run:
11474</p>
11475
11476<blockquote>
11477<pre>
11478$ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem
11479</pre>
11480</blockquote>
11481
11482<p> The text to the right of "=" sign is the desired fingerprint.
11483For example: </p>
11484
11485<blockquote>
11486<pre>
11487$ openssl x509 -noout -fingerprint -sha1 -in cert.pem
11488SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
11489</pre>
11490</blockquote>
11491
11492<p> Public key fingerprints are more difficult to extract, however,
11493the SHA-1 public key fingerprint is often present as the value of the
11494"Subject Key Identifier" extension in X.509v3 certificates. The Postfix
11495SMTP server and client log the peer certificate fingerprint and public
11496key fingerprint when TLS loglevel is 1 or higher. </p>
11497
11498<p> This feature is available in Postfix 2.5 and later. </p>
11499
11500%PARAM smtp_tls_fingerprint_cert_match
11501
11502<p> List of acceptable remote SMTP server certificate fingerprints for
11503the "fingerprint" TLS security level (<b>smtp_tls_security_level</b> =
11504fingerprint). At this security level, certificate authorities are not
11505used, and certificate expiration times are ignored. Instead, server
11506certificates are verified directly via their certificate fingerprint
11507or public key fingerprint (Postfix 2.9 and later). The fingerprint
11508is a message digest of the server certificate (or public key). The
11509digest algorithm is selected via the <b>smtp_tls_fingerprint_digest</b>
11510parameter. </p>
11511
11512<p> When an <b>smtp_tls_policy_maps</b> table entry specifies the
11513"fingerprint" security level, any "match" attributes in that entry specify
11514the list of valid fingerprints for the corresponding destination. Multiple
11515fingerprints can be combined with a "|" delimiter in a single match
11516attribute, or multiple match attributes can be employed. </p>
11517
11518<p> Example: Certificate fingerprint verification with internal mailhub.
11519Two matching fingerprints are listed. The relayhost may be multiple
11520physical hosts behind a load-balancer, each with its own private/public
11521key and self-signed certificate. Alternatively, a single relayhost may
11522be in the process of switching from one set of private/public keys to
11523another, and both keys are trusted just prior to the transition. </p>
11524
11525<blockquote>
11526<pre>
11527relayhost = [mailhub.example.com]
11528smtp_tls_security_level = fingerprint
11529smtp_tls_fingerprint_digest = md5
11530smtp_tls_fingerprint_cert_match =
11531    3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
11532    EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
11533</pre>
11534</blockquote>
11535
11536<p> Example: Certificate fingerprint verification with selected destinations.
11537As in the example above, we show two matching fingerprints: </p>
11538
11539<blockquote>
11540<pre>
11541/etc/postfix/main.cf:
11542    smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
11543    smtp_tls_fingerprint_digest = md5
11544</pre>
11545</blockquote>
11546
11547<blockquote>
11548<pre>
11549/etc/postfix/tls_policy:
11550    example.com	fingerprint
11551        match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
11552        match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
11553</pre>
11554</blockquote>
11555
11556<p> This feature is available in Postfix 2.5 and later. </p>
11557
11558%PARAM lmtp_tls_fingerprint_cert_match
11559
11560<p> The LMTP-specific version of the smtp_tls_fingerprint_cert_match
11561configuration parameter.  See there for details. </p>
11562
11563<p> This feature is available in Postfix 2.5 and later. </p>
11564
11565%PARAM lmtp_tls_fingerprint_digest md5
11566
11567<p> The LMTP-specific version of the smtp_tls_fingerprint_digest
11568configuration parameter.  See there for details. </p>
11569
11570<p> This feature is available in Postfix 2.5 and later. </p>
11571
11572%PARAM smtpd_tls_fingerprint_digest md5
11573
11574<p> The message digest algorithm to construct remote SMTP
11575client-certificate
11576fingerprints or public key fingerprints (Postfix 2.9 and later)
11577for <b>check_ccert_access</b> and <b>permit_tls_clientcerts</b>. The
11578default algorithm is <b>md5</b>, for backwards compatibility with Postfix
11579releases prior to 2.5.  </p>
11580
11581<p> Advances in hash
11582function cryptanalysis have led to md5 being deprecated in favor of sha1.
11583However, as long as there are no known "second pre-image" attacks
11584against md5, its use in this context can still be considered safe.
11585</p>
11586
11587<p> While additional digest algorithms are often available with OpenSSL's
11588libcrypto, only those used by libssl in SSL cipher suites are available to
11589Postfix. </p>
11590
11591<p> To find the fingerprint of a specific certificate file, with a
11592specific digest algorithm, run: </p>
11593
11594<blockquote>
11595<pre>
11596$ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem
11597</pre>
11598</blockquote>
11599
11600<p> The text to the right of "=" sign is the desired fingerprint.
11601For example: </p>
11602
11603<blockquote>
11604<pre>
11605$ openssl x509 -noout -fingerprint -sha1 -in cert.pem
11606SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
11607</pre>
11608</blockquote>
11609
11610<p> Public key fingerprints are more difficult to extract, however,
11611the SHA-1 public key fingerprint is often present as the value of the
11612"Subject Key Identifier" extension in X.509v3 certificates. The Postfix
11613SMTP server and client log the peer certificate fingerprint and public
11614key fingerprint when TLS loglevel is 1 or higher. </p>
11615
11616<p> Example: client-certificate access table, with sha1 fingerprints: </p>
11617
11618<blockquote>
11619<pre>
11620/etc/postfix/main.cf:
11621    smtpd_tls_fingerprint_digest = sha1
11622    smtpd_client_restrictions =
11623        check_ccert_access hash:/etc/postfix/access,
11624        reject
11625</pre>
11626<pre>
11627/etc/postfix/access:
11628    # Action folded to next line...
11629    AF:88:7C:AD:51:95:6F:36:96:F6:01:FB:2E:48:CD:AB:49:25:A2:3B
11630        OK
11631    85:16:78:FD:73:6E:CE:70:E0:31:5F:0D:3C:C8:6D:C4:2C:24:59:E1
11632        permit_auth_destination
11633</pre>
11634</blockquote>
11635
11636<p> This feature is available in Postfix 2.5 and later. </p>
11637
11638%PARAM lmtp_pix_workaround_maps
11639
11640<p> The LMTP-specific version of the smtp_pix_workaround_maps
11641configuration parameter.  See there for details. </p>
11642
11643<p> This feature is available in Postfix 2.4 and later. </p>
11644
11645%PARAM detect_8bit_encoding_header yes
11646
11647<p> Automatically detect 8BITMIME body content by looking at
11648Content-Transfer-Encoding: message headers; historically, this
11649behavior was hard-coded to be "always on".  </p>
11650
11651<p> This feature is available in Postfix 2.5 and later. </p>
11652
11653%PARAM send_cyrus_sasl_authzid no
11654
11655<p> When authenticating to a remote SMTP or LMTP server with the
11656default setting "no", send no SASL authoriZation ID (authzid); send
11657only the SASL authentiCation ID (authcid) plus the authcid's password.
11658</p>
11659
11660<p> The non-default setting "yes" enables the behavior of older
11661Postfix versions.  These always send a SASL authzid that is equal
11662to the SASL authcid, but this causes inter-operability problems
11663with some SMTP servers. </p>
11664
11665<p> This feature is available in Postfix 2.4.4 and later. </p>
11666
11667%PARAM smtpd_client_port_logging no
11668
11669<p> Enable logging of the remote SMTP client port in addition to
11670the hostname and IP address. The logging format is "host[address]:port".
11671</p>
11672
11673<p> This feature is available in Postfix 2.5 and later. </p>
11674
11675%PARAM qmqpd_client_port_logging no
11676
11677<p> Enable logging of the remote QMQP client port in addition to
11678the hostname and IP address. The logging format is "host[address]:port".
11679</p>
11680
11681<p> This feature is available in Postfix 2.5 and later. </p>
11682
11683%PARAM smtp_tls_protocols !SSLv2
11684
11685<p> List of TLS protocols that the Postfix SMTP client will exclude or
11686include with opportunistic TLS encryption. Starting with Postfix 2.6,
11687the Postfix SMTP client will by default not use the obsolete SSLv2
11688protocol. </p>
11689
11690<p> In main.cf the values are separated by whitespace, commas or
11691colons. In the policy table (see smtp_tls_policy_maps) the only valid
11692separator is colon. An empty value means allow all protocols. The valid
11693protocol names, (see <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3"
11694and "TLSv1". </p>
11695
11696<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1"
11697and "TLSv1.2". If an older Postfix version is linked against OpenSSL
116981.0.1 or later, these, or any other new protocol versions, are
11699unconditionally enabled. </p>
11700
11701<p> To include a protocol list its name, to exclude it, prefix the name
11702with a "!" character. To exclude SSLv2 even for opportunistic TLS set
11703"smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set
11704"smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to
11705include, rather than protocols to exclude, is supported, but not
11706recommended.  The exclusion form more closely matches the behaviour
11707when the OpenSSL library is newer than Postfix.  </p>
11708
11709<p> Example: </p>
11710<pre>
11711# TLSv1 only!
11712smtp_tls_protocols = !SSLv2, !SSLv3
11713</pre>
11714
11715<p> This feature is available in Postfix 2.6 and later. </p>
11716
11717%PARAM smtpd_tls_protocols
11718
11719<p> List of TLS protocols that the Postfix SMTP server will exclude
11720or include with opportunistic TLS encryption. This parameter SHOULD be
11721left at its default empty value, allowing all protocols to be used with
11722opportunistic TLS. </p>
11723
11724<p> In main.cf the values are separated by whitespace, commas or
11725colons. An empty value means allow all protocols. The valid protocol
11726names, (see <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" and
11727"TLSv1". In smtp_tls_policy_maps table entries, "protocols" attribute
11728values are separated by a colon. </p>
11729
11730<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1"
11731and "TLSv1.2". If an older Postfix version is linked against OpenSSL
117321.0.1 or later, these, or any other new protocol versions, are
11733unconditionally enabled. </p>
11734
11735<p> To include a protocol list its name, to exclude it, prefix the name
11736with a "!" character. To exclude SSLv2 even for opportunistic TLS set
11737"smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set
11738"smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to
11739include, rather than protocols to exclude, is supported, but not
11740recommended.  The exclusion form more closely matches the behaviour
11741when the OpenSSL library is newer than Postfix.  </p>
11742
11743<p> Example: </p>
11744<pre>
11745smtpd_tls_protocols = !SSLv2
11746</pre>
11747
11748<p> This feature is available in Postfix 2.6 and later. </p>
11749
11750%PARAM lmtp_tls_protocols
11751
11752<p> The LMTP-specific version of the smtp_tls_protocols configuration
11753parameter. See there for details. </p>
11754
11755<p> This feature is available in Postfix 2.6 and later. </p>
11756
11757%PARAM smtp_tls_ciphers export
11758
11759<p> The minimum TLS cipher grade that the Postfix SMTP client
11760will use with opportunistic TLS encryption. Cipher types listed in
11761smtp_tls_exclude_ciphers are excluded from the base definition of
11762the selected cipher grade. The default value "export" ensures maximum
11763inter-operability. Because encryption is optional, stronger controls
11764are not appropriate, and this setting SHOULD NOT be changed unless the
11765change is essential. </p>
11766
11767<p> When TLS is mandatory the cipher grade is chosen via the
11768smtp_tls_mandatory_ciphers configuration parameter, see there for syntax
11769details. See smtp_tls_policy_maps for information on how to configure
11770ciphers on a per-destination basis. </p>
11771
11772<p> Example: </p>
11773<pre>
11774smtp_tls_ciphers = export
11775</pre>
11776
11777<p> This feature is available in Postfix 2.6 and later. With earlier Postfix
11778releases only the smtp_tls_mandatory_ciphers parameter is implemented,
11779and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p>
11780
11781%PARAM smtpd_tls_ciphers export
11782
11783<p> The minimum TLS cipher grade that the Postfix SMTP server
11784will use with opportunistic TLS encryption. Cipher types listed in
11785smtpd_tls_exclude_ciphers are excluded from the base definition of
11786the selected cipher grade. The default value "export" ensures maximum
11787inter-operability. Because encryption is optional, stronger controls
11788are not appropriate, and this setting SHOULD NOT be changed unless the
11789change is essential. </p>
11790
11791<p> When TLS is mandatory the cipher grade is chosen via the
11792smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax
11793details. </p>
11794
11795<p> Example: </p>
11796<pre>
11797smtpd_tls_ciphers = export
11798</pre>
11799
11800<p> This feature is available in Postfix 2.6 and later. With earlier Postfix
11801releases only the smtpd_tls_mandatory_ciphers parameter is implemented,
11802and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p>
11803
11804%PARAM lmtp_tls_ciphers export
11805
11806<p> The LMTP-specific version of the smtp_tls_ciphers configuration
11807parameter. See there for details. </p>
11808
11809<p> This feature is available in Postfix 2.6 and later. </p>
11810
11811%PARAM tls_eecdh_strong_curve prime256v1
11812
11813<p> The elliptic curve used by the Postfix SMTP server for sensibly
11814strong
11815ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
11816server when "smtpd_tls_eecdh_grade = strong". The phrase "sensibly
11817strong" means approximately 128-bit security based on best known
11818attacks. The selected curve must be implemented by OpenSSL (as
11819reported by ecparam(1) with the "-list_curves" option) and be one
11820of the curves listed in Section 5.1.1 of RFC 4492. You should not
11821generally change this setting. </p>
11822
11823<p> This default curve is specified in NSA "Suite B" Cryptography
11824(see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for
11825information classified as SECRET. </p>
11826
11827<p> Note: elliptic curve names are poorly standardized; different
11828standards groups are assigning different names to the same underlying
11829curves.  The curve with the X9.62 name "prime256v1" is also known
11830under the SECG name "secp256r1", but OpenSSL does not recognize the
11831latter name. </p>
11832
11833<p> This feature is available in Postfix 2.6 and later, when it is
11834compiled and linked with OpenSSL 1.0.0 or later. </p>
11835
11836%PARAM tls_eecdh_ultra_curve secp384r1
11837
11838<p> The elliptic curve used by the Postfix SMTP server for maximally
11839strong
11840ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
11841server when "smtpd_tls_eecdh_grade = ultra". The phrase "maximally
11842strong" means approximately 192-bit security based on best known attacks.
11843This additional strength comes at a significant computational cost, most
11844users should instead set "smtpd_tls_eecdh_grade = strong".  The selected
11845curve must be implemented by OpenSSL (as reported by ecparam(1) with the
11846"-list_curves" option) and be one of the curves listed in Section 5.1.1
11847of RFC 4492. You should not generally change this setting. </p>
11848
11849<p> This default "ultra" curve is specified in NSA "Suite B" Cryptography
11850(see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for information
11851classified as TOP SECRET. </p>
11852
11853<p> This feature is available in Postfix 2.6 and later, when it is
11854compiled and linked with OpenSSL 1.0.0 or later. </p>
11855
11856%PARAM smtpd_tls_eecdh_grade see "postconf -d" output
11857
11858<p> The Postfix SMTP server security grade for ephemeral elliptic-curve
11859Diffie-Hellman (EECDH) key exchange. </p>
11860
11861<p> The available choices are: </p>
11862
11863<dl>
11864
11865<dt><b>none</b></dt> <dd> Don't use EECDH. Ciphers based on EECDH key
11866exchange will be disabled. This is the default in Postfix versions
118672.6 and 2.7. </dd>
11868
11869<dt><b>strong</b></dt> <dd> Use EECDH with approximately 128
11870bits of security at a reasonable computational cost. This is the
11871current best-practice trade-off between security and computational
11872efficiency. This is the default in Postfix version 2.8 and later.
11873</dd>
11874
11875<dt><b>ultra</b></dt> <dd> Use EECDH with approximately 192 bits of
11876security at computational cost that is approximately twice as high
11877as 128 bit strength ECC. Barring significant progress in attacks on
11878elliptic curve crypto-systems, the "strong" curve is sufficient for most
11879users. </dd>
11880
11881</dl>
11882
11883<p> This feature is available in Postfix 2.6 and later, when it is
11884compiled and linked with OpenSSL 1.0.0 or later. </p>
11885
11886%PARAM smtpd_tls_eccert_file
11887
11888<p> File with the Postfix SMTP server ECDSA certificate in PEM format.
11889This file may also contain the Postfix SMTP server private ECDSA key. </p>
11890
11891<p> See the discussion under smtpd_tls_cert_file for more details. </p>
11892
11893<p> Example: </p>
11894
11895<pre>
11896smtpd_tls_eccert_file = /etc/postfix/ecdsa-scert.pem
11897</pre>
11898
11899<p> This feature is available in Postfix 2.6 and later, when Postfix is
11900compiled and linked with OpenSSL 1.0.0 or later. </p>
11901
11902%PARAM smtpd_tls_eckey_file $smtpd_tls_eccert_file
11903
11904<p> File with the Postfix SMTP server ECDSA private key in PEM format.
11905This file may be combined with the Postfix SMTP server ECDSA certificate
11906file specified with $smtpd_tls_eccert_file. </p>
11907
11908<p> The private key must be accessible without a pass-phrase, i.e. it
11909must not be encrypted. File permissions should grant read-only
11910access to the system superuser account ("root"), and no access
11911to anyone else. </p>
11912
11913<p> This feature is available in Postfix 2.6 and later, when Postfix is
11914compiled and linked with OpenSSL 1.0.0 or later. </p>
11915
11916%PARAM smtp_tls_eccert_file
11917
11918<p> File with the Postfix SMTP client ECDSA certificate in PEM format.
11919This file may also contain the Postfix SMTP client ECDSA private key. </p>
11920
11921<p> See the discussion under smtp_tls_cert_file for more details.
11922</p>
11923
11924<p> Example: </p>
11925
11926<pre>
11927smtp_tls_eccert_file = /etc/postfix/ecdsa-ccert.pem
11928</pre>
11929
11930<p> This feature is available in Postfix 2.6 and later, when Postfix is
11931compiled and linked with OpenSSL 1.0.0 or later. </p>
11932
11933%PARAM smtp_tls_eckey_file $smtp_tls_eccert_file
11934
11935<p> File with the Postfix SMTP client ECDSA private key in PEM format.
11936This file may be combined with the Postfix SMTP client ECDSA
11937certificate file specified with $smtp_tls_eccert_file. </p>
11938
11939<p> The private key must be accessible without a pass-phrase, i.e. it
11940must not be encrypted. File permissions should grant read-only
11941access to the system superuser account ("root"), and no access
11942to anyone else. </p>
11943
11944<p> This feature is available in Postfix 2.6 and later, when Postfix is
11945compiled and linked with OpenSSL 1.0.0 or later. </p>
11946
11947%PARAM lmtp_tls_eccert_file
11948
11949<p> The LMTP-specific version of the smtp_tls_eccert_file configuration
11950parameter.  See there for details. </p>
11951
11952<p> This feature is available in Postfix 2.6 and later, when Postfix is
11953compiled and linked with OpenSSL 1.0.0 or later. </p>
11954
11955%PARAM lmtp_tls_eckey_file
11956
11957<p> The LMTP-specific version of the smtp_tls_eckey_file configuration
11958parameter.  See there for details. </p>
11959
11960<p> This feature is available in Postfix 2.6 and later, when Postfix is
11961compiled and linked with OpenSSL 1.0.0 or later. </p>
11962
11963%PARAM smtp_header_checks
11964
11965<p> Restricted header_checks(5) tables for the Postfix SMTP client.
11966These tables are searched while mail is being delivered.  Actions
11967that change the delivery time or destination are not available.
11968</p>
11969
11970<p> This feature is available in Postfix 2.5 and later. </p>
11971
11972%PARAM smtp_mime_header_checks
11973
11974<p> Restricted mime_header_checks(5) tables for the Postfix SMTP
11975client. These tables are searched while mail is being delivered.
11976Actions that change the delivery time or destination are not
11977available.  </p>
11978
11979<p> This feature is available in Postfix 2.5 and later. </p>
11980
11981%PARAM smtp_nested_header_checks
11982
11983<p> Restricted nested_header_checks(5) tables for the Postfix SMTP
11984client. These tables are searched while mail is being delivered.
11985Actions that change the delivery time or destination are not
11986available.  </p>
11987
11988<p> This feature is available in Postfix 2.5 and later. </p>
11989
11990%PARAM smtp_body_checks
11991
11992<p> Restricted body_checks(5) tables for the Postfix SMTP client.
11993These tables are searched while mail is being delivered.  Actions
11994that change the delivery time or destination are not available.
11995</p>
11996
11997<p> This feature is available in Postfix 2.5 and later. </p>
11998
11999%PARAM destination_concurrency_feedback_debug no
12000
12001<p> Make the queue manager's feedback algorithm verbose for performance
12002analysis purposes. </p>
12003
12004<p> This feature is available in Postfix 2.5 and later. </p>
12005
12006%PARAM default_destination_concurrency_failed_cohort_limit 1
12007
12008<p> How many pseudo-cohorts must suffer connection or handshake
12009failure before a specific destination is considered unavailable
12010(and further delivery is suspended). Specify zero to disable this
12011feature. A destination's pseudo-cohort failure count is reset each
12012time a delivery completes without connection or handshake failure
12013for that specific destination. </p>
12014
12015<p> A pseudo-cohort is the number of deliveries equal to a destination's
12016delivery concurrency. </p>
12017
12018<p> Use <i>transport</i>_destination_concurrency_failed_cohort_limit to specify
12019a transport-specific override, where <i>transport</i> is the master.cf
12020name of the message delivery transport. </p>
12021
12022<p> This feature is available in Postfix 2.5. The default setting
12023is compatible with earlier Postfix versions. </p>
12024
12025%PARAM default_destination_concurrency_negative_feedback 1
12026
12027<p> The per-destination amount of delivery concurrency negative
12028feedback, after a delivery completes with a connection or handshake
12029failure. Feedback values are in the range 0..1 inclusive. With
12030negative feedback, concurrency is decremented at the beginning of
12031a sequence of length 1/feedback. This is unlike positive feedback,
12032where concurrency is incremented at the end of a sequence of length
120331/feedback. </p>
12034
12035<p> As of Postfix version 2.5, negative feedback cannot reduce
12036delivery concurrency to zero.  Instead, a destination is marked
12037dead (further delivery suspended) after the failed pseudo-cohort
12038count reaches $default_destination_concurrency_failed_cohort_limit
12039(or $<i>transport</i>_destination_concurrency_failed_cohort_limit).
12040To make the scheduler completely immune to connection or handshake
12041failures, specify a zero feedback value and a zero failed pseudo-cohort
12042limit.  </p>
12043
12044<p> Specify one of the following forms: </p>
12045
12046<dl>
12047
12048<dt> <b><i>number</i> </b> </dt>
12049
12050<dt> <b><i>number</i> / <i>number</i> </b> </dt>
12051
12052<dd> Constant feedback. The value must be in the range 0..1 inclusive.
12053The default setting of "1" is compatible with Postfix versions
12054before 2.5, where a destination's delivery concurrency is throttled
12055down to zero (and further delivery suspended) after a single failed
12056pseudo-cohort. </dd>
12057
12058<dt> <b><i>number</i> / concurrency </b> </dt>
12059
12060<dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
12061The <i>number</i> must be in the range 0..1 inclusive. With
12062<i>number</i> equal to "1", a destination's delivery concurrency
12063is decremented by 1 after each failed pseudo-cohort.  </dd>
12064
12065<!--
12066
12067<dt> <b><i>number</i> / sqrt_concurrency </b> </dt>
12068
12069<dd> Variable feedback of "<i>number</i> / sqrt(delivery concurrency)".
12070The <i>number</i> must be in the range 0..1 inclusive. This setting
12071may be removed in a future version.  </dd>
12072
12073-->
12074
12075</dl>
12076
12077<p> A pseudo-cohort is the number of deliveries equal to a destination's
12078delivery concurrency. </p>
12079
12080<p> Use <i>transport</i>_destination_concurrency_negative_feedback
12081to specify a transport-specific override, where <i>transport</i>
12082is the master.cf
12083name of the message delivery transport. </p>
12084
12085<p> This feature is available in Postfix 2.5. The default setting
12086is compatible with earlier Postfix versions. </p>
12087
12088%PARAM default_destination_concurrency_positive_feedback 1
12089
12090<p> The per-destination amount of delivery concurrency positive
12091feedback, after a delivery completes without connection or handshake
12092failure. Feedback values are in the range 0..1 inclusive.  The
12093concurrency increases until it reaches the per-destination maximal
12094concurrency limit. With positive feedback, concurrency is incremented
12095at the end of a sequence with length 1/feedback. This is unlike
12096negative feedback, where concurrency is decremented at the start
12097of a sequence of length 1/feedback. </p>
12098
12099<p> Specify one of the following forms:  </p>
12100
12101<dl>
12102
12103<dt> <b><i>number</i> </b> </dt>
12104
12105<dt> <b><i>number</i> / <i>number</i> </b> </dt>
12106
12107<dd> Constant feedback.  The value must be in the range 0..1
12108inclusive. The default setting of "1" is compatible with Postfix
12109versions before 2.5, where a destination's delivery concurrency
12110doubles after each successful pseudo-cohort.  </dd>
12111
12112<dt> <b><i>number</i> / concurrency </b> </dt>
12113
12114<dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
12115The <i>number</i> must be in the range 0..1 inclusive. With
12116<i>number</i> equal to "1", a destination's delivery concurrency
12117is incremented by 1 after each successful pseudo-cohort.  </dd>
12118
12119<!--
12120
12121<dt> <b><i>number</i> / sqrt_concurrency </b> </dt>
12122
12123<dd> Variable feedback of "<i>number</i> / sqrt(delivery concurrency)".
12124The <i>number</i> must be in the range 0..1 inclusive. This setting
12125may be removed in a future version.  </dd>
12126
12127-->
12128
12129</dl>
12130
12131<p> A pseudo-cohort is the number of deliveries equal to a destination's
12132delivery concurrency. </p>
12133
12134<p> Use <i>transport</i>_destination_concurrency_positive_feedback
12135to specify a transport-specific override, where <i>transport</i>
12136is the master.cf name of the message delivery transport. </p>
12137
12138<p> This feature is available in Postfix 2.5 and later.  </p>
12139
12140%PARAM transport_destination_concurrency_failed_cohort_limit $default_destination_concurrency_failed_cohort_limit
12141
12142<p> A transport-specific override for the
12143default_destination_concurrency_failed_cohort_limit parameter value,
12144where <i>transport</i> is the master.cf name of the message delivery
12145transport. </p>
12146
12147<p> Note: some <i>transport</i>_destination_concurrency_failed_cohort_limit
12148parameters will not show up in "postconf" command output before
12149Postfix version 2.9.  This limitation applies to many parameters
12150whose name is a combination of a master.cf service name and a
12151built-in suffix (in this case:
12152"_destination_concurrency_failed_cohort_limit"). </p>
12153
12154<p> This feature is available in Postfix 2.5 and later. </p>
12155
12156%PARAM transport_destination_concurrency_positive_feedback $default_destination_concurrency_positive_feedback
12157
12158<p> A transport-specific override for the
12159default_destination_concurrency_positive_feedback parameter value,
12160where <i>transport</i> is the master.cf name of the message delivery
12161transport. </p>
12162
12163<p> Note: some <i>transport</i>_destination_concurrency_positive_feedback
12164parameters will not show up in "postconf" command output before
12165Postfix version 2.9.  This limitation applies to many parameters
12166whose name is a combination of a master.cf service name and a
12167built-in suffix (in this case:
12168"_destination_concurrency_positive_feedback"). </p>
12169
12170<p> This feature is available in Postfix 2.5 and later. </p>
12171
12172%PARAM transport_destination_concurrency_negative_feedback $default_destination_concurrency_negative_feedback
12173
12174<p> A transport-specific override for the
12175default_destination_concurrency_negative_feedback parameter value,
12176where <i>transport</i> is the master.cf name of the message delivery
12177transport. </p>
12178
12179<p> Note: some <i>transport</i>_destination_concurrency_negative_feedback
12180parameters will not show up in "postconf" command output before
12181Postfix version 2.9.  This limitation applies to many parameters
12182whose name is a combination of a master.cf service name and a
12183built-in suffix (in this case:
12184"_destination_concurrency_negative_feedback"). </p>
12185
12186<p> This feature is available in Postfix 2.5 and later. </p>
12187
12188%PARAM transport_initial_destination_concurrency $initial_destination_concurrency
12189
12190<p> A transport-specific override for the initial_destination_concurrency
12191parameter value, where <i>transport</i> is the master.cf name of
12192the message delivery transport. </p>
12193
12194<p> Note: some <i>transport</i>_initial_destination_concurrency
12195parameters will not show up in "postconf" command output before
12196Postfix version 2.9.  This limitation applies to many parameters
12197whose name is a combination of a master.cf service name and a
12198built-in suffix (in this case: "_initial_destination_concurrency").
12199</p>
12200
12201<p> This feature is available in Postfix 2.5 and later. </p>
12202
12203%PARAM transport_destination_concurrency_limit $default_destination_concurrency_limit
12204
12205<p> A transport-specific override for the
12206default_destination_concurrency_limit parameter value, where
12207<i>transport</i> is the master.cf name of the message delivery
12208transport. </p>
12209
12210<p> Note: some <i>transport</i>_destination_concurrency_limit
12211parameters will not show up in "postconf" command output before
12212Postfix version 2.9.  This limitation applies to many parameters
12213whose name is a combination of a master.cf service name and a
12214built-in suffix (in this case: "_destination_concurrency_limit").
12215</p>
12216
12217%PARAM transport_destination_recipient_limit $default_destination_recipient_limit
12218
12219<p> A transport-specific override for the
12220default_destination_recipient_limit parameter value, where
12221<i>transport</i> is the master.cf name of the message delivery
12222transport. </p>
12223
12224<p> Note: some <i>transport</i>_destination_recipient_limit parameters
12225will not show up in "postconf" command output before Postfix version
122262.9.  This limitation applies to many parameters whose name is a
12227combination of a master.cf service name and a built-in suffix (in
12228this case: "_destination_recipient_limit"). </p>
12229
12230%PARAM transport_time_limit $command_time_limit
12231
12232<p> A transport-specific override for the command_time_limit parameter
12233value, where <i>transport</i> is the master.cf name of the message
12234delivery transport. </p>
12235
12236<p> Note: <i>transport</i>_time_limit parameters will not show up
12237in "postconf" command output before Postfix version 2.9.  This
12238limitation applies to many parameters whose name is a combination
12239of a master.cf service name and a built-in suffix (in this case:
12240"_time_limit"). </p>
12241
12242%PARAM transport_delivery_slot_cost $default_delivery_slot_cost
12243
12244<p> A transport-specific override for the default_delivery_slot_cost
12245parameter value, where <i>transport</i> is the master.cf name of
12246the message delivery transport. </p>
12247
12248<p> Note: <i>transport</i>_delivery_slot_cost parameters will not
12249show up in "postconf" command output before Postfix version 2.9.
12250This limitation applies to many parameters whose name is a combination
12251of a master.cf service name and a built-in suffix (in this case:
12252"_delivery_slot_cost"). </p>
12253
12254%PARAM transport_delivery_slot_loan $default_delivery_slot_loan
12255
12256<p> A transport-specific override for the default_delivery_slot_loan
12257parameter value, where <i>transport</i> is the master.cf name of
12258the message delivery transport. </p>
12259
12260<p> Note: <i>transport</i>_delivery_slot_loan parameters will not
12261show up in "postconf" command output before Postfix version 2.9.
12262This limitation applies to many parameters whose name is a combination
12263of a master.cf service name and a built-in suffix (in this case:
12264"_delivery_slot_loan"). </p>
12265
12266%PARAM transport_delivery_slot_discount $default_delivery_slot_discount
12267
12268<p> A transport-specific override for the default_delivery_slot_discount
12269parameter value, where <i>transport</i> is the master.cf name of
12270the message delivery transport. </p>
12271
12272<p> Note: <i>transport</i>_delivery_slot_discount parameters will
12273not show up in "postconf" command output before Postfix version
122742.9.  This limitation applies to many parameters whose name is a
12275combination of a master.cf service name and a built-in suffix (in
12276this case: "_delivery_slot_discount"). </p>
12277
12278%PARAM transport_minimum_delivery_slots $default_minimum_delivery_slots
12279
12280<p> A transport-specific override for the default_minimum_delivery_slots
12281parameter value, where <i>transport</i> is the master.cf name of
12282the message delivery transport. </p>
12283
12284<p> Note: <i>transport</i>_minimum_delivery_slots parameters will
12285not show up in "postconf" command output before Postfix version
122862.9.  This limitation applies to many parameters whose name is a
12287combination of a master.cf service name and a built-in suffix (in
12288this case: "_minimum_delivery_slots"). </p>
12289
12290%PARAM transport_recipient_limit $default_recipient_limit
12291
12292<p> A transport-specific override for the default_recipient_limit
12293parameter value, where <i>transport</i> is the master.cf name of
12294the message delivery transport. </p>
12295
12296<p> Note: some <i>transport</i>_recipient_limit parameters will not
12297show up in "postconf" command output before Postfix version 2.9.
12298This limitation applies to many parameters whose name is a combination
12299of a master.cf service name and a built-in suffix (in this case:
12300"_recipient_limit"). </p>
12301
12302%PARAM transport_extra_recipient_limit $default_extra_recipient_limit
12303
12304<p> A transport-specific override for the default_extra_recipient_limit
12305parameter value, where <i>transport</i> is the master.cf name of
12306the message delivery transport. </p>
12307
12308<p> Note: <i>transport</i>_extra_recipient_limit parameters will
12309not show up in "postconf" command output before Postfix version
123102.9.  This limitation applies to many parameters whose name is a
12311combination of a master.cf service name and a built-in suffix (in
12312this case: "_extra_recipient_limit").  </p>
12313
12314%PARAM transport_recipient_refill_limit $default_recipient_refill_limit
12315
12316<p> A transport-specific override for the default_recipient_refill_limit
12317parameter value, where <i>transport</i> is the master.cf name of
12318the message delivery transport. </p>
12319
12320<p> Note: <i>transport</i>_recipient_refill_limit parameters will
12321not show up in "postconf" command output before Postfix version
123222.9.  This limitation applies to many parameters whose name is a
12323combination of a master.cf service name and a built-in suffix (in
12324this case: "_recipient_refill_limit").  </p>
12325
12326<p> This feature is available in Postfix 2.4 and later. </p>
12327
12328%PARAM transport_recipient_refill_delay $default_recipient_refill_delay
12329
12330<p> A transport-specific override for the default_recipient_refill_delay
12331parameter value, where <i>transport</i> is the master.cf name of
12332the message delivery transport. </p>
12333
12334<p> Note: <i>transport</i>_recipient_refill_delay parameters will
12335not show up in "postconf" command output before Postfix version
123362.9.  This limitation applies to many parameters whose name is a
12337combination of a master.cf service name and a built-in suffix (in
12338this case: "_recipient_refill_delay").  </p>
12339
12340<p> This feature is available in Postfix 2.4 and later. </p>
12341
12342%PARAM default_destination_rate_delay 0s
12343
12344<p> The default amount of delay that is inserted between individual
12345deliveries to the same destination; with per-destination recipient
12346limit &gt; 1, a destination is a domain, otherwise it is a recipient.
12347</p>
12348
12349<p> To enable the delay, specify a non-zero time value (an integral
12350value plus an optional one-letter suffix that specifies the time
12351unit). </p>
12352
12353<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
12354(weeks). The default time unit is s (seconds). </p>
12355
12356<p> NOTE: the delay is enforced by the queue manager. The delay
12357timer state does not survive "<b>postfix reload</b>" or "<b>postfix
12358stop</b>".
12359</p>
12360
12361<p> Use <i>transport</i>_destination_rate_delay to specify a
12362transport-specific override, where <i>transport</i> is the master.cf
12363name of the message delivery transport.
12364</p>
12365
12366<p> NOTE: with a non-zero _destination_rate_delay, specify a
12367<i>transport</i>_destination_concurrency_failed_cohort_limit of 10
12368or more to prevent Postfix from deferring all mail for the same
12369destination after only one connection or handshake error. </p>
12370
12371<p> This feature is available in Postfix 2.5 and later. </p>
12372
12373%PARAM transport_destination_rate_delay $default_destination_rate_delay
12374
12375<p> A transport-specific override for the default_destination_rate_delay
12376parameter value, where <i>transport</i> is the master.cf name of
12377the message delivery transport. </p>
12378
12379<p> Note: some <i>transport</i>_destination_rate_delay parameters
12380will not show up in "postconf" command output before Postfix version
123812.9.  This limitation applies to many parameters whose name is a
12382combination of a master.cf service name and a built-in suffix (in
12383this case: "_destination_rate_delay"). </p>
12384
12385<p> This feature is available in Postfix 2.5 and later. </p>
12386
12387%PARAM data_directory see "postconf -d" output
12388
12389<p> The directory with Postfix-writable data files (for example:
12390caches, pseudo-random numbers).  This directory must be owned by
12391the mail_owner account, and must not be shared with non-Postfix
12392software.  </p>
12393
12394<p> This feature is available in Postfix 2.5 and later. </p>
12395
12396%PARAM stress
12397
12398<p> This feature is documented in the STRESS_README document. </p>
12399
12400<p> This feature is available in Postfix 2.5 and later. </p>
12401
12402%PARAM smtp_sasl_auth_soft_bounce yes
12403
12404<p> When a remote SMTP server rejects a SASL authentication request
12405with a 535 reply code, defer mail delivery instead of returning
12406mail as undeliverable. The latter behavior was hard-coded prior to
12407Postfix version 2.5. </p>
12408
12409<p> Note: the setting "yes" overrides the global soft_bounce
12410parameter, but the setting "no" does not. </p>
12411
12412<p> Example: </p>
12413
12414<pre>
12415# Default as of Postfix 2.5
12416smtp_sasl_auth_soft_bounce = yes
12417# The old hard-coded default
12418smtp_sasl_auth_soft_bounce = no
12419</pre>
12420
12421<p> This feature is available in Postfix 2.5 and later. </p>
12422
12423%PARAM smtp_sasl_auth_cache_name
12424
12425<p> An optional table to prevent repeated SASL authentication
12426failures with the same remote SMTP server hostname, username and
12427password. Each table (key, value) pair contains a server name, a
12428username and password, and the full server response. This information
12429is stored when a remote SMTP server rejects an authentication attempt
12430with a 535 reply code.  As long as the smtp_sasl_password_maps
12431information does no change, and as long as the smtp_sasl_auth_cache_name
12432information does not expire (see smtp_sasl_auth_cache_time) the
12433Postfix SMTP client avoids SASL authentication attempts with the
12434same server, username and password, and instead bounces or defers
12435mail as controlled with the smtp_sasl_auth_soft_bounce configuration
12436parameter.  </p>
12437
12438<p> Use a per-destination delivery concurrency of 1 (for example,
12439"smtp_destination_concurrency_limit = 1",
12440"relay_destination_concurrency_limit = 1", etc.), otherwise multiple
12441delivery agents may experience a login failure at the same time.
12442</p>
12443
12444<p> The table must be accessed via the proxywrite service, i.e. the
12445map name must start with "proxy:". The table should be stored under
12446the directory specified with the data_directory parameter. </p>
12447
12448<p> This feature uses cryptographic hashing to protect plain-text
12449passwords, and requires that Postfix is compiled with TLS support.
12450</p>
12451
12452<p> Example: </p>
12453
12454<pre>
12455smtp_sasl_auth_cache_name = proxy:btree:/var/db/postfix/sasl_auth_cache
12456</pre>
12457
12458<p> This feature is available in Postfix 2.5 and later. </p>
12459
12460%PARAM smtp_sasl_auth_cache_time 90d
12461
12462<p> The maximal age of an smtp_sasl_auth_cache_name entry before it
12463is removed. </p>
12464
12465<p> This feature is available in Postfix 2.5 and later. </p>
12466
12467%PARAM lmtp_sasl_auth_soft_bounce yes
12468
12469<p> The LMTP-specific version of the smtp_sasl_auth_soft_bounce
12470configuration parameter.  See there for details. </p>
12471
12472<p> This feature is available in Postfix 2.5 and later. </p>
12473
12474%PARAM lmtp_sasl_auth_cache_name
12475
12476<p> The LMTP-specific version of the smtp_sasl_auth_cache_name
12477configuration parameter.  See there for details. </p>
12478
12479<p> This feature is available in Postfix 2.5 and later. </p>
12480
12481%PARAM lmtp_sasl_auth_cache_time 90d
12482
12483<p> The LMTP-specific version of the smtp_sasl_auth_cache_time
12484configuration parameter.  See there for details. </p>
12485
12486<p> This feature is available in Postfix 2.5 and later. </p>
12487
12488%PARAM unverified_sender_reject_reason
12489
12490<p> The Postfix SMTP server's reply when rejecting mail with
12491reject_unverified_sender. Do not include the numeric SMTP reply
12492code or the enhanced status code. By default, the response includes
12493actual address verification details.
12494
12495<p> Example: </p>
12496
12497<pre>
12498unverified_sender_reject_reason = Sender address lookup failed
12499</pre>
12500
12501<p> This feature is available in Postfix 2.6 and later. </p>
12502
12503%PARAM unverified_recipient_reject_reason
12504
12505<p> The Postfix SMTP server's reply when rejecting mail with
12506reject_unverified_recipient. Do not include the numeric SMTP reply
12507code or the enhanced status code. By default, the response includes
12508actual address verification details.
12509
12510<p> Example: </p>
12511
12512<pre>
12513unverified_recipient_reject_reason = Recipient address lookup failed
12514</pre>
12515
12516<p> This feature is available in Postfix 2.6 and later. </p>
12517
12518%PARAM strict_mailbox_ownership yes
12519
12520<p> Defer delivery when a mailbox file is not owned by its recipient.
12521The default setting is not backwards compatible.  </p>
12522
12523<p> This feature is available in Postfix 2.5.3 and later. </p>
12524
12525%PARAM proxymap_service_name proxymap
12526
12527<p> The name of the proxymap read-only table lookup service.  This
12528service is normally implemented by the proxymap(8) daemon. </p>
12529
12530<p> This feature is available in Postfix 2.6 and later. </p>
12531
12532%PARAM proxywrite_service_name proxywrite
12533
12534<p> The name of the proxywrite read-write table lookup service.
12535This service is normally implemented by the proxymap(8) daemon.
12536</p>
12537
12538<p> This feature is available in Postfix 2.6 and later. </p>
12539
12540%PARAM master_service_disable
12541
12542<p> Selectively disable master(8) listener ports by service type
12543or by service name and type.  Specify a list of service types
12544("inet", "unix", "fifo", or "pass") or "name.type" tuples, where
12545"name" is the first field of a master.cf entry and "type" is a
12546service type. As with other Postfix matchlists, a search stops at
12547the first match.  Specify "!pattern" to exclude a service from the
12548list. By default, all master(8) listener ports are enabled.  </p>
12549
12550<p> Note: this feature does not support "/file/name" or "type:table"
12551patterns, nor does it support wildcards such as "*" or "all". This
12552is intentional. </p>
12553
12554<p> Examples: </p>
12555
12556<pre>
12557# Turn on all master(8) listener ports (the default).
12558master_service_disable =
12559# Turn off only the main SMTP listener port.
12560master_service_disable = smtp.inet
12561# Turn off all TCP/IP listener ports.
12562master_service_disable = inet
12563# Turn off all TCP/IP listener ports except "foo".
12564master_service_disable = !foo.inet, inet
12565</pre>
12566
12567<p> This feature is available in Postfix 2.6 and later. </p>
12568
12569%PARAM tcp_windowsize 0
12570
12571<p> An optional workaround for routers that break TCP window scaling.
12572Specify a value &gt; 0 and &lt; 65536 to enable this feature.  With
12573Postfix TCP servers (smtpd(8), qmqpd(8)), this feature is implemented
12574by the Postfix master(8) daemon.  </p>
12575
12576<p> To change this parameter without stopping Postfix, you need to
12577first terminate all Postfix TCP servers: </p>
12578
12579<blockquote>
12580<pre>
12581# postconf -e master_service_disable=inet
12582# postfix reload
12583</pre>
12584</blockquote>
12585
12586<p> This immediately terminates all processes that accept network
12587connections.  Next, you enable Postfix TCP servers with the updated
12588tcp_windowsize setting: </p>
12589
12590<blockquote>
12591<pre>
12592# postconf -e tcp_windowsize=65535 master_service_disable=
12593# postfix reload
12594</pre>
12595</blockquote>
12596
12597<p> If you skip these steps with a running Postfix system, then the
12598tcp_windowsize change will work only for Postfix TCP clients (smtp(8),
12599lmtp(8)).  </p>
12600
12601<p> This feature is available in Postfix 2.6 and later. </p>
12602
12603%PARAM multi_instance_directories
12604
12605<p> An optional list of non-default Postfix configuration directories;
12606these directories belong to additional Postfix instances that share
12607the Postfix executable files and documentation with the default
12608Postfix instance, and that are started, stopped, etc., together
12609with the default Postfix instance.  Specify a list of pathnames
12610separated by comma or whitespace.  </p>
12611
12612<p> When $multi_instance_directories is empty, the postfix(1) command
12613runs in single-instance mode and operates on a single Postfix
12614instance only. Otherwise, the postfix(1) command runs in multi-instance
12615mode and invokes the multi-instance manager specified with the
12616multi_instance_wrapper parameter. The multi-instance manager in
12617turn executes postfix(1) commands for the default instance and for
12618all Postfix instances in $multi_instance_directories.  </p>
12619
12620<p> Currently, this parameter setting is ignored except for the
12621default main.cf file. </p>
12622
12623<p> This feature is available in Postfix 2.6 and later. </p>
12624
12625%PARAM multi_instance_wrapper
12626
12627<p> The pathname of a multi-instance manager command that the
12628postfix(1) command invokes when the multi_instance_directories
12629parameter value is non-empty. The pathname may be followed by
12630initial command arguments separated by whitespace; shell
12631metacharacters such as quotes are not supported in this context.
12632</p>
12633
12634<p> The postfix(1) command invokes the manager command with the
12635postfix(1) non-option command arguments on the manager command line,
12636and with all installation configuration parameters exported into
12637the manager command process environment. The manager command in
12638turn invokes the postfix(1) command for individual Postfix instances
12639as "postfix -c <i>config_directory</i> <i>command</i>".  </p>
12640
12641<p> This feature is available in Postfix 2.6 and later. </p>
12642
12643%PARAM multi_instance_group
12644
12645<p> The optional instance group name of this Postfix instance. A
12646group identifies closely-related Postfix instances that the
12647multi-instance manager can start, stop, etc., as a unit.  This
12648parameter is reserved for the multi-instance manager. </p>
12649
12650<p> This feature is available in Postfix 2.6 and later. </p>
12651
12652%PARAM multi_instance_name
12653
12654<p> The optional instance name of this Postfix instance. This name
12655becomes also the default value for the syslog_name parameter. </p>
12656
12657<p> This feature is available in Postfix 2.6 and later. </p>
12658
12659%PARAM multi_instance_enable no
12660
12661<p> Allow this Postfix instance to be started, stopped, etc., by a
12662multi-instance manager.  By default, new instances are created in
12663a safe state that prevents them from being started inadvertently.
12664This parameter is reserved for the multi-instance manager.  </p>
12665
12666<p> This feature is available in Postfix 2.6 and later. </p>
12667
12668%PARAM reject_tempfail_action defer_if_permit
12669
12670<p> The Postfix SMTP server's action when a reject-type restriction
12671fails due to a temporary error condition. Specify "defer" to defer
12672the remote SMTP client request immediately. With the default
12673"defer_if_permit" action, the Postfix SMTP server continues to look
12674for opportunities to reject mail, and defers the client request
12675only if it would otherwise be accepted. </p>
12676
12677<p> For finer control, see: unverified_recipient_tempfail_action,
12678unverified_sender_tempfail_action, unknown_address_tempfail_action,
12679and unknown_helo_hostname_tempfail_action.  </p>
12680
12681<p> This feature is available in Postfix 2.6 and later. </p>
12682
12683%PARAM unverified_recipient_tempfail_action $reject_tempfail_action
12684
12685<p> The Postfix SMTP server's action when reject_unverified_recipient
12686fails due to a temporary error condition. Specify "defer" to defer
12687the remote SMTP client request immediately. With the default
12688"defer_if_permit" action, the Postfix SMTP server continues to look
12689for opportunities to reject mail, and defers the client request
12690only if it would otherwise be accepted. </p>
12691
12692<p> This feature is available in Postfix 2.6 and later. </p>
12693
12694%PARAM unverified_sender_tempfail_action $reject_tempfail_action
12695
12696<p> The Postfix SMTP server's action when reject_unverified_sender
12697fails due to a temporary error condition. Specify "defer" to defer
12698the remote SMTP client request immediately. With the default
12699"defer_if_permit" action, the Postfix SMTP server continues to look
12700for opportunities to reject mail, and defers the client request
12701only if it would otherwise be accepted. </p>
12702
12703<p> This feature is available in Postfix 2.6 and later. </p>
12704
12705%PARAM unknown_address_tempfail_action $reject_tempfail_action
12706
12707<p> The Postfix SMTP server's action when reject_unknown_sender_domain
12708or reject_unknown_recipient_domain fail due to a temporary error
12709condition. Specify "defer" to defer the remote SMTP client request
12710immediately. With the default "defer_if_permit" action, the Postfix
12711SMTP server continues to look for opportunities to reject mail, and
12712defers the client request only if it would otherwise be accepted.
12713</p>
12714
12715<p> This feature is available in Postfix 2.6 and later. </p>
12716
12717%PARAM unknown_helo_hostname_tempfail_action $reject_tempfail_action
12718
12719<p> The Postfix SMTP server's action when reject_unknown_helo_hostname
12720fails due to an temporary error condition. Specify "defer" to defer
12721the remote SMTP client request immediately. With the default
12722"defer_if_permit" action, the Postfix SMTP server continues to look
12723for opportunities to reject mail, and defers the client request
12724only if it would otherwise be accepted. </p>
12725
12726<p> This feature is available in Postfix 2.6 and later. </p>
12727
12728%PARAM postmulti_start_commands start
12729
12730<p> The postfix(1) commands that the postmulti(1) instance manager treats
12731as "start" commands. For these commands, disabled instances are "checked"
12732rather than "started", and failure to "start" a member instance of an
12733instance group will abort the start-up of later instances. </p>
12734
12735<p> This feature is available in Postfix 2.6 and later. </p>
12736
12737%PARAM postmulti_stop_commands see "postconf -d" output
12738
12739<p> The postfix(1) commands that the postmulti(1) instance manager treats
12740as "stop" commands. For these commands, disabled instances are skipped,
12741and enabled instances are processed in reverse order. </p>
12742
12743<p> This feature is available in Postfix 2.6 and later. </p>
12744
12745%PARAM postmulti_control_commands reload flush
12746
12747<p> The postfix(1) commands that the postmulti(1) instance manager
12748treats as "control" commands, that operate on running instances. For
12749these commands, disabled instances are skipped. </p>
12750
12751<p> This feature is available in Postfix 2.6 and later. </p>
12752
12753%PARAM lmtp_assume_final no
12754
12755<p> When a remote LMTP server announces no DSN support, assume that
12756the
12757server performs final delivery, and send "delivered" delivery status
12758notifications instead of "relayed". The default setting is backwards
12759compatible to avoid the infinetisimal possibility of breaking
12760existing LMTP-based content filters. </p>
12761
12762%PARAM always_add_missing_headers no
12763
12764<p> Always add (Resent-) From:, To:, Date: or Message-ID: headers
12765when not present.  Postfix 2.6 and later add these headers only
12766when clients match the local_header_rewrite_clients parameter
12767setting.  Earlier Postfix versions always add these headers; this
12768may break DKIM signatures that cover non-existent headers. </p>
12769
12770%PARAM lmtp_header_checks
12771
12772<p> The LMTP-specific version of the smtp_header_checks configuration
12773parameter. See there for details. </p>
12774
12775<p> This feature is available in Postfix 2.5 and later. </p>
12776
12777%PARAM lmtp_mime_header_checks
12778
12779<p> The LMTP-specific version of the smtp_mime_header_checks
12780configuration parameter. See there for details. </p>
12781
12782<p> This feature is available in Postfix 2.5 and later. </p>
12783
12784%PARAM lmtp_nested_header_checks
12785
12786<p> The LMTP-specific version of the smtp_nested_header_checks
12787configuration parameter. See there for details. </p>
12788
12789<p> This feature is available in Postfix 2.5 and later. </p>
12790
12791%PARAM lmtp_body_checks
12792
12793<p> The LMTP-specific version of the smtp_body_checks configuration
12794parameter. See there for details. </p>
12795
12796<p> This feature is available in Postfix 2.5 and later. </p>
12797
12798%PARAM milter_header_checks
12799
12800<p> Optional lookup tables for content inspection of message headers
12801that are produced by Milter applications.  See the header_checks(5)
12802manual page available actions. Currently, PREPEND is not implemented.
12803</p>
12804
12805<p> The following example sends all mail that is marked as SPAM to
12806a spam handling machine. Note that matches are case-insensitive
12807by default. </p>
12808
12809<pre>
12810/etc/postfix/main.cf:
12811    milter_header_checks = pcre:/etc/postfix/milter_header_checks
12812</pre>
12813
12814<pre>
12815/etc/postfix/milter_header_checks:
12816    /^X-SPAM-FLAG:\s+YES/ FILTER mysmtp:sanitizer.example.com:25
12817</pre>
12818
12819<p> The milter_header_checks mechanism could also be used for
12820whitelisting. For example it could be used to skip heavy content
12821inspection for DKIM-signed mail from known friendly domains. </p>
12822
12823<p> This feature is available in Postfix 2.7, and as an optional
12824patch for Postfix 2.6. </p>
12825
12826%PARAM postscreen_cache_map btree:$data_directory/postscreen_cache
12827
12828<p> Persistent storage for the postscreen(8) server decisions. </p>
12829
12830<p> To share a postscreen(8) cache between multiple postscreen(8)
12831instances, use "postscreen_cache_map = proxy:btree:/path/to/file".
12832This requires Postfix version 2.9 or later; earlier proxymap(8)
12833implementations don't support cache cleanup. For an alternative
12834approach see the memcache_table(5) manpage. </p>
12835
12836<p> This feature is available in Postfix 2.8. </p>
12837
12838%PARAM smtpd_service_name smtpd
12839
12840<p> The internal service that postscreen(8) hands off allowed
12841connections to. In a future version there may be different
12842classes of SMTP service. </p>
12843
12844<p> This feature is available in Postfix 2.8. </p>
12845
12846%PARAM postscreen_post_queue_limit $default_process_limit
12847
12848<p> The number of clients that can be waiting for service from a
12849real Postfix SMTP server process. When this queue is full, all
12850clients will
12851receive a 421 reponse. </p>
12852
12853<p> This feature is available in Postfix 2.8. </p>
12854
12855%PARAM postscreen_pre_queue_limit $default_process_limit
12856
12857<p> The number of non-whitelisted clients that can be waiting for
12858a decision whether they will receive service from a real Postfix
12859SMTP server
12860process. When this queue is full, all non-whitelisted clients will
12861receive a 421 reponse. </p>
12862
12863<p> This feature is available in Postfix 2.8. </p>
12864
12865%PARAM postscreen_greet_ttl 1d
12866
12867<p> The amount of time that postscreen(8) will use the result from
12868a successful PREGREET test. During this time, the client IP address
12869is excluded from this test. The default is relatively short, because
12870a good client can immediately talk to a real Postfix SMTP server. </p>
12871
12872<p> Specify a non-zero time value (an integral value plus an optional
12873one-letter suffix that specifies the time unit).  Time units: s
12874(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
12875
12876<p> This feature is available in Postfix 2.8. </p>
12877
12878%PARAM postscreen_cache_retention_time 7d
12879
12880<p> The amount of time that postscreen(8) will cache an expired
12881temporary whitelist entry before it is removed. This prevents clients
12882from being logged as "NEW" just because their cache entry expired
12883an hour ago. It also prevents the cache from filling up with clients
12884that passed some deep protocol test once and never came back. </p>
12885
12886<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
12887(weeks).  </p>
12888
12889<p> This feature is available in Postfix 2.8. </p>
12890
12891%PARAM postscreen_cache_cleanup_interval 12h
12892
12893<p> The amount of time between postscreen(8) cache cleanup runs.
12894Cache cleanup increases the load on the cache database and should
12895therefore not be run frequently. This feature requires that the
12896cache database supports the "delete" and "sequence" operators.
12897Specify a zero interval to disable cache cleanup. </p>
12898
12899<p> After each cache cleanup run, the postscreen(8) daemon logs the
12900number of entries that were retained and dropped. A cleanup run is
12901logged as "partial" when the daemon terminates early after "<b>postfix
12902reload</b>", "<b>postfix stop</b>", or no requests for $max_idle
12903seconds. </p>
12904
12905<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
12906(weeks).  </p>
12907
12908<p> This feature is available in Postfix 2.8. </p>
12909
12910%PARAM postscreen_greet_wait ${stress?2}${stress:6}s
12911
12912<p> The amount of time that postscreen(8) will wait for an SMTP
12913client to send a command before its turn, and for DNS blocklist
12914lookup results to arrive (default: up to 2 seconds under stress,
12915up to 6 seconds otherwise).  <p>
12916
12917<p> Specify a non-zero time value (an integral value plus an optional
12918one-letter suffix that specifies the time unit).  </p>
12919
12920<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
12921(weeks).  </p>
12922
12923<p> This feature is available in Postfix 2.8. </p>
12924
12925%PARAM postscreen_dnsbl_sites
12926
12927<p>Optional list of DNS white/blacklist domains, filters and weight
12928factors. When the list is non-empty, the dnsblog(8) daemon will
12929query these domains with the IP addresses of remote SMTP clients,
12930and postscreen(8) will update an SMTP client's DNSBL score with
12931each non-error reply. </p>
12932
12933<p> Caution: when postscreen rejects mail, it replies with the DNSBL
12934domain name. Use the postscreen_dnsbl_reply_map feature to hide
12935"password" information in DNSBL domain names. </p>
12936
12937<p> When a client's score is equal to or greater than the threshold
12938specified with postscreen_dnsbl_threshold, postscreen(8) can drop
12939the connection with the remote SMTP client. </p>
12940
12941<p> Specify a list of domain=filter*weight entries, separated by
12942comma or whitespace.  </p>
12943
12944<ul>
12945
12946<li> <p> When no "=filter" is specified, postscreen(8) will use any
12947non-error DNSBL reply.  Otherwise, postscreen(8) uses only DNSBL
12948replies that match the filter. The filter has the form d.d.d.d,
12949where each d is a number, or a pattern inside [] that contains one
12950or more ";"-separated numbers or number..number ranges.  </p>
12951
12952<li> <p> When no "*weight" is specified, postscreen(8) increments
12953the remote SMTP client's DNSBL score by 1.  Otherwise, the weight must be
12954an integral number, and postscreen(8) adds the specified weight to
12955the remote SMTP client's DNSBL score.  Specify a negative number for
12956whitelisting.  </p>
12957
12958<li> <p> When one postscreen_dnsbl_sites entry produces multiple
12959DNSBL responses, postscreen(8) applies the weight at most once.
12960</p>
12961
12962</ul>
12963
12964<p> Examples: </p>
12965
12966<p> To use example.com as a high-confidence blocklist, and to
12967block mail with example.net and example.org only when both agree:
12968</p>
12969
12970<pre>
12971postscreen_dnsbl_threshold = 2
12972postscreen_dnsbl_sites = example.com*2, example.net, example.org
12973</pre>
12974
12975<p> To filter only DNSBL replies containing 127.0.0.4: </p>
12976
12977<pre>
12978postscreen_dnsbl_sites = example.com=127.0.0.4
12979</pre>
12980
12981<p> This feature is available in Postfix 2.8. </p>
12982
12983%PARAM postscreen_dnsbl_action ignore
12984
12985<p>The action that postscreen(8) takes when a remote SMTP client's combined
12986DNSBL score is equal to or greater than a threshold (as defined
12987with the postscreen_dnsbl_sites and postscreen_dnsbl_threshold
12988parameters).  Specify one of the following: </p>
12989
12990<dl>
12991
12992<dt> <b>ignore</b> (default) </dt>
12993
12994<dd> Ignore the failure of this test. Allow other tests to complete.
12995Repeat this test the next time the client connects.
12996This option is useful for testing and collecting statistics
12997without blocking mail. </dd>
12998
12999<dt> <b>enforce</b> </dt>
13000
13001<dd> Allow other tests to complete. Reject attempts to deliver mail
13002with a 550 SMTP reply, and log the helo/sender/recipient information.
13003Repeat this test the next time the client connects. </dd>
13004
13005<dt> <b>drop</b> </dt>
13006
13007<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
13008this test the next time the client connects. </dd>
13009
13010</dl>
13011
13012<p> This feature is available in Postfix 2.8. </p>
13013
13014%PARAM postscreen_greet_action ignore
13015
13016<p>The action that postscreen(8) takes when a remote SMTP client speaks
13017before its turn within the time specified with the postscreen_greet_wait
13018parameter.  Specify one of the following: </p>
13019
13020<dl>
13021
13022<dt> <b>ignore</b> (default) </dt>
13023
13024<dd> Ignore the failure of this test. Allow other tests to complete.
13025Repeat this test the next time the client connects.
13026This option is useful for testing and collecting statistics
13027without blocking mail. </dd>
13028
13029<dt> <b>enforce</b> </dt>
13030
13031<dd> Allow other tests to complete. Reject attempts to deliver mail
13032with a 550 SMTP reply, and log the helo/sender/recipient information.
13033Repeat this test the next time the client connects. </dd>
13034
13035<dt> <b>drop</b> </dt>
13036
13037<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
13038this test the next time the client connects. </dd>
13039
13040</dl>
13041
13042<p> In either case, postscreen(8) will not whitelist the remote SMTP client
13043IP address. </p>
13044
13045<p> This feature is available in Postfix 2.8. </p>
13046
13047#%PARAM postscreen_whitelist_networks $mynetworks
13048#
13049#<p> Network addresses that are permanently whitelisted, and that
13050#will not be subjected to postscreen(8) checks. This parameter uses
13051#the same address syntax as the mynetworks parameter. This feature
13052#never uses the remote SMTP client hostname.  </p>
13053#
13054#<p> This feature is available in Postfix 2.8. </p>
13055#
13056#%PARAM postscreen_blacklist_networks
13057#
13058#<p> Network addresses that are permanently blacklisted; see the
13059#postscreen_blacklist_action parameter for possible actions.  This
13060#parameter uses the same address syntax as the mynetworks parameter.
13061#The blacklist has higher precedence than whitelists. This feature
13062#never uses the remote SMTP client hostname.  </p>
13063#
13064#<p> This feature is available in Postfix 2.8. </p>
13065
13066%PARAM postscreen_access_list permit_mynetworks
13067
13068<p> Permanent white/blacklist for remote SMTP client IP addresses.
13069postscreen(8) searches this list immediately after a remote SMTP
13070client connects.  Specify a comma- or whitespace-separated list of
13071commands (in upper or lower case) or lookup tables. The search stops
13072upon the first command that fires for the client IP address. </p>
13073
13074<dl>
13075
13076<dt> <b> permit_mynetworks </b> </dt> <dd> Whitelist the client and
13077terminate the search if the client IP address matches $mynetworks.
13078Do not subject the client to any before/after 220 greeting tests.
13079Pass the connection immediately to a Postfix SMTP server process.
13080</dd>
13081
13082<dt> <b> type:table </b> </dt> <dd> Query the specified lookup
13083table. Each table lookup result is an access list, except that
13084access lists inside a table cannot specify type:table entries.  <br>
13085To discourage the use of hash, btree, etc. tables, there is no
13086support for substring matching like smtpd(8). Use CIDR tables
13087instead.  </dd>
13088
13089<dt> <b> permit </b> </dt> <dd> Whitelist the client and terminate
13090the search. Do not subject the client to any before/after 220
13091greeting tests. Pass the connection immediately to a Postfix SMTP
13092server process. </dd>
13093
13094<dt> <b> reject </b> </dt> <dd> Blacklist the client and terminate
13095the search. Subject the client to the action configured with the
13096postscreen_blacklist_action configuration parameter. </dd>
13097
13098<dt> <b> dunno </b> </dt> <dd> All postscreen(8) access lists
13099implicitly have this command at the end. <br> When <b> dunno </b>
13100is executed inside a lookup table, return from the lookup table and
13101evaluate the next command.  <br> When <b> dunno </b> is executed
13102outside a lookup table, terminate the search, and subject the client
13103to the configured before/after 220 greeting tests. </dd>
13104
13105</dl>
13106
13107<p> Example: </p>
13108
13109<pre>
13110/etc/postfix/main.cf:
13111    postscreen_access_list = permit_mynetworks,
13112		cidr:/etc/postfix/postscreen_access.cidr
13113    postscreen_blacklist_action = enforce
13114</pre>
13115
13116<pre>
13117/etc/postfix/postscreen_access.cidr:
13118    # Rules are evaluated in the order as specified.
13119    # Blacklist 192.168.* except 192.168.0.1.
13120    192.168.0.1         dunno
13121    192.168.0.0/16      reject
13122</pre>
13123
13124<p> This feature is available in Postfix 2.8. </p>
13125
13126%PARAM postscreen_greet_banner $smtpd_banner
13127
13128<p> The <i>text</i> in the optional "220-<i>text</i>..." server
13129response that
13130postscreen(8) sends ahead of the real Postfix SMTP server's "220
13131text..." response, in an attempt to confuse bad SMTP clients so
13132that they speak before their turn (pre-greet).  Specify an empty
13133value to disable this feature.  </p>
13134
13135<p> This feature is available in Postfix 2.8. </p>
13136
13137%PARAM postscreen_blacklist_action ignore
13138
13139<p> The action that postscreen(8) takes when a remote SMTP client is
13140permanently blacklisted with the postscreen_access_list parameter.
13141Specify one of the following: </p>
13142
13143<dl>
13144
13145<dt> <b>ignore</b> (default) </dt>
13146
13147<dd> Ignore  this result. Allow other tests to complete.  Repeat
13148this test the next time the client connects.
13149This option is useful for testing and collecting statistics
13150without blocking mail. </dd>
13151
13152<dt> <b>enforce</b> </dt>
13153
13154<dd> Allow other tests to complete. Reject attempts to deliver mail
13155with a 550 SMTP reply, and log the helo/sender/recipient information.
13156Repeat this test the next time the client connects. </dd>
13157
13158<dt> <b>drop</b> </dt>
13159
13160<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
13161this test the next time the client connects. </dd>
13162
13163</dl>
13164
13165<p> This feature is available in Postfix 2.8. </p>
13166
13167%PARAM smtpd_command_filter
13168
13169<p> A mechanism to transform commands from remote SMTP clients.
13170This is a last-resort tool to work around client commands that break
13171inter-operability with the Postfix SMTP server.  Other uses involve
13172fault injection to test Postfix's handling of invalid commands.
13173</p>
13174
13175<p> Specify the name of a "type:table" lookup table. The search
13176string is the SMTP command as received from the remote SMTP client,
13177except that initial whitespace and the trailing &lt;CR&gt;&lt;LF&gt;
13178are removed.  The result value is executed by the Postfix SMTP
13179server.  </p>
13180
13181<p> There is no need to use smtpd_command_filter for the following
13182cases: </p>
13183
13184<ul>
13185
13186<li> <p> Use "resolve_numeric_domain = yes" to accept
13187"<i>user@ipaddress</i>". </p>
13188
13189<li> <p> Postfix already accepts the correct form
13190"<i>user@[ipaddress]</i>". Use virtual_alias_maps or canonical_maps
13191to translate these into domain names if necessary.  </p>
13192
13193<li> <p> Use "strict_rfc821_envelopes = no" to accept "RCPT TO:&lt;<i>User
13194Name &lt;user@example.com&gt;&gt;</i>". Postfix will ignore the "<i>User
13195Name</i>" part and deliver to the <i>&lt;user@example.com&gt;</i> address.
13196</p>
13197
13198</ul>
13199
13200<p> Examples of problems that can be solved with the smtpd_command_filter
13201feature: </p>
13202
13203<pre>
13204/etc/postfix/main.cf:
13205    smtpd_command_filter = pcre:/etc/postfix/command_filter
13206</pre>
13207
13208<pre>
13209/etc/postfix/command_filter:
13210    # Work around clients that send malformed HELO commands.
13211    /^HELO\s*$/ HELO domain.invalid
13212</pre>
13213
13214<pre>
13215    # Work around clients that send empty lines.
13216    /^\s*$/     NOOP
13217</pre>
13218
13219<pre>
13220    # Work around clients that send RCPT TO:&lt;'user@domain'&gt;.
13221    # WARNING: do not lose the parameters that follow the address.
13222    /^RCPT\s+TO:\s*&lt;'([^[:space:]]+)'&gt;(.*)/     RCPT TO:&lt;$1&gt;$2
13223</pre>
13224
13225<pre>
13226    # Append XVERP to MAIL FROM commands to request VERP-style delivery.
13227    # See VERP_README for more information on how to use Postfix VERP.
13228    /^(MAIL FROM:&lt;listname@example\.com&gt;.*)/   $1 XVERP
13229</pre>
13230
13231<pre>
13232    # Bounce-never mail sink. Use notify_classes=bounce,resource,software
13233    # to send bounced mail to the postmaster (with message body removed).
13234    /^(RCPT\s+TO:.*?)\bNOTIFY=\S+\b(.*)/ $1 NOTIFY=NEVER $2
13235    /^(RCPT\s+TO:.*)/                    $1 NOTIFY=NEVER
13236</pre>
13237
13238<p> This feature is available in Postfix 2.7. </p>
13239
13240%PARAM smtp_reply_filter
13241
13242<p> A mechanism to transform replies from remote SMTP servers one
13243line at a time.  This is a last-resort tool to work around server
13244replies that break inter-operability with the Postfix SMTP client.
13245Other uses involve fault injection to test Postfix's handling of
13246invalid responses. </p>
13247
13248<p> Notes: </p>
13249
13250<ul>
13251
13252<li> <p> In the case of a multi-line reply, the Postfix SMTP client
13253uses the final reply line's numerical SMTP reply code and enhanced
13254status code.  </p>
13255
13256<li> <p> The numerical SMTP reply code (XYZ) takes precedence over
13257the enhanced status code (X.Y.Z).  When the enhanced status code
13258initial digit differs from the SMTP reply code initial digit, or
13259when no enhanced status code is present, the Postfix SMTP client
13260uses a generic enhanced status code (X.0.0) instead. </p>
13261
13262</ul>
13263
13264<p> Specify the name of a "type:table" lookup table. The search
13265string is a single SMTP reply line as received from the remote SMTP
13266server, except that the trailing &lt;CR&gt;&lt;LF&gt; are removed.
13267When the lookup succeeds, the result replaces the single SMTP reply
13268line. </p>
13269
13270<p> Examples: </p>
13271
13272<pre>
13273/etc/postfix/main.cf:
13274    smtp_reply_filter = pcre:/etc/postfix/reply_filter
13275</pre>
13276
13277<pre>
13278/etc/postfix/reply_filter:
13279    # Transform garbage into "250-filler..." so that it looks like
13280    # one line from a multi-line reply. It does not matter what we
13281    # substitute here as long it has the right syntax.  The Postfix
13282    # SMTP client will use the final line's numerical SMTP reply
13283    # code and enhanced status code.
13284    !/^([2-5][0-9][0-9]($|[- ]))/ 250-filler for garbage
13285</pre>
13286
13287<p> This feature is available in Postfix 2.7. </p>
13288
13289%PARAM lmtp_reply_filter
13290
13291<p> The LMTP-specific version of the smtp_reply_filter
13292configuration parameter.  See there for details. </p>
13293
13294<p> This feature is available in Postfix 2.7 and later. </p>
13295
13296%PARAM smtp_tls_block_early_mail_reply no
13297
13298<p> Try to detect a mail hijacking attack based on a TLS protocol
13299vulnerability (CVE-2009-3555), where an attacker prepends malicious
13300HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client TLS session.
13301The attack would succeed with non-Postfix SMTP servers that reply
13302to the malicious HELO, MAIL, RCPT, DATA commands after negotiating
13303the Postfix SMTP client TLS session.  </p>
13304
13305<p> This feature is available in Postfix 2.7. </p>
13306
13307%PARAM lmtp_tls_block_early_mail_reply
13308
13309<p> The LMTP-specific version of the smtp_tls_block_early_mail_reply
13310configuration parameter.  See there for details. </p>
13311
13312<p> This feature is available in Postfix 2.7 and later. </p>
13313
13314%PARAM empty_address_default_transport_maps_lookup_key &lt;&gt;
13315
13316<p> The sender_dependent_default_transport_maps search string that
13317will be used instead of the null sender address. </p>
13318
13319<p> This feature is available in Postfix 2.7 and later.  </p>
13320
13321%PARAM sender_dependent_default_transport_maps
13322
13323<p> A sender-dependent override for the global default_transport
13324parameter setting. The tables are searched by the envelope sender
13325address and @domain. A lookup result of DUNNO terminates the search
13326without overriding the global default_transport parameter setting.
13327This information is overruled with the transport(5) table. </p>
13328
13329<p> Note: this overrides default_transport, not transport_maps, and
13330therefore the expected syntax is that of default_transport, not the
13331syntax of transport_maps.  Specifically, this does not support the
13332transport_maps syntax for null transport, null nexthop, or null
13333email addresses. </p>
13334
13335<p> For safety reasons, this feature does not allow $number
13336substitutions in regular expression maps. </p>
13337
13338<p> This feature is available in Postfix 2.7 and later.  </p>
13339
13340%PARAM address_verify_sender_dependent_default_transport_maps $sender_dependent_default_transport_maps
13341
13342<p> Overrides the sender_dependent_default_transport_maps parameter
13343setting for address verification probes.  </p>
13344
13345<p> This feature is available in Postfix 2.7 and later.  </p>
13346
13347%PARAM default_filter_nexthop
13348
13349<p> When a content_filter or FILTER request specifies no explicit
13350next-hop destination, use $default_filter_nexthop instead; when
13351that value is empty, use the domain in the recipient address.
13352Specify "default_filter_nexthop = $myhostname" for compatibility
13353with Postfix version 2.6 and earlier, or specify an explicit next-hop
13354destination with each content_filter value or FILTER action. </p>
13355
13356<p> This feature is available in Postfix 2.7 and later.  </p>
13357
13358%PARAM smtp_address_preference any
13359
13360<p> The address type ("ipv6", "ipv4" or "any") that the Postfix
13361SMTP client will try first, when a destination has IPv6 and IPv4
13362addresses with equal MX preference. This feature has no effect
13363unless the inet_protocols setting enables both IPv4 and IPv6.
13364With Postfix 2.8 the default is "ipv6".  </p>
13365
13366<p> This feature is available in Postfix 2.8 and later.  </p>
13367
13368%PARAM lmtp_address_preference ipv6
13369
13370<p> The LMTP-specific version of the smtp_address_preference
13371configuration parameter.  See there for details. </p>
13372
13373<p> This feature is available in Postfix 2.8 and later.  </p>
13374
13375%PARAM smtp_dns_resolver_options
13376
13377<p> DNS Resolver options for the Postfix SMTP client.  Specify zero
13378or more of the following options, separated by comma or whitespace.
13379Option names are case-sensitive. Some options refer to domain names
13380that are specified in the file /etc/resolv.conf or equivalent. </p>
13381
13382<dl>
13383
13384<dt><b>res_defnames</b></dt>
13385
13386<dd> Append the current domain name to single-component names (those
13387that do not contain a "." character). This can produce incorrect
13388results, and is the hard-coded behavior prior to Postfix 2.8. </dd>
13389
13390<dt><b>res_dnsrch</b></dt>
13391
13392<dd> Search for host names in the current domain and in parent
13393domains. This can produce incorrect results and is therefore not
13394recommended. </dd>
13395
13396</dl>
13397
13398<p> This feature is available in Postfix 2.8 and later.  </p>
13399
13400%PARAM lmtp_dns_resolver_options
13401
13402<p> The LMTP-specific version of the smtp_dns_resolver_options
13403configuration parameter.  See there for details. </p>
13404
13405<p> This feature is available in Postfix 2.8 and later.  </p>
13406
13407%PARAM postscreen_dnsbl_threshold 1
13408
13409<p> The inclusive lower bound for blocking a remote SMTP client, based on
13410its combined DNSBL score as defined with the postscreen_dnsbl_sites
13411parameter. </p>
13412
13413<p> This feature is available in Postfix 2.8.  </p>
13414
13415%PARAM postscreen_command_count_limit 20
13416
13417<p> The limit on the total number of commands per SMTP session for
13418postscreen(8)'s built-in SMTP protocol engine.  This SMTP engine
13419defers or rejects all attempts to deliver mail, therefore there is
13420no need to enforce separate limits on the number of junk commands
13421and error commands.  </p>
13422
13423<p> This feature is available in Postfix 2.8.  </p>
13424
13425%PARAM postscreen_command_time_limit ${stress?10}${stress:300}s
13426
13427<p> The time limit to read an entire command line with postscreen(8)'s
13428built-in SMTP protocol engine. </p>
13429
13430<p> This feature is available in Postfix 2.8.  </p>
13431
13432%PARAM postscreen_dnsbl_ttl 1h
13433
13434<p> The amount of time that postscreen(8) will use the result from
13435a successful DNS blocklist test. During this time, the client IP address
13436is excluded from this test. The default is relatively short, because a
13437good client can immediately talk to a real Postfix SMTP server.
13438</p>
13439
13440<p> Specify a non-zero time value (an integral value plus an optional
13441one-letter suffix that specifies the time unit).  Time units: s
13442(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
13443
13444<p> This feature is available in Postfix 2.8.  </p>
13445
13446%PARAM postscreen_pipelining_action enforce
13447
13448<p> The action that postscreen(8) takes when a remote SMTP client
13449sends
13450multiple commands instead of sending one command and waiting for
13451the server to respond.  Specify one of the following: </p>
13452
13453<dl>
13454
13455<dt> <b>ignore</b> </dt>
13456
13457<dd> Ignore the failure of this test. Allow other tests to complete.
13458Do <i>not</i> repeat this test before some the result from some
13459other test expires.
13460This option is useful for testing and collecting statistics
13461without blocking mail permanently. </dd>
13462
13463<dt> <b>enforce</b> </dt>
13464
13465<dd> Allow other tests to complete. Reject attempts to deliver mail
13466with a 550 SMTP reply, and log the helo/sender/recipient information.
13467Repeat this test the next time the client connects. </dd>
13468
13469<dt> <b>drop</b> </dt>
13470
13471<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
13472this test the next time the client connects. </dd>
13473
13474</dl>
13475
13476<p> This feature is available in Postfix 2.8. </p>
13477
13478%PARAM postscreen_pipelining_ttl 30d
13479
13480<p> The amount of time that postscreen(8) will use the result from
13481a successful "pipelining" SMTP protocol test. During this time, the
13482client IP address is excluded from this test. The default is
13483long because a good client must disconnect after it passes the test,
13484before it can talk to a real Postfix SMTP server. </p>
13485
13486<p> Specify a non-zero time value (an integral value plus an optional
13487one-letter suffix that specifies the time unit).  Time units: s
13488(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
13489
13490<p> This feature is available in Postfix 2.8.  </p>
13491
13492%PARAM postscreen_pipelining_enable no
13493
13494<p> Enable "pipelining" SMTP protocol tests in the postscreen(8)
13495server. These tests are expensive: a good client must disconnect
13496after it passes the test, before it can talk to a real Postfix SMTP
13497server. </p>
13498
13499<p> This feature is available in Postfix 2.8.  </p>
13500
13501%PARAM postscreen_watchdog_timeout 10s
13502
13503<p> How much time a postscreen(8) process may take to respond to
13504a remote SMTP client command or to perform a cache operation before it
13505is terminated by a built-in watchdog timer.  This is a safety
13506mechanism that prevents postscreen(8) from becoming non-responsive
13507due to a bug in Postfix itself or in system software.  To avoid
13508false alarms and unnecessary cache corruption this limit cannot be
13509set under 10s.  </p>
13510
13511<p> Specify a non-zero time value (an integral value plus an optional
13512one-letter suffix that specifies the time unit).  Time units: s
13513(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
13514
13515<p> This feature is available in Postfix 2.8.  </p>
13516
13517%PARAM postscreen_helo_required $smtpd_helo_required
13518
13519<p> Require that a remote SMTP client sends HELO or EHLO before
13520commencing a MAIL transaction. </p>
13521
13522<p> This feature is available in Postfix 2.8.  </p>
13523
13524%PARAM postscreen_forbidden_commands $smtpd_forbidden_commands
13525
13526<p> List of commands that the postscreen(8) server considers in
13527violation of the SMTP protocol. See smtpd_forbidden_commands for
13528syntax, and postscreen_non_smtp_command_action for possible actions.
13529</p>
13530
13531<p> This feature is available in Postfix 2.8.  </p>
13532
13533%PARAM postscreen_disable_vrfy_command $disable_vrfy_command
13534
13535<p> Disable the SMTP VRFY command in the postscreen(8) daemon.  See
13536disable_vrfy_command for details.  </p>
13537
13538<p> This feature is available in Postfix 2.8.  </p>
13539
13540%PARAM postscreen_non_smtp_command_action drop
13541
13542<p> The action that postscreen(8) takes when a remote SMTP client sends
13543non-SMTP commands as specified with the postscreen_forbidden_commands
13544parameter.  Specify one of the following: </p>
13545
13546<dl>
13547
13548<dt> <b>ignore</b> </dt>
13549
13550<dd> Ignore the failure of this test. Allow other tests to complete.
13551Do <i>not</i> repeat this test before some the result from some
13552other test expires.
13553This option is useful for testing and collecting statistics
13554without blocking mail permanently. </dd>
13555
13556<dt> <b>enforce</b> </dt>
13557
13558<dd> Allow other tests to complete. Reject attempts to deliver mail
13559with a 550 SMTP reply, and log the helo/sender/recipient information.
13560Repeat this test the next time the client connects. </dd>
13561
13562<dt> <b>drop</b> </dt>
13563
13564<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
13565this test the next time the client connects. This action is the
13566same as with the Postfix SMTP server's smtpd_forbidden_commands
13567feature.  </dd>
13568
13569</dl>
13570
13571<p> This feature is available in Postfix 2.8. </p>
13572
13573%PARAM postscreen_non_smtp_command_ttl 30d
13574
13575<p> The amount of time that postscreen(8) will use the result from
13576a successful "non_smtp_command" SMTP protocol test. During this
13577time, the client IP address is excluded from this test. The default
13578is long because a client must disconnect after it passes the test,
13579before it can talk to a real Postfix SMTP server. </p>
13580
13581<p> Specify a non-zero time value (an integral value plus an optional
13582one-letter suffix that specifies the time unit).  Time units: s
13583(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
13584
13585<p> This feature is available in Postfix 2.8.  </p>
13586
13587%PARAM postscreen_non_smtp_command_enable no
13588
13589<p> Enable "non-SMTP command" tests in the postscreen(8) server. These
13590tests are expensive: a client must disconnect after it passes the
13591test, before it can talk to a real Postfix SMTP server. </p>
13592
13593<p> This feature is available in Postfix 2.8.  </p>
13594
13595%PARAM postscreen_dnsbl_reply_map
13596
13597<p> A mapping from actual DNSBL domain name which includes a secret
13598password, to the DNSBL domain name that postscreen will reply with
13599when it rejects mail.  When no mapping is found, the actual DNSBL
13600domain will be used. </p>
13601
13602<p> For maximal stability it is best to use a file that is read
13603into memory such as pcre:, regexp: or texthash: (texthash: is similar
13604to hash:, except a) there is no need to run postmap(1) before the
13605file can be used, and b) texthash: does not detect changes after
13606the file is read). </p>
13607
13608<p> Example: </p>
13609
13610<pre>
13611/etc/postfix/main.cf:
13612    postscreen_dnsbl_reply_map = texthash:/etc/postfix/dnsbl_reply
13613</pre>
13614
13615<pre>
13616/etc/postfix/dnsbl_reply:
13617   secret.zen.spamhaus.org	zen.spamhaus.org
13618</pre>
13619
13620<p> This feature is available in Postfix 2.8.  </p>
13621
13622%PARAM postscreen_bare_newline_action ignore
13623
13624<p> The action that postscreen(8) takes when a remote SMTP client sends
13625a bare newline character, that is, a newline not preceded by carriage
13626return.  Specify one of the following: </p>
13627
13628<dl>
13629
13630<dt> <b>ignore</b> </dt>
13631
13632<dd> Ignore the failure of this test. Allow other tests to complete.
13633Do <i>not</i> repeat this test before some the result from some
13634other test expires.
13635This option is useful for testing and collecting statistics
13636without blocking mail permanently. </dd>
13637
13638<dt> <b>enforce</b> </dt>
13639
13640<dd> Allow other tests to complete. Reject attempts to deliver mail
13641with a 550 SMTP reply, and log the helo/sender/recipient information.
13642Repeat this test the next time the client connects. </dd>
13643
13644<dt> <b>drop</b> </dt>
13645
13646<dd> Drop the connection immediately with a 521 SMTP reply. Repeat
13647this test the next time the client connects.  </dd>
13648
13649</dl>
13650
13651<p> This feature is available in Postfix 2.8. </p>
13652
13653%PARAM postscreen_bare_newline_ttl 30d
13654
13655<p> The amount of time that postscreen(8) will use the result from
13656a successful "bare newline" SMTP protocol test. During this
13657time, the client IP address is excluded from this test. The default
13658is long because a remote SMTP client must disconnect after it passes
13659the test,
13660before it can talk to a real Postfix SMTP server. </p>
13661
13662<p> Specify a non-zero time value (an integral value plus an optional
13663one-letter suffix that specifies the time unit).  Time units: s
13664(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
13665
13666<p> This feature is available in Postfix 2.8.  </p>
13667
13668%PARAM postscreen_bare_newline_enable no
13669
13670<p> Enable "bare newline" SMTP protocol tests in the postscreen(8)
13671server. These tests are expensive: a remote SMTP client must
13672disconnect after
13673it passes the test, before it can talk to a real Postfix SMTP server.
13674</p>
13675
13676<p> This feature is available in Postfix 2.8.  </p>
13677
13678%PARAM postscreen_client_connection_count_limit $smtpd_client_connection_count_limit
13679
13680<p> How many simultaneous connections any remote SMTP client is
13681allowed to have
13682with the postscreen(8) daemon. By default, this limit is the same
13683as with the Postfix SMTP server. Note that the triage process can
13684take several seconds, with the time spent in postscreen_greet_wait
13685delay, and with the time spent talking to the postscreen(8) built-in
13686dummy SMTP protocol engine. </p>
13687
13688<p> This feature is available in Postfix 2.8.  </p>
13689
13690%PARAM dnsblog_reply_delay 0s
13691
13692<p> A debugging aid to artifically delay DNS responses. </p>
13693
13694<p> This feature is available in Postfix 2.8.  </p>
13695
13696%PARAM reset_owner_alias no
13697
13698<p> Reset the local(8) delivery agent's idea of the owner-alias
13699attribute, when delivering mail to a child alias that does not have
13700its own owner alias. </p>
13701
13702<p> This feature is available in Postfix 2.8 and later. With older
13703Postfix releases, the behavior is as if this parameter is set to
13704"yes". </p>
13705
13706<p> As documented in aliases(5), when an alias <i>name</i> has a
13707companion alias named owner-<i>name</i>, delivery errors will be
13708reported to the owner alias instead of the sender. This configuration
13709is recommended for mailing lists. <p>
13710
13711<p> A less known property of the owner alias is that it also forces
13712the local(8) delivery agent to write local and remote addresses
13713from alias expansion to a new queue file, instead of attempting to
13714deliver mail to local addresses as soon as they come out of alias
13715expansion.  </p>
13716
13717<p> Writing local addresses from alias expansion to a new queue
13718file allows for robust handling of temporary delivery errors: errors
13719with one local member have no effect on deliveries to other members
13720of the list.  On the other hand, delivery to local addresses as
13721soon as they come out of alias expansion is fragile: a temporary
13722error with one local address from alias expansion will cause the
13723entire alias to be expanded repeatedly until the error goes away,
13724or until the message expires in the queue.  In that case, a problem
13725with one list member results in multiple message deliveries to other
13726list members. </p>
13727
13728<p> The default behavior of Postfix 2.8 and later is to keep the
13729owner-alias attribute of the parent alias, when delivering mail to
13730a child alias that does not have its own owner alias. Then, local
13731addresses from that child alias will be written to a new queue file,
13732and a temporary error with one local address will not affect delivery
13733to other mailing list members. </p>
13734
13735<p> Unfortunately, older Postfix releases reset the owner-alias
13736attribute when delivering mail to a child alias that does not have
13737its own owner alias.  The local(8) delivery agent then attempts to
13738deliver local addresses as soon as they come out of child alias
13739expansion.  If delivery to any address from child alias expansion
13740fails with a temporary error condition, the entire mailing list may
13741be expanded repeatedly until the mail expires in the queue, resulting
13742in multiple deliveries of the same message to mailing list members.
13743</p>
13744
13745%PARAM qmgr_ipc_timeout 60s
13746
13747<p> The time limit for the queue manager to send or receive information
13748over an internal communication channel.  The purpose is to break
13749out of deadlock situations. If the time limit is exceeded the
13750software either retries or aborts the operation. </p>
13751
13752<p>
13753Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
13754The default time unit is s (seconds).
13755</p>
13756
13757<p> This feature is available in Postfix 2.8 and later.  </p>
13758
13759%PARAM qmgr_daemon_timeout 1000s
13760
13761<p> How much time a Postfix queue manager process may take to handle
13762a request before it is terminated by a built-in watchdog timer.
13763</p>
13764
13765<p>
13766Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
13767The default time unit is s (seconds).
13768</p>
13769
13770<p> This feature is available in Postfix 2.8 and later.  </p>
13771
13772%PARAM tls_preempt_cipherlist no
13773
13774<p> With SSLv3 and later, use the Postfix SMTP server's cipher
13775preference order instead of the remote client's cipher preference
13776order. </p>
13777
13778<p> By default, the OpenSSL server selects the client's most preferred
13779cipher that the server supports. With SSLv3 and later, the server may
13780choose its own most preferred cipher that is supported (offered) by
13781the client. Setting "tls_preempt_cipherlist = yes" enables server cipher
13782preferences. </p>
13783
13784<p> While server cipher selection may in some cases lead to a more secure
13785or performant cipher choice, there is some risk of interoperability
13786issues. In the past, some SSL clients have listed lower priority ciphers
13787that they did not implement correctly. If the server chooses a cipher
13788that the client prefers less, it may select a cipher whose client
13789implementation is flawed. </p>
13790
13791<p> This feature is available in Postfix 2.8 and later, in combination
13792with OpenSSL 0.9.7 and later. </p>
13793
13794%PARAM tls_disable_workarounds see "postconf -d" output
13795
13796<p> List or bit-mask of OpenSSL bug work-arounds to disable. </p>
13797
13798<p> The OpenSSL toolkit includes a set of work-arounds for buggy SSL/TLS
13799implementations. Applications, such as Postfix, that want to maximize
13800interoperability ask the OpenSSL library to enable the full set of
13801recommended work-arounds. </p>
13802
13803<p> From time to time, it is discovered that a work-around creates a
13804security issue, and should no longer be used. If upgrading OpenSSL
13805to a fixed version is not an option or an upgrade is not available
13806in a timely manner, or in closed environments where no buggy clients
13807or servers exist, it may be appropriate to disable some or all of the
13808OpenSSL interoperability work-arounds. This parameter specifies which
13809bug work-arounds to disable. </p>
13810
13811<p> If the value of the parameter is a hexadecimal long integer starting
13812with "0x", the bug work-arounds corresponding to the bits specified in
13813its value are removed from the <b>SSL_OP_ALL</b> work-around bit-mask
13814(see openssl/ssl.h and SSL_CTX_set_options(3)). You can specify more
13815bits than are present in SSL_OP_ALL, excess bits are ignored. Specifying
138160xFFFFFFFF disables all bug-workarounds on a 32-bit system. This should
13817also be sufficient on 64-bit systems, until OpenSSL abandons support
13818for 32-bit systems and starts using the high 32 bits of a 64-bit
13819bug-workaround mask. </p>
13820
13821<p> Otherwise, the parameter is a white-space or comma separated list
13822of specific named bug work-arounds chosen from the list below. It
13823is possible that your OpenSSL version includes new bug work-arounds
13824added after your Postfix source code was last updated, in that case
13825you can only disable one of these via the hexadecimal syntax above. </p>
13826
13827<dl>
13828
13829<dt><b>MICROSOFT_SESS_ID_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
13830
13831<dt><b>NETSCAPE_CHALLENGE_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
13832
13833<dt><b>LEGACY_SERVER_CONNECT</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
13834
13835<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b></dt> <dd> also aliased
13836as <b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by
13837default with OpenSSL versions that may predate the fix. Fixed in
13838OpenSSL 0.9.8q and OpenSSL 1.0.0c.</dd>
13839
13840<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b></dt> <dd>See
13841SSL_CTX_set_options(3)</dd>
13842
13843<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b></dt> <dd>See
13844SSL_CTX_set_options(3)</dd>
13845
13846<dt><b>MSIE_SSLV2_RSA_PADDING</b></dt> <dd> also aliased as
13847<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by
13848default with OpenSSL versions that may predate the fix. Fixed in
13849OpenSSL 0.9.7h and OpenSSL 0.9.8a.</dd>
13850
13851<dt><b>SSLEAY_080_CLIENT_DH_BUG</b></dt> <dd>See
13852SSL_CTX_set_options(3)</dd>
13853
13854<dt><b>TLS_D5_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
13855
13856<dt><b>TLS_BLOCK_PADDING_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
13857
13858<dt><b>TLS_ROLLBACK_BUG</b></dt> <dd>See SSL_CTX_set_options(3).
13859This is disabled in OpenSSL 0.9.7 and later. Nobody should still
13860be using 0.9.6! </dd>
13861
13862<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b></dt> <dd>See
13863SSL_CTX_set_options(3)</dd>
13864
13865<dt><b>CRYPTOPRO_TLSEXT_BUG</b></dt> <dd>New with GOST support in
13866OpenSSL 1.0.0.</dd>
13867
13868</dl>
13869
13870<p> This feature is available in Postfix 2.8 and later.  </p>
13871
13872%PARAM tlsproxy_watchdog_timeout 10s
13873
13874<p> How much time a tlsproxy(8) process may take to process local
13875or remote I/O before it is terminated by a built-in watchdog timer.
13876This is a safety mechanism that prevents tlsproxy(8) from becoming
13877non-responsive due to a bug in Postfix itself or in system software.
13878To avoid false alarms and unnecessary cache corruption this limit
13879cannot be set under 10s.  </p>
13880
13881<p> Specify a non-zero time value (an integral value plus an optional
13882one-letter suffix that specifies the time unit).  Time units: s
13883(seconds), m (minutes), h (hours), d (days), w (weeks).  </p>
13884
13885<p> This feature is available in Postfix 2.8.  </p>
13886
13887%PARAM postscreen_discard_ehlo_keywords $smtpd_discard_ehlo_keywords
13888
13889<p> A case insensitive list of EHLO keywords (pipelining, starttls,
13890auth, etc.) that the postscreen(8) server will not send in the EHLO
13891response to a remote SMTP client. See smtpd_discard_ehlo_keywords
13892for details. </p>
13893
13894<p> This feature is available in Postfix 2.8 and later. </p>
13895
13896%PARAM postscreen_discard_ehlo_keyword_address_maps $smtpd_discard_ehlo_keyword_address_maps
13897
13898<p> Lookup tables, indexed by the remote SMTP client address, with
13899case insensitive lists of EHLO keywords (pipelining, starttls, auth,
13900etc.) that the postscreen(8) server will not send in the EHLO response
13901to a remote SMTP client. See smtpd_discard_ehlo_keywords for details.
13902The table is not searched by hostname for robustness reasons.  </p>
13903
13904<p> This feature is available in Postfix 2.8 and later. </p>
13905
13906%PARAM postscreen_use_tls $smtpd_use_tls
13907
13908<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
13909but do not require that clients use TLS encryption. </p>
13910
13911<p> This feature is available in Postfix 2.8 and later.
13912Preferably, use postscreen_tls_security_level instead. </p>
13913
13914%PARAM postscreen_enforce_tls $smtpd_enforce_tls
13915
13916<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
13917require that clients use TLS encryption.  See smtpd_postscreen_enforce_tls
13918for details.  </p>
13919
13920<p> This feature is available in Postfix 2.8 and later.
13921Preferably, use postscreen_tls_security_level instead. </p>
13922
13923%PARAM postscreen_tls_security_level $smtpd_tls_security_level
13924
13925<p> The SMTP TLS security level for the postscreen(8) server; when
13926a non-empty value is specified, this overrides the obsolete parameters
13927postscreen_use_tls and postscreen_enforce_tls. See smtpd_tls_security_level
13928for details. </p>
13929
13930<p> This feature is available in Postfix 2.8 and later. </p>
13931
13932%PARAM tlsproxy_enforce_tls $smtpd_enforce_tls
13933
13934<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
13935require that clients use TLS encryption. See smtpd_enforce_tls for
13936further details. </p>
13937
13938<p> This feature is available in Postfix 2.8 and later. </p>
13939
13940%PARAM tlsproxy_tls_CAfile $smtpd_tls_CAfile
13941
13942<p> A file containing (PEM format) CA certificates of root CAs
13943trusted to sign either remote SMTP client certificates or intermediate
13944CA certificates.  See smtpd_tls_CAfile for further details. </p>
13945
13946<p> This feature is available in Postfix 2.8 and later. </p>
13947
13948%PARAM tlsproxy_tls_CApath $smtpd_tls_CApath
13949
13950<p> A directory containing (PEM format) CA certificates of root CAs
13951trusted to sign either remote SMTP client certificates or intermediate
13952CA certificates. See smtpd_tls_CApath for further details. </p>
13953
13954<p> This feature is available in Postfix 2.8 and later. </p>
13955
13956%PARAM tlsproxy_tls_always_issue_session_ids $smtpd_tls_always_issue_session_ids
13957
13958<p> Force the Postfix tlsproxy(8) server to issue a TLS session id,
13959even when TLS session caching is turned off. See
13960smtpd_tls_always_issue_session_ids for further details. </p>
13961
13962<p> This feature is available in Postfix 2.8 and later. </p>
13963
13964%PARAM tlsproxy_tls_ask_ccert $smtpd_tls_ask_ccert
13965
13966<p> Ask a remote SMTP client for a client certificate. See
13967smtpd_tls_ask_ccert for further details. </p>
13968
13969<p> This feature is available in Postfix 2.8 and later. </p>
13970
13971%PARAM tlsproxy_tls_ccert_verifydepth $smtpd_tls_ccert_verifydepth
13972
13973<p> The verification depth for remote SMTP client certificates. A
13974depth of 1 is sufficient if the issuing CA is listed in a local CA
13975file. See smtpd_tls_ccert_verifydepth for further details. </p>
13976
13977<p> This feature is available in Postfix 2.8 and later. </p>
13978
13979%PARAM tlsproxy_tls_cert_file $smtpd_tls_cert_file
13980
13981<p> File with the Postfix tlsproxy(8) server RSA certificate in PEM
13982format.  This file may also contain the Postfix tlsproxy(8) server
13983private RSA key.  See smtpd_tls_cert_file for further details.  </p>
13984
13985<p> This feature is available in Postfix 2.8 and later. </p>
13986
13987%PARAM tlsproxy_tls_ciphers $smtpd_tls_ciphers
13988
13989<p> The minimum TLS cipher grade that the Postfix tlsproxy(8) server
13990will use with opportunistic TLS encryption. See smtpd_tls_ciphers
13991for further details. </p>
13992
13993<p> This feature is available in Postfix 2.8 and later. </p>
13994
13995%PARAM tlsproxy_tls_dcert_file $smtpd_tls_dcert_file
13996
13997<p> File with the Postfix tlsproxy(8) server DSA certificate in PEM
13998format.  This file may also contain the Postfix tlsproxy(8) server
13999private DSA key.  See smtpd_tls_dcert_file for further details.
14000</p>
14001
14002<p> This feature is available in Postfix 2.8 and later. </p>
14003
14004%PARAM tlsproxy_tls_dh1024_param_file $smtpd_tls_dh1024_param_file
14005
14006<p> File with DH parameters that the Postfix tlsproxy(8) server
14007should use with EDH ciphers. See smtpd_tls_dh1024_param_file for
14008further details. </p>
14009
14010<p> This feature is available in Postfix 2.8 and later. </p>
14011
14012%PARAM tlsproxy_tls_dh512_param_file $smtpd_tls_dh512_param_file
14013
14014<p> File with DH parameters that the Postfix tlsproxy(8) server
14015should use with EDH ciphers. See smtpd_tls_dh512_param_file for
14016further details.  </p>
14017
14018<p> This feature is available in Postfix 2.8 and later. </p>
14019
14020%PARAM tlsproxy_tls_dkey_file $smtpd_tls_dkey_file
14021
14022<p> File with the Postfix tlsproxy(8) server DSA private key in PEM
14023format.  This file may be combined with the Postfix tlsproxy(8)
14024server DSA certificate file specified with $smtpd_tls_dcert_file.
14025See smtpd_tls_dkey_file for further details. </p>
14026
14027<p> This feature is available in Postfix 2.8 and later. </p>
14028
14029%PARAM tlsproxy_tls_eccert_file $smtpd_tls_eccert_file
14030
14031<p> File with the Postfix tlsproxy(8) server ECDSA certificate in
14032PEM format.  This file may also contain the Postfix tlsproxy(8)
14033server private ECDSA key.  See smtpd_tls_eccert_file for further
14034details. </p>
14035
14036<p> This feature is available in Postfix 2.8 and later. </p>
14037
14038%PARAM tlsproxy_tls_eckey_file $smtpd_tls_eckey_file
14039
14040<p> File with the Postfix tlsproxy(8) server ECDSA private key in
14041PEM format.  This file may be combined with the Postfix tlsproxy(8)
14042server ECDSA certificate file specified with $smtpd_tls_eccert_file.
14043See smtpd_tls_eckey_file for further details. </p>
14044
14045<p> This feature is available in Postfix 2.8 and later. </p>
14046
14047%PARAM tlsproxy_tls_eecdh_grade $smtpd_tls_eecdh_grade
14048
14049<p> The Postfix tlsproxy(8) server security grade for ephemeral
14050elliptic-curve Diffie-Hellman (EECDH) key exchange. See
14051smtpd_tls_eecdh_grade for further details. </p>
14052
14053<p> This feature is available in Postfix 2.8 and later. </p>
14054
14055%PARAM tlsproxy_tls_exclude_ciphers $smtpd_tls_exclude_ciphers
14056
14057<p> List of ciphers or cipher types to exclude from the tlsproxy(8)
14058server cipher list at all TLS security levels. See
14059smtpd_tls_exclude_ciphers for further details. </p>
14060
14061<p> This feature is available in Postfix 2.8 and later. </p>
14062
14063%PARAM tlsproxy_tls_fingerprint_digest $smtpd_tls_fingerprint_digest
14064
14065<p> The message digest algorithm to construct remote SMTP
14066client-certificate
14067fingerprints. See smtpd_tls_fingerprint_digest for further details.
14068</p>
14069
14070<p> This feature is available in Postfix 2.8 and later. </p>
14071
14072%PARAM tlsproxy_tls_key_file $smtpd_tls_key_file
14073
14074<p> File with the Postfix tlsproxy(8) server RSA private key in PEM
14075format.  This file may be combined with the Postfix tlsproxy(8)
14076server RSA certificate file specified with $smtpd_tls_cert_file.
14077See smtpd_tls_key_file for further details. </p>
14078
14079<p> This feature is available in Postfix 2.8 and later. </p>
14080
14081%PARAM tlsproxy_tls_loglevel $smtpd_tls_loglevel
14082
14083<p> Enable additional Postfix tlsproxy(8) server logging of TLS
14084activity.  Each logging level also includes the information that
14085is logged at a lower logging level. See smtpd_tls_loglevel for
14086further details.  </p>
14087
14088<p> This feature is available in Postfix 2.8 and later. </p>
14089
14090%PARAM tlsproxy_tls_mandatory_ciphers $smtpd_tls_mandatory_ciphers
14091
14092<p> The minimum TLS cipher grade that the Postfix tlsproxy(8) server
14093will use with mandatory TLS encryption. See smtpd_tls_mandatory_ciphers
14094for further details. </p>
14095
14096<p> This feature is available in Postfix 2.8 and later. </p>
14097
14098%PARAM tlsproxy_tls_mandatory_exclude_ciphers $smtpd_tls_mandatory_exclude_ciphers
14099
14100<p> Additional list of ciphers or cipher types to exclude from the
14101tlsproxy(8) server cipher list at mandatory TLS security levels.
14102See smtpd_tls_mandatory_exclude_ciphers for further details. </p>
14103
14104<p> This feature is available in Postfix 2.8 and later. </p>
14105
14106%PARAM tlsproxy_tls_mandatory_protocols $smtpd_tls_mandatory_protocols
14107
14108<p> The SSL/TLS protocols accepted by the Postfix tlsproxy(8) server
14109with mandatory TLS encryption. If the list is empty, the server
14110supports all available SSL/TLS protocol versions.  See
14111smtpd_tls_mandatory_protocols for further details. </p>
14112
14113<p> This feature is available in Postfix 2.8 and later. </p>
14114
14115%PARAM tlsproxy_tls_protocols $smtpd_tls_protocols
14116
14117<p> List of TLS protocols that the Postfix tlsproxy(8) server will
14118exclude or include with opportunistic TLS encryption. See
14119smtpd_tls_protocols for further details. </p>
14120
14121<p> This feature is available in Postfix 2.8 and later. </p>
14122
14123%PARAM tlsproxy_tls_req_ccert $smtpd_tls_req_ccert
14124
14125<p> With mandatory TLS encryption, require a trusted remote SMTP
14126client certificate in order to allow TLS connections to proceed.
14127See smtpd_tls_req_ccert for further details. </p>
14128
14129<p> This feature is available in Postfix 2.8 and later. </p>
14130
14131%PARAM tlsproxy_tls_security_level $smtpd_tls_security_level
14132
14133<p> The SMTP TLS security level for the Postfix tlsproxy(8) server;
14134when a non-empty value is specified, this overrides the obsolete
14135parameters smtpd_use_tls and smtpd_enforce_tls. See
14136smtpd_tls_security_level for further details. </p>
14137
14138<p> This feature is available in Postfix 2.8 and later. </p>
14139
14140%PARAM tlsproxy_tls_session_cache_timeout $smtpd_tls_session_cache_timeout
14141
14142<p> The expiration time of Postfix tlsproxy(8) server TLS session
14143cache information. A cache cleanup is performed periodically every
14144$smtpd_tls_session_cache_timeout seconds. See
14145smtpd_tls_session_cache_timeout for further details. </p>
14146
14147<p> This feature is available in Postfix 2.8 and later. </p>
14148
14149%PARAM tlsproxy_use_tls $smtpd_use_tls
14150
14151<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
14152but do not require that clients use TLS encryption. See smtpd_use_tls
14153for further details. </p>
14154
14155<p> This feature is available in Postfix 2.8 and later. </p>
14156
14157%PARAM smtpd_reject_footer
14158
14159<p> Optional information that is appended after each Postfix SMTP
14160server
141614XX or 5XX response. </p>
14162
14163<p> Example: </p>
14164
14165<pre>
14166/etc/postfix/main.cf:
14167    smtpd_reject_footer = For assistance, call 800-555-0101.
14168     Please provide the following information in your problem report:
14169     time ($localtime), client ($client_address) and server
14170     ($server_name).
14171</pre>
14172
14173<p> Server response: </p>
14174
14175<pre>
14176    550-5.5.1 &lt;user@example&gt; Recipient address rejected: User unknown
14177    550 5.5.1 For assistance, call 800-555-0101. Please provide the
14178    following information in your problem report: time (Jan 4 15:42:00),
14179    client (192.168.1.248) and server (mail1.example.com).
14180</pre>
14181
14182<p> Note: the above text is meant to make it easier to find the
14183Postfix logfile records for a failed SMTP session. The text itself
14184is not logged to the Postfix SMTP server's maillog file. </p>
14185
14186<p> Be sure to keep the text as short as possible. Long text may
14187be truncated before it is logged to the remote SMTP client's maillog
14188file, or before it is returned to the sender in a delivery status
14189notification.  </p>
14190
14191<p> This feature supports a limited number of $name attributes in
14192the footer text. These are replaced by their current value for the
14193SMTP session: </p>
14194
14195<dl>
14196
14197<dt> <b>client_address</b> </dt> <dd> The Client IP address that
14198is logged in the maillog file. </dd>
14199
14200<dt> <b>client_port</b> </dt> <dd> The client TCP port that is
14201logged in the maillog file. </dd>
14202
14203<dt> <b>localtime</b> </dt> <dd> The server local time (Mmm dd
14204hh:mm:ss) that is logged in the maillog file. </dd>
14205
14206<dt> <b>server_name</b> </dt> <dd> The server's myhostname value.
14207This attribute is made available for sites with multiple MTAs
14208(perhaps behind a load-balancer), where the server name can help
14209the server support team to quickly find the right log files.  </dd>
14210
14211</dl>
14212
14213<p> Notes: </p>
14214
14215<ul>
14216
14217<li> <p> NOT SUPPORTED are other attributes such as sender, recipient,
14218or main.cf parameters.  </p>
14219
14220<li> <p> For safety reasons, text that does not match
14221$smtpd_expansion_filter is censored. </p>
14222
14223</ul>
14224
14225<p> This feature supports the two-character sequence \n as a request
14226for a line break in the footer text. Postfix automatically inserts
14227after each line break the three-digit SMTP reply code (and optional
14228enhanced status code) from the original Postfix reject message.
14229</p>
14230
14231<p> This feature is available in Postfix 2.8 and later. </p>
14232
14233%PARAM postscreen_expansion_filter see "postconf -d" output
14234
14235<p> List of characters that are permitted in postscreen_reject_footer
14236attribute expansions.  See smtpd_expansion_filter for further
14237details. </p>
14238
14239<p> This feature is available in Postfix 2.8 and later. </p>
14240
14241%PARAM postscreen_reject_footer $smtpd_reject_footer
14242
14243<p> Optional information that is appended after a 4XX or 5XX
14244postscreen(8) server
14245response. See smtpd_reject_footer for further details.  </p>
14246
14247<p> This feature is available in Postfix 2.8 and later. </p>
14248
14249%PARAM postscreen_command_filter $smtpd_command_filter
14250
14251<p> A mechanism to transform commands from remote SMTP clients.
14252See smtpd_command_filter for further details. </p>
14253
14254<p> This feature is available in Postfix 2.8 and later. </p>
14255
14256%PARAM dnsblog_service_name dnsblog
14257
14258<p> The name of the dnsblog(8) service entry in master.cf. This
14259service performs DNS white/blacklist lookups. </p>
14260
14261<p> This feature is available in Postfix 2.8 and later. </p>
14262
14263%PARAM tlsproxy_service_name tlsproxy
14264
14265<p> The name of the tlsproxy(8) service entry in master.cf. This
14266service performs plaintext &lt;=&gt; TLS ciphertext conversion. <p>
14267
14268<p> This feature is available in Postfix 2.8 and later. </p>
14269
14270%PARAM smtpd_per_record_deadline normal: no, overload: yes
14271
14272<p> Change the behavior of the smtpd_timeout time limit, from a
14273time limit per read or write system call, to a time limit to send
14274or receive a complete record (an SMTP command line, SMTP response
14275line, SMTP message content line, or TLS protocol message).  This
14276limits the impact from hostile peers that trickle data one byte at
14277a time.  </p>
14278
14279<p> Note: when per-record deadlines are enabled, a short timeout
14280may cause problems with TLS over very slow network connections.
14281The reasons are that a TLS protocol message can be up to 16 kbytes
14282long (with TLSv1), and that an entire TLS protocol message must be
14283sent or received within the per-record deadline.  </p>
14284
14285<p> This feature is available in Postfix 2.9 and later. With older
14286Postfix releases, the behavior is as if this parameter is set to
14287"no". </p>
14288
14289%PARAM smtp_per_record_deadline no
14290
14291<p> Change the behavior of the smtp_*_timeout time limits, from a
14292time limit per read or write system call, to a time limit to send
14293or receive a complete record (an SMTP command line, SMTP response
14294line, SMTP message content line, or TLS protocol message).  This
14295limits the impact from hostile peers that trickle data one byte at
14296a time.  </p>
14297
14298<p> Note: when per-record deadlines are enabled, a short timeout
14299may cause problems with TLS over very slow network connections.
14300The reasons are that a TLS protocol message can be up to 16 kbytes
14301long (with TLSv1), and that an entire TLS protocol message must be
14302sent or received within the per-record deadline.  </p>
14303
14304<p> This feature is available in Postfix 2.9 and later. With older
14305Postfix releases, the behavior is as if this parameter is set to
14306"no". </p>
14307
14308%PARAM lmtp_per_record_deadline no
14309
14310<p> The LMTP-specific version of the smtp_per_record_deadline
14311configuration parameter.  See there for details. </p>
14312
14313<p> This feature is available in Postfix 2.9 and later.  </p>
14314
14315%PARAM postscreen_whitelist_interfaces static:all
14316
14317<p> A list of local postscreen(8) server IP addresses where a
14318non-whitelisted remote SMTP client can obtain postscreen(8)'s temporary
14319whitelist status. This status is required before the client can
14320talk to a Postfix SMTP server process.  By default, a client can
14321obtain postscreen(8)'s whitelist status on any local postscreen(8)
14322server IP address. </p>
14323
14324<p> When postscreen(8) listens on both primary and backup MX
14325addresses, the postscreen_whitelist_interfaces parameter can be
14326configured to give the temporary whitelist status only when a client
14327connects to a primary MX address. Once a client is whitelisted it
14328can talk to a Postfix SMTP server on any address. Thus, clients
14329that connect only to backup MX addresses will never become whitelisted,
14330and will never be allowed to talk to a Postfix SMTP server process.
14331</p>
14332
14333<p> Example: </p>
14334
14335<pre>
14336/etc/postfix/main.cf:
14337    # Don't whitelist connections to the backup IP address.
14338    postscreen_whitelist_interfaces = !168.100.189.8, static:all
14339</pre>
14340
14341<p> This feature is available in Postfix 2.9 and later.  </p>
14342
14343%PARAM enable_long_queue_ids no
14344
14345<p> Enable long, non-repeating, queue IDs (queue file names).  The
14346benefit of non-repeating names is simpler logfile analysis and
14347easier queue migration (there is no need to run "postsuper" to
14348change queue file names that don't match their message file inode
14349number).  </p>
14350
14351<p> Note: see below for how to prepare long queue file names
14352for migration to Postfix &le; 2.8. </p>
14353
14354<p> Changing the parameter value to "yes" has the following effects:
14355</p>
14356
14357<ul>
14358
14359<li> <p> Existing queue file names are not affected. </p>
14360
14361<li> <p> New queue files are created with names such as 3Pt2mN2VXxznjll.
14362These are encoded in a 52-character alphabet that contains digits
14363(0-9), upper-case letters (B-Z) and lower-case letters (b-z). For
14364safety reasons the vowels (AEIOUaeiou) are excluded from the alphabet.
14365The name format is: 6 or more characters for the time in seconds,
143664 characters for the time in microseconds, the 'z'; the remainder
14367is the file inode number encoded in the first 51 characters of the
1436852-character alphabet.  </p>
14369
14370<li> <p> New messages have a Message-ID header with
14371<i>queueID</i>@<i>myhostname</i>.  </p>
14372
14373<li> <p> The mailq (postqueue -p) output has a wider Queue ID column.
14374The number of whitespace-separated fields is not changed. <p>
14375
14376<li> <p> The hash_queue_depth algorithm uses the first characters
14377of the queue file creation time in microseconds, after conversion
14378into hexadecimal representation. This produces the same queue hashing
14379behavior as if the queue file name was created with "enable_long_queue_ids
14380= no". </p>
14381
14382</ul>
14383
14384<p> Changing the parameter value to "no" has the following effects:
14385</p>
14386
14387<ul>
14388
14389<li> <p> Existing long queue file names are renamed to the short
14390form (while running "postfix reload" or "postsuper").  </p>
14391
14392<li> <p> New queue files are created with names such as C3CD21F3E90
14393from a hexadecimal alphabet that contains digits (0-9) and upper-case
14394letters (A-F). The name format is: 5 characters for the time in
14395microseconds; the remainder is the file inode number. </p>
14396
14397<li> <p> New messages have a Message-ID header with
14398<i>YYYYMMDDHHMMSS.queueid</i>@<i>myhostname</i>, where
14399<i>YYYYMMDDHHMMSS</i> are the year, month, day, hour, minute and
14400second.
14401
14402<li> <p> The mailq (postqueue -p) output has the same format as
14403with Postfix &le; 2.8. <p>
14404
14405<li> <p> The hash_queue_depth algorithm uses the first characters
14406of the queue file name, with the hexadecimal representation of the
14407file creation time in microseconds.  </p>
14408
14409</ul>
14410
14411<p> Before migration to Postfix &le; 2.8, the following commands
14412are required to convert long queue file names into short names: </p>
14413
14414<pre>
14415# postfix stop
14416# postconf enable_long_queue_ids=no
14417# postsuper
14418</pre>
14419
14420<p> Repeat the postsuper command until it reports no more queue file
14421name changes. </p>
14422
14423<p> This feature is available in Postfix 2.9 and later.  </p>
14424
14425%PARAM sendmail_fix_line_endings always
14426
14427<p> Controls how the Postfix sendmail command converts email message
14428line endings from &lt;CR&gt;&lt;LF&gt; into UNIX format (&lt;LF&gt;).
14429</p>
14430
14431<dl>
14432
14433<dt> <b>always</b> </dt> <dd> Always convert message lines ending
14434in &lt;CR&gt;&lt;LF&gt;. This setting is the default with Postfix
144352.9 and later. </dd>
14436
14437<dt> <b>strict</b> </dt> <dd> Convert message lines ending in
14438&lt;CR&gt;&lt;LF&gt; only if the first input line ends in
14439&lt;CR&gt;&lt;LF&gt;. This setting is backwards-compatible with
14440Postfix 2.8 and earlier. </dd>
14441
14442<dt> <b>never</b> </dt> <dd> Never convert message lines ending in
14443&lt;CR&gt;&lt;LF&gt;. This setting exists for completeness only.
14444</dd>
14445
14446</dl>
14447
14448<p> This feature is available in Postfix 2.9 and later. </p>
14449
14450%PARAM smtp_send_dummy_mail_auth no
14451
14452<p> Whether or not to append the "AUTH=&lt;&gt;" option to the MAIL
14453FROM command in SASL-authenticated SMTP sessions. The default is
14454not to send this, to avoid problems with broken remote SMTP servers.
14455Before Postfix 2.9 the behavior is as if "smtp_send_dummy_mail_auth
14456= yes".
14457
14458<p> This feature is available in Postfix 2.9 and later. </p>
14459
14460%PARAM lmtp_send_dummy_mail_auth no
14461
14462<p> The LMTP-specific version of the smtp_send_dummy_mail_auth
14463configuration parameter.  See there for details. </p>
14464
14465<p> This feature is available in Postfix 2.9 and later.  </p>
14466
14467%PARAM address_verify_sender_ttl 0s
14468
14469<p> The time between changes in the time-dependent portion of address
14470verification probe sender addresses. The time-dependent portion is
14471appended to the localpart of the address specified with the
14472address_verify_sender parameter. This feature is ignored when the
14473probe sender addresses is the null sender, i.e. the address_verify_sender
14474value is empty or &lt;&gt;. </p>
14475
14476<p> Historically, the probe sender address was fixed. This has
14477caused such addresses to end up on spammer mailing lists, and has
14478resulted in wasted network and processing resources.  </p>
14479
14480<p> To enable time-dependent probe sender addresses, specify a
14481non-zero time value (an integral value plus an optional one-letter
14482suffix that specifies the time unit).  Specify a value of at least
14483several hours, to avoid problems with senders that use greylisting.
14484Avoid nice TTL values, to make the result less predictable.  Time
14485units are: s (seconds), m (minutes), h (hours), d (days), w (weeks).
14486</p>
14487
14488<p> This feature is available in Postfix 2.9 and later.  </p>
14489
14490%PARAM daemon_table_open_error_is_fatal no
14491
14492<p> How a Postfix daemon process handles errors while opening lookup
14493tables: gradual degradation or immediate termination. </p>
14494
14495<dl>
14496
14497<dt> <b> no </b> (default) </dt> <dd> <p> Gradual degradation: a
14498daemon process logs a message of type "error" and continues execution
14499with reduced functionality. Features that do not depend on the
14500unavailable table will work normally, while features that depend
14501on the table will result in a type "warning" message.  <br> When
14502the notify_classes parameter value contains the "data" class, the
14503Postfix SMTP server and client will report transcripts of sessions
14504with an error because a table is unavailable.  </p> </dd>
14505
14506<dt> <b> yes </b> (historical behavior) </dt> <dd> <p> Immediate
14507termination: a daemon process logs a type "fatal" message and
14508terminates immediately.  This option reduces the number of possible
14509code paths through Postfix, and may therefore be slightly more
14510secure than the default.  </p> </dd>
14511
14512</dl>
14513
14514<p> For the sake of sanity, the number of type "error" messages is
14515limited to 13 over the lifetime of a daemon process. </p>
14516
14517<p> This feature is available in Postfix 2.9 and later.  </p>
14518