1POSTCONF(5) File Formats Manual POSTCONF(5)
2
3
4
6 postconf - Postfix configuration parameters
7
9 postconf parameter ...
10
11 postconf -e "parameter=value" ...
12
14 The Postfix main.cf configuration file specifies parameters that con‐
15 trol the operation of the Postfix mail system. Typically the file con‐
16 tains only a small subset of all parameters; parameters not specified
17 are left at their default values.
18
19 The general format of the main.cf file is as follows:
20
21 • Each logical line has the form "parameter = value". Whitespace
22 around the "=" is ignored, as is whitespace at the end of a log‐
23 ical line.
24
25 • Empty lines and whitespace-only lines are ignored, as are lines
26 whose first non-whitespace character is a `#'.
27
28 • A logical line starts with non-whitespace text. A line that
29 starts with whitespace continues a logical line.
30
31 • A parameter value may refer to other parameters.
32
33 • The expressions "$name" and "${name}" are recursively re‐
34 placed with the value of the named parameter. The parame‐
35 ter name must contain only characters from the set [a-zA-
36 Z0-9_]. An undefined parameter value is replaced with the
37 empty value.
38
39 • The expressions "${name?value}" and "${name?{value}}" are
40 replaced with "value" when "$name" is non-empty. The pa‐
41 rameter name must contain only characters from the set
42 [a-zA-Z0-9_]. These forms are supported with Postfix ver‐
43 sions >= 2.2 and >= 3.0, respectively.
44
45 • The expressions "${name:value}" and "${name:{value}}" are
46 replaced with "value" when "$name" is empty. The parame‐
47 ter name must contain only characters from the set [a-zA-
48 Z0-9_]. These forms are supported with Postfix versions
49 >= 2.2 and >= 3.0, respectively.
50
51 • The expression "${name?{value1}:{value2}}" is replaced
52 with "value1" when "$name" is non-empty, and with
53 "value2" when "$name" is empty. The "{}" is required for
54 "value1", optional for "value2". The parameter name must
55 contain only characters from the set [a-zA-Z0-9_]. This
56 form is supported with Postfix versions >= 3.0.
57
58 • The first item inside "${...}" may be a relational ex‐
59 pression of the form: "{value3} == {value4}". Besides the
60 "==" (equality) operator Postfix supports "!=" (inequal‐
61 ity), "<", "<=", ">=", and ">". The comparison is numeri‐
62 cal when both operands are all digits, otherwise the com‐
63 parison is lexicographical. These forms are supported
64 with Postfix versions >= 3.0.
65
66 • Each "value" is subject to recursive named parameter and
67 relational expression evaluation, except where noted.
68
69 • Whitespace before or after each "{value}" is ignored.
70
71 • Specify "$$" to produce a single "$" character.
72
73 • The legacy form "$(...)" is equivalent to the preferred
74 form "${...}".
75
76 • When the same parameter is defined multiple times, only the last
77 instance is remembered.
78
79 • Otherwise, the order of main.cf parameter definitions does not
80 matter.
81
82 The remainder of this document is a description of all Postfix configu‐
83 ration parameters. Default values are shown after the parameter name in
84 parentheses, and can be looked up with the "postconf -d" command.
85
86 Note: this is not an invitation to make changes to Postfix configura‐
87 tion parameters. Unnecessary changes can impair the operation of the
88 mail system.
89
91 The recipient of undeliverable mail that cannot be returned to the
92 sender. This feature is enabled with the notify_classes parameter.
93
95 The numerical Postfix SMTP server response code for an access(5) map
96 "defer" action, including "defer_if_permit" or "defer_if_reject". Prior
97 to Postfix 2.6, the response is hard-coded as "450".
98
99 Do not change this unless you have a complete understanding of RFC
100 5321.
101
102 This feature is available in Postfix 2.6 and later.
103
105 The numerical Postfix SMTP server response code for an access(5) map
106 "reject" action.
107
108 Do not change this unless you have a complete understanding of RFC
109 5321.
110
112 The amount of time between verify(8) address verification database
113 cleanup runs. This feature requires that the database supports the
114 "delete" and "sequence" operators. Specify a zero interval to disable
115 database cleanup.
116
117 After each database cleanup run, the verify(8) daemon logs the number
118 of entries that were retained and dropped. A cleanup run is logged as
119 "partial" when the daemon terminates early after "postfix reload",
120 "postfix stop", or no requests for $max_idle seconds.
121
122 Specify a non-negative time value (an integral value plus an optional
123 one-letter suffix that specifies the time unit). Time units: s (sec‐
124 onds), m (minutes), h (hours), d (days), w (weeks). The default time
125 unit is h (hours).
126
127 This feature is available in Postfix 2.7.
128
130 Overrides the default_transport parameter setting for address verifica‐
131 tion probes.
132
133 This feature is available in Postfix 2.1 and later.
134
136 Overrides the local_transport parameter setting for address verifica‐
137 tion probes.
138
139 This feature is available in Postfix 2.1 and later.
140
142 Lookup table for persistent address verification status storage. The
143 table is maintained by the verify(8) service, and is opened before the
144 process releases privileges.
145
146 The lookup table is persistent by default (Postfix 2.7 and later).
147 Specify an empty table name to keep the information in volatile memory
148 which is lost after "postfix reload" or "postfix stop". This is the de‐
149 fault with Postfix version 2.6 and earlier.
150
151 Specify a location in a file system that will not fill up. If the data‐
152 base becomes corrupted, the world comes to an end. To recover, delete
153 (NOT: truncate) the file and do "postfix reload".
154
155 Postfix daemon processes do not use root privileges when opening this
156 file (Postfix 2.5 and later). The file must therefore be stored under
157 a Postfix-owned directory such as the data_directory. As a migration
158 aid, an attempt to open the file under a non-Postfix directory is redi‐
159 rected to the Postfix-owned data_directory, and a warning is logged.
160
161 Examples:
162
163 address_verify_map = hash:/var/lib/postfix/verify
164 address_verify_map = btree:/var/lib/postfix/verify
165
166 This feature is available in Postfix 2.1 and later.
167
169 Enable caching of failed address verification probe results. When this
170 feature is enabled, the cache may pollute quickly with garbage. When
171 this feature is disabled, Postfix will generate an address probe for
172 every lookup.
173
174 This feature is available in Postfix 2.1 and later.
175
177 The time after which a failed probe expires from the address verifica‐
178 tion cache.
179
180 Specify a non-zero time value (an integral value plus an optional
181 one-letter suffix that specifies the time unit). Time units: s (sec‐
182 onds), m (minutes), h (hours), d (days), w (weeks). The default time
183 unit is d (days).
184
185 This feature is available in Postfix 2.1 and later.
186
188 The time after which a failed address verification probe needs to be
189 refreshed.
190
191 Specify a non-zero time value (an integral value plus an optional
192 one-letter suffix that specifies the time unit). Time units: s (sec‐
193 onds), m (minutes), h (hours), d (days), w (weeks). The default time
194 unit is h (hours).
195
196 This feature is available in Postfix 2.1 and later.
197
199 A safety limit that prevents address verification requests from over‐
200 whelming the Postfix queue. By default, the number of pending requests
201 is limited to 1/4 of the active queue maximum size (qmgr_message_ac‐
202 tive_limit). The queue manager enforces the limit by tempfailing re‐
203 quests that exceed the limit. This affects only unknown addresses and
204 inactive addresses that have expired, because the verify(8) daemon au‐
205 tomatically refreshes an active address before it expires.
206
207 This feature is available in Postfix 3.1 and later.
208
210 How many times to query the verify(8) service for the completion of an
211 address verification request in progress.
212
213 By default, the Postfix SMTP server polls the verify(8) service up to
214 three times under non-overload conditions, and only once when under
215 overload. With Postfix version 2.5 and earlier, the SMTP server always
216 polls the verify(8) service up to three times by default.
217
218 Specify 1 to implement a crude form of greylisting, that is, always de‐
219 fer the first delivery request for a new address.
220
221 Examples:
222
223 # Postfix <= 2.6 default
224 address_verify_poll_count = 3
225 # Poor man's greylisting
226 address_verify_poll_count = 1
227
228 This feature is available in Postfix 2.1 and later.
229
231 The delay between queries for the completion of an address verification
232 request in progress.
233
234 The default polling delay is 3 seconds.
235
236 Specify a non-zero time value (an integral value plus an optional
237 one-letter suffix that specifies the time unit). Time units: s (sec‐
238 onds), m (minutes), h (hours), d (days), w (weeks). The default time
239 unit is s (seconds).
240
241 This feature is available in Postfix 2.1 and later.
242
244 The time after which a successful probe expires from the address veri‐
245 fication cache.
246
247 Specify a non-zero time value (an integral value plus an optional
248 one-letter suffix that specifies the time unit). Time units: s (sec‐
249 onds), m (minutes), h (hours), d (days), w (weeks). The default time
250 unit is d (days).
251
252 This feature is available in Postfix 2.1 and later.
253
255 The time after which a successful address verification probe needs to
256 be refreshed. The address verification status is not updated when the
257 probe fails (optimistic caching).
258
259 Specify a non-zero time value (an integral value plus an optional
260 one-letter suffix that specifies the time unit). Time units: s (sec‐
261 onds), m (minutes), h (hours), d (days), w (weeks). The default time
262 unit is d (days).
263
264 This feature is available in Postfix 2.1 and later.
265
267 Overrides the relay_transport parameter setting for address verifica‐
268 tion probes.
269
270 This feature is available in Postfix 2.1 and later.
271
273 Overrides the relayhost parameter setting for address verification
274 probes. This information can be overruled with the transport(5) table.
275
276 This feature is available in Postfix 2.1 and later.
277
279 The sender address to use in address verification probes; prior to
280 Postfix 2.5 the default was "postmaster". To avoid problems with ad‐
281 dress probes that are sent in response to address probes, the Postfix
282 SMTP server excludes the probe sender address from all SMTPD access
283 blocks.
284
285 Specify an empty value (address_verify_sender =) or <> if you want to
286 use the null sender address. Beware, some sites reject mail from <>,
287 even though RFCs require that such addresses be accepted.
288
289 Examples:
290
291 address_verify_sender = <>
292 address_verify_sender = postmaster@my.domain
293
294 This feature is available in Postfix 2.1 and later.
295
297 pendent_default_transport_maps)
298 Overrides the sender_dependent_default_transport_maps parameter setting
299 for address verification probes.
300
301 This feature is available in Postfix 2.7 and later.
302
304 layhost_maps)
305 Overrides the sender_dependent_relayhost_maps parameter setting for ad‐
306 dress verification probes.
307
308 This feature is available in Postfix 2.3 and later.
309
311 The time between changes in the time-dependent portion of address veri‐
312 fication probe sender addresses. The time-dependent portion is appended
313 to the localpart of the address specified with the address_ver‐
314 ify_sender parameter. This feature is ignored when the probe sender ad‐
315 dresses is the null sender, i.e. the address_verify_sender value is
316 empty or <>.
317
318 Historically, the probe sender address was fixed. This has caused such
319 addresses to end up on spammer mailing lists, and has resulted in
320 wasted network and processing resources.
321
322 To enable time-dependent probe sender addresses, specify a non-zero
323 time value. Specify a value of at least several hours, to avoid prob‐
324 lems with senders that use greylisting. Avoid nice TTL values, to make
325 the result less predictable.
326
327 Specify a non-negative time value (an integral value plus an optional
328 one-letter suffix that specifies the time unit). Time units: s (sec‐
329 onds), m (minutes), h (hours), d (days), w (weeks). The default time
330 unit is s (seconds).
331
332 This feature is available in Postfix 2.9 and later.
333
335 The name of the verify(8) address verification service. This service
336 maintains the status of sender and/or recipient address verification
337 probes, and generates probes on request by other Postfix processes.
338
340 Overrides the transport_maps parameter setting for address verification
341 probes.
342
343 This feature is available in Postfix 2.1 and later.
344
346 Overrides the virtual_transport parameter setting for address verifica‐
347 tion probes.
348
349 This feature is available in Postfix 2.1 and later.
350
352 The alias databases for local(8) delivery that are updated with
353 "newaliases" or with "sendmail -bi".
354
355 This is a separate configuration parameter because not all the tables
356 specified with $alias_maps have to be local files.
357
358 Examples:
359
360 alias_database = hash:/etc/aliases
361 alias_database = hash:/etc/mail/aliases
362
364 The alias databases that are used for local(8) delivery. See aliases(5)
365 for syntax details. Specify zero or more "type:name" lookup tables,
366 separated by whitespace or comma. Tables will be searched in the speci‐
367 fied order until a match is found. Note: these lookups are recursive.
368
369 The default list is system dependent. On systems with NIS, the default
370 is to search the local alias database, then the NIS alias database.
371
372 If you change the alias database, run "postalias /etc/aliases" (or
373 wherever your system stores the mail alias file), or simply run
374 "newaliases" to build the necessary DBM or DB file.
375
376 The local(8) delivery agent disallows regular expression substitution
377 of $1 etc. in alias_maps, because that would open a security hole.
378
379 The local(8) delivery agent will silently ignore requests to use the
380 proxymap(8) server within alias_maps. Instead it will open the table
381 directly. Before Postfix version 2.2, the local(8) delivery agent will
382 terminate with a fatal error.
383
384 Examples:
385
386 alias_maps = hash:/etc/aliases, nis:mail.aliases
387 alias_maps = hash:/etc/aliases
388
390 Restrict local(8) mail delivery to external commands. The default is
391 to disallow delivery to "|command" in :include: files (see aliases(5)
392 for the text that defines this terminology).
393
394 Specify zero or more of: alias, forward or include, in order to allow
395 commands in aliases(5), .forward files or in :include: files, respec‐
396 tively.
397
398 Example:
399
400 allow_mail_to_commands = alias,forward,include
401
403 Restrict local(8) mail delivery to external files. The default is to
404 disallow "/file/name" destinations in :include: files (see aliases(5)
405 for the text that defines this terminology).
406
407 Specify zero or more of: alias, forward or include, in order to allow
408 "/file/name" destinations in aliases(5), .forward files and in :in‐
409 clude: files, respectively.
410
411 Example:
412
413 allow_mail_to_files = alias,forward,include
414
416 Allow a sender or recipient address to have `-' as the first character.
417 By default, this is not allowed, to avoid accidents with software that
418 passes email addresses via the command line. Such software would not be
419 able to distinguish a malicious address from a bona fide command-line
420 option. Although this can be prevented by inserting a "--" option ter‐
421 minator into the command line, this is difficult to enforce consis‐
422 tently and globally.
423
424 As of Postfix version 2.5, this feature is implemented by trivial-re‐
425 write(8). With earlier versions this feature was implemented by
426 qmgr(8) and was limited to recipient addresses only.
427
429 Enable the rewriting of the form "user%domain" to "user@domain". This
430 is enabled by default.
431
432 Note: as of Postfix version 2.2, message header address rewriting hap‐
433 pens only when one of the following conditions is true:
434
435 • The message is received with the Postfix sendmail(1) command,
436
437 • The message is received from a network client that matches $lo‐
438 cal_header_rewrite_clients,
439
440 • The message is received from the network, and the re‐
441 mote_header_rewrite_domain parameter specifies a non-empty
442 value.
443
444 To get the behavior before Postfix version 2.2, specify "lo‐
445 cal_header_rewrite_clients = static:all".
446
447 Example:
448
449 allow_percent_hack = no
450
452 Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
453 from untrusted clients to destinations matching $relay_domains.
454
455 By default, this feature is turned off. This closes a nasty open relay
456 loophole where a backup MX host can be tricked into forwarding junk
457 mail to a primary MX host which then spams it out to the world.
458
459 This parameter also controls if non-local addresses with sender-speci‐
460 fied routing can match Postfix access tables. By default, such ad‐
461 dresses cannot match Postfix access tables, because the address is am‐
462 biguous.
463
465 A list of non-default Postfix configuration directories that may be
466 specified with "-c config_directory" on the command line (in the case
467 of sendmail(1), with the "-C" option), or via the MAIL_CONFIG environ‐
468 ment parameter.
469
470 This list must be specified in the default Postfix main.cf file, and
471 will be used by set-gid Postfix commands such as postqueue(1) and post‐
472 drop(1).
473
474 Specify absolute pathnames, separated by comma or space. Note: $name
475 expansion is not supported.
476
478 Always add (Resent-) From:, To:, Date: or Message-ID: headers when not
479 present. Postfix 2.6 and later add these headers only when clients
480 match the local_header_rewrite_clients parameter setting. Earlier
481 Postfix versions always add these headers; this may break DKIM signa‐
482 tures that cover non-existent headers. The undisclosed_recipi‐
483 ents_header parameter setting determines whether a To: header will be
484 added.
485
487 Optional address that receives a "blind carbon copy" of each message
488 that is received by the Postfix mail system.
489
490 Note: with Postfix 2.3 and later the BCC address is added as if it was
491 specified with NOTIFY=NONE. The sender will not be notified when the
492 BCC address is undeliverable, as long as all down-stream software im‐
493 plements RFC 3461.
494
495 Note: with Postfix 2.2 and earlier the sender will be notified when the
496 BCC address is undeliverable.
497
498 Note: automatic BCC recipients are produced only for new mail. To
499 avoid mailer loops, automatic BCC recipients are not generated after
500 Postfix forwards mail internally, or after Postfix generates mail it‐
501 self.
502
504 The time unit over which client connection rates and other rates are
505 calculated.
506
507 This feature is implemented by the anvil(8) service which is available
508 in Postfix version 2.2 and later.
509
510 The default interval is relatively short. Because of the high frequency
511 of updates, the anvil(8) server uses volatile memory only. Thus, infor‐
512 mation is lost whenever the process terminates.
513
514 Specify a non-zero time value (an integral value plus an optional
515 one-letter suffix that specifies the time unit). Time units: s (sec‐
516 onds), m (minutes), h (hours), d (days), w (weeks). The default time
517 unit is s (seconds).
518
520 How frequently the anvil(8) connection and rate limiting server logs
521 peak usage information.
522
523 Specify a non-zero time value (an integral value plus an optional
524 one-letter suffix that specifies the time unit). Time units: s (sec‐
525 onds), m (minutes), h (hours), d (days), w (weeks). The default time
526 unit is s (seconds).
527
528 This feature is available in Postfix 2.2 and later.
529
531 With locally submitted mail, append the string "@$myorigin" to mail ad‐
532 dresses without domain information. With remotely submitted mail, ap‐
533 pend the string "@$remote_header_rewrite_domain" instead.
534
535 Note 1: this feature is enabled by default and must not be turned off.
536 Postfix does not support domain-less addresses.
537
538 Note 2: with Postfix version 2.2, message header address rewriting hap‐
539 pens only when one of the following conditions is true:
540
541 • The message is received with the Postfix sendmail(1) command,
542
543 • The message is received from a network client that matches $lo‐
544 cal_header_rewrite_clients,
545
546 • The message is received from the network, and the re‐
547 mote_header_rewrite_domain parameter specifies a non-empty
548 value.
549
550 To get the behavior before Postfix version 2.2, specify "lo‐
551 cal_header_rewrite_clients = static:all".
552
554 With locally submitted mail, append the string ".$mydomain" to ad‐
555 dresses that have no ".domain" information. With remotely submitted
556 mail, append the string ".$remote_header_rewrite_domain" instead.
557
558 Note 1: this feature is enabled by default. If disabled, users will not
559 be able to send mail to "user@partialdomainname" but will have to spec‐
560 ify full domain names instead.
561
562 Note 2: with Postfix version 2.2, message header address rewriting hap‐
563 pens only when one of the following conditions is true:
564
565 • The message is received with the Postfix sendmail(1) command,
566
567 • The message is received from a network client that matches $lo‐
568 cal_header_rewrite_clients,
569
570 • The message is received from the network, and the re‐
571 mote_header_rewrite_domain parameter specifies a non-empty
572 value.
573
574 To get the behavior before Postfix version 2.2, specify "lo‐
575 cal_header_rewrite_clients = static:all".
576
578 How long the postkick(1) command waits for a request to enter the Post‐
579 fix daemon process input buffer before giving up.
580
581 Specify a non-zero time value (an integral value plus an optional
582 one-letter suffix that specifies the time unit). Time units: s (sec‐
583 onds), m (minutes), h (hours), d (days), w (weeks). The default time
584 unit is s (seconds).
585
586 This feature is available in Postfix 2.1 and later.
587
589 List of users who are authorized to flush the queue.
590
591 By default, all users are allowed to flush the queue. Access is always
592 granted if the invoking user is the super-user or the $mail_owner user.
593 Otherwise, the real UID of the process is looked up in the system pass‐
594 word file, and access is granted only if the corresponding login name
595 is on the access list. The username "unknown" is used for processes
596 whose real UID is not found in the password file.
597
598 Specify a list of user names, "/file/name" or "type:table" patterns,
599 separated by commas and/or whitespace. The list is matched left to
600 right, and the search stops on the first match. A "/file/name" pattern
601 is replaced by its contents; a "type:table" lookup table is matched
602 when a name matches a lookup key (the lookup result is ignored). Con‐
603 tinue long lines by starting the next line with whitespace. Specify
604 "!pattern" to exclude a name from the list. The form "!/file/name" is
605 supported only in Postfix version 2.4 and later.
606
607 This feature is available in Postfix 2.2 and later.
608
610 List of users who are authorized to view the queue.
611
612 By default, all users are allowed to view the queue. Access is always
613 granted if the invoking user is the super-user or the $mail_owner user.
614 Otherwise, the real UID of the process is looked up in the system pass‐
615 word file, and access is granted only if the corresponding login name
616 is on the access list. The username "unknown" is used for processes
617 whose real UID is not found in the password file.
618
619 Specify a list of user names, "/file/name" or "type:table" patterns,
620 separated by commas and/or whitespace. The list is matched left to
621 right, and the search stops on the first match. A "/file/name" pattern
622 is replaced by its contents; a "type:table" lookup table is matched
623 when a name matches a lookup key (the lookup result is ignored). Con‐
624 tinue long lines by starting the next line with whitespace. Specify
625 "!pattern" to exclude a user name from the list. The form "!/file/name"
626 is supported only in Postfix version 2.4 and later.
627
628 This feature is available in Postfix 2.2 and later.
629
631 List of users who are authorized to submit mail with the sendmail(1)
632 command (and with the privileged postdrop(1) helper command).
633
634 By default, all users are allowed to submit mail. Otherwise, the real
635 UID of the process is looked up in the system password file, and access
636 is granted only if the corresponding login name is on the access list.
637 The username "unknown" is used for processes whose real UID is not
638 found in the password file. To deny mail submission access to all users
639 specify an empty list.
640
641 Specify a list of user names, "/file/name" or "type:table" patterns,
642 separated by commas and/or whitespace. The list is matched left to
643 right, and the search stops on the first match. A "/file/name" pattern
644 is replaced by its contents; a "type:table" lookup table is matched
645 when a name matches a lookup key (the lookup result is ignored). Con‐
646 tinue long lines by starting the next line with whitespace. Specify
647 "!pattern" to exclude a user name from the list. The form "!/file/name"
648 is supported only in Postfix version 2.4 and later.
649
650 Example:
651
652 authorized_submit_users = !www, static:all
653
654 This feature is available in Postfix 2.2 and later.
655
657 What remote SMTP clients are allowed to specify the XVERP command.
658 This command requests that mail be delivered one recipient at a time
659 with a per recipient return address.
660
661 By default, only trusted clients are allowed to specify XVERP.
662
663 This parameter was introduced with Postfix version 1.1. Postfix ver‐
664 sion 2.1 renamed this parameter to smtpd_authorized_verp_clients and
665 changed the default to none.
666
667 Specify a list of network/netmask patterns, separated by commas and/or
668 whitespace. The mask specifies the number of bits in the network part
669 of a host address. You can also specify hostnames or .domain names (the
670 initial dot causes the domain to match any name below it),
671 "/file/name" or "type:table" patterns. A "/file/name" pattern is re‐
672 placed by its contents; a "type:table" lookup table is matched when a
673 table entry matches a lookup string (the lookup result is ignored).
674 Continue long lines by starting the next line with whitespace. Specify
675 "!pattern" to exclude an address or network block from the list. The
676 form "!/file/name" is supported only in Postfix version 2.4 and later.
677
678 Note: IP version 6 address information must be specified inside [] in
679 the authorized_verp_clients value, and in files specified with
680 "/file/name". IP version 6 addresses contain the ":" character, and
681 would otherwise be confused with a "type:table" pattern.
682
684 Produce additional bounce(8) logfile records that can be read by Post‐
685 fix versions before 2.0. The current and more extensible "name = value"
686 format is needed in order to implement more sophisticated functional‐
687 ity.
688
689 This feature is available in Postfix 2.1 and later.
690
692 The per-table I/O buffer size for programs that create Berkeley DB hash
693 or btree tables. Specify a byte count.
694
695 This feature is available in Postfix 2.0 and later.
696
698 The per-table I/O buffer size for programs that read Berkeley DB hash
699 or btree tables. Specify a byte count.
700
701 This feature is available in Postfix 2.0 and later.
702
704 Where the Postfix SMTP client should deliver mail when it detects a
705 "mail loops back to myself" error condition. This happens when the lo‐
706 cal MTA is the best SMTP mail exchanger for a destination not listed in
707 $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_do‐
708 mains, or $virtual_mailbox_domains. By default, the Postfix SMTP
709 client returns such mail as undeliverable.
710
711 Specify, for example, "best_mx_transport = local" to pass the mail from
712 the Postfix SMTP client to the local(8) delivery agent. You can specify
713 any message delivery "transport" or "transport:nexthop" that is defined
714 in the master.cf file. See the transport(5) manual page for the syntax
715 and meaning of "transport" or "transport:nexthop".
716
717 However, this feature is expensive because it ties up a Postfix SMTP
718 client process while the local(8) delivery agent is doing its work. It
719 is more efficient (for Postfix) to list all hosted domains in a table
720 or database.
721
723 Whether or not to use the local biff service. This service sends "new
724 mail" notifications to users who have requested new mail notification
725 with the UNIX command "biff y".
726
727 For compatibility reasons this feature is on by default. On systems
728 with lots of interactive users, the biff service can be a performance
729 drain. Specify "biff = no" in main.cf to disable.
730
732 Optional lookup tables for content inspection as specified in the
733 body_checks(5) manual page.
734
735 Note: with Postfix versions before 2.0, these rules inspect all content
736 after the primary message headers.
737
739 How much text in a message body segment (or attachment, if you prefer
740 to use that term) is subjected to body_checks inspection. The amount
741 of text is limited to avoid scanning huge attachments.
742
743 This feature is available in Postfix 2.0 and later.
744
746 The recipient of postmaster notifications with the message headers of
747 mail that Postfix did not deliver and of SMTP conversation transcripts
748 of mail that Postfix did not receive. This feature is enabled with the
749 notify_classes parameter.
750
752 Consider a bounce message as undeliverable, when delivery fails with a
753 temporary error, and the time in the queue has reached the
754 bounce_queue_lifetime limit. By default, this limit is the same as for
755 regular mail.
756
757 Specify a non-negative time value (an integral value plus an optional
758 one-letter suffix that specifies the time unit). Time units: s (sec‐
759 onds), m (minutes), h (hours), d (days), w (weeks). The default time
760 unit is d (days).
761
762 Specify 0 when mail delivery should be tried only once.
763
764 This feature is available in Postfix 2.1 and later.
765
767 The name of the bounce(8) service. This service maintains a record of
768 failed delivery attempts and generates non-delivery notifications.
769
770 This feature is available in Postfix 2.0 and later.
771
773 The maximal amount of original message text that is sent in a non-de‐
774 livery notification. Specify a byte count. A message is returned as
775 either message/rfc822 (the complete original) or as text/rfc822-headers
776 (the headers only). With Postfix version 2.4 and earlier, a message is
777 always returned as message/rfc822 and is truncated when it exceeds the
778 size limit.
779
780 Notes:
781
782 • If you increase this limit, then you should increase the
783 mime_nesting_limit value proportionally.
784
785 • Be careful when making changes. Excessively large values will
786 result in the loss of non-delivery notifications, when a bounce
787 message size exceeds a local or remote MTA's message size limit.
788
790 Pathname of a configuration file with bounce message templates. These
791 override the built-in templates of delivery status notification (DSN)
792 messages for undeliverable mail, delayed mail, successful delivery, or
793 delivery verification. The bounce(5) manual page describes how to edit
794 and test template files.
795
796 Template message body text may contain $name references to Postfix con‐
797 figuration parameters. The result of $name expansion can be previewed
798 with "postconf -b file_name" before the file is placed into the Postfix
799 configuration directory.
800
801 This feature is available in Postfix 2.3 and later.
802
804 Enable interoperability with remote SMTP clients that implement an ob‐
805 solete version of the AUTH command (RFC 4954). Examples of such clients
806 are MicroSoft Outlook Express version 4 and MicroSoft Exchange version
807 5.0.
808
809 Specify "broken_sasl_auth_clients = yes" to have Postfix advertise AUTH
810 support in a non-standard way.
811
813 header_sender, header_recipient)
814 What addresses are subject to canonical_maps address mapping. By de‐
815 fault, canonical_maps address mapping is applied to envelope sender and
816 recipient addresses, and to header sender and header recipient ad‐
817 dresses.
818
819 Specify one or more of: envelope_sender, envelope_recipient,
820 header_sender, header_recipient
821
822 This feature is available in Postfix 2.2 and later.
823
825 Optional address mapping lookup tables for message headers and en‐
826 velopes. The mapping is applied to both sender and recipient addresses,
827 in both envelopes and in headers, as controlled with the canoni‐
828 cal_classes parameter. This is typically used to clean up dirty ad‐
829 dresses from legacy mail systems, or to replace login names by First‐
830 name.Lastname. The table format and lookups are documented in canoni‐
831 cal(5). For an overview of Postfix address manipulations see the AD‐
832 DRESS_REWRITING_README document.
833
834 Specify zero or more "type:name" lookup tables, separated by whitespace
835 or comma. Tables will be searched in the specified order until a match
836 is found. Note: these lookups are recursive.
837
838 If you use this feature, run "postmap /etc/postfix/canonical" to build
839 the necessary DBM or DB file after every change. The changes will be‐
840 come visible after a minute or so. Use "postfix reload" to eliminate
841 the delay.
842
843 Note: with Postfix version 2.2, message header address mapping happens
844 only when message header address rewriting is enabled:
845
846 • The message is received with the Postfix sendmail(1) command,
847
848 • The message is received from a network client that matches $lo‐
849 cal_header_rewrite_clients,
850
851 • The message is received from the network, and the re‐
852 mote_header_rewrite_domain parameter specifies a non-empty
853 value.
854
855 To get the behavior before Postfix version 2.2, specify "lo‐
856 cal_header_rewrite_clients = static:all".
857
858 Examples:
859
860 canonical_maps = dbm:/etc/postfix/canonical
861 canonical_maps = hash:/etc/postfix/canonical
862
864 The name of the cleanup(8) service. This service rewrites addresses
865 into the standard form, and performs canonical(5) address mapping and
866 virtual(5) aliasing.
867
868 This feature is available in Postfix 2.0 and later.
869
871 The location of all postfix administrative commands.
872
874 The local(8) delivery agent working directory for delivery to external
875 commands. Failure to change directory causes the delivery to be de‐
876 ferred.
877
878 The command_execution_directory value is not subject to Postfix config‐
879 uration parameter $name expansion. Instead, the following $name expan‐
880 sions are done on command_execution_directory before the directory is
881 used. Expansion happens in the context of the delivery request. The
882 result of $name expansion is filtered with the character set that is
883 specified with the execution_directory_expansion_filter parameter.
884
885 $user The recipient's username.
886
887 $shell The recipient's login shell pathname.
888
889 $home The recipient's home directory.
890
891 $recipient
892 The full recipient address.
893
894 $extension
895 The optional recipient address extension.
896
897 $domain
898 The recipient domain.
899
900 $local The entire recipient localpart.
901
902 $recipient_delimiter
903 The address extension delimiter that was found in the recipient
904 address (Postfix 2.11 and later), or the system-wide recipient
905 address extension delimiter (Postfix 2.10 and earlier).
906
907 ${name?value}
908
909 ${name?{value}} (Postfix >= 3.0)
910 Expands to value when $name is non-empty.
911
912 ${name:value}
913
914 ${name:{value}} (Postfix >= 3.0)
915 Expands to value when $name is empty.
916
917 ${name?{value1}:{value2}} (Postfix >= 3.0)
918 Expands to value1 when $name is non-empty, value2 otherwise.
919
920 Instead of $name you can also specify ${name} or $(name).
921
922 This feature is available in Postfix 2.2 and later.
923
925 Restrict the characters that the local(8) delivery agent allows in
926 $name expansions of $mailbox_command and $command_execution_directory.
927 Characters outside the allowed set are replaced by underscores.
928
930 Time limit for delivery to external commands. This limit is used by the
931 local(8) delivery agent, and is the default time limit for delivery by
932 the pipe(8) delivery agent.
933
934 Note: if you set this time limit to a large value you must update the
935 global ipc_timeout parameter as well.
936
938 A safety net that causes Postfix to run with backwards-compatible de‐
939 fault settings after an upgrade to a newer Postfix version.
940
941 With backwards compatibility turned on (the main.cf compatibility_level
942 value is less than the Postfix built-in value), Postfix looks for set‐
943 tings that are left at their implicit default value, and logs a message
944 when a backwards-compatible default setting is required.
945
946 using backwards-compatible default setting name=value
947 to [accept a specific client request]
948
949 using backwards-compatible default setting name=value
950 to [enable specific Postfix behavior]
951
952 See COMPATIBILITY_README for specific message details. If such a mes‐
953 sage is logged in the context of a legitimate request, the system ad‐
954 ministrator should make the backwards-compatible setting permanent in
955 main.cf or master.cf, for example:
956
957 # postconf name=value
958 # postfix reload
959
960 When no more backwards-compatible settings need to be made permanent,
961 the administrator should turn off backwards compatibility by updating
962 the compatibility_level setting in main.cf:
963
964 # postconf compatibility_level=N
965 # postfix reload
966
967 For N specify the number that is logged in your postfix(1) warning mes‐
968 sage:
969
970 warning: To disable backwards compatibility use "postconf
971 compatibility_level=N" and "postfix reload"
972
973 Starting with Postfix version 3.6, the compatibility level in the above
974 warning message is the Postfix version that introduced the last incom‐
975 patible change. The level is formatted as major.minor.patch, where
976 patch is usually omitted and defaults to zero. Earlier compatibility
977 levels are 0, 1 and 2.
978
979 NOTE: this also introduces support for the "<level", "<=level", and
980 other operators to compare compatibility levels. With the standard op‐
981 erators "<", "<=", etc., compatibility level "3.10" would be smaller
982 than "3.9" which is undesirable.
983
984 This feature is available in Postfix 3.0 and later.
985
987 The default location of the Postfix main.cf and master.cf configuration
988 files. This can be overruled via the following mechanisms:
989
990 • The MAIL_CONFIG environment variable (daemon processes and com‐
991 mands).
992
993 • The "-c" command-line option (commands only).
994
995 With Postfix commands that run with set-gid privileges, a config_direc‐
996 tory override either requires root privileges, or it requires that the
997 directory is listed with the alternate_config_directories parameter in
998 the default main.cf file.
999
1001 After sending a "your message is delayed" notification, inform the
1002 sender when the delay clears up. This can result in a sudden burst of
1003 notifications at the end of a prolonged network outage, and is there‐
1004 fore disabled by default.
1005
1006 See also: delay_warning_time.
1007
1008 This feature is available in Postfix 3.0 and later.
1009
1011 Time limit for connection cache connect, send or receive operations.
1012 The time limit is enforced in the client.
1013
1014 This feature is available in Postfix 2.3 and later.
1015
1017 The name of the scache(8) connection cache service. This service main‐
1018 tains a limited pool of cached sessions.
1019
1020 This feature is available in Postfix 2.2 and later.
1021
1023 How frequently the scache(8) server logs usage statistics with connec‐
1024 tion cache hit and miss rates for logical destinations and for physical
1025 endpoints.
1026
1028 The maximal time-to-live value that the scache(8) connection cache
1029 server allows. Requests that specify a larger TTL will be stored with
1030 the maximum allowed TTL. The purpose of this additional control is to
1031 protect the infrastructure against careless people. The cache TTL is
1032 already bounded by $max_idle.
1033
1035 After the message is queued, send the entire message to the specified
1036 transport:destination. The transport name specifies the first field of
1037 a mail delivery agent definition in master.cf; the syntax of the
1038 next-hop destination is described in the manual page of the correspond‐
1039 ing delivery agent. More information about external content filters is
1040 in the Postfix FILTER_README file.
1041
1042 Notes:
1043
1044 • This setting has lower precedence than a FILTER action that is
1045 specified in an access(5), header_checks(5) or body_checks(5)
1046 table.
1047
1048 • The meaning of an empty next-hop filter destination is version
1049 dependent. Postfix 2.7 and later will use the recipient domain;
1050 earlier versions will use $myhostname. Specify "default_fil‐
1051 ter_nexthop = $myhostname" for compatibility with Postfix 2.6 or
1052 earlier, or specify a content_filter value with an explicit
1053 next-hop destination.
1054
1056 Search path for Cyrus SASL application configuration files, currently
1057 used only to locate the $smtpd_sasl_path.conf file. Specify zero or
1058 more directories separated by a colon character, or an empty value to
1059 use Cyrus SASL's built-in search path.
1060
1061 This feature is available in Postfix 2.5 and later when compiled with
1062 Cyrus SASL 2.1.22 or later.
1063
1065 The directory with Postfix support programs and daemon programs. These
1066 should not be invoked directly by humans. The directory must be owned
1067 by root.
1068
1070 How a Postfix daemon process handles errors while opening lookup ta‐
1071 bles: gradual degradation or immediate termination.
1072
1073 no (default)
1074 Gradual degradation: a daemon process logs a message of type
1075 "error" and continues execution with reduced functionality. Fea‐
1076 tures that do not depend on the unavailable table will work nor‐
1077 mally, while features that depend on the table will result in a
1078 type "warning" message.
1079 When the notify_classes parameter value contains the "data"
1080 class, the Postfix SMTP server and client will report tran‐
1081 scripts of sessions with an error because a table is unavail‐
1082 able.
1083
1084 yes (historical behavior)
1085 Immediate termination: a daemon process logs a type "fatal" mes‐
1086 sage and terminates immediately. This option reduces the number
1087 of possible code paths through Postfix, and may therefore be
1088 slightly more secure than the default.
1089
1090 For the sake of sanity, the number of type "error" messages is limited
1091 to 13 over the lifetime of a daemon process.
1092
1093 This feature is available in Postfix 2.9 and later.
1094
1096 How much time a Postfix daemon process may take to handle a request be‐
1097 fore it is terminated by a built-in watchdog timer.
1098
1099 Specify a non-zero time value (an integral value plus an optional
1100 one-letter suffix that specifies the time unit). Time units: s (sec‐
1101 onds), m (minutes), h (hours), d (days), w (weeks). The default time
1102 unit is s (seconds).
1103
1105 The directory with Postfix-writable data files (for example: caches,
1106 pseudo-random numbers). This directory must be owned by the mail_owner
1107 account, and must not be shared with non-Postfix software.
1108
1109 This feature is available in Postfix 2.5 and later.
1110
1112 The increment in verbose logging level when a nexthop destination, re‐
1113 mote client or server name or network address matches a pattern given
1114 with the debug_peer_list parameter.
1115
1116 Per-nexthop debug logging is available in Postfix 3.6 and later.
1117
1119 Optional list of nexthop destination, remote client or server name or
1120 network address patterns that, if matched, cause the verbose logging
1121 level to increase by the amount specified in $debug_peer_level.
1122
1123 Per-nexthop debug logging is available in Postfix 3.6 and later.
1124
1125 Specify domain names, network/netmask patterns, "/file/name" patterns
1126 or "type:table" lookup tables. The right-hand side result from
1127 "type:table" lookups is ignored.
1128
1129 Pattern matching of domain names is controlled by the presence or ab‐
1130 sence of "debug_peer_list" in the parent_domain_matches_subdomains pa‐
1131 rameter value.
1132
1133 Examples:
1134
1135 debug_peer_list = 127.0.0.1
1136 debug_peer_list = example.com
1137
1139 The external command to execute when a Postfix daemon program is in‐
1140 voked with the -D option.
1141
1142 Use "command .. & sleep 5" so that the debugger can attach before the
1143 process marches on. If you use an X-based debugger, be sure to set up
1144 your XAUTHORITY environment variable before starting Postfix.
1145
1146 Note: the command is subject to $name expansion, before it is passed to
1147 the default command interpreter. Specify "$$" to produce a single "$"
1148 character.
1149
1150 Example:
1151
1152 debugger_command =
1153 PATH=/usr/bin:/usr/X11R6/bin
1154 ddd $daemon_directory/$process_name $process_id & sleep 5
1155
1157 The default database type for use in newaliases(1), postalias(1) and
1158 postmap(1) commands. On many UNIX systems the default type is either
1159 dbm or hash. The default setting is frozen when the Postfix system is
1160 built.
1161
1162 Examples:
1163
1164 default_database_type = hash
1165 default_database_type = dbm
1166
1168 How often the Postfix queue manager's scheduler is allowed to preempt
1169 delivery of one message with another.
1170
1171 Each transport maintains a so-called "available delivery slot counter"
1172 for each message. One message can be preempted by another one when the
1173 other message can be delivered using no more delivery slots (i.e., in‐
1174 vocations of delivery agents) than the current message counter has ac‐
1175 cumulated (or will eventually accumulate - see about slot loans below).
1176 This parameter controls how often the counter is incremented - it hap‐
1177 pens after each default_delivery_slot_cost recipients have been deliv‐
1178 ered.
1179
1180 The cost of 0 is used to disable the preempting scheduling completely.
1181 The minimum value the scheduling algorithm can use is 2 - use it if you
1182 want to maximize the message throughput rate. Although there is no max‐
1183 imum, it doesn't make much sense to use values above say 50.
1184
1185 The only reason why the value of 2 is not the default is the way this
1186 parameter affects the delivery of mailing-list mail. In the worst case,
1187 delivery can take somewhere between (cost+1/cost) and (cost/cost-1)
1188 times more than if the preemptive scheduler was disabled. The default
1189 value of 5 turns out to provide reasonable message response times while
1190 making sure the mailing-list deliveries are not extended by more than
1191 20-25 percent even in the worst case.
1192
1193 Use transport_delivery_slot_cost to specify a transport-specific over‐
1194 ride, where transport is the master.cf name of the message delivery
1195 transport.
1196
1197 Examples:
1198
1199 default_delivery_slot_cost = 0
1200 default_delivery_slot_cost = 2
1201
1203 The default value for transport-specific _delivery_slot_discount set‐
1204 tings.
1205
1206 This parameter speeds up the moment when a message preemption can hap‐
1207 pen. Instead of waiting until the full amount of delivery slots re‐
1208 quired is available, the preemption can happen when transport_deliv‐
1209 ery_slot_discount percent of the required amount plus transport_deliv‐
1210 ery_slot_loan still remains to be accumulated. Note that the full
1211 amount will still have to be accumulated before another preemption can
1212 take place later.
1213
1214 Use transport_delivery_slot_discount to specify a transport-specific
1215 override, where transport is the master.cf name of the message delivery
1216 transport.
1217
1219 The default value for transport-specific _delivery_slot_loan settings.
1220
1221 This parameter speeds up the moment when a message preemption can hap‐
1222 pen. Instead of waiting until the full amount of delivery slots re‐
1223 quired is available, the preemption can happen when transport_deliv‐
1224 ery_slot_discount percent of the required amount plus transport_deliv‐
1225 ery_slot_loan still remains to be accumulated. Note that the full
1226 amount will still have to be accumulated before another preemption can
1227 take place later.
1228
1229 Use transport_delivery_slot_loan to specify a transport-specific over‐
1230 ride, where transport is the master.cf name of the message delivery
1231 transport.
1232
1234 Optional filter to replace the delivery status code or explanatory text
1235 of successful or unsuccessful deliveries. This does not allow the re‐
1236 placement of a successful status code (2.X.X) with an unsuccessful sta‐
1237 tus code (4.X.X or 5.X.X) or vice versa.
1238
1239 Note: the (smtp|lmtp)_delivery_status_filter is applied only once per
1240 recipient: when delivery is successful, when delivery is rejected with
1241 5XX, or when there are no more alternate MX or A destinations. Use
1242 smtp_reply_filter or lmtp_reply_filter to inspect responses for all de‐
1243 livery attempts.
1244
1245 The following parameters can be used to implement a filter for specific
1246 delivery agents: lmtp_delivery_status_filter, local_delivery_sta‐
1247 tus_filter, pipe_delivery_status_filter, smtp_delivery_status_filter or
1248 virtual_delivery_status_filter. These parameters support the same fil‐
1249 ter syntax as described here.
1250
1251 Specify zero or more "type:table" lookup table names, separated by
1252 comma or whitespace. For each successful or unsuccessful delivery to a
1253 recipient, the tables are queried in the specified order with one line
1254 of text that is structured as follows:
1255
1256 enhanced-status-code SPACE explanatory-text
1257
1258 The first table match wins. The lookup result must have the same struc‐
1259 ture as the query, a successful status code (2.X.X) must be replaced
1260 with a successful status code, an unsuccessful status code (4.X.X or
1261 5.X.X) must be replaced with an unsuccessful status code, and the ex‐
1262 planatory text field must be non-empty. Other results will result in a
1263 warning.
1264
1265 Example 1: convert specific soft TLS errors into hard errors, by over‐
1266 riding the first number in the enhanced status code.
1267
1268 /etc/postfix/main.cf:
1269 smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
1270
1271 /etc/postfix/smtp_dsn_filter:
1272 /^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
1273 5$1
1274 /^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
1275 5$1
1276 # Do not change the following into hard bounces. They may
1277 # result from a local configuration problem.
1278 # 4.\d+.\d+ TLS is required, but our TLS engine is unavailable
1279 # 4.\d+.\d+ TLS is required, but unavailable
1280 # 4.\d+.\d+ Cannot start TLS: handshake failure
1281
1282 Example 2: censor the per-recipient delivery status text so that it
1283 does not reveal the destination command or filename when a remote
1284 sender requests confirmation of successful delivery.
1285
1286 /etc/postfix/main.cf:
1287 local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
1288
1289 /etc/postfix/local_dsn_filter:
1290 /^(2\S+ delivered to file).+/ $1
1291 /^(2\S+ delivered to command).+/ $1
1292
1293 Notes:
1294
1295 • This feature will NOT override the soft_bounce safety net.
1296
1297 • This feature will change the enhanced status code and text that
1298 is logged to the maillog file, and that is reported to the
1299 sender in delivery confirmation or non-delivery notifications.
1300
1301 This feature is available in Postfix 3.0 and later.
1302
1304 How many pseudo-cohorts must suffer connection or handshake failure be‐
1305 fore a specific destination is considered unavailable (and further de‐
1306 livery is suspended). Specify zero to disable this feature. A destina‐
1307 tion's pseudo-cohort failure count is reset each time a delivery com‐
1308 pletes without connection or handshake failure for that specific desti‐
1309 nation.
1310
1311 A pseudo-cohort is the number of deliveries equal to a destination's
1312 delivery concurrency.
1313
1314 Use transport_destination_concurrency_failed_cohort_limit to specify a
1315 transport-specific override, where transport is the master.cf name of
1316 the message delivery transport.
1317
1318 This feature is available in Postfix 2.5. The default setting is com‐
1319 patible with earlier Postfix versions.
1320
1322 The default maximal number of parallel deliveries to the same destina‐
1323 tion. This is the default limit for delivery via the lmtp(8), pipe(8),
1324 smtp(8) and virtual(8) delivery agents. With a per-destination recipi‐
1325 ent limit > 1, a destination is a domain, otherwise it is a recipient.
1326
1327 Use transport_destination_concurrency_limit to specify a transport-spe‐
1328 cific override, where transport is the master.cf name of the message
1329 delivery transport.
1330
1332 The per-destination amount of delivery concurrency negative feedback,
1333 after a delivery completes with a connection or handshake failure.
1334 Feedback values are in the range 0..1 inclusive. With negative feed‐
1335 back, concurrency is decremented at the beginning of a sequence of
1336 length 1/feedback. This is unlike positive feedback, where concurrency
1337 is incremented at the end of a sequence of length 1/feedback.
1338
1339 As of Postfix version 2.5, negative feedback cannot reduce delivery
1340 concurrency to zero. Instead, a destination is marked dead (further
1341 delivery suspended) after the failed pseudo-cohort count reaches $de‐
1342 fault_destination_concurrency_failed_cohort_limit (or $transport_desti‐
1343 nation_concurrency_failed_cohort_limit). To make the scheduler com‐
1344 pletely immune to connection or handshake failures, specify a zero
1345 feedback value and a zero failed pseudo-cohort limit.
1346
1347 Specify one of the following forms:
1348
1349 number
1350
1351 number / number
1352 Constant feedback. The value must be in the range 0..1 inclu‐
1353 sive. The default setting of "1" is compatible with Postfix
1354 versions before 2.5, where a destination's delivery concurrency
1355 is throttled down to zero (and further delivery suspended) after
1356 a single failed pseudo-cohort.
1357
1358 number / concurrency
1359 Variable feedback of "number / (delivery concurrency)". The
1360 number must be in the range 0..1 inclusive. With number equal to
1361 "1", a destination's delivery concurrency is decremented by 1
1362 after each failed pseudo-cohort.
1363
1364 A pseudo-cohort is the number of deliveries equal to a destination's
1365 delivery concurrency.
1366
1367 Use transport_destination_concurrency_negative_feedback to specify a
1368 transport-specific override, where transport is the master.cf name of
1369 the message delivery transport.
1370
1371 This feature is available in Postfix 2.5. The default setting is com‐
1372 patible with earlier Postfix versions.
1373
1375 The per-destination amount of delivery concurrency positive feedback,
1376 after a delivery completes without connection or handshake failure.
1377 Feedback values are in the range 0..1 inclusive. The concurrency in‐
1378 creases until it reaches the per-destination maximal concurrency limit.
1379 With positive feedback, concurrency is incremented at the end of a se‐
1380 quence with length 1/feedback. This is unlike negative feedback, where
1381 concurrency is decremented at the start of a sequence of length 1/feed‐
1382 back.
1383
1384 Specify one of the following forms:
1385
1386 number
1387
1388 number / number
1389 Constant feedback. The value must be in the range 0..1 inclu‐
1390 sive. The default setting of "1" is compatible with Postfix ver‐
1391 sions before 2.5, where a destination's delivery concurrency
1392 doubles after each successful pseudo-cohort.
1393
1394 number / concurrency
1395 Variable feedback of "number / (delivery concurrency)". The
1396 number must be in the range 0..1 inclusive. With number equal to
1397 "1", a destination's delivery concurrency is incremented by 1
1398 after each successful pseudo-cohort.
1399
1400 A pseudo-cohort is the number of deliveries equal to a destination's
1401 delivery concurrency.
1402
1403 Use transport_destination_concurrency_positive_feedback to specify a
1404 transport-specific override, where transport is the master.cf name of
1405 the message delivery transport.
1406
1407 This feature is available in Postfix 2.5 and later.
1408
1410 The default amount of delay that is inserted between individual message
1411 deliveries to the same destination and over the same message delivery
1412 transport. Specify a non-zero value to rate-limit those message deliv‐
1413 eries to at most one per $default_destination_rate_delay.
1414
1415 The resulting behavior depends on the value of the corresponding
1416 per-destination recipient limit.
1417
1418 • With a corresponding per-destination recipient limit > 1, the
1419 rate delay specifies the time between deliveries to the same do‐
1420 main. Different domains are delivered in parallel, subject to
1421 the process limits specified in master.cf.
1422
1423 • With a corresponding per-destination recipient limit equal to 1,
1424 the rate delay specifies the time between deliveries to the same
1425 recipient. Different recipients are delivered in parallel, sub‐
1426 ject to the process limits specified in master.cf.
1427
1428 To enable the delay, specify a non-zero time value (an integral value
1429 plus an optional one-letter suffix that specifies the time unit).
1430
1431 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1432 The default time unit is s (seconds).
1433
1434 NOTE: the delay is enforced by the queue manager. The delay timer state
1435 does not survive "postfix reload" or "postfix stop".
1436
1437 Use transport_destination_rate_delay to specify a transport-specific
1438 override, where transport is the master.cf name of the message delivery
1439 transport.
1440
1441 NOTE: with a non-zero _destination_rate_delay, specify a transport_des‐
1442 tination_concurrency_failed_cohort_limit of 10 or more to prevent Post‐
1443 fix from deferring all mail for the same destination after only one
1444 connection or handshake error.
1445
1446 This feature is available in Postfix 2.5 and later.
1447
1449 The default maximal number of recipients per message delivery. This is
1450 the default limit for delivery via the lmtp(8), pipe(8), smtp(8) and
1451 virtual(8) delivery agents.
1452
1453 Setting this parameter to a value of 1 affects email deliveries as fol‐
1454 lows:
1455
1456 • It changes the meaning of the corresponding per-destination con‐
1457 currency limit, from concurrency of deliveries to the same do‐
1458 main into concurrency of deliveries to the same recipient. Dif‐
1459 ferent recipients are delivered in parallel, subject to the
1460 process limits specified in master.cf.
1461
1462 • It changes the meaning of the corresponding per-destination rate
1463 delay, from the delay between deliveries to the same domain into
1464 the delay between deliveries to the same recipient. Again, dif‐
1465 ferent recipients are delivered in parallel, subject to the
1466 process limits specified in master.cf.
1467
1468 • It changes the meaning of other corresponding per-destination
1469 settings in a similar manner, from settings for delivery to the
1470 same domain into settings for delivery to the same recipient.
1471
1472 Use transport_destination_recipient_limit to specify a transport-spe‐
1473 cific override, where transport is the master.cf name of the message
1474 delivery transport.
1475
1477 The default value for the extra per-transport limit imposed on the num‐
1478 ber of in-memory recipients. This extra recipient space is reserved
1479 for the cases when the Postfix queue manager's scheduler preempts one
1480 message with another and suddenly needs some extra recipient slots for
1481 the chosen message in order to avoid performance degradation.
1482
1483 Use transport_extra_recipient_limit to specify a transport-specific
1484 override, where transport is the master.cf name of the message delivery
1485 transport.
1486
1488 When a content_filter or FILTER request specifies no explicit next-hop
1489 destination, use $default_filter_nexthop instead; when that value is
1490 empty, use the domain in the recipient address. Specify "default_fil‐
1491 ter_nexthop = $myhostname" for compatibility with Postfix version 2.6
1492 and earlier, or specify an explicit next-hop destination with each con‐
1493 tent_filter value or FILTER action.
1494
1495 This feature is available in Postfix 2.7 and later.
1496
1498 How many recipients a message must have in order to invoke the Postfix
1499 queue manager's scheduling algorithm at all. Messages which would
1500 never accumulate at least this many delivery slots (subject to slot
1501 cost parameter as well) are never preempted.
1502
1503 Use transport_minimum_delivery_slots to specify a transport-specific
1504 override, where transport is the master.cf name of the message delivery
1505 transport.
1506
1508 The default rights used by the local(8) delivery agent for delivery to
1509 an external file or command. These rights are used when delivery is
1510 requested from an aliases(5) file that is owned by root, or when deliv‐
1511 ery is done on behalf of root. DO NOT SPECIFY A PRIVILEGED USER OR THE
1512 POSTFIX OWNER.
1513
1515 The default maximal number of Postfix child processes that provide a
1516 given service. This limit can be overruled for specific services in the
1517 master.cf file.
1518
1520 The default Postfix SMTP server response template for a request that is
1521 rejected by an RBL-based restriction. This template can be overruled by
1522 specific entries in the optional rbl_reply_maps lookup table.
1523
1524 This feature is available in Postfix 2.0 and later.
1525
1526 The template does not support Postfix configuration parameter $name
1527 substitution. Instead, it supports exactly one level of $name substitu‐
1528 tion for the following attributes:
1529
1530 $client
1531 The client hostname and IP address, formatted as name[address].
1532
1533 $client_address
1534 The client IP address.
1535
1536 $client_name
1537 The client hostname or "unknown". See reject_un‐
1538 known_client_hostname for more details.
1539
1540 $reverse_client_name
1541 The client hostname from address->name lookup, or "unknown".
1542 See reject_unknown_reverse_client_hostname for more details.
1543
1544 $helo_name
1545 The hostname given in HELO or EHLO command or empty string.
1546
1547 $rbl_class
1548 The denylisted entity type: Client host, Helo command, Sender
1549 address, or Recipient address.
1550
1551 $rbl_code
1552 The numerical SMTP response code, as specified with the
1553 maps_rbl_reject_code configuration parameter. Note: The numeri‐
1554 cal SMTP response code is required, and must appear at the start
1555 of the reply. With Postfix version 2.3 and later this informa‐
1556 tion may be followed by an RFC 3463 enhanced status code.
1557
1558 $rbl_domain
1559 The RBL domain where $rbl_what is denylisted.
1560
1561 $rbl_reason
1562 The reason why $rbl_what is denylisted, or an empty string.
1563
1564 $rbl_what
1565 The entity that is denylisted (an IP address, a hostname, a do‐
1566 main name, or an email address whose domain was denylisted).
1567
1568 $recipient
1569 The recipient address or <> in case of the null address.
1570
1571 $recipient_domain
1572 The recipient domain or empty string.
1573
1574 $recipient_name
1575 The recipient address localpart or <> in case of null address.
1576
1577 $sender
1578 The sender address or <> in case of the null address.
1579
1580 $sender_domain
1581 The sender domain or empty string.
1582
1583 $sender_name
1584 The sender address localpart or <> in case of the null address.
1585
1586 ${name?value}
1587
1588 ${name?{value}} (Postfix >= 3.0)
1589 Expands to value when $name is non-empty.
1590
1591 ${name:value}
1592
1593 ${name:{value}} (Postfix >= 3.0)
1594 Expands to value when $name is empty.
1595
1596 ${name?{value1}:{value2}} (Postfix >= 3.0)
1597 Expands to value1 when $name is non-empty, value2 otherwise.
1598
1599 Instead of $name you can also specify ${name} or $(name).
1600
1601 Note: when an enhanced status code is specified in an RBL reply tem‐
1602 plate, it is subject to modification. The following transformations
1603 are needed when the same RBL reply template is used for client, helo,
1604 sender, or recipient access restrictions.
1605
1606 • When rejecting a sender address, the Postfix SMTP server will
1607 transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the
1608 corresponding sender DSN status, and vice versa.
1609
1610 • When rejecting non-address information (such as the HELO command
1611 argument or the client hostname/address), the Postfix SMTP
1612 server will transform a sender or recipient DSN status into a
1613 generic non-address DSN status (e.g., 4.0.0).
1614
1616 The default per-transport upper limit on the number of in-memory recip‐
1617 ients. These limits take priority over the global qmgr_message_recipi‐
1618 ent_limit after the message has been assigned to the respective trans‐
1619 ports. See also default_extra_recipient_limit and qmgr_message_recipi‐
1620 ent_minimum.
1621
1622 Use transport_recipient_limit to specify a transport-specific override,
1623 where transport is the master.cf name of the message delivery trans‐
1624 port.
1625
1627 The default per-transport maximum delay between refilling recipients.
1628 When not all message recipients fit into memory at once, keep loading
1629 more of them at least once every this many seconds. This is used to
1630 make sure the recipients are refilled in a timely manner even when $de‐
1631 fault_recipient_refill_limit is too high for too slow deliveries.
1632
1633 Use transport_recipient_refill_delay to specify a transport-specific
1634 override, where transport is the master.cf name of the message delivery
1635 transport.
1636
1637 This feature is available in Postfix 2.4 and later.
1638
1640 The default per-transport limit on the number of recipients refilled at
1641 once. When not all message recipients fit into memory at once, keep
1642 loading more of them in batches of at least this many at a time. See
1643 also $default_recipient_refill_delay, which may result in recipient
1644 batches lower than this when this limit is too high for too slow deliv‐
1645 eries.
1646
1647 Use transport_recipient_refill_limit to specify a transport-specific
1648 override, where transport is the master.cf name of the message delivery
1649 transport.
1650
1651 This feature is available in Postfix 2.4 and later.
1652
1654 The default mail delivery transport and next-hop destination for desti‐
1655 nations that do not match $mydestination, $inet_interfaces, $proxy_in‐
1656 terfaces, $virtual_alias_domains, $virtual_mailbox_domains, or $re‐
1657 lay_domains. This information can be overruled with the sender_depen‐
1658 dent_default_transport_maps parameter and with the transport(5) table.
1659
1660 In order of decreasing precedence, the nexthop destination is taken
1661 from $sender_dependent_default_transport_maps, $default_transport,
1662 $sender_dependent_relayhost_maps, $relayhost, or from the recipient do‐
1663 main.
1664
1665 Specify a string of the form transport:nexthop, where transport is the
1666 name of a mail delivery transport defined in master.cf. The :nexthop
1667 destination is optional; its syntax is documented in the manual page of
1668 the corresponding delivery agent. In the case of SMTP or LMTP, specify
1669 one or more destinations separated by comma or whitespace (with Postfix
1670 3.5 and later).
1671
1672 Example:
1673
1674 default_transport = uucp:relayhostname
1675
1677 The default amount of delay that is inserted between individual message
1678 deliveries over the same message delivery transport, regardless of des‐
1679 tination. Specify a non-zero value to rate-limit those message deliver‐
1680 ies to at most one per $default_transport_rate_delay.
1681
1682 Use transport_transport_rate_delay to specify a transport-specific
1683 override, where the initial transport is the master.cf name of the mes‐
1684 sage delivery transport.
1685
1686 Example: throttle outbound SMTP mail to at most 3 deliveries per
1687 minute.
1688
1689 /etc/postfix/main.cf:
1690 smtp_transport_rate_delay = 20s
1691
1692 To enable the delay, specify a non-zero time value (an integral value
1693 plus an optional one-letter suffix that specifies the time unit).
1694
1695 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1696 The default time unit is s (seconds).
1697
1698 NOTE: the delay is enforced by the queue manager.
1699
1700 This feature is available in Postfix 3.1 and later.
1701
1703 The two default VERP delimiter characters. These are used when no ex‐
1704 plicit delimiters are specified with the SMTP XVERP command or with the
1705 "sendmail -XV" command-line option (Postfix 2.2 and earlier: -V). Spec‐
1706 ify characters that are allowed by the verp_delimiter_filter setting.
1707
1708 This feature is available in Postfix 1.1 and later.
1709
1711 The numerical Postfix SMTP server response code when a remote SMTP
1712 client request is rejected by the "defer" restriction.
1713
1714 Do not change this unless you have a complete understanding of RFC
1715 5321.
1716
1718 The name of the defer service. This service is implemented by the
1719 bounce(8) daemon and maintains a record of failed delivery attempts and
1720 generates non-delivery notifications.
1721
1722 This feature is available in Postfix 2.0 and later.
1723
1725 The names of message delivery transports that should not deliver mail
1726 unless someone issues "sendmail -q" or equivalent. Specify zero or more
1727 mail delivery transport names that appear in the first field of mas‐
1728 ter.cf.
1729
1730 Example:
1731
1732 defer_transports = smtp
1733
1735 The maximal number of digits after the decimal point when logging
1736 sub-second delay values. Specify a number in the range 0..6.
1737
1738 Large delay values are rounded off to an integral number of seconds;
1739 delay values below the delay_logging_resolution_limit are logged as
1740 "0", and delay values under 100s are logged with at most two-digit pre‐
1741 cision.
1742
1743 The format of the "delays=a/b/c/d" logging is as follows:
1744
1745 • a = time from message arrival to last active queue entry
1746
1747 • b = time from last active queue entry to connection setup
1748
1749 • c = time in connection setup, including DNS, EHLO and STARTTLS
1750
1751 • d = time in message transmission
1752
1753 This feature is available in Postfix 2.3 and later.
1754
1756 The recipient of postmaster notifications with the message headers of
1757 mail that cannot be delivered within $delay_warning_time time units.
1758
1759 See also: delay_warning_time, notify_classes.
1760
1762 The time after which the sender receives a copy of the message headers
1763 of mail that is still queued. The confirm_delay_cleared parameter con‐
1764 trols sender notification when the delay clears up.
1765
1766 To enable this feature, specify a non-zero time value (an integral
1767 value plus an optional one-letter suffix that specifies the time unit).
1768
1769 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1770 The default time unit is h (hours).
1771
1772 See also: delay_notice_recipient, notify_classes, confirm_de‐
1773 lay_cleared.
1774
1776 The maximal number of attempts to acquire an exclusive lock on a mail‐
1777 box file or bounce(8) logfile.
1778
1780 The time between attempts to acquire an exclusive lock on a mailbox
1781 file or bounce(8) logfile.
1782
1783 Specify a non-zero time value (an integral value plus an optional
1784 one-letter suffix that specifies the time unit). Time units: s (sec‐
1785 onds), m (minutes), h (hours), d (days), w (weeks). The default time
1786 unit is s (seconds).
1787
1789 Make the queue manager's feedback algorithm verbose for performance
1790 analysis purposes.
1791
1792 This feature is available in Postfix 2.5 and later.
1793
1795 Automatically detect 8BITMIME body content by looking at Content-Trans‐
1796 fer-Encoding: message headers; historically, this behavior was
1797 hard-coded to be "always on".
1798
1799 This feature is available in Postfix 2.5 and later.
1800
1802 Disable DNS lookups in the Postfix SMTP and LMTP clients. When dis‐
1803 abled, hosts are looked up with the getaddrinfo() system library rou‐
1804 tine which normally also looks in /etc/hosts. As of Postfix 2.11, this
1805 parameter is deprecated; use smtp_dns_support_level instead.
1806
1807 DNS lookups are enabled by default.
1808
1810 Turn off MIME processing while receiving mail. This means that no spe‐
1811 cial treatment is given to Content-Type: message headers, and that all
1812 text after the initial message headers is considered to be part of the
1813 message body.
1814
1815 This feature is available in Postfix 2.0 and later.
1816
1817 Mime input processing is enabled by default, and is needed in order to
1818 recognize MIME headers in message content.
1819
1821 Disable the conversion of 8BITMIME format to 7BIT format. Mime output
1822 conversion is needed when the destination does not advertise 8BITMIME
1823 support.
1824
1825 This feature is available in Postfix 2.0 and later.
1826
1828 Disable sending one bounce report per recipient.
1829
1830 The default, one per recipient, is what ezmlm needs.
1831
1832 This feature is available in Postfix 1.1 and later.
1833
1835 Disable the SMTP VRFY command. This stops some techniques used to har‐
1836 vest email addresses.
1837
1838 Example:
1839
1840 disable_vrfy_command = no
1841
1843 Enable a workaround for future libc incompatibility. The Postfix imple‐
1844 mentation of RFC 2308 negative reply caching relies on the promise that
1845 res_query() and res_search() invoke res_send(), which returns the
1846 server response in an application buffer even if the requested record
1847 does not exist. If this promise is broken, specify "yes" to enable a
1848 workaround for DNS reputation lookups.
1849
1850 This feature is available in Postfix 3.1 and later.
1851
1853 A debugging aid to artificially delay DNS responses.
1854
1855 This feature is available in Postfix 2.8.
1856
1858 The name of the dnsblog(8) service entry in master.cf. This service
1859 performs DNS allow/denylist lookups.
1860
1861 This feature is available in Postfix 2.8 and later.
1862
1864 The DNS query type (default: "ns") and DNS query name (default: ".")
1865 that Postfix may use to determine whether DNSSEC validation is avail‐
1866 able.
1867
1868 Background: DNSSEC validation is needed for Postfix DANE support; this
1869 ensures that Postfix receives TLSA records with secure TLS server cer‐
1870 tificate info. When DNSSEC validation is unavailable, mail deliveries
1871 using opportunistic DANE will not be protected by server certificate
1872 info in TLSA records, and mail deliveries using mandatory DANE will not
1873 be made at all.
1874
1875 By default, a Postfix process will send a DNSSEC probe after 1) the
1876 process made a DNS query that requested DNSSEC validation, 2) the
1877 process did not receive a DNSSEC validated response to this query or to
1878 an earlier query, and 3) the process did not already send a DNSSEC
1879 probe.
1880
1881 When the DNSSEC probe has no response, or when the response is not
1882 DNSSEC validated, Postfix logs a warning that DNSSEC validation may be
1883 unavailable.
1884
1885 Example:
1886
1887 warning: DNSSEC validation may be unavailable
1888 warning: reason: dnssec_probe 'ns:.' received a response that is not DNSSEC validated
1889 warning: reason: dnssec_probe 'ns:.' received no response: Server failure
1890
1891 Possible reasons why DNSSEC validation may be unavailable:
1892
1893 • The local /etc/resolv.conf file specifies a DNS resolver that
1894 does not validate DNSSEC signatures (that's $queue_direc‐
1895 tory/etc/resolv.conf when a Postfix daemon runs in a chroot
1896 jail).
1897
1898 • The local system library does not pass on the "DNSSEC validated"
1899 bit to Postfix, or Postfix does not know how to ask the library
1900 to do that.
1901
1902 By default, the DNSSEC probe asks for the DNS root zone NS records, be‐
1903 cause resolvers should always have that information cached. If Postfix
1904 runs on a network where the DNS root zone is not reachable, specify a
1905 different probe, or specify an empty dnssec_probe value to disable the
1906 feature.
1907
1908 This feature is available in Postfix 3.6 and later. It was backported
1909 to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21.
1910
1912 Don't remove queue files and save them to the "saved" mail queue. This
1913 is a debugging aid. To inspect the envelope information and content of
1914 a Postfix queue file, use the postcat(1) command.
1915
1917 The sender address of postmaster notifications that are generated by
1918 the mail system. All mail to this address is silently discarded, in or‐
1919 der to terminate mail bounce loops.
1920
1922 The maximal number of addresses remembered by the address duplicate
1923 filter for aliases(5) or virtual(5) alias expansion, or for showq(8)
1924 queue displays.
1925
1927 The sender_dependent_default_transport_maps search string that will be
1928 used instead of the null sender address.
1929
1930 This feature is available in Postfix 2.7 and later.
1931
1933 The lookup key to be used in local_login_sender_maps tables, instead of
1934 the null sender address.
1935
1936 This feature is available in Postfix 3.6 and later.
1937
1939 The recipient of mail addressed to the null address. Postfix does not
1940 accept such addresses in SMTP commands, but they may still be created
1941 locally as the result of configuration or software error.
1942
1944 The sender_dependent_relayhost_maps search string that will be used in‐
1945 stead of the null sender address.
1946
1947 This feature is available in Postfix 2.5 and later. With earlier ver‐
1948 sions, sender_dependent_relayhost_maps lookups were skipped for the
1949 null sender address.
1950
1952 Report mail delivery errors to the address specified with the non-stan‐
1953 dard Errors-To: message header, instead of the envelope sender address
1954 (this feature is removed with Postfix version 2.2, is turned off by de‐
1955 fault with Postfix version 2.1, and is always turned on with older
1956 Postfix versions).
1957
1959 Enable 'transitional' compatibility between IDNA2003 and IDNA2008, when
1960 converting UTF-8 domain names to/from the ASCII form that is used for
1961 DNS lookups. Specify "yes" for compatibility with Postfix <= 3.1 (not
1962 recommended). This affects the conversion of domain names that contain
1963 for example the German sz and the Greek zeta. See http://uni‐
1964 code.org/cldr/utility/idna.jsp for more examples.
1965
1966 This feature is available in Postfix 3.2 and later.
1967
1969 Enable long, non-repeating, queue IDs (queue file names). The benefit
1970 of non-repeating names is simpler logfile analysis and easier queue mi‐
1971 gration (there is no need to run "postsuper" to change queue file names
1972 that don't match their message file inode number).
1973
1974 Note: see below for how to convert long queue file names to Postfix <=
1975 2.8.
1976
1977 Changing the parameter value to "yes" has the following effects:
1978
1979 • Existing queue file names are not affected.
1980
1981 • New queue files are created with names such as 3Pt2mN2VXxznjll.
1982 These are encoded in a 52-character alphabet that contains dig‐
1983 its (0-9), upper-case letters (B-Z) and lower-case letters
1984 (b-z). For safety reasons the vowels (AEIOUaeiou) are excluded
1985 from the alphabet. The name format is: 6 or more characters for
1986 the time in seconds, 4 characters for the time in microseconds,
1987 the 'z'; the remainder is the file inode number encoded in the
1988 first 51 characters of the 52-character alphabet.
1989
1990 • New messages have a Message-ID header with queueID@myhostname.
1991
1992 • The mailq (postqueue -p) output has a wider Queue ID column.
1993 The number of whitespace-separated fields is not changed.
1994
1995 • The hash_queue_depth algorithm uses the first characters of the
1996 queue file creation time in microseconds, after conversion into
1997 hexadecimal representation. This produces the same queue hashing
1998 behavior as if the queue file name was created with "en‐
1999 able_long_queue_ids = no".
2000
2001 Changing the parameter value to "no" has the following effects:
2002
2003 • Existing long queue file names are renamed to the short form
2004 (while running "postfix reload" or "postsuper").
2005
2006 • New queue files are created with names such as C3CD21F3E90 from
2007 a hexadecimal alphabet that contains digits (0-9) and upper-case
2008 letters (A-F). The name format is: 5 characters for the time in
2009 microseconds; the remainder is the file inode number.
2010
2011 • New messages have a Message-ID header with YYYYMMDDHH‐
2012 MMSS.queueid@myhostname, where YYYYMMDDHHMMSS are the year,
2013 month, day, hour, minute and second.
2014
2015 • The mailq (postqueue -p) output has the same format as with
2016 Postfix <= 2.8.
2017
2018 • The hash_queue_depth algorithm uses the first characters of the
2019 queue file name, with the hexadecimal representation of the file
2020 creation time in microseconds.
2021
2022 Before migration to Postfix <= 2.8, the following commands are required
2023 to convert long queue file names into short names:
2024
2025 # postfix stop
2026 # postconf enable_long_queue_ids=no
2027 # postsuper
2028
2029 Repeat the postsuper command until it reports no more queue file name
2030 changes.
2031
2032 This feature is available in Postfix 2.9 and later.
2033
2035 Enable support for the original recipient address after an address is
2036 rewritten to a different address (for example with aliasing or with
2037 canonical mapping).
2038
2039 The original recipient address is used as follows:
2040
2041 Final delivery
2042 With "enable_original_recipient = yes", the original recipient
2043 address is stored in the X-Original-To message header. This
2044 header may be used to distinguish between different recipients
2045 that share the same mailbox.
2046
2047 Recipient deduplication
2048 With "enable_original_recipient = yes", the cleanup(8) daemon
2049 performs duplicate recipient elimination based on the content of
2050 (original recipient, maybe-rewritten recipient) pairs. Other‐
2051 wise, the cleanup(8) daemon performs duplicate recipient elimi‐
2052 nation based only on the maybe-rewritten recipient address.
2053
2054 Note: with Postfix <= 3.2 the "setting enable_original_recipient = no"
2055 breaks address verification for addresses that are aliased or otherwise
2056 rewritten (Postfix is unable to store the address verification result
2057 under the original probe destination address; instead, it can store the
2058 result only under the rewritten address).
2059
2060 This feature is available in Postfix 2.1 and later. Postfix version 2.0
2061 behaves as if this parameter is always set to yes. Postfix versions
2062 before 2.0 have no support for the original recipient address.
2063
2065 Enable non-delivery, success, and delay notifications that link to the
2066 original message by including a References: and In-Reply-To: header
2067 with the original Message-ID value. There are advantages and disadvan‐
2068 tages to consider.
2069
2070 advantage
2071 This allows mail readers to present a delivery status notifica‐
2072 tion in the same email thread as the original message.
2073
2074 disadvantage
2075 This makes it easy for users to mistakenly delete the whole
2076 email thread (all related messages), instead of deleting only
2077 the non-delivery notification.
2078
2079 This feature is available in Postfix 3.6 and later.
2080
2082 The recipient of postmaster notifications about mail delivery problems
2083 that are caused by policy, resource, software or protocol errors.
2084 These notifications are enabled with the notify_classes parameter.
2085
2087 The name of the error(8) pseudo delivery agent. This service always re‐
2088 turns mail as undeliverable.
2089
2090 This feature is available in Postfix 2.0 and later.
2091
2093 Restrict the characters that the local(8) delivery agent allows in
2094 $name expansions of $command_execution_directory. Characters outside
2095 the allowed set are replaced by underscores.
2096
2097 This feature is available in Postfix 2.2 and later.
2098
2100 When delivering to an alias "aliasname" that has an "owner-aliasname"
2101 companion alias, set the envelope sender address to the expansion of
2102 the "owner-aliasname" alias. Normally, Postfix sets the envelope
2103 sender address to the name of the "owner-aliasname" alias.
2104
2106 The list of environment variables that a Postfix process will export to
2107 non-Postfix processes. The TZ variable is needed for sane time keeping
2108 on System-V-ish systems.
2109
2110 Specify a list of names and/or name=value pairs, separated by white‐
2111 space or comma. Specify "{ name=value }" to protect whitespace or comma
2112 in parameter values (whitespace after the opening "{" and before the
2113 closing "}" is ignored). The form name=value is supported with Postfix
2114 version 2.1 and later; the use of {} is supported with Postfix 3.0 and
2115 later.
2116
2117 Example:
2118
2119 export_environment = TZ PATH=/bin:/usr/bin
2120
2122 The maximal number of recipient addresses that Postfix will extract
2123 from message headers when mail is submitted with "sendmail -t".
2124
2125 This feature was removed in Postfix version 2.1.
2126
2128 Optional list of relay hosts for SMTP destinations that can't be found
2129 or that are unreachable. With Postfix 2.3 this parameter is renamed to
2130 smtp_fallback_relay.
2131
2132 By default, mail is returned to the sender when a destination is not
2133 found, and delivery is deferred when a destination is unreachable.
2134
2135 The fallback relays must be SMTP destinations. Specify a domain, host,
2136 host:port, [host]:port, [address] or [address]:port; the form [host]
2137 turns off MX lookups. If you specify multiple SMTP destinations, Post‐
2138 fix will try them in the specified order.
2139
2140 Note: before Postfix 2.2, do not use the fallback_relay feature when
2141 relaying mail for a backup or primary MX domain. Mail would loop be‐
2142 tween the Postfix MX host and the fallback_relay host when the final
2143 destination is unavailable.
2144
2145 • In main.cf specify "relay_transport = relay",
2146
2147 • In master.cf specify "-o fallback_relay =" (i.e., empty) at the
2148 end of the relay entry.
2149
2150 • In transport maps, specify "relay:nexthop..." as the right-hand
2151 side for backup or primary MX domain entries.
2152
2153 Postfix version 2.2 and later will not use the fallback_relay feature
2154 for destinations that it is MX host for.
2155
2157 Optional message delivery transport that the local(8) delivery agent
2158 should use for names that are not found in the aliases(5) or UNIX pass‐
2159 word database.
2160
2161 The precedence of local(8) delivery features from high to low is:
2162 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2163 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
2164 tory, fallback_transport_maps, fallback_transport and luser_relay.
2165
2167 Optional lookup tables with per-recipient message delivery transports
2168 for recipients that the local(8) delivery agent could not find in the
2169 aliases(5) or UNIX password database.
2170
2171 The precedence of local(8) delivery features from high to low is:
2172 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2173 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
2174 tory, fallback_transport_maps, fallback_transport and luser_relay.
2175
2176 For safety reasons, this feature does not allow $number substitutions
2177 in regular expression maps.
2178
2179 This feature is available in Postfix 2.3 and later.
2180
2182 Optional list of destinations that are eligible for per-destination
2183 logfiles with mail that is queued to those destinations.
2184
2185 By default, Postfix maintains "fast flush" logfiles only for destina‐
2186 tions that the Postfix SMTP server is willing to relay to (i.e. the de‐
2187 fault is: "fast_flush_domains = $relay_domains"; see the relay_domains
2188 parameter in the postconf(5) manual).
2189
2190 Specify a list of hosts or domains, "/file/name" patterns or "type:ta‐
2191 ble" lookup tables, separated by commas and/or whitespace. Continue
2192 long lines by starting the next line with whitespace. A "/file/name"
2193 pattern is replaced by its contents; a "type:table" lookup table is
2194 matched when the domain or its parent domain appears as lookup key.
2195
2196 Pattern matching of domain names is controlled by the presence or ab‐
2197 sence of "fast_flush_domains" in the parent_domain_matches_subdomains
2198 parameter value.
2199
2200 Specify "fast_flush_domains =" (i.e., empty) to disable the feature al‐
2201 together.
2202
2204 The time after which an empty per-destination "fast flush" logfile is
2205 deleted.
2206
2207 You can specify the time as a number, or as a number followed by a let‐
2208 ter that indicates the time unit: s=seconds, m=minutes, h=hours,
2209 d=days, w=weeks. The default time unit is days.
2210
2212 The time after which a non-empty but unread per-destination "fast
2213 flush" logfile needs to be refreshed. The contents of a logfile are
2214 refreshed by requesting delivery of all messages listed in the logfile.
2215
2216 You can specify the time as a number, or as a number followed by a let‐
2217 ter that indicates the time unit: s=seconds, m=minutes, h=hours,
2218 d=days, w=weeks. The default time unit is hours.
2219
2221 Force specific internal tests to fail, to test the handling of errors
2222 that are difficult to reproduce otherwise.
2223
2225 The name of the flush(8) service. This service maintains per-destina‐
2226 tion logfiles with the queue file names of mail that is queued for
2227 those destinations.
2228
2229 This feature is available in Postfix 2.0 and later.
2230
2232 The maximal number of attempts to fork() a child process.
2233
2235 The delay between attempts to fork() a child process.
2236
2237 Specify a non-zero time value (an integral value plus an optional
2238 one-letter suffix that specifies the time unit). Time units: s (sec‐
2239 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2240 unit is s (seconds).
2241
2243 Restrict the characters that the local(8) delivery agent allows in
2244 $name expansions of $forward_path. Characters outside the allowed set
2245 are replaced by underscores.
2246
2248 The local(8) delivery agent search list for finding a .forward file
2249 with user-specified delivery methods. The first file that is found is
2250 used.
2251
2252 The forward_path value is not subject to Postfix configuration parame‐
2253 ter $name expansion. Instead, the following $name expansions are done
2254 on forward_path before the search actually happens. The result of
2255 $name expansion is filtered with the character set that is specified
2256 with the forward_expansion_filter parameter.
2257
2258 $user The recipient's username.
2259
2260 $shell The recipient's login shell pathname.
2261
2262 $home The recipient's home directory.
2263
2264 $recipient
2265 The full recipient address.
2266
2267 $extension
2268 The optional recipient address extension.
2269
2270 $domain
2271 The recipient domain.
2272
2273 $local The entire recipient localpart.
2274
2275 $recipient_delimiter
2276 The address extension delimiter that was found in the recipient
2277 address (Postfix 2.11 and later), or the system-wide recipient
2278 address extension delimiter (Postfix 2.10 and earlier).
2279
2280 ${name?value}
2281
2282 ${name?{value}} (Postfix >= 3.0)
2283 Expands to value when $name is non-empty.
2284
2285 ${name:value}
2286
2287 ${name:{value}} (Postfix >= 3.0)
2288 Expands to value when $name is empty.
2289
2290 ${name?{value1}:{value2}} (Postfix >= 3.0)
2291 Expands to value1 when $name is non-empty, value2 otherwise.
2292
2293 Instead of $name you can also specify ${name} or $(name).
2294
2295 Examples:
2296
2297 forward_path = /var/forward/$user
2298 forward_path =
2299 /var/forward/$user/.forward$recipient_delimiter$extension,
2300 /var/forward/$user/.forward
2301
2303 Update the local(8) delivery agent's idea of the Delivered-To: address
2304 (see prepend_delivered_header) only once, at the start of a delivery
2305 attempt; do not update the Delivered-To: address while expanding
2306 aliases or .forward files.
2307
2308 This feature is available in Postfix 2.3 and later. With older Postfix
2309 releases, the behavior is as if this parameter is set to "no". The old
2310 setting can be expensive with deeply nested aliases or .forward files.
2311 When an alias or .forward file changes the Delivered-To: address, it
2312 ties up one queue file and one cleanup process instance while mail is
2313 being forwarded.
2314
2316 The number of subdirectory levels for queue directories listed with the
2317 hash_queue_names parameter. Queue hashing is implemented by creating
2318 one or more levels of directories with one-character names. Origi‐
2319 nally, these directory names were equal to the first characters of the
2320 queue file name, with the hexadecimal representation of the file cre‐
2321 ation time in microseconds.
2322
2323 With long queue file names, queue hashing produces the same results as
2324 with short names. The file creation time in microseconds is converted
2325 into hexadecimal form before the result is used for queue hashing. The
2326 base 16 encoding gives finer control over the number of subdirectories
2327 than is possible with the base 52 encoding of long queue file names.
2328
2329 After changing the hash_queue_names or hash_queue_depth parameter, exe‐
2330 cute the command "postfix reload".
2331
2333 The names of queue directories that are split across multiple subdirec‐
2334 tory levels.
2335
2336 Before Postfix version 2.2, the default list of hashed queues was sig‐
2337 nificantly larger. Claims about improvements in file system technology
2338 suggest that hashing of the incoming and active queues is no longer
2339 needed. Fewer hashed directories speed up the time needed to restart
2340 Postfix.
2341
2342 After changing the hash_queue_names or hash_queue_depth parameter, exe‐
2343 cute the command "postfix reload".
2344
2346 The maximal number of address tokens are allowed in an address message
2347 header. Information that exceeds the limit is discarded. The limit is
2348 enforced by the cleanup(8) server.
2349
2351 Optional lookup tables for content inspection of primary non-MIME mes‐
2352 sage headers, as specified in the header_checks(5) manual page.
2353
2355 The format of the Postfix-generated From: header. This setting affects
2356 the appearance of 'full name' information when a local program such as
2357 /bin/mail submits a message without a From: header through the Postfix
2358 sendmail(1) command.
2359
2360 Specify one of the following:
2361
2362 standard (default)
2363 Produce a header formatted as "From: name <address>". This is
2364 the default as of Postfix 3.3.
2365
2366 obsolete
2367 Produce a header formatted as "From: address (name)". This is
2368 the behavior prior to Postfix 3.3.
2369
2370 Notes:
2371
2372 • Postfix generates the format "From: address" when name informa‐
2373 tion is unavailable or the envelope sender address is empty.
2374 This is the same behavior as prior to Postfix 3.3.
2375
2376 • In the standard form, the name will be quoted if it contains
2377 specials as defined in RFC 5322, or the "!%" address operators.
2378
2379 • The Postfix sendmail(1) command gets name information from the
2380 -F command-line option, from the NAME environment variable, or
2381 from the UNIX password file.
2382
2383 This feature is available in Postfix 3.3 and later.
2384
2386 The maximal amount of memory in bytes for storing a message header. If
2387 a header is larger, the excess is discarded. The limit is enforced by
2388 the cleanup(8) server.
2389
2391 Log warnings about problematic configuration settings, and provide
2392 helpful suggestions.
2393
2394 This feature is available in Postfix 2.0 and later.
2395
2397 Optional pathname of a mailbox file relative to a local(8) user's home
2398 directory.
2399
2400 Specify a pathname ending in "/" for qmail-style delivery.
2401
2402 The precedence of local(8) delivery features from high to low is:
2403 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2404 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
2405 tory, fallback_transport_maps, fallback_transport and luser_relay.
2406
2407 Examples:
2408
2409 home_mailbox = Mailbox
2410 home_mailbox = Maildir/
2411
2413 The maximal number of Received: message headers that is allowed in the
2414 primary message headers. A message that exceeds the limit is bounced,
2415 in order to stop a mailer loop.
2416
2418 The location of Postfix HTML files that describe how to build, config‐
2419 ure or operate a specific Postfix subsystem or feature.
2420
2422 Ignore DNS MX lookups that produce no response. By default, the Post‐
2423 fix SMTP client defers delivery and tries again after some delay. This
2424 behavior is required by the SMTP standard.
2425
2426 Specify "ignore_mx_lookup_error = yes" to force a DNS A record lookup
2427 instead. This violates the SMTP standard and can result in mis-delivery
2428 of mail.
2429
2431 The list of environment variables that a privileged Postfix process
2432 will import from a non-Postfix parent process, or name=value environ‐
2433 ment overrides. Unprivileged utilities will enforce the name=value
2434 overrides, but otherwise will not change their process environment.
2435 Examples of relevant environment variables:
2436
2437 TZ May be needed for sane time keeping on most System-V-ish sys‐
2438 tems.
2439
2440 DISPLAY
2441 Needed for debugging Postfix daemons with an X-windows debugger.
2442
2443 XAUTHORITY
2444 Needed for debugging Postfix daemons with an X-windows debugger.
2445
2446 MAIL_CONFIG
2447 Needed to make "postfix -c" work.
2448
2449 Specify a list of names and/or name=value pairs, separated by white‐
2450 space or comma. Specify "{ name=value }" to protect whitespace or comma
2451 in environment variable values (whitespace after the opening "{" and
2452 before the closing "}" is ignored). The form name=value is supported
2453 with Postfix version 2.1 and later; the use of {} is supported with
2454 Postfix 3.0 and later.
2455
2457 Time to pause before accepting a new message, when the message arrival
2458 rate exceeds the message delivery rate. This feature is turned on by
2459 default (it's disabled on SCO UNIX due to an SCO bug).
2460
2461 With the default 100 Postfix SMTP server process limit, "in_flow_delay
2462 = 1s" limits the mail inflow to 100 messages per second above the num‐
2463 ber of messages delivered per second.
2464
2465 Specify 0 to disable the feature. Valid delays are 0..10.
2466
2468 The network interface addresses that this mail system receives mail on.
2469 Specify "all" to receive mail on all network interfaces (default), and
2470 "loopback-only" to receive mail on loopback network interfaces only
2471 (Postfix version 2.2 and later). The parameter also controls delivery
2472 of mail to user@[ip.address].
2473
2474 Note 1: you need to stop and start Postfix when this parameter changes.
2475
2476 Note 2: address information may be enclosed inside [], but this form is
2477 not required here.
2478
2479 When inet_interfaces specifies just one IPv4 and/or IPv6 address that
2480 is not a loopback address, the Postfix SMTP client will use this ad‐
2481 dress as the IP source address for outbound mail. Support for IPv6 is
2482 available in Postfix version 2.2 and later.
2483
2484 On a multi-homed firewall with separate Postfix instances listening on
2485 the "inside" and "outside" interfaces, this can prevent each instance
2486 from being able to reach remote SMTP servers on the "other side" of the
2487 firewall. Setting smtp_bind_address to 0.0.0.0 avoids the potential
2488 problem for IPv4, and setting smtp_bind_address6 to :: solves the prob‐
2489 lem for IPv6.
2490
2491 A better solution for multi-homed firewalls is to leave inet_interfaces
2492 at the default value and instead use explicit IP addresses in the mas‐
2493 ter.cf SMTP server definitions. This preserves the Postfix SMTP
2494 client's loop detection, by ensuring that each side of the firewall
2495 knows that the other IP address is still the same host. Setting
2496 $inet_interfaces to a single IPv4 and/or IPV6 address is primarily use‐
2497 ful with virtual hosting of domains on secondary IP addresses, when
2498 each IP address serves a different domain (and has a different $myhost‐
2499 name setting).
2500
2501 See also the proxy_interfaces parameter, for network addresses that are
2502 forwarded to Postfix by way of a proxy or address translator.
2503
2504 Examples:
2505
2506 inet_interfaces = all (DEFAULT)
2507 inet_interfaces = loopback-only (Postfix version 2.2 and later)
2508 inet_interfaces = 127.0.0.1
2509 inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later)
2510 inet_interfaces = 192.168.1.2, 127.0.0.1
2511
2513 The Internet protocols Postfix will attempt to use when making or ac‐
2514 cepting connections. Specify one or more of "ipv4" or "ipv6", separated
2515 by whitespace or commas. The form "all" is equivalent to "ipv4, ipv6"
2516 or "ipv4", depending on whether the operating system implements IPv6.
2517
2518 With Postfix 2.8 and earlier the default is "ipv4". For backwards com‐
2519 patibility with these releases, the Postfix 2.9 and later upgrade pro‐
2520 cedure appends an explicit "inet_protocols = ipv4" setting to main.cf
2521 when no explicit setting is present. This compatibility workaround will
2522 be phased out as IPv6 deployment becomes more common.
2523
2524 This feature is available in Postfix 2.2 and later.
2525
2526 Note: you MUST stop and start Postfix after changing this parameter.
2527
2528 On systems that pre-date IPV6_V6ONLY support (RFC 3493), an IPv6 server
2529 will also accept IPv4 connections, even when IPv4 is turned off with
2530 the inet_protocols parameter. On systems with IPV6_V6ONLY support,
2531 Postfix will use separate server sockets for IPv6 and IPv4, and each
2532 will accept only connections for the corresponding protocol.
2533
2534 When IPv4 support is enabled via the inet_protocols parameter, Postfix
2535 will look up DNS type A records, and will convert IPv4-in-IPv6 client
2536 IP addresses (::ffff:1.2.3.4) to their original IPv4 form (1.2.3.4).
2537 The latter is needed on hosts that pre-date IPV6_V6ONLY support (RFC
2538 3493).
2539
2540 When IPv6 support is enabled via the inet_protocols parameter, Postfix
2541 will do DNS type AAAA record lookups.
2542
2543 When both IPv4 and IPv6 support are enabled, the Postfix SMTP client
2544 will choose the protocol as specified with the smtp_address_preference
2545 parameter. Postfix versions before 2.8 attempt to connect via IPv6 be‐
2546 fore attempting to use IPv4.
2547
2548 Examples:
2549
2550 inet_protocols = ipv4
2551 inet_protocols = all (DEFAULT)
2552 inet_protocols = ipv6
2553 inet_protocols = ipv4, ipv6
2554
2556 The email address form that will be used in non-debug logging (info,
2557 warning, etc.). As of Postfix 3.5 when an address localpart contains
2558 spaces or other special characters, the localpart will be quoted, for
2559 example:
2560
2561 from=<"name with spaces"@example.com>
2562
2563 Older Postfix versions would log the internal (unquoted) form:
2564
2565 from=<name with spaces@example.com>
2566
2567 The external and internal forms are identical for the vast majority of
2568 email addresses that contain no spaces or other special characters in
2569 the localpart.
2570
2571 The logging in external form is consistent with the address form that
2572 Postfix 3.2 and later prefer for most table lookups. This is therefore
2573 the more useful form for non-debug logging.
2574
2575 Specify "info_log_address_format = internal" for backwards compatibil‐
2576 ity.
2577
2578 Postfix uses the unquoted form internally, because an attacker can
2579 specify an email address in different forms by playing games with
2580 quotes and backslashes. An attacker should not be able to use such
2581 games to circumvent Postfix access policies.
2582
2583 This feature is available in Postfix 3.5 and later.
2584
2586 The initial per-destination concurrency level for parallel delivery to
2587 the same destination. With per-destination recipient limit > 1, a des‐
2588 tination is a domain, otherwise it is a recipient.
2589
2590 Use transport_initial_destination_concurrency to specify a trans‐
2591 port-specific override, where transport is the master.cf name of the
2592 message delivery transport (Postfix 2.5 and later).
2593
2594 Warning: with concurrency of 1, one bad message can be enough to block
2595 all mail to a site.
2596
2598 What categories of Postfix-generated mail are subject to before-queue
2599 content inspection by non_smtpd_milters, header_checks and body_checks.
2600 Specify zero or more of the following, separated by whitespace or
2601 comma.
2602
2603 bounce Inspect the content of delivery status notifications.
2604
2605 notify Inspect the content of postmaster notifications by the smtp(8)
2606 and smtpd(8) processes.
2607
2608 NOTE: It's generally not safe to enable content inspection of Post‐
2609 fix-generated email messages. The user is warned.
2610
2611 This feature is available in Postfix 2.3 and later.
2612
2614 The numerical Postfix SMTP server response code when the client HELO or
2615 EHLO command parameter is rejected by the reject_invalid_helo_hostname
2616 restriction.
2617
2618 Do not change this unless you have a complete understanding of RFC
2619 5321.
2620
2622 The time after which a client closes an idle internal communication
2623 channel. The purpose is to allow Postfix daemon processes to terminate
2624 voluntarily after they become idle. This is used, for example, by the
2625 Postfix address resolving and rewriting clients.
2626
2627 With Postfix 2.4 the default value was reduced from 100s to 5s.
2628
2629 Specify a non-zero time value (an integral value plus an optional
2630 one-letter suffix that specifies the time unit). Time units: s (sec‐
2631 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2632 unit is s (seconds).
2633
2635 The time limit for sending or receiving information over an internal
2636 communication channel. The purpose is to break out of deadlock situa‐
2637 tions. If the time limit is exceeded the software aborts with a fatal
2638 error.
2639
2640 Specify a non-zero time value (an integral value plus an optional
2641 one-letter suffix that specifies the time unit). Time units: s (sec‐
2642 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2643 unit is s (seconds).
2644
2646 The time after which a client closes an active internal communication
2647 channel. The purpose is to allow Postfix daemon processes to terminate
2648 voluntarily after reaching their client limit. This is used, for exam‐
2649 ple, by the Postfix address resolving and rewriting clients.
2650
2651 Specify a non-zero time value (an integral value plus an optional
2652 one-letter suffix that specifies the time unit). Time units: s (sec‐
2653 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2654 unit is s (seconds).
2655
2656 This feature is available in Postfix 2.1 and later.
2657
2659 sion=587)
2660 Optional setting that avoids lookups in the services(5) database. This
2661 feature was implemented to address inconsistencies in the name of the
2662 port "465" service. The ABNF is:
2663
2664 known_tcp_ports = empty | name-to-port *("," name-to-port)
2665 name-to-port = 1*(service-name "=') port-number
2666
2667 The comma is required. Whitespace is optional but it cannot appear in‐
2668 side a service name or port number.
2669
2670 This feature is available in Postfix 3.6 and later.
2671
2673 Upon input, long lines are chopped up into pieces of at most this
2674 length; upon delivery, long lines are reconstructed.
2675
2677 The initial OpenLDAP LMDB database size limit in bytes. Each time a
2678 database becomes full, its size limit is doubled.
2679
2680 This feature is available in Postfix 2.11 and later.
2681
2683 The LMTP-specific version of the smtp_address_preference configuration
2684 parameter. See there for details.
2685
2686 This feature is available in Postfix 2.8 and later.
2687
2689 The LMTP-specific version of the smtp_address_verify_target configura‐
2690 tion parameter. See there for details.
2691
2692 This feature is available in Postfix 3.0 and later.
2693
2695 When a remote LMTP server announces no DSN support, assume that the
2696 server performs final delivery, and send "delivered" delivery status
2697 notifications instead of "relayed". The default setting is backwards
2698 compatible to avoid the infinitesimal possibility of breaking existing
2699 LMTP-based content filters.
2700
2702 The LMTP-specific version of the smtp_balance_inet_protocols configura‐
2703 tion parameter. See there for details.
2704
2705 This feature is available in Postfix 3.3 and later.
2706
2708 The LMTP-specific version of the smtp_bind_address configuration param‐
2709 eter. See there for details.
2710
2711 This feature is available in Postfix 2.3 and later.
2712
2714 The LMTP-specific version of the smtp_bind_address6 configuration pa‐
2715 rameter. See there for details.
2716
2717 This feature is available in Postfix 2.3 and later.
2718
2720 The LMTP-specific version of the smtp_bind_address_enforce configura‐
2721 tion parameter. See there for details.
2722
2723 This feature is available in Postfix 3.7 and later.
2724
2726 The LMTP-specific version of the smtp_body_checks configuration parame‐
2727 ter. See there for details.
2728
2729 This feature is available in Postfix 2.5 and later.
2730
2732 Keep Postfix LMTP client connections open for up to $max_idle seconds.
2733 When the LMTP client receives a request for the same connection the
2734 connection is reused.
2735
2736 This parameter is available in Postfix version 2.2 and earlier. With
2737 Postfix version 2.3 and later, see lmtp_connection_cache_on_demand,
2738 lmtp_connection_cache_destinations, or lmtp_connection_re‐
2739 use_time_limit.
2740
2741 The effectiveness of cached connections will be determined by the num‐
2742 ber of remote LMTP servers in use, and the concurrency limit specified
2743 for the Postfix LMTP client. Cached connections are closed under any of
2744 the following conditions:
2745
2746 • The Postfix LMTP client idle time limit is reached. This limit
2747 is specified with the Postfix max_idle configuration parameter.
2748
2749 • A delivery request specifies a different destination than the
2750 one currently cached.
2751
2752 • The per-process limit on the number of delivery requests is
2753 reached. This limit is specified with the Postfix max_use con‐
2754 figuration parameter.
2755
2756 • Upon the onset of another delivery request, the remote LMTP
2757 server associated with the current session does not respond to
2758 the RSET command.
2759
2760 Most of these limitations have been with the Postfix connection cache
2761 that is shared among multiple LMTP client programs.
2762
2764 The LMTP-specific version of the smtp_cname_overrides_servername con‐
2765 figuration parameter. See there for details.
2766
2767 This feature is available in Postfix 2.3 and later.
2768
2770 The Postfix LMTP client time limit for completing a TCP connection, or
2771 zero (use the operating system built-in time limit). When no connec‐
2772 tion can be made within the deadline, the LMTP client tries the next
2773 address on the mail exchanger list.
2774
2775 Specify a non-negative time value (an integral value plus an optional
2776 one-letter suffix that specifies the time unit). Time units: s (sec‐
2777 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2778 unit is s (seconds).
2779
2780 Example:
2781
2782 lmtp_connect_timeout = 30s
2783
2785 The LMTP-specific version of the smtp_connection_cache_destinations
2786 configuration parameter. See there for details.
2787
2788 This feature is available in Postfix 2.3 and later.
2789
2791 The LMTP-specific version of the smtp_connection_cache_on_demand con‐
2792 figuration parameter. See there for details.
2793
2794 This feature is available in Postfix 2.3 and later.
2795
2797 The LMTP-specific version of the smtp_connection_cache_time_limit con‐
2798 figuration parameter. See there for details.
2799
2800 This feature is available in Postfix 2.3 and later.
2801
2803 The LMTP-specific version of the smtp_connection_reuse_count_limit con‐
2804 figuration parameter. See there for details.
2805
2806 This feature is available in Postfix 2.11 and later.
2807
2809 The LMTP-specific version of the smtp_connection_reuse_time_limit con‐
2810 figuration parameter. See there for details.
2811
2812 This feature is available in Postfix 2.3 and later.
2813
2815 The Postfix LMTP client time limit for sending the LMTP ".", and for
2816 receiving the remote LMTP server response. When no response is re‐
2817 ceived within the deadline, a warning is logged that the mail may be
2818 delivered multiple times.
2819
2820 Specify a non-zero time value (an integral value plus an optional
2821 one-letter suffix that specifies the time unit). Time units: s (sec‐
2822 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2823 unit is s (seconds).
2824
2826 The Postfix LMTP client time limit for sending the LMTP DATA command,
2827 and for receiving the remote LMTP server response.
2828
2829 Specify a non-zero time value (an integral value plus an optional
2830 one-letter suffix that specifies the time unit). Time units: s (sec‐
2831 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2832 unit is s (seconds).
2833
2835 The Postfix LMTP client time limit for sending the LMTP message con‐
2836 tent. When the connection stalls for more than $lmtp_data_xfer_timeout
2837 the LMTP client terminates the transfer.
2838
2839 Specify a non-zero time value (an integral value plus an optional
2840 one-letter suffix that specifies the time unit). Time units: s (sec‐
2841 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2842 unit is s (seconds).
2843
2845 The LMTP-specific version of the smtp_defer_if_no_mx_address_found con‐
2846 figuration parameter. See there for details.
2847
2848 This feature is available in Postfix 2.3 and later.
2849
2851 The LMTP-specific version of the smtp_delivery_status_filter configura‐
2852 tion parameter. See there for details.
2853
2854 This feature is available in Postfix 3.0 and later.
2855
2857 rency_limit)
2858 The maximal number of parallel deliveries to the same destination via
2859 the lmtp message delivery transport. This limit is enforced by the
2860 queue manager. The message delivery transport name is the first field
2861 in the entry in the master.cf file.
2862
2864 ent_limit)
2865 The maximal number of recipients per message for the lmtp message de‐
2866 livery transport. This limit is enforced by the queue manager. The mes‐
2867 sage delivery transport name is the first field in the entry in the
2868 master.cf file.
2869
2870 Setting this parameter to a value of 1 changes the meaning of lmtp_des‐
2871 tination_concurrency_limit from concurrency per domain into concurrency
2872 per recipient.
2873
2875 Lookup tables, indexed by the remote LMTP server address, with case in‐
2876 sensitive lists of LHLO keywords (pipelining, starttls, auth, etc.)
2877 that the Postfix LMTP client will ignore in the LHLO response from a
2878 remote LMTP server. See lmtp_discard_lhlo_keywords for details. The ta‐
2879 ble is not indexed by hostname for consistency with smtpd_dis‐
2880 card_ehlo_keyword_address_maps.
2881
2882 This feature is available in Postfix 2.3 and later.
2883
2885 A case insensitive list of LHLO keywords (pipelining, starttls, auth,
2886 etc.) that the Postfix LMTP client will ignore in the LHLO response
2887 from a remote LMTP server.
2888
2889 This feature is available in Postfix 2.3 and later.
2890
2891 Notes:
2892
2893 • Specify the silent-discard pseudo keyword to prevent this action
2894 from being logged.
2895
2896 • Use the lmtp_discard_lhlo_keyword_address_maps feature to dis‐
2897 card LHLO keywords selectively.
2898
2900 Optional filter for Postfix LMTP client DNS lookup results. See
2901 smtp_dns_reply_filter for details including an example.
2902
2903 This feature is available in Postfix 3.0 and later.
2904
2906 The LMTP-specific version of the smtp_dns_resolver_options configura‐
2907 tion parameter. See there for details.
2908
2909 This feature is available in Postfix 2.8 and later.
2910
2912 The LMTP-specific version of the smtp_dns_support_level configuration
2913 parameter. See there for details.
2914
2915 This feature is available in Postfix 2.11 and later.
2916
2918 The LMTP-specific version of the smtp_enforce_tls configuration parame‐
2919 ter. See there for details.
2920
2921 This feature is available in Postfix 2.3 and later.
2922
2924 Optional list of relay hosts for LMTP destinations that can't be found
2925 or that are unreachable. In main.cf elements are separated by white‐
2926 space or commas.
2927
2928 By default, mail is returned to the sender when a destination is not
2929 found, and delivery is deferred when a destination is unreachable.
2930
2931 The fallback relays must be TCP destinations, specified without a lead‐
2932 ing "inet:" prefix. Specify a host or host:port. Since MX lookups do
2933 not apply with LMTP, there is no need to use the "[host]" or
2934 "[host]:port" forms. If you specify multiple LMTP destinations, Post‐
2935 fix will try them in the specified order.
2936
2937 This feature is available in Postfix 3.1 and later.
2938
2940 The LMTP-specific version of the smtp_generic_maps configuration param‐
2941 eter. See there for details.
2942
2943 This feature is available in Postfix 2.3 and later.
2944
2946 The LMTP-specific version of the smtp_header_checks configuration pa‐
2947 rameter. See there for details.
2948
2949 This feature is available in Postfix 2.5 and later.
2950
2952 The LMTP-specific version of the smtp_host_lookup configuration parame‐
2953 ter. See there for details.
2954
2955 This feature is available in Postfix 2.3 and later.
2956
2958 The hostname to send in the LMTP LHLO command.
2959
2960 The default value is the machine hostname. Specify a hostname or
2961 [ip.add.re.ss] or [ip:v6:add:re::ss].
2962
2963 This information can be specified in the main.cf file for all LMTP
2964 clients, or it can be specified in the master.cf file for a specific
2965 client, for example:
2966
2967 /etc/postfix/master.cf:
2968 mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com
2969
2970 This feature is available in Postfix 2.3 and later.
2971
2973 The Postfix LMTP client time limit for sending the LHLO command, and
2974 for receiving the initial remote LMTP server response.
2975
2976 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2977 The default time unit is s (seconds).
2978
2980 The LMTP-specific version of the smtp_line_length_limit configuration
2981 parameter. See there for details.
2982
2983 This feature is available in Postfix 2.3 and later.
2984
2986 The Postfix LMTP client time limit for sending the MAIL FROM command,
2987 and for receiving the remote LMTP server response.
2988
2989 Specify a non-zero time value (an integral value plus an optional
2990 one-letter suffix that specifies the time unit). Time units: s (sec‐
2991 onds), m (minutes), h (hours), d (days), w (weeks). The default time
2992 unit is s (seconds).
2993
2995 The LMTP-specific version of the smtp_mime_header_checks configuration
2996 parameter. See there for details.
2997
2998 This feature is available in Postfix 2.5 and later.
2999
3001 The LMTP-specific version of the smtp_min_data_rate configuration pa‐
3002 rameter. See there for details.
3003
3004 This feature is available in Postfix 3.7 and later.
3005
3007 The LMTP-specific version of the smtp_mx_address_limit configuration
3008 parameter. See there for details.
3009
3010 This feature is available in Postfix 2.3 and later.
3011
3013 The LMTP-specific version of the smtp_mx_session_limit configuration
3014 parameter. See there for details.
3015
3016 This feature is available in Postfix 2.3 and later.
3017
3019 The LMTP-specific version of the smtp_nested_header_checks configura‐
3020 tion parameter. See there for details.
3021
3022 This feature is available in Postfix 2.5 and later.
3023
3025 The LMTP-specific version of the smtp_per_record_deadline configuration
3026 parameter. See there for details.
3027
3028 This feature is available in Postfix 2.9 and later.
3029
3031 The LMTP-specific version of the smtp_per_request_deadline configura‐
3032 tion parameter. See there for details.
3033
3034 This feature is available in Postfix 3.7 and later.
3035
3037 The LMTP-specific version of the smtp_pix_workaround_delay_time config‐
3038 uration parameter. See there for details.
3039
3040 This feature is available in Postfix 2.3 and later.
3041
3043 The LMTP-specific version of the smtp_pix_workaround_maps configuration
3044 parameter. See there for details.
3045
3046 This feature is available in Postfix 2.4 and later.
3047
3049 The LMTP-specific version of the smtp_pix_workaround_threshold_time
3050 configuration parameter. See there for details.
3051
3052 This feature is available in Postfix 2.3 and later.
3053
3055 The LMTP-specific version of the smtp_pix_workaround configuration pa‐
3056 rameter. See there for details.
3057
3058 This feature is available in Postfix 2.4 and later.
3059
3061 The Postfix LMTP client time limit for sending the QUIT command, and
3062 for receiving the remote LMTP server response.
3063
3064 Specify a non-zero time value (an integral value plus an optional
3065 one-letter suffix that specifies the time unit). Time units: s (sec‐
3066 onds), m (minutes), h (hours), d (days), w (weeks). The default time
3067 unit is s (seconds).
3068
3070 The LMTP-specific version of the smtp_quote_rfc821_envelope configura‐
3071 tion parameter. See there for details.
3072
3073 This feature is available in Postfix 2.3 and later.
3074
3076 The LMTP-specific version of the smtp_randomize_addresses configuration
3077 parameter. See there for details.
3078
3079 This feature is available in Postfix 2.3 and later.
3080
3082 The Postfix LMTP client time limit for sending the RCPT TO command, and
3083 for receiving the remote LMTP server response.
3084
3085 Specify a non-zero time value (an integral value plus an optional
3086 one-letter suffix that specifies the time unit). Time units: s (sec‐
3087 onds), m (minutes), h (hours), d (days), w (weeks). The default time
3088 unit is s (seconds).
3089
3091 The LMTP-specific version of the smtp_reply_filter configuration param‐
3092 eter. See there for details.
3093
3094 This feature is available in Postfix 2.7 and later.
3095
3097 The Postfix LMTP client time limit for sending the RSET command, and
3098 for receiving the remote LMTP server response. The LMTP client sends
3099 RSET in order to finish a recipient address probe, or to verify that a
3100 cached connection is still alive.
3101
3102 Specify a non-zero time value (an integral value plus an optional
3103 one-letter suffix that specifies the time unit). Time units: s (sec‐
3104 onds), m (minutes), h (hours), d (days), w (weeks). The default time
3105 unit is s (seconds).
3106
3108 The LMTP-specific version of the smtp_sasl_auth_cache_name configura‐
3109 tion parameter. See there for details.
3110
3111 This feature is available in Postfix 2.5 and later.
3112
3114 The LMTP-specific version of the smtp_sasl_auth_cache_time configura‐
3115 tion parameter. See there for details.
3116
3117 This feature is available in Postfix 2.5 and later.
3118
3120 Enable SASL authentication in the Postfix LMTP client.
3121
3123 The LMTP-specific version of the smtp_sasl_auth_soft_bounce configura‐
3124 tion parameter. See there for details.
3125
3126 This feature is available in Postfix 2.5 and later.
3127
3129 The LMTP-specific version of the smtp_sasl_mechanism_filter configura‐
3130 tion parameter. See there for details.
3131
3132 This feature is available in Postfix 2.3 and later.
3133
3135 Optional Postfix LMTP client lookup tables with one username:password
3136 entry per host or domain. If a remote host or domain has no user‐
3137 name:password entry, then the Postfix LMTP client will not attempt to
3138 authenticate to the remote host.
3139
3141 Implementation-specific information that is passed through to the SASL
3142 plug-in implementation that is selected with lmtp_sasl_type. Typically
3143 this specifies the name of a configuration file or rendezvous point.
3144
3145 This feature is available in Postfix 2.3 and later.
3146
3148 SASL security options; as of Postfix 2.3 the list of available features
3149 depends on the SASL client implementation that is selected with
3150 lmtp_sasl_type.
3151
3152 The following security features are defined for the cyrus client SASL
3153 implementation:
3154
3155 noplaintext
3156 Disallow authentication methods that use plaintext passwords.
3157
3158 noactive
3159 Disallow authentication methods that are vulnerable to non-dic‐
3160 tionary active attacks.
3161
3162 nodictionary
3163 Disallow authentication methods that are vulnerable to passive
3164 dictionary attacks.
3165
3166 noanonymous
3167 Disallow anonymous logins.
3168
3169 Example:
3170
3171 lmtp_sasl_security_options = noplaintext
3172
3174 The LMTP-specific version of the smtp_sasl_tls_security_options config‐
3175 uration parameter. See there for details.
3176
3177 This feature is available in Postfix 2.3 and later.
3178
3180 tions)
3181 The LMTP-specific version of the smtp_sasl_tls_verified_security_op‐
3182 tions configuration parameter. See there for details.
3183
3184 This feature is available in Postfix 2.3 and later.
3185
3187 The SASL plug-in type that the Postfix LMTP client should use for au‐
3188 thentication. The available types are listed with the "postconf -A"
3189 command.
3190
3191 This feature is available in Postfix 2.3 and later.
3192
3194 The LMTP-specific version of the smtp_send_dummy_mail_auth configura‐
3195 tion parameter. See there for details.
3196
3197 This feature is available in Postfix 2.9 and later.
3198
3200 Send an XFORWARD command to the remote LMTP server when the LMTP LHLO
3201 server response announces XFORWARD support. This allows an lmtp(8) de‐
3202 livery agent, used for content filter message injection, to forward the
3203 name, address, protocol and HELO name of the original client to the
3204 content filter and downstream LMTP server. Before you change the value
3205 to yes, it is best to make sure that your content filter supports this
3206 command.
3207
3208 This feature is available in Postfix 2.1 and later.
3209
3211 The LMTP-specific version of the smtp_sender_dependent_authentication
3212 configuration parameter. See there for details.
3213
3214 This feature is available in Postfix 2.3 and later.
3215
3217 The LMTP-specific version of the smtp_skip_5xx_greeting configuration
3218 parameter. See there for details.
3219
3220 This feature is available in Postfix 2.3 and later.
3221
3223 Wait for the response to the LMTP QUIT command.
3224
3226 The LMTP-specific version of the smtp_starttls_timeout configuration
3227 parameter. See there for details.
3228
3229 This feature is available in Postfix 2.3 and later.
3230
3232 The default TCP port that the Postfix LMTP client connects to. Specify
3233 a symbolic name (see services(5)) or a numeric port.
3234
3236 The LMTP-specific version of the smtp_tls_CAfile configuration parame‐
3237 ter. See there for details.
3238
3239 This feature is available in Postfix 2.3 and later.
3240
3242 The LMTP-specific version of the smtp_tls_CApath configuration parame‐
3243 ter. See there for details.
3244
3245 This feature is available in Postfix 2.3 and later.
3246
3248 The LMTP-specific version of the smtp_tls_block_early_mail_reply con‐
3249 figuration parameter. See there for details.
3250
3251 This feature is available in Postfix 2.7 and later.
3252
3254 The LMTP-specific version of the smtp_tls_cert_file configuration pa‐
3255 rameter. See there for details.
3256
3257 This feature is available in Postfix 2.3 and later.
3258
3260 The LMTP-specific version of the smtp_tls_chain_files configuration pa‐
3261 rameter. See there for details.
3262
3263 This feature is available in Postfix 3.4 and later.
3264
3266 The LMTP-specific version of the smtp_tls_ciphers configuration parame‐
3267 ter. See there for details.
3268
3269 This feature is available in Postfix 2.6 and later.
3270
3272 The LMTP-specific version of the smtp_tls_connection_reuse configura‐
3273 tion parameter. See there for details.
3274
3275 This feature is available in Postfix 3.4 and later.
3276
3278 The LMTP-specific version of the smtp_tls_dcert_file configuration pa‐
3279 rameter. See there for details.
3280
3281 This feature is available in Postfix 2.3 and later.
3282
3284 The LMTP-specific version of the smtp_tls_dkey_file configuration pa‐
3285 rameter. See there for details.
3286
3287 This feature is available in Postfix 2.3 and later.
3288
3290 The LMTP-specific version of the smtp_tls_eccert_file configuration pa‐
3291 rameter. See there for details.
3292
3293 This feature is available in Postfix 2.6 and later, when Postfix is
3294 compiled and linked with OpenSSL 1.0.0 or later.
3295
3297 The LMTP-specific version of the smtp_tls_eckey_file configuration pa‐
3298 rameter. See there for details.
3299
3300 This feature is available in Postfix 2.6 and later, when Postfix is
3301 compiled and linked with OpenSSL 1.0.0 or later.
3302
3304 The LMTP-specific version of the smtp_tls_enforce_peername configura‐
3305 tion parameter. See there for details.
3306
3307 This feature is available in Postfix 2.3 and later.
3308
3310 The LMTP-specific version of the smtp_tls_exclude_ciphers configuration
3311 parameter. See there for details.
3312
3313 This feature is available in Postfix 2.3 and later.
3314
3316 The LMTP-specific version of the smtp_tls_fingerprint_cert_match con‐
3317 figuration parameter. See there for details.
3318
3319 This feature is available in Postfix 2.5 and later.
3320
3322 The LMTP-specific version of the smtp_tls_fingerprint_digest configura‐
3323 tion parameter. See there for details.
3324
3325 This feature is available in Postfix 2.5 and later.
3326
3328 The LMTP-specific version of the smtp_tls_force_inse‐
3329 cure_host_tlsa_lookup configuration parameter. See there for details.
3330
3331 This feature is available in Postfix 2.11 and later.
3332
3334 The LMTP-specific version of the smtp_tls_key_file configuration param‐
3335 eter. See there for details.
3336
3337 This feature is available in Postfix 2.3 and later.
3338
3340 The LMTP-specific version of the smtp_tls_loglevel configuration param‐
3341 eter. See there for details.
3342
3343 This feature is available in Postfix 2.3 and later.
3344
3346 The LMTP-specific version of the smtp_tls_mandatory_ciphers configura‐
3347 tion parameter. See there for details.
3348
3349 This feature is available in Postfix 2.3 and later.
3350
3352 The LMTP-specific version of the smtp_tls_mandatory_exclude_ciphers
3353 configuration parameter. See there for details.
3354
3355 This feature is available in Postfix 2.3 and later.
3356
3358 The LMTP-specific version of the smtp_tls_mandatory_protocols configu‐
3359 ration parameter. See there for details.
3360
3361 This feature is available in Postfix 2.3 and later.
3362
3364 The LMTP-specific version of the smtp_tls_note_starttls_offer configu‐
3365 ration parameter. See there for details.
3366
3367 This feature is available in Postfix 2.3 and later.
3368
3370 The LMTP-specific version of the smtp_tls_per_site configuration param‐
3371 eter. See there for details.
3372
3373 This feature is available in Postfix 2.3 and later.
3374
3376 The LMTP-specific version of the smtp_tls_policy_maps configuration pa‐
3377 rameter. See there for details.
3378
3379 This feature is available in Postfix 2.3 and later.
3380
3382 The LMTP-specific version of the smtp_tls_protocols configuration pa‐
3383 rameter. See there for details.
3384
3385 This feature is available in Postfix 2.6 and later.
3386
3388 The LMTP-specific version of the smtp_tls_scert_verifydepth configura‐
3389 tion parameter. See there for details.
3390
3391 This feature is available in Postfix 2.3 and later.
3392
3394 The LMTP-specific version of the smtp_tls_secure_cert_match configura‐
3395 tion parameter. See there for details.
3396
3397 This feature is available in Postfix 2.3 and later.
3398
3400 The LMTP-specific version of the smtp_tls_security_level configuration
3401 parameter. See there for details.
3402
3403 This feature is available in Postfix 2.3 and later.
3404
3406 The LMTP-specific version of the smtp_tls_servername configuration pa‐
3407 rameter. See there for details.
3408
3409 This feature is available in Postfix 3.4 and later.
3410
3412 The LMTP-specific version of the smtp_tls_session_cache_database con‐
3413 figuration parameter. See there for details.
3414
3415 This feature is available in Postfix 2.3 and later.
3416
3418 The LMTP-specific version of the smtp_tls_session_cache_timeout config‐
3419 uration parameter. See there for details.
3420
3421 This feature is available in Postfix 2.3 and later.
3422
3424 The LMTP-specific version of the smtp_tls_trust_anchor_file configura‐
3425 tion parameter. See there for details.
3426
3427 This feature is available in Postfix 2.11 and later.
3428
3430 The LMTP-specific version of the smtp_tls_verify_cert_match configura‐
3431 tion parameter. See there for details.
3432
3433 This feature is available in Postfix 2.3 and later.
3434
3436 The LMTP-specific version of the smtp_tls_wrappermode configuration pa‐
3437 rameter. See there for details.
3438
3439 This feature is available in Postfix 3.0 and later.
3440
3442 The LMTP-specific version of the smtp_use_tls configuration parameter.
3443 See there for details.
3444
3445 This feature is available in Postfix 2.3 and later.
3446
3448 The Postfix LMTP client time limit for sending the XFORWARD command,
3449 and for receiving the remote LMTP server response.
3450
3451 In case of problems the client does NOT try the next address on the
3452 mail exchanger list.
3453
3454 Specify a non-zero time value (an integral value plus an optional
3455 one-letter suffix that specifies the time unit). Time units: s (sec‐
3456 onds), m (minutes), h (hours), d (days), w (weeks). The default time
3457 unit is s (seconds).
3458
3459 This feature is available in Postfix 2.1 and later.
3460
3462 Optional shell program for local(8) delivery to non-Postfix commands.
3463 By default, non-Postfix commands are executed directly; commands are
3464 given to the default shell (typically, /bin/sh) only when they contain
3465 shell meta characters or shell built-in commands.
3466
3467 "sendmail's restricted shell" (smrsh) is what most people will use in
3468 order to restrict what programs can be run from e.g. .forward files
3469 (smrsh is part of the Sendmail distribution).
3470
3471 Note: when a shell program is specified, it is invoked even when the
3472 command contains no shell built-in commands or meta characters.
3473
3474 Example:
3475
3476 local_command_shell = /some/where/smrsh -c
3477 local_command_shell = /bin/bash -c
3478
3480 Optional filter for the local(8) delivery agent to change the status
3481 code or explanatory text of successful or unsuccessful deliveries. See
3482 default_delivery_status_filter for details.
3483
3484 This feature is available in Postfix 3.0 and later.
3485
3487 The maximal number of parallel deliveries via the local mail delivery
3488 transport to the same recipient (when "local_destination_recipi‐
3489 ent_limit = 1") or the maximal number of parallel deliveries to the
3490 same local domain (when "local_destination_recipient_limit > 1"). This
3491 limit is enforced by the queue manager. The message delivery transport
3492 name is the first field in the entry in the master.cf file.
3493
3494 A low limit of 2 is recommended, just in case someone has an expensive
3495 shell command in a .forward file or in an alias (e.g., a mailing list
3496 manager). You don't want to run lots of those at the same time.
3497
3499 The maximal number of recipients per message delivery via the local
3500 mail delivery transport. This limit is enforced by the queue manager.
3501 The message delivery transport name is the first field in the entry in
3502 the master.cf file.
3503
3504 Setting this parameter to a value > 1 changes the meaning of local_des‐
3505 tination_concurrency_limit from concurrency per recipient into concur‐
3506 rency per domain.
3507
3509 Rewrite message header addresses in mail from these clients and update
3510 incomplete addresses with the domain name in $myorigin or $mydomain;
3511 either don't rewrite message headers from other clients at all, or re‐
3512 write message headers and update incomplete addresses with the domain
3513 specified in the remote_header_rewrite_domain parameter.
3514
3515 See the append_at_myorigin and append_dot_mydomain parameters for de‐
3516 tails of how domain names are appended to incomplete addresses.
3517
3518 Specify a list of zero or more of the following:
3519
3520 permit_inet_interfaces
3521 Append the domain name in $myorigin or $mydomain when the client
3522 IP address matches $inet_interfaces. This is enabled by default.
3523
3524 permit_mynetworks
3525 Append the domain name in $myorigin or $mydomain when the client
3526 IP address matches any network or network address listed in
3527 $mynetworks. This setting will not prevent remote mail header
3528 address rewriting when mail from a remote client is forwarded by
3529 a neighboring system.
3530
3531 permit_sasl_authenticated
3532 Append the domain name in $myorigin or $mydomain when the client
3533 is successfully authenticated via the RFC 4954 (AUTH) protocol.
3534
3535 permit_tls_clientcerts
3536 Append the domain name in $myorigin or $mydomain when the remote
3537 SMTP client TLS certificate fingerprint or public key finger‐
3538 print (Postfix 2.9 and later) is listed in $relay_clientcerts.
3539 The fingerprint digest algorithm is configurable via the
3540 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior
3541 to Postfix version 2.5).
3542 The default algorithm is sha256 with Postfix >= 3.6 and the com‐
3543 patibility_level set to 3.6 or higher. With Postfix <= 3.5, the
3544 default algorithm is md5. The best-practice algorithm is now
3545 sha256. Recent advances in hash function cryptanalysis have led
3546 to md5 and sha1 being deprecated in favor of sha256. However,
3547 as long as there are no known "second pre-image" attacks against
3548 the older algorithms, their use in this context, though not rec‐
3549 ommended, is still likely safe.
3550
3551 permit_tls_all_clientcerts
3552 Append the domain name in $myorigin or $mydomain when the remote
3553 SMTP client TLS certificate is successfully verified, regardless
3554 of whether it is listed on the server, and regardless of the
3555 certifying authority.
3556
3557 check_address_map type:table
3558
3559 type:table
3560 Append the domain name in $myorigin or $mydomain when the client
3561 IP address matches the specified lookup table. The lookup re‐
3562 sult is ignored, and no subnet lookup is done. This is suitable
3563 for, e.g., pop-before-smtp lookup tables.
3564
3565 Examples:
3566
3567 The Postfix < 2.2 backwards compatible setting: always rewrite message
3568 headers, and always append my own domain to incomplete header ad‐
3569 dresses.
3570
3571 local_header_rewrite_clients = static:all
3572
3573 The purist (and default) setting: rewrite headers only in mail from
3574 Postfix sendmail and in SMTP mail from this machine.
3575
3576 local_header_rewrite_clients = permit_inet_interfaces
3577
3578 The intermediate setting: rewrite header addresses and append $myorigin
3579 or $mydomain information only with mail from Postfix sendmail, from lo‐
3580 cal clients, or from authorized SMTP clients.
3581
3582 Note: this setting will not prevent remote mail header address rewrit‐
3583 ing when mail from a remote client is forwarded by a neighboring sys‐
3584 tem.
3585
3586 local_header_rewrite_clients = permit_mynetworks,
3587 permit_sasl_authenticated permit_tls_clientcerts
3588 check_address_map hash:/etc/postfix/pop-before-smtp
3589
3591 A list of lookup tables that are searched by the UNIX login name, and
3592 that return a list of allowed envelope sender patterns separated by
3593 space or comma. These sender patterns are enforced by the Postfix post‐
3594 drop(1) command. The default is backwards-compatible: every user may
3595 specify any sender envelope address.
3596
3597 When no UNIX login name is available, the postdrop(1) command will
3598 prepend "uid:" to the numerical UID and use that instead.
3599
3600 This feature ignores address extensions in the user-specified envelope
3601 sender address.
3602
3603 The following sender patterns are special; these cannot be used as part
3604 of a longer pattern.
3605
3606 * This pattern allows any envelope sender address.
3607
3608 <> This pattern allows the empty envelope sender address. See the
3609 empty_address_local_login_sender_maps_lookup_key configuration
3610 parameter.
3611
3612 @domain
3613 This pattern allows an envelope sender address when the '@' and
3614 domain part match.
3615
3616 Examples:
3617
3618 /etc/postfix/main.cf:
3619 # Allow root and postfix full control, anyone else can only
3620 # send mail as themselves. Use "uid:" followed by the numerical
3621 # UID when the UID has no entry in the UNIX password file.
3622 local_login_sender_maps =
3623 inline:{ { root = * }, { postfix = * } },
3624 pcre:/etc/postfix/login_senders
3625
3626 /etc/postfix/login_senders:
3627 # Allow both the bare username and the user@domain forms.
3628 /(.+)/ $1 $1@example.com
3629
3630 This feature is available in Postfix 3.6 and later.
3631
3633 Lookup tables with all names or addresses of local recipients: a recip‐
3634 ient address is local when its domain matches $mydestination, $inet_in‐
3635 terfaces or $proxy_interfaces. Specify @domain as a wild-card for do‐
3636 mains that do not have a valid recipient list. Technically, tables
3637 listed with $local_recipient_maps are used as lists: Postfix needs to
3638 know only if a lookup string is found or not, but it does not use the
3639 result from table lookup.
3640
3641 Specify zero or more "type:name" lookup tables, separated by whitespace
3642 or comma. Tables will be searched in the specified order until a match
3643 is found.
3644
3645 If this parameter is non-empty (the default), then the Postfix SMTP
3646 server will reject mail for unknown local users.
3647
3648 To turn off local recipient checking in the Postfix SMTP server, spec‐
3649 ify "local_recipient_maps =" (i.e. empty).
3650
3651 The default setting assumes that you use the default Postfix local de‐
3652 livery agent for local delivery. You need to update the local_recipi‐
3653 ent_maps setting if:
3654
3655 • You redefine the local delivery agent in master.cf.
3656
3657 • You redefine the "local_transport" setting in main.cf.
3658
3659 • You use the "luser_relay", "mailbox_transport", or "fall‐
3660 back_transport" feature of the Postfix local(8) delivery agent.
3661
3662 Details are described in the LOCAL_RECIPIENT_README file.
3663
3664 Beware: if the Postfix SMTP server runs chrooted, you need to access
3665 the passwd file via the proxymap(8) service, in order to overcome ch‐
3666 root access restrictions. The alternative, maintaining a copy of the
3667 system password file in the chroot jail is not practical.
3668
3669 Examples:
3670
3671 local_recipient_maps =
3672
3674 The default mail delivery transport and next-hop destination for final
3675 delivery to domains listed with mydestination, and for [ipaddress] des‐
3676 tinations that match $inet_interfaces or $proxy_interfaces. This in‐
3677 formation can be overruled with the transport(5) table.
3678
3679 By default, local mail is delivered to the transport called "local",
3680 which is just the name of a service that is defined the master.cf file.
3681
3682 Specify a string of the form transport:nexthop, where transport is the
3683 name of a mail delivery transport defined in master.cf. The :nexthop
3684 destination is optional; its syntax is documented in the manual page of
3685 the corresponding delivery agent.
3686
3687 Beware: if you override the default local delivery agent then you need
3688 to review the LOCAL_RECIPIENT_README document, otherwise the SMTP
3689 server may reject mail for local recipients.
3690
3692 Optional catch-all destination for unknown local(8) recipients. By de‐
3693 fault, mail for unknown recipients in domains that match $mydestina‐
3694 tion, $inet_interfaces or $proxy_interfaces is returned as undeliver‐
3695 able.
3696
3697 The luser_relay value is not subject to Postfix configuration parameter
3698 $name expansion. Instead, the following $name expansions are done:
3699
3700 $domain
3701 The recipient domain.
3702
3703 $extension
3704 The recipient address extension.
3705
3706 $home The recipient's home directory.
3707
3708 $local The entire recipient address localpart.
3709
3710 $recipient
3711 The full recipient address.
3712
3713 $recipient_delimiter
3714 The address extension delimiter that was found in the recipient
3715 address (Postfix 2.11 and later), or the system-wide recipient
3716 address extension delimiter (Postfix 2.10 and earlier).
3717
3718 $shell The recipient's login shell.
3719
3720 $user The recipient username.
3721
3722 ${name?value}
3723
3724 ${name?{value}} (Postfix >= 3.0)
3725 Expands to value when $name is non-empty.
3726
3727 ${name:value}
3728
3729 ${name:{value}} (Postfix >= 3.0)
3730 Expands to value when $name is empty.
3731
3732 ${name?{value1}:{value2}} (Postfix >= 3.0)
3733 Expands to value1 when $name is non-empty, value2 otherwise.
3734
3735 Instead of $name you can also specify ${name} or $(name).
3736
3737 Note: luser_relay works only for the Postfix local(8) delivery agent.
3738
3739 Note: if you use this feature for accounts not in the UNIX password
3740 file, then you must specify "local_recipient_maps =" (i.e. empty) in
3741 the main.cf file, otherwise the Postfix SMTP server will reject mail
3742 for non-UNIX accounts with "User unknown in local recipient table".
3743
3744 Examples:
3745
3746 luser_relay = $user@other.host
3747 luser_relay = $local@other.host
3748 luser_relay = admin+$local
3749
3751 The mail system name that is displayed in Received: headers, in the
3752 SMTP greeting banner, and in bounced mail.
3753
3755 The UNIX system account that owns the Postfix queue and most Postfix
3756 daemon processes. Specify the name of an unprivileged user account
3757 that does not share a user or group ID with other accounts, and that
3758 owns no other files or processes on the system. In particular, don't
3759 specify nobody or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID.
3760
3761 When this parameter value is changed you need to re-run "postfix
3762 set-permissions" (with Postfix version 2.0 and earlier: "/etc/post‐
3763 fix/post-install set-permissions".
3764
3766 The Postfix release date, in "YYYYMMDD" format.
3767
3769 The directory where local(8) UNIX-style mailboxes are kept. The default
3770 setting depends on the system type. Specify a name ending in / for
3771 maildir-style delivery.
3772
3773 Note: maildir delivery is done with the privileges of the recipient.
3774 If you use the mail_spool_directory setting for maildir style delivery,
3775 then you must create the top-level maildir directory in advance. Post‐
3776 fix will not create it.
3777
3778 Examples:
3779
3780 mail_spool_directory = /var/mail
3781 mail_spool_directory = /var/spool/mail
3782
3784 The version of the mail system. Stable releases are named major.mi‐
3785 nor.patchlevel. Experimental releases also include the release date.
3786 The version string can be used in, for example, the SMTP greeting ban‐
3787 ner.
3788
3790 Optional external command that the local(8) delivery agent should use
3791 for mailbox delivery. The command is run with the user ID and the pri‐
3792 mary group ID privileges of the recipient. Exception: command delivery
3793 for root executes with $default_privs privileges. This is not a prob‐
3794 lem, because 1) mail for root should always be aliased to a real user
3795 and 2) don't log in as root, use "su" instead.
3796
3797 The following environment variables are exported to the command:
3798
3799 CLIENT_ADDRESS
3800 Remote client network address. Available in Postfix version 2.2
3801 and later.
3802
3803 CLIENT_HELO
3804 Remote client EHLO command parameter. Available in Postfix ver‐
3805 sion 2.2 and later.
3806
3807 CLIENT_HOSTNAME
3808 Remote client hostname. Available in Postfix version 2.2 and
3809 later.
3810
3811 CLIENT_PROTOCOL
3812 Remote client protocol. Available in Postfix version 2.2 and
3813 later.
3814
3815 DOMAIN The domain part of the recipient address.
3816
3817 EXTENSION
3818 The optional address extension.
3819
3820 HOME The recipient home directory.
3821
3822 LOCAL The recipient address localpart.
3823
3824 LOGNAME
3825 The recipient's username.
3826
3827 ORIGINAL_RECIPIENT
3828 The entire recipient address, before any address rewriting or
3829 aliasing.
3830
3831 RECIPIENT
3832 The full recipient address.
3833
3834 SASL_METHOD
3835 SASL authentication method specified in the remote client AUTH
3836 command. Available in Postfix version 2.2 and later.
3837
3838 SASL_SENDER
3839 SASL sender address specified in the remote client MAIL FROM
3840 command. Available in Postfix version 2.2 and later.
3841
3842 SASL_USER
3843 SASL username specified in the remote client AUTH command.
3844 Available in Postfix version 2.2 and later.
3845
3846 SENDER The full sender address.
3847
3848 SHELL The recipient's login shell.
3849
3850 USER The recipient username.
3851
3852 Unlike other Postfix configuration parameters, the mailbox_command pa‐
3853 rameter is not subjected to $name substitutions. This is to make it
3854 easier to specify shell syntax (see example below).
3855
3856 If you can, avoid shell meta characters because they will force Postfix
3857 to run an expensive shell process. If you're delivering via "procmail"
3858 then running a shell won't make a noticeable difference in the total
3859 cost.
3860
3861 Note: if you use the mailbox_command feature to deliver mail sys‐
3862 tem-wide, you must set up an alias that forwards mail for root to a
3863 real user.
3864
3865 The precedence of local(8) delivery features from high to low is:
3866 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
3867 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
3868 tory, fallback_transport_maps, fallback_transport and luser_relay.
3869
3870 Examples:
3871
3872 mailbox_command = /some/where/procmail
3873 mailbox_command = /some/where/procmail -a "$EXTENSION"
3874 mailbox_command = /some/where/maildrop -d "$USER"
3875 -f "$SENDER" "$EXTENSION"
3876
3878 Optional lookup tables with per-recipient external commands to use for
3879 local(8) mailbox delivery. Behavior is as with mailbox_command.
3880
3881 The precedence of local(8) delivery features from high to low is:
3882 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
3883 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
3884 tory, fallback_transport_maps, fallback_transport and luser_relay.
3885
3886 Specify zero or more "type:name" lookup tables, separated by whitespace
3887 or comma. Tables will be searched in the specified order until a match
3888 is found.
3889
3891 How to lock a UNIX-style local(8) mailbox before attempting delivery.
3892 For a list of available file locking methods, use the "postconf -l"
3893 command.
3894
3895 This setting is ignored with maildir style delivery, because such de‐
3896 liveries are safe without explicit locks.
3897
3898 Note: The dotlock method requires that the recipient UID or GID has
3899 write access to the parent directory of the mailbox file.
3900
3901 Note: the default setting of this parameter is system dependent.
3902
3904 The maximal size of any local(8) individual mailbox or maildir file, or
3905 zero (no limit). In fact, this limits the size of any file that is
3906 written to upon local delivery, including files written by external
3907 commands that are executed by the local(8) delivery agent. The value
3908 cannot exceed LONG_MAX (typically, a 32-bit or 64-bit signed integer).
3909
3910 This limit must not be smaller than the message size limit.
3911
3913 Optional message delivery transport that the local(8) delivery agent
3914 should use for mailbox delivery to all local recipients, whether or not
3915 they are found in the UNIX passwd database.
3916
3917 The precedence of local(8) delivery features from high to low is:
3918 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
3919 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
3920 tory, fallback_transport_maps, fallback_transport and luser_relay.
3921
3923 Optional lookup tables with per-recipient message delivery transports
3924 to use for local(8) mailbox delivery, whether or not the recipients are
3925 found in the UNIX passwd database.
3926
3927 The precedence of local(8) delivery features from high to low is:
3928 aliases, .forward files, mailbox_transport_maps, mailbox_transport,
3929 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_direc‐
3930 tory, fallback_transport_maps, fallback_transport and luser_relay.
3931
3932 Specify zero or more "type:name" lookup tables, separated by whitespace
3933 or comma. Tables will be searched in the specified order until a match
3934 is found.
3935
3936 For safety reasons, this feature does not allow $number substitutions
3937 in regular expression maps.
3938
3939 This feature is available in Postfix 2.3 and later.
3940
3942 The name of an optional logfile that is written by the Postfix post‐
3943 logd(8) service. An empty value selects logging to syslogd(8). Specify
3944 "/dev/stdout" to select logging to standard output. Stdout logging re‐
3945 quires that Postfix is started with "postfix start-fg".
3946
3947 Note 1: The maillog_file parameter value must contain a prefix that is
3948 specified with the maillog_file_prefixes parameter.
3949
3950 Note 2: Some Postfix non-daemon programs may still log information to
3951 syslogd(8), before they have processed their configuration parameters
3952 and command-line options.
3953
3954 This feature is available in Postfix 3.4 and later.
3955
3957 The program to run after rotating $maillog_file with "postfix logro‐
3958 tate". The command is run with the rotated logfile name as its first
3959 argument.
3960
3961 This feature is available in Postfix 3.4 and later.
3962
3964 A list of allowed prefixes for a maillog_file value. This is a safety
3965 feature to contain the damage from a single configuration mistake.
3966 Specify one or more prefix strings, separated by comma or whitespace.
3967
3968 This feature is available in Postfix 3.4 and later.
3969
3971 The format of the suffix to append to $maillog_file while rotating the
3972 file with "postfix logrotate". See strftime(3) for syntax. The default
3973 suffix, YYYYMMDD-HHMMSS, allows logs to be rotated frequently.
3974
3975 This feature is available in Postfix 3.4 and later.
3976
3978 Sendmail compatibility feature that specifies where the Postfix
3979 mailq(1) command is installed. This command can be used to list the
3980 Postfix mail queue.
3981
3983 Where the Postfix manual pages are installed.
3984
3986 Obsolete feature: use the reject_rbl_client feature instead.
3987
3989 The numerical Postfix SMTP server response code when a remote SMTP
3990 client request is blocked by the reject_rbl_client, re‐
3991 ject_rhsbl_client, reject_rhsbl_reverse_client, reject_rhsbl_sender or
3992 reject_rhsbl_recipient restriction.
3993
3994 Do not change this unless you have a complete understanding of RFC
3995 5321.
3996
3998
3999 What addresses are subject to address masquerading.
4000
4001 By default, address masquerading is limited to envelope sender ad‐
4002 dresses, and to header sender and header recipient addresses. This al‐
4003 lows you to use address masquerading on a mail gateway while still be‐
4004 ing able to forward mail to users on individual machines.
4005
4006 Specify zero or more of: envelope_sender, envelope_recipient,
4007 header_sender, header_recipient
4008
4010 Optional list of domains whose subdomain structure will be stripped off
4011 in email addresses.
4012
4013 The list is processed left to right, and processing stops at the first
4014 match. Thus,
4015
4016 masquerade_domains = foo.example.com example.com
4017
4018 strips "user@any.thing.foo.example.com" to "user@foo.example.com", but
4019 strips "user@any.thing.else.example.com" to "user@example.com".
4020
4021 A domain name prefixed with ! means do not masquerade this domain or
4022 its subdomains. Thus,
4023
4024 masquerade_domains = !foo.example.com example.com
4025
4026 does not change "user@any.thing.foo.example.com" or "user@foo.exam‐
4027 ple.com", but strips "user@any.thing.else.example.com" to "user@exam‐
4028 ple.com".
4029
4030 Note: with Postfix version 2.2, message header address masquerading
4031 happens only when message header address rewriting is enabled:
4032
4033 • The message is received with the Postfix sendmail(1) command,
4034
4035 • The message is received from a network client that matches $lo‐
4036 cal_header_rewrite_clients,
4037
4038 • The message is received from the network, and the re‐
4039 mote_header_rewrite_domain parameter specifies a non-empty
4040 value.
4041
4042 To get the behavior before Postfix version 2.2, specify "lo‐
4043 cal_header_rewrite_clients = static:all".
4044
4045 Example:
4046
4047 masquerade_domains = $mydomain
4048
4050 Optional list of user names that are not subjected to address mas‐
4051 querading, even when their addresses match $masquerade_domains.
4052
4053 By default, address masquerading makes no exceptions.
4054
4055 Specify a list of user names, "/file/name" or "type:table" patterns,
4056 separated by commas and/or whitespace. The list is matched left to
4057 right, and the search stops on the first match. A "/file/name" pattern
4058 is replaced by its contents; a "type:table" lookup table is matched
4059 when a name matches a lookup key (the lookup result is ignored). Con‐
4060 tinue long lines by starting the next line with whitespace. Specify
4061 "!pattern" to exclude a name from the list. The form "!/file/name" is
4062 supported only in Postfix version 2.4 and later.
4063
4064 Examples:
4065
4066 masquerade_exceptions = root, mailer-daemon
4067 masquerade_exceptions = root
4068
4070 Selectively disable master(8) listener ports by service type or by ser‐
4071 vice name and type. Specify a list of service types ("inet", "unix",
4072 "fifo", or "pass") or "name/type" tuples, where "name" is the first
4073 field of a master.cf entry and "type" is a service type. As with other
4074 Postfix matchlists, a search stops at the first match. Specify "!pat‐
4075 tern" to exclude a service from the list. By default, all master(8)
4076 listener ports are enabled.
4077
4078 Note: this feature does not support "/file/name" or "type:table" pat‐
4079 terns, nor does it support wildcards such as "*" or "all". This is in‐
4080 tentional.
4081
4082 Examples:
4083
4084 # With Postfix 2.6..2.10 use '.' instead of '/'.
4085 # Turn on all master(8) listener ports (the default).
4086 master_service_disable =
4087 # Turn off only the main SMTP listener port.
4088 master_service_disable = smtp/inet
4089 # Turn off all TCP/IP listener ports.
4090 master_service_disable = inet
4091 # Turn off all TCP/IP listener ports except "foo".
4092 master_service_disable = !foo/inet, inet
4093
4094 This feature is available in Postfix 2.6 and later.
4095
4097 The maximum amount of time that an idle Postfix daemon process waits
4098 for an incoming connection before terminating voluntarily. This param‐
4099 eter is ignored by the Postfix queue manager and by other long-lived
4100 Postfix daemon processes.
4101
4102 Specify a non-zero time value (an integral value plus an optional
4103 one-letter suffix that specifies the time unit). Time units: s (sec‐
4104 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4105 unit is s (seconds).
4106
4108 The maximal number of incoming connections that a Postfix daemon
4109 process will service before terminating voluntarily. This parameter is
4110 ignored by the Postfix queue manager and by other long-lived Postfix
4111 daemon processes.
4112
4114 The maximal time between attempts to deliver a deferred message.
4115
4116 This parameter should be set to a value greater than or equal to $mini‐
4117 mal_backoff_time. See also $queue_run_delay.
4118
4119 Specify a non-zero time value (an integral value plus an optional
4120 one-letter suffix that specifies the time unit). Time units: s (sec‐
4121 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4122 unit is s (seconds).
4123
4125 Consider a message as undeliverable, when delivery fails with a tempo‐
4126 rary error, and the time in the queue has reached the maxi‐
4127 mal_queue_lifetime limit.
4128
4129 Specify a non-negative time value (an integral value plus an optional
4130 one-letter suffix that specifies the time unit). Time units: s (sec‐
4131 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4132 unit is d (days).
4133
4134 Specify 0 when mail delivery should be tried only once.
4135
4137 Names of message headers that the cleanup(8) daemon will remove after
4138 applying header_checks(5) and before invoking Milter applications. The
4139 default setting is compatible with Postfix < 3.0.
4140
4141 Specify a list of header names, separated by comma or space. Names are
4142 matched in a case-insensitive manner. The list of supported header
4143 names is limited only by available memory.
4144
4145 This feature is available in Postfix 3.0 and later.
4146
4148 The set of characters that Postfix will reject in message content. The
4149 usual C-like escape sequences are recognized: \a \b \f \n \r \t \v \ddd
4150 (up to three octal digits) and \\.
4151
4152 Note 1: this feature does not recognize text that requires MIME decod‐
4153 ing. It inspects raw message content, just like header_checks and
4154 body_checks.
4155
4156 Note 2: this feature is disabled with "receive_override_options =
4157 no_header_body_checks".
4158
4159 Example:
4160
4161 message_reject_characters = \0
4162
4163 This feature is available in Postfix 2.3 and later.
4164
4166 The maximal size in bytes of a message, including envelope information.
4167 The value cannot exceed LONG_MAX (typically, a 32-bit or 64-bit signed
4168 integer).
4169
4170 Note: be careful when making changes. Excessively small values will
4171 result in the loss of non-delivery notifications, when a bounce message
4172 size exceeds the local or remote MTA's message size limit.
4173
4175 The set of characters that Postfix will remove from message content.
4176 The usual C-like escape sequences are recognized: \a \b \f \n \r \t \v
4177 \ddd (up to three octal digits) and \\.
4178
4179 Note 1: this feature does not recognize text that requires MIME decod‐
4180 ing. It inspects raw message content, just like header_checks and
4181 body_checks.
4182
4183 Note 2: this feature is disabled with "receive_override_options =
4184 no_header_body_checks".
4185
4186 Example:
4187
4188 message_strip_characters = \0
4189
4190 This feature is available in Postfix 2.3 and later.
4191
4193 The location of non-executable files that are shared among multiple
4194 Postfix instances, such as postfix-files, dynamicmaps.cf, and the
4195 multi-instance template files main.cf.proto and master.cf.proto. This
4196 directory should contain only Postfix-related files. Typically, the
4197 meta_directory parameter has the same default as the config_directory
4198 parameter (/etc/postfix or /usr/local/etc/postfix).
4199
4200 For backwards compatibility with Postfix versions 2.6..2.11, specify
4201 "meta_directory = $daemon_directory" in main.cf before installing or
4202 upgrading Postfix, or specify "meta_directory = /path/name" on the
4203 "make makefiles", "make install" or "make upgrade" command line.
4204
4205 This feature is available in Postfix 3.0 and later.
4206
4208 The time limit for sending an SMTP command to a Milter (mail filter)
4209 application, and for receiving the response.
4210
4211 Specify a non-zero time value (an integral value plus an optional
4212 one-letter suffix that specifies the time unit). Time units: s (sec‐
4213 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4214 unit is s (seconds).
4215
4216 This feature is available in Postfix 2.3 and later.
4217
4219 The macros that are sent to Milter (mail filter) applications after
4220 completion of an SMTP connection. See MILTER_README for a list of
4221 available macro names and their meanings.
4222
4223 This feature is available in Postfix 2.3 and later.
4224
4226 The time limit for connecting to a Milter (mail filter) application,
4227 and for negotiating protocol options.
4228
4229 Specify a non-zero time value (an integral value plus an optional
4230 one-letter suffix that specifies the time unit). Time units: s (sec‐
4231 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4232 unit is s (seconds).
4233
4234 This feature is available in Postfix 2.3 and later.
4235
4237 The time limit for sending message content to a Milter (mail filter)
4238 application, and for receiving the response.
4239
4240 Specify a non-zero time value (an integral value plus an optional
4241 one-letter suffix that specifies the time unit). Time units: s (sec‐
4242 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4243 unit is s (seconds).
4244
4245 This feature is available in Postfix 2.3 and later.
4246
4248 The macros that are sent to version 4 or higher Milter (mail filter)
4249 applications after the SMTP DATA command. See MILTER_README for a list
4250 of available macro names and their meanings.
4251
4252 This feature is available in Postfix 2.3 and later.
4253
4255 The default action when a Milter (mail filter) response is unavailable
4256 (for example, bad Postfix configuration or Milter failure). Specify one
4257 of the following:
4258
4259 accept Proceed as if the mail filter was not present.
4260
4261 reject Reject all further commands in this session with a permanent
4262 status code.
4263
4264 tempfail
4265 Reject all further commands in this session with a temporary
4266 status code.
4267
4268 quarantine
4269 Like "accept", but freeze the message in the "hold" queue.
4270 Available with Postfix 2.6 and later.
4271
4272 This feature is available in Postfix 2.3 and later.
4273
4275 The macros that are sent to Milter (mail filter) applications after the
4276 message end-of-data. See MILTER_README for a list of available macro
4277 names and their meanings.
4278
4279 This feature is available in Postfix 2.3 and later.
4280
4282 The macros that are sent to Milter (mail filter) applications after the
4283 end of the message header. See MILTER_README for a list of available
4284 macro names and their meanings.
4285
4286 This feature is available in Postfix 2.5 and later.
4287
4289 Optional lookup tables for content inspection of message headers that
4290 are produced by Milter applications. See the header_checks(5) manual
4291 page available actions. Currently, PREPEND is not implemented.
4292
4293 The following example sends all mail that is marked as SPAM to a spam
4294 handling machine. Note that matches are case-insensitive by default.
4295
4296 /etc/postfix/main.cf:
4297 milter_header_checks = pcre:/etc/postfix/milter_header_checks
4298
4299 /etc/postfix/milter_header_checks:
4300 /^X-SPAM-FLAG:\s+YES/ FILTER mysmtp:sanitizer.example.com:25
4301
4302 The milter_header_checks mechanism could also be used for allowlisting.
4303 For example it could be used to skip heavy content inspection for
4304 DKIM-signed mail from known friendly domains.
4305
4306 This feature is available in Postfix 2.7, and as an optional patch for
4307 Postfix 2.6.
4308
4310 The macros that are sent to Milter (mail filter) applications after the
4311 SMTP HELO or EHLO command. See MILTER_README for a list of available
4312 macro names and their meanings.
4313
4314 This feature is available in Postfix 2.3 and later.
4315
4317 The {daemon_name} macro value for Milter (mail filter) applications.
4318 See MILTER_README for a list of available macro names and their mean‐
4319 ings.
4320
4321 This feature is available in Postfix 2.3 and later.
4322
4324 Optional list of name=value pairs that specify default values for arbi‐
4325 trary macros that Postfix may send to Milter applications. These de‐
4326 faults are used when there is no corresponding information from the
4327 message delivery context.
4328
4329 Specify name=value or {name=value} pairs separated by comma or white‐
4330 space. Enclose a pair in "{}" when a value contains comma or white‐
4331 space (this form ignores whitespace after the enclosing "{", around the
4332 "=", and before the enclosing "}").
4333
4334 This feature is available in Postfix 3.1 and later.
4335
4337 The {v} macro value for Milter (mail filter) applications. See MIL‐
4338 TER_README for a list of available macro names and their meanings.
4339
4340 This feature is available in Postfix 2.3 and later.
4341
4343 The macros that are sent to Milter (mail filter) applications after the
4344 SMTP MAIL FROM command. See MILTER_README for a list of available macro
4345 names and their meanings.
4346
4347 This feature is available in Postfix 2.3 and later.
4348
4350 The mail filter protocol version and optional protocol extensions for
4351 communication with a Milter application; prior to Postfix 2.6 the de‐
4352 fault protocol is 2. Postfix sends this version number during the ini‐
4353 tial protocol handshake. It should match the version number that is
4354 expected by the mail filter application (or by its Milter library).
4355
4356 Protocol versions:
4357
4358 2 Use Sendmail 8 mail filter protocol version 2 (default with
4359 Sendmail version 8.11 .. 8.13 and Postfix version 2.3 .. 2.5).
4360
4361 3 Use Sendmail 8 mail filter protocol version 3.
4362
4363 4 Use Sendmail 8 mail filter protocol version 4.
4364
4365 6 Use Sendmail 8 mail filter protocol version 6 (default with
4366 Sendmail version 8.14 and Postfix version 2.6).
4367
4368 Protocol extensions:
4369
4370 no_header_reply
4371 Specify this when the Milter application will not reply for each
4372 individual message header.
4373
4374 This feature is available in Postfix 2.3 and later.
4375
4377 The macros that are sent to Milter (mail filter) applications after the
4378 SMTP RCPT TO command. See MILTER_README for a list of available macro
4379 names and their meanings.
4380
4381 This feature is available in Postfix 2.3 and later.
4382
4384 The macros that are sent to version 3 or higher Milter (mail filter)
4385 applications after an unknown SMTP command. See MILTER_README for a
4386 list of available macro names and their meanings.
4387
4388 This feature is available in Postfix 2.3 and later.
4389
4391 The maximal length of MIME multipart boundary strings. The MIME proces‐
4392 sor is unable to distinguish between boundary strings that do not dif‐
4393 fer in the first $mime_boundary_length_limit characters.
4394
4395 This feature is available in Postfix 2.0 and later.
4396
4398 Optional lookup tables for content inspection of MIME related message
4399 headers, as described in the header_checks(5) manual page.
4400
4401 This feature is available in Postfix 2.0 and later.
4402
4404 The maximal recursion level that the MIME processor will handle. Post‐
4405 fix refuses mail that is nested deeper than the specified limit.
4406
4407 This feature is available in Postfix 2.0 and later.
4408
4410 The minimal time between attempts to deliver a deferred message; prior
4411 to Postfix 2.4 the default value was 1000s.
4412
4413 This parameter also limits the time an unreachable destination is kept
4414 in the short-term, in-memory, destination status cache.
4415
4416 This parameter should be set greater than or equal to $queue_run_delay.
4417 See also $maximal_backoff_time.
4418
4419 Specify a non-zero time value (an integral value plus an optional
4420 one-letter suffix that specifies the time unit). Time units: s (sec‐
4421 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4422 unit is s (seconds).
4423
4425 An optional list of non-default Postfix configuration directories;
4426 these directories belong to additional Postfix instances that share the
4427 Postfix executable files and documentation with the default Postfix in‐
4428 stance, and that are started, stopped, etc., together with the default
4429 Postfix instance. Specify a list of pathnames separated by comma or
4430 whitespace.
4431
4432 When $multi_instance_directories is empty, the postfix(1) command runs
4433 in single-instance mode and operates on a single Postfix instance only.
4434 Otherwise, the postfix(1) command runs in multi-instance mode and in‐
4435 vokes the multi-instance manager specified with the multi_in‐
4436 stance_wrapper parameter. The multi-instance manager in turn executes
4437 postfix(1) commands for the default instance and for all Postfix in‐
4438 stances in $multi_instance_directories.
4439
4440 Currently, this parameter setting is ignored except for the default
4441 main.cf file.
4442
4443 This feature is available in Postfix 2.6 and later.
4444
4446 Allow this Postfix instance to be started, stopped, etc., by a
4447 multi-instance manager. By default, new instances are created in a
4448 safe state that prevents them from being started inadvertently. This
4449 parameter is reserved for the multi-instance manager.
4450
4451 This feature is available in Postfix 2.6 and later.
4452
4454 The optional instance group name of this Postfix instance. A group
4455 identifies closely-related Postfix instances that the multi-instance
4456 manager can start, stop, etc., as a unit. This parameter is reserved
4457 for the multi-instance manager.
4458
4459 This feature is available in Postfix 2.6 and later.
4460
4462 The optional instance name of this Postfix instance. This name becomes
4463 also the default value for the syslog_name parameter.
4464
4465 This feature is available in Postfix 2.6 and later.
4466
4468 The pathname of a multi-instance manager command that the postfix(1)
4469 command invokes when the multi_instance_directories parameter value is
4470 non-empty. The pathname may be followed by initial command arguments
4471 separated by whitespace; shell metacharacters such as quotes are not
4472 supported in this context.
4473
4474 The postfix(1) command invokes the manager command with the postfix(1)
4475 non-option command arguments on the manager command line, and with all
4476 installation configuration parameters exported into the manager command
4477 process environment. The manager command in turn invokes the postfix(1)
4478 command for individual Postfix instances as "postfix -c config_direc‐
4479 tory command".
4480
4481 This feature is available in Postfix 2.6 and later.
4482
4484 The numerical Postfix SMTP server response code when a remote SMTP
4485 client request is blocked by the reject_multi_recipient_bounce restric‐
4486 tion.
4487
4488 Do not change this unless you have a complete understanding of RFC
4489 5321.
4490
4491 This feature is available in Postfix 2.1 and later.
4492
4494 The list of domains that are delivered via the $local_transport mail
4495 delivery transport. By default this is the Postfix local(8) delivery
4496 agent which looks up all recipients in /etc/passwd and /etc/aliases.
4497 The SMTP server validates recipient addresses with $local_recipi‐
4498 ent_maps and rejects non-existent recipients. See also the local domain
4499 class in the ADDRESS_CLASS_README file.
4500
4501 The default mydestination value specifies names for the local machine
4502 only. On a mail domain gateway, you should also include $mydomain.
4503
4504 The $local_transport delivery method is also selected for mail ad‐
4505 dressed to user@[the.net.work.address] of the mail system (the IP ad‐
4506 dresses specified with the inet_interfaces and proxy_interfaces parame‐
4507 ters).
4508
4509 Warnings:
4510
4511 • Do not specify the names of virtual domains - those domains are
4512 specified elsewhere. See VIRTUAL_README for more information.
4513
4514 • Do not specify the names of domains that this machine is backup
4515 MX host for. See STANDARD_CONFIGURATION_README for how to set up
4516 backup MX hosts.
4517
4518 • By default, the Postfix SMTP server rejects mail for recipients
4519 not listed with the local_recipient_maps parameter. See the
4520 postconf(5) manual for a description of the local_recipient_maps
4521 and unknown_local_recipient_reject_code parameters.
4522
4523 Specify a list of host or domain names, "/file/name" or "type:table"
4524 patterns, separated by commas and/or whitespace. A "/file/name" pattern
4525 is replaced by its contents; a "type:table" lookup table is matched
4526 when a name matches a lookup key (the lookup result is ignored). Con‐
4527 tinue long lines by starting the next line with whitespace.
4528
4529 Examples:
4530
4531 mydestination = $myhostname, localhost.$mydomain $mydomain
4532 mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain
4533
4535 The internet domain name of this mail system. The default is to use
4536 $myhostname minus the first component, or "localdomain" (Postfix 2.3
4537 and later). $mydomain is used as a default value for many other con‐
4538 figuration parameters.
4539
4540 Example:
4541
4542 mydomain = domain.tld
4543
4545 The internet hostname of this mail system. The default is to use the
4546 fully-qualified domain name (FQDN) from gethostname(), or to use the
4547 non-FQDN result from gethostname() and append ".$mydomain". $myhost‐
4548 name is used as a default value for many other configuration parame‐
4549 ters.
4550
4551 Example:
4552
4553 myhostname = host.example.com
4554
4556 The list of "trusted" remote SMTP clients that have more privileges
4557 than "strangers".
4558
4559 In particular, "trusted" SMTP clients are allowed to relay mail through
4560 Postfix. See the smtpd_relay_restrictions parameter description in the
4561 postconf(5) manual.
4562
4563 You can specify the list of "trusted" network addresses by hand or you
4564 can let Postfix do it for you (which is the default). See the descrip‐
4565 tion of the mynetworks_style parameter for more information.
4566
4567 If you specify the mynetworks list by hand, Postfix ignores the mynet‐
4568 works_style setting.
4569
4570 Specify a list of network addresses or network/netmask patterns, sepa‐
4571 rated by commas and/or whitespace. Continue long lines by starting the
4572 next line with whitespace.
4573
4574 The netmask specifies the number of bits in the network part of a host
4575 address. You can also specify "/file/name" or "type:table" patterns.
4576 A "/file/name" pattern is replaced by its contents; a "type:table"
4577 lookup table is matched when a table entry matches a lookup string (the
4578 lookup result is ignored).
4579
4580 The list is matched left to right, and the search stops on the first
4581 match. Specify "!pattern" to exclude an address or network block from
4582 the list. The form "!/file/name" is supported only in Postfix version
4583 2.4 and later.
4584
4585 Note 1: Pattern matching of domain names is controlled by the presence
4586 or absence of "mynetworks" in the parent_domain_matches_subdomains pa‐
4587 rameter value.
4588
4589 Note 2: IP version 6 address information must be specified inside [] in
4590 the mynetworks value, and in files specified with "/file/name". IP
4591 version 6 addresses contain the ":" character, and would otherwise be
4592 confused with a "type:table" pattern.
4593
4594 Note 3: CIDR ranges cannot be specified in hash tables. Use cidr ta‐
4595 bles if CIDR ranges are used.
4596
4597 Examples:
4598
4599 mynetworks = 127.0.0.0/8 168.100.189.0/28
4600 mynetworks = !192.168.0.1, 192.168.0.0/28
4601 mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64
4602 mynetworks = $config_directory/mynetworks
4603 mynetworks = hash:/etc/postfix/network_table
4604 mynetworks = cidr:/etc/postfix/network_table.cidr
4605
4607 The method to generate the default value for the mynetworks parameter.
4608 This is the list of trusted networks for relay access control etc.
4609
4610 • Specify "mynetworks_style = host" when Postfix should "trust"
4611 only the local machine.
4612
4613 • Specify "mynetworks_style = subnet" when Postfix should "trust"
4614 remote SMTP clients in the same IP subnetworks as the local ma‐
4615 chine. On Linux, this works correctly only with interfaces
4616 specified with the "ifconfig" or "ip" command.
4617
4618 • Specify "mynetworks_style = class" when Postfix should "trust"
4619 remote SMTP clients in the same IP class A/B/C networks as the
4620 local machine. Caution: this may cause Postfix to "trust" your
4621 entire provider's network. Instead, specify an explicit mynet‐
4622 works list by hand, as described with the mynetworks configura‐
4623 tion parameter.
4624
4626 The domain name that locally-posted mail appears to come from, and that
4627 locally posted mail is delivered to. The default, $myhostname, is ade‐
4628 quate for small sites. If you run a domain with multiple machines, you
4629 should (1) change this to $mydomain and (2) set up a domain-wide alias
4630 database that aliases each user to user@that.users.mailhost.
4631
4632 Example:
4633
4634 myorigin = $mydomain
4635
4637 Optional lookup tables for content inspection of non-MIME message head‐
4638 ers in attached messages, as described in the header_checks(5) manual
4639 page.
4640
4641 This feature is available in Postfix 2.0 and later.
4642
4644 Sendmail compatibility feature that specifies the location of the
4645 newaliases(1) command. This command can be used to rebuild the local(8)
4646 aliases(5) database.
4647
4649 The numerical Postfix SMTP server reply code when a client request is
4650 rejected by the reject_non_fqdn_helo_hostname, reject_non_fqdn_sender
4651 or reject_non_fqdn_recipient restriction.
4652
4654 A list of Milter (mail filter) applications for new mail that does not
4655 arrive via the Postfix smtpd(8) server. This includes local submission
4656 via the sendmail(1) command line, new mail that arrives via the Postfix
4657 qmqpd(8) server, and old mail that is re-injected into the queue with
4658 "postsuper -r". Specify space or comma as a separator. See the MIL‐
4659 TER_README document for details.
4660
4661 This feature is available in Postfix 2.3 and later.
4662
4664 The list of error classes that are reported to the postmaster. These
4665 postmaster notifications do not replace user notifications. The default
4666 is to report only the most serious problems. The paranoid may wish to
4667 turn on the policy (UCE and mail relaying) and protocol error (broken
4668 mail software) reports.
4669
4670 NOTE: postmaster notifications may contain confidential information
4671 such as SASL passwords or message content. It is the system adminis‐
4672 trator's responsibility to treat such information with care.
4673
4674 The error classes are:
4675
4676 bounce (also implies 2bounce)
4677 Send the postmaster copies of the headers of bounced mail, and
4678 send transcripts of SMTP sessions when Postfix rejects mail. The
4679 notification is sent to the address specified with the
4680 bounce_notice_recipient configuration parameter (default: post‐
4681 master).
4682
4683 2bounce
4684 Send undeliverable bounced mail to the postmaster. The notifica‐
4685 tion is sent to the address specified with the 2bounce_no‐
4686 tice_recipient configuration parameter (default: postmaster).
4687
4688 data Send the postmaster a transcript of the SMTP session with an er‐
4689 ror because a critical data file was unavailable. The notifica‐
4690 tion is sent to the address specified with the error_notice_re‐
4691 cipient configuration parameter (default: postmaster).
4692 This feature is available in Postfix 2.9 and later.
4693
4694 delay Send the postmaster copies of the headers of delayed mail (see
4695 delay_warning_time). The notification is sent to the address
4696 specified with the delay_notice_recipient configuration parame‐
4697 ter (default: postmaster).
4698
4699 policy Send the postmaster a transcript of the SMTP session when a
4700 client request was rejected because of (UCE) policy. The notifi‐
4701 cation is sent to the address specified with the error_no‐
4702 tice_recipient configuration parameter (default: postmaster).
4703
4704 protocol
4705 Send the postmaster a transcript of the SMTP session in case of
4706 client or server protocol errors. The notification is sent to
4707 the address specified with the error_notice_recipient configura‐
4708 tion parameter (default: postmaster).
4709
4710 resource
4711 Inform the postmaster of mail not delivered due to resource
4712 problems. The notification is sent to the address specified
4713 with the error_notice_recipient configuration parameter (de‐
4714 fault: postmaster).
4715
4716 software
4717 Inform the postmaster of mail not delivered due to software
4718 problems. The notification is sent to the address specified
4719 with the error_notice_recipient configuration parameter (de‐
4720 fault: postmaster).
4721
4722 Examples:
4723
4724 notify_classes = bounce, delay, policy, protocol, resource, software
4725 notify_classes = 2bounce, resource, software
4726
4728 The location of the OpenSSL command line program openssl(1). This is
4729 used by the "postfix tls" command to create private keys, certificate
4730 signing requests, self-signed certificates, and to compute public key
4731 digests for DANE TLSA records. In multi-instance environments, this
4732 parameter is always determined from the configuration of the default
4733 Postfix instance.
4734
4735 Example:
4736
4737 /etc/postfix/main.cf:
4738 # NetBSD pkgsrc:
4739 openssl_path = /usr/pkg/bin/openssl
4740 # Local build:
4741 openssl_path = /usr/local/bin/openssl
4742
4743 This feature is available in Postfix 3.1 and later.
4744
4746 Enable special treatment for owner-listname entries in the aliases(5)
4747 file, and don't split owner-listname and listname-request address lo‐
4748 calparts when the recipient_delimiter is set to "-". This feature is
4749 useful for mailing lists.
4750
4752 A list of Postfix features where the pattern "example.com" also matches
4753 subdomains of example.com, instead of requiring an explicit ".exam‐
4754 ple.com" pattern. This is planned backwards compatibility: eventu‐
4755 ally, all Postfix features are expected to require explicit ".exam‐
4756 ple.com" style patterns when you really want to match subdomains.
4757
4758 The following Postfix feature names are supported.
4759
4760 Postfix version 1.0 and later
4761 debug_peer_list, fast_flush_domains, mynetworks, per‐
4762 mit_mx_backup_networks, relay_domains, transport_maps
4763
4764 Postfix version 1.1 and later
4765 qmqpd_authorized_clients, smtpd_access_maps,
4766
4767 Postfix version 2.8 and later
4768 postscreen_access_list
4769
4770 Postfix version 3.0 and later
4771 smtpd_client_event_limit_exceptions
4772
4774 Restrict the use of the permit_mx_backup SMTP access feature to only
4775 domains whose primary MX hosts match the listed networks. The parame‐
4776 ter value syntax is the same as with the mynetworks parameter; note,
4777 however, that the default value is empty.
4778
4779 Pattern matching of domain names is controlled by the presence or ab‐
4780 sence of "permit_mx_backup_networks" in the parent_domain_matches_sub‐
4781 domains parameter value.
4782
4784 The name of the pickup(8) service. This service picks up local mail
4785 submissions from the Postfix maildrop queue.
4786
4787 This feature is available in Postfix 2.0 and later.
4788
4790 Optional filter for the pipe(8) delivery agent to change the delivery
4791 status code or explanatory text of successful or unsuccessful deliver‐
4792 ies. See default_delivery_status_filter for details.
4793
4794 This feature is available in Postfix 3.0 and later.
4795
4797 The numerical Postfix SMTP server response code when a request is re‐
4798 jected by the reject_plaintext_session restriction.
4799
4800 This feature is available in Postfix 2.3 and later.
4801
4803 The name of the postlogd(8) service entry in master.cf. This service
4804 appends logfile records to the file specified with the maillog_file pa‐
4805 rameter.
4806
4807 This feature is available in Postfix 3.4 and later.
4808
4810 How much time a postlogd(8) process may take to process a request be‐
4811 fore it is terminated by a built-in watchdog timer. This is a safety
4812 mechanism that prevents postlogd(8) from becoming non-responsive due to
4813 a bug in Postfix itself or in system software. This limit cannot be set
4814 under 10s.
4815
4816 Specify a non-zero time value (an integral value plus an optional
4817 one-letter suffix that specifies the time unit). Time units: s (sec‐
4818 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4819 unit is s (seconds).
4820
4821 This feature is available in Postfix 3.4 and later.
4822
4824 The postfix(1) commands that the postmulti(1) instance manager treats
4825 as "control" commands, that operate on running instances. For these
4826 commands, disabled instances are skipped.
4827
4828 This feature is available in Postfix 2.6 and later.
4829
4831 The postfix(1) commands that the postmulti(1) instance manager treats
4832 as "start" commands. For these commands, disabled instances are
4833 "checked" rather than "started", and failure to "start" a member in‐
4834 stance of an instance group will abort the start-up of later instances.
4835
4836 This feature is available in Postfix 2.6 and later.
4837
4839 The postfix(1) commands that the postmulti(1) instance manager treats
4840 as "stop" commands. For these commands, disabled instances are skipped,
4841 and enabled instances are processed in reverse order.
4842
4843 This feature is available in Postfix 2.6 and later.
4844
4846 Permanent allow/denylist for remote SMTP client IP addresses.
4847 postscreen(8) searches this list immediately after a remote SMTP client
4848 connects. Specify a comma- or whitespace-separated list of commands
4849 (in upper or lower case) or lookup tables. The search stops upon the
4850 first command that fires for the client IP address.
4851
4852 permit_mynetworks
4853 Allowlist the client and terminate the search if the client IP
4854 address matches $mynetworks. Do not subject the client to any
4855 before/after 220 greeting tests. Pass the connection immedi‐
4856 ately to a Postfix SMTP server process.
4857 Pattern matching of domain names is controlled by the presence
4858 or absence of "postscreen_access_list" in the parent_do‐
4859 main_matches_subdomains parameter value.
4860
4861 type:table
4862 Query the specified lookup table. Each table lookup result is an
4863 access list, except that access lists inside a table cannot
4864 specify type:table entries.
4865 To discourage the use of hash, btree, etc. tables, there is no
4866 support for substring matching like smtpd(8). Use CIDR tables
4867 instead.
4868
4869 permit
4870 Allowlist the client and terminate the search. Do not subject
4871 the client to any before/after 220 greeting tests. Pass the con‐
4872 nection immediately to a Postfix SMTP server process.
4873
4874 reject
4875 Denylist the client and terminate the search. Subject the client
4876 to the action configured with the postscreen_denylist_action
4877 configuration parameter.
4878
4879 dunno All postscreen(8) access lists implicitly have this command at
4880 the end.
4881 When dunno is executed inside a lookup table, return from the
4882 lookup table and evaluate the next command.
4883 When dunno is executed outside a lookup table, terminate the
4884 search, and subject the client to the configured before/after
4885 220 greeting tests.
4886
4887 Example:
4888
4889 /etc/postfix/main.cf:
4890 postscreen_access_list = permit_mynetworks,
4891 cidr:/etc/postfix/postscreen_access.cidr
4892 # Postfix < 3.6 use postscreen_blacklist_action.
4893 postscreen_denylist_action = enforce
4894
4895 /etc/postfix/postscreen_access.cidr:
4896 # Rules are evaluated in the order as specified.
4897 # Denylist 192.168.* except 192.168.0.1.
4898 192.168.0.1 dunno
4899 192.168.0.0/16 reject
4900
4901 This feature is available in Postfix 2.8.
4902
4904 A list of local postscreen(8) server IP addresses where a non-al‐
4905 lowlisted remote SMTP client can obtain postscreen(8)'s temporary al‐
4906 lowlist status. This status is required before the client can talk to a
4907 Postfix SMTP server process. By default, a client can obtain
4908 postscreen(8)'s allowlist status on any local postscreen(8) server IP
4909 address.
4910
4911 When postscreen(8) listens on both primary and backup MX addresses, the
4912 postscreen_allowlist_interfaces parameter can be configured to give the
4913 temporary allowlist status only when a client connects to a primary MX
4914 address. Once a client is allowlisted it can talk to a Postfix SMTP
4915 server on any address. Thus, clients that connect only to backup MX ad‐
4916 dresses will never become allowlisted, and will never be allowed to
4917 talk to a Postfix SMTP server process.
4918
4919 Specify a list of network addresses or network/netmask patterns, sepa‐
4920 rated by commas and/or whitespace. The netmask specifies the number of
4921 bits in the network part of a host address. Continue long lines by
4922 starting the next line with whitespace.
4923
4924 You can also specify "/file/name" or "type:table" patterns. A
4925 "/file/name" pattern is replaced by its contents; a "type:table" lookup
4926 table is matched when a table entry matches a lookup string (the lookup
4927 result is ignored).
4928
4929 The list is matched left to right, and the search stops on the first
4930 match. Specify "!pattern" to exclude an address or network block from
4931 the list.
4932
4933 Note: IP version 6 address information must be specified inside [] in
4934 the postscreen_allowlist_interfaces value, and in files specified with
4935 "/file/name". IP version 6 addresses contain the ":" character, and
4936 would otherwise be confused with a "type:table" pattern.
4937
4938 Example:
4939
4940 /etc/postfix/main.cf:
4941 # Don't allowlist connections to the backup IP address.
4942 # Postfix < 3.6 use postscreen_whitelist_interfaces.
4943 postscreen_allowlist_interfaces = !168.100.189.8, static:all
4944
4945 This feature is available in Postfix 3.6 and later.
4946
4947 Available as postscreen_whitelist_interfaces in Postfix 2.9 - 3.5.
4948
4950 The action that postscreen(8) takes when a remote SMTP client sends a
4951 bare newline character, that is, a newline not preceded by carriage re‐
4952 turn. Specify one of the following:
4953
4954 ignore Ignore the failure of this test. Allow other tests to complete.
4955 Do not repeat this test before the result from some other test
4956 expires. This option is useful for testing and collecting sta‐
4957 tistics without blocking mail permanently.
4958
4959 enforce
4960 Allow other tests to complete. Reject attempts to deliver mail
4961 with a 550 SMTP reply, and log the helo/sender/recipient infor‐
4962 mation. Repeat this test the next time the client connects.
4963
4964 drop Drop the connection immediately with a 521 SMTP reply. Repeat
4965 this test the next time the client connects.
4966
4967 This feature is available in Postfix 2.8.
4968
4970 Enable "bare newline" SMTP protocol tests in the postscreen(8) server.
4971 These tests are expensive: a remote SMTP client must disconnect after
4972 it passes the test, before it can talk to a real Postfix SMTP server.
4973
4974 This feature is available in Postfix 2.8.
4975
4977 The amount of time that postscreen(8) will use the result from a suc‐
4978 cessful "bare newline" SMTP protocol test. During this time, the client
4979 IP address is excluded from this test. The default is long because a
4980 remote SMTP client must disconnect after it passes the test, before it
4981 can talk to a real Postfix SMTP server.
4982
4983 Specify a non-zero time value (an integral value plus an optional
4984 one-letter suffix that specifies the time unit). Time units: s (sec‐
4985 onds), m (minutes), h (hours), d (days), w (weeks). The default time
4986 unit is d (days).
4987
4988 This feature is available in Postfix 2.8.
4989
4991 Renamed to postscreen_denylist_action in Postfix 3.6.
4992
4993 This feature is available in Postfix 2.8 - 3.5.
4994
4996 The amount of time between postscreen(8) cache cleanup runs. Cache
4997 cleanup increases the load on the cache database and should therefore
4998 not be run frequently. This feature requires that the cache database
4999 supports the "delete" and "sequence" operators. Specify a zero inter‐
5000 val to disable cache cleanup.
5001
5002 After each cache cleanup run, the postscreen(8) daemon logs the number
5003 of entries that were retained and dropped. A cleanup run is logged as
5004 "partial" when the daemon terminates early after "postfix reload",
5005 "postfix stop", or no requests for $max_idle seconds.
5006
5007 Specify a non-negative time value (an integral value plus an optional
5008 one-letter suffix that specifies the time unit). Time units: s (sec‐
5009 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5010 unit is h (hours).
5011
5012 This feature is available in Postfix 2.8.
5013
5015 Persistent storage for the postscreen(8) server decisions.
5016
5017 To share a postscreen(8) cache between multiple postscreen(8) in‐
5018 stances, use "postscreen_cache_map = proxy:btree:/path/to/file". This
5019 requires Postfix version 2.9 or later; earlier proxymap(8) implementa‐
5020 tions don't support cache cleanup. For an alternative approach see the
5021 memcache_table(5) manpage.
5022
5023 This feature is available in Postfix 2.8.
5024
5026 The amount of time that postscreen(8) will cache an expired temporary
5027 allowlist entry before it is removed. This prevents clients from being
5028 logged as "NEW" just because their cache entry expired an hour ago. It
5029 also prevents the cache from filling up with clients that passed some
5030 deep protocol test once and never came back.
5031
5032 Specify a non-zero time value (an integral value plus an optional
5033 one-letter suffix that specifies the time unit). Time units: s (sec‐
5034 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5035 unit is d (days).
5036
5037 This feature is available in Postfix 2.8.
5038
5040 tion_count_limit)
5041 How many simultaneous connections any remote SMTP client is allowed to
5042 have with the postscreen(8) daemon. By default, this limit is the same
5043 as with the Postfix SMTP server. Note that the triage process can take
5044 several seconds, with the time spent in postscreen_greet_wait delay,
5045 and with the time spent talking to the postscreen(8) built-in dummy
5046 SMTP protocol engine.
5047
5048 This feature is available in Postfix 2.8.
5049
5051 The limit on the total number of commands per SMTP session for
5052 postscreen(8)'s built-in SMTP protocol engine. This SMTP engine defers
5053 or rejects all attempts to deliver mail, therefore there is no need to
5054 enforce separate limits on the number of junk commands and error com‐
5055 mands.
5056
5057 This feature is available in Postfix 2.8.
5058
5060 A mechanism to transform commands from remote SMTP clients. See
5061 smtpd_command_filter for further details.
5062
5063 This feature is available in Postfix 2.8 and later.
5064
5066 The time limit to read an entire command line with postscreen(8)'s
5067 built-in SMTP protocol engine.
5068
5069 This feature is available in Postfix 2.8.
5070
5072 The action that postscreen(8) takes when a remote SMTP client is perma‐
5073 nently denylisted with the postscreen_access_list parameter. Specify
5074 one of the following:
5075
5076 ignore (default)
5077 Ignore this result. Allow other tests to complete. Repeat this
5078 test the next time the client connects. This option is useful
5079 for testing and collecting statistics without blocking mail.
5080
5081 enforce
5082 Allow other tests to complete. Reject attempts to deliver mail
5083 with a 550 SMTP reply, and log the helo/sender/recipient infor‐
5084 mation. Repeat this test the next time the client connects.
5085
5086 drop Drop the connection immediately with a 521 SMTP reply. Repeat
5087 this test the next time the client connects.
5088
5089 This feature is available in Postfix 3.6 and later.
5090
5091 Available as postscreen_blacklist_action in Postfix 2.8 - 3.5.
5092
5094 Disable the SMTP VRFY command in the postscreen(8) daemon. See dis‐
5095 able_vrfy_command for details.
5096
5097 This feature is available in Postfix 2.8.
5098
5100 card_ehlo_keyword_address_maps)
5101 Lookup tables, indexed by the remote SMTP client address, with case in‐
5102 sensitive lists of EHLO keywords (pipelining, starttls, auth, etc.)
5103 that the postscreen(8) server will not send in the EHLO response to a
5104 remote SMTP client. See smtpd_discard_ehlo_keywords for details. The
5105 table is not searched by hostname for robustness reasons.
5106
5107 This feature is available in Postfix 2.8 and later.
5108
5110 A case insensitive list of EHLO keywords (pipelining, starttls, auth,
5111 etc.) that the postscreen(8) server will not send in the EHLO response
5112 to a remote SMTP client. See smtpd_discard_ehlo_keywords for details.
5113
5114 This feature is available in Postfix 2.8 and later.
5115
5117 The action that postscreen(8) takes when a remote SMTP client's com‐
5118 bined DNSBL score is equal to or greater than a threshold (as defined
5119 with the postscreen_dnsbl_sites and postscreen_dnsbl_threshold parame‐
5120 ters). Specify one of the following:
5121
5122 ignore (default)
5123 Ignore the failure of this test. Allow other tests to complete.
5124 Repeat this test the next time the client connects. This option
5125 is useful for testing and collecting statistics without blocking
5126 mail.
5127
5128 enforce
5129 Allow other tests to complete. Reject attempts to deliver mail
5130 with a 550 SMTP reply, and log the helo/sender/recipient infor‐
5131 mation. Repeat this test the next time the client connects.
5132
5133 drop Drop the connection immediately with a 521 SMTP reply. Repeat
5134 this test the next time the client connects.
5135
5136 This feature is available in Postfix 2.8.
5137
5139 Allow a remote SMTP client to skip "before" and "after 220 greeting"
5140 protocol tests, based on its combined DNSBL score as defined with the
5141 postscreen_dnsbl_sites parameter.
5142
5143 Specify a negative value to enable this feature. When a client passes
5144 the postscreen_dnsbl_allowlist_threshold without having failed other
5145 tests, all pending or disabled tests are flagged as completed with a
5146 time-to-live value equal to postscreen_dnsbl_ttl. When a test was al‐
5147 ready completed, its time-to-live value is updated if it was less than
5148 postscreen_dnsbl_ttl.
5149
5150 This feature is available in Postfix 3.6 and later.
5151
5152 Available as postscreen_dnsbl_whitelist_threshold in Postfix 2.11 -
5153 3.5.
5154
5156 ${postscreen_dnsbl_ttl?{$postscreen_dnsbl_ttl}:{1}}h)
5157 The maximum amount of time that postscreen(8) will use the result from
5158 a successful DNS-based reputation test before a client IP address is
5159 required to pass that test again. If the DNS reply specifies a shorter
5160 TTL value, that value will be used unless it would be smaller than
5161 postscreen_dnsbl_min_ttl.
5162
5163 Specify a non-zero time value (an integral value plus an optional
5164 one-letter suffix that specifies the time unit). Time units: s (sec‐
5165 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5166 unit is h (hours).
5167
5168 This feature is available in Postfix 3.1. The default setting is back‐
5169 wards-compatible with older Postfix versions.
5170
5172 The minimum amount of time that postscreen(8) will use the result from
5173 a successful DNS-based reputation test before a client IP address is
5174 required to pass that test again. If the DNS reply specifies a larger
5175 TTL value, that value will be used unless it would be larger than
5176 postscreen_dnsbl_max_ttl.
5177
5178 Specify a non-zero time value (an integral value plus an optional
5179 one-letter suffix that specifies the time unit). Time units: s (sec‐
5180 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5181 unit is s (seconds).
5182
5183 This feature is available in Postfix 3.1.
5184
5186 A mapping from an actual DNSBL domain name which includes a secret
5187 password, to the DNSBL domain name that postscreen will reply with when
5188 it rejects mail. When no mapping is found, the actual DNSBL domain
5189 will be used.
5190
5191 For maximal stability it is best to use a file that is read into memory
5192 such as pcre:, regexp: or texthash: (texthash: is similar to hash:, ex‐
5193 cept a) there is no need to run postmap(1) before the file can be used,
5194 and b) texthash: does not detect changes after the file is read).
5195
5196 Example:
5197
5198 /etc/postfix/main.cf:
5199 postscreen_dnsbl_reply_map = texthash:/etc/postfix/dnsbl_reply
5200
5201 /etc/postfix/dnsbl_reply:
5202 secret.zen.spamhaus.org zen.spamhaus.org
5203
5204 This feature is available in Postfix 2.8.
5205
5207 Optional list of DNS allow/denylist domains, filters and weight fac‐
5208 tors. When the list is non-empty, the dnsblog(8) daemon will query
5209 these domains with the IP addresses of remote SMTP clients, and
5210 postscreen(8) will update an SMTP client's DNSBL score with each
5211 non-error reply.
5212
5213 Caution: when postscreen rejects mail, it replies with the DNSBL domain
5214 name. Use the postscreen_dnsbl_reply_map feature to hide "password" in‐
5215 formation in DNSBL domain names.
5216
5217 When a client's score is equal to or greater than the threshold speci‐
5218 fied with postscreen_dnsbl_threshold, postscreen(8) can drop the con‐
5219 nection with the remote SMTP client.
5220
5221 Specify a list of domain=filter*weight entries, separated by comma or
5222 whitespace.
5223
5224 • When no "=filter" is specified, postscreen(8) will use any
5225 non-error DNSBL reply. Otherwise, postscreen(8) uses only DNSBL
5226 replies that match the filter. The filter has the form d.d.d.d,
5227 where each d is a number, or a pattern inside [] that contains
5228 one or more ";"-separated numbers or number..number ranges.
5229
5230 • When no "*weight" is specified, postscreen(8) increments the re‐
5231 mote SMTP client's DNSBL score by 1. Otherwise, the weight must
5232 be an integral number, and postscreen(8) adds the specified
5233 weight to the remote SMTP client's DNSBL score. Specify a nega‐
5234 tive number for allowlisting.
5235
5236 • When one postscreen_dnsbl_sites entry produces multiple DNSBL
5237 responses, postscreen(8) applies the weight at most once.
5238
5239 Examples:
5240
5241 To use example.com as a high-confidence blocklist, and to block mail
5242 with example.net and example.org only when both agree:
5243
5244 postscreen_dnsbl_threshold = 2
5245 postscreen_dnsbl_sites = example.com*2, example.net, example.org
5246
5247 To filter only DNSBL replies containing 127.0.0.4:
5248
5249 postscreen_dnsbl_sites = example.com=127.0.0.4
5250
5251 This feature is available in Postfix 2.8.
5252
5254 The inclusive lower bound for blocking a remote SMTP client, based on
5255 its combined DNSBL score as defined with the postscreen_dnsbl_sites pa‐
5256 rameter.
5257
5258 This feature is available in Postfix 2.8.
5259
5261 The time limit for DNSBL or DNSWL lookups. This is separate from the
5262 timeouts in the dnsblog(8) daemon which are defined by system re‐
5263 solver(3) routines.
5264
5265 Specify a non-zero time value (an integral value plus an optional
5266 one-letter suffix that specifies the time unit). Time units: s (sec‐
5267 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5268 unit is s (seconds).
5269
5270 This feature is available in Postfix 3.0.
5271
5273 The amount of time that postscreen(8) will use the result from a suc‐
5274 cessful DNS-based reputation test before a client IP address is re‐
5275 quired to pass that test again.
5276
5277 Specify a non-zero time value (an integral value plus an optional
5278 one-letter suffix that specifies the time unit). Time units: s (sec‐
5279 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5280 unit is h (hours).
5281
5282 This feature is available in Postfix 2.8-3.0. It was replaced by
5283 postscreen_dnsbl_max_ttl in Postfix 3.1.
5284
5286 Renamed to postscreen_dnsbl_allowlist_threshold in Postfix 3.6.
5287
5288 This feature is available in Postfix 2.11 - 3.5.
5289
5291 Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
5292 require that clients use TLS encryption. See smtpd_postscreen_en‐
5293 force_tls for details.
5294
5295 This feature is available in Postfix 2.8 and later. Preferably, use
5296 postscreen_tls_security_level instead.
5297
5299 List of characters that are permitted in postscreen_reject_footer at‐
5300 tribute expansions. See smtpd_expansion_filter for further details.
5301
5302 This feature is available in Postfix 2.8 and later.
5303
5305 List of commands that the postscreen(8) server considers in violation
5306 of the SMTP protocol. See smtpd_forbidden_commands for syntax, and
5307 postscreen_non_smtp_command_action for possible actions.
5308
5309 This feature is available in Postfix 2.8.
5310
5312 The action that postscreen(8) takes when a remote SMTP client speaks
5313 before its turn within the time specified with the
5314 postscreen_greet_wait parameter. Specify one of the following:
5315
5316 ignore (default)
5317 Ignore the failure of this test. Allow other tests to complete.
5318 Repeat this test the next time the client connects. This option
5319 is useful for testing and collecting statistics without blocking
5320 mail.
5321
5322 enforce
5323 Allow other tests to complete. Reject attempts to deliver mail
5324 with a 550 SMTP reply, and log the helo/sender/recipient infor‐
5325 mation. Repeat this test the next time the client connects.
5326
5327 drop Drop the connection immediately with a 521 SMTP reply. Repeat
5328 this test the next time the client connects.
5329
5330 In either case, postscreen(8) will not allowlist the remote SMTP client
5331 IP address.
5332
5333 This feature is available in Postfix 2.8.
5334
5336 The text in the optional "220-text..." server response that
5337 postscreen(8) sends ahead of the real Postfix SMTP server's "220
5338 text..." response, in an attempt to confuse bad SMTP clients so that
5339 they speak before their turn (pre-greet). Specify an empty value to
5340 disable this feature.
5341
5342 This feature is available in Postfix 2.8.
5343
5345 The amount of time that postscreen(8) will use the result from a suc‐
5346 cessful PREGREET test. During this time, the client IP address is ex‐
5347 cluded from this test. The default is relatively short, because a good
5348 client can immediately talk to a real Postfix SMTP server.
5349
5350 Specify a non-zero time value (an integral value plus an optional
5351 one-letter suffix that specifies the time unit). Time units: s (sec‐
5352 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5353 unit is d (days).
5354
5355 This feature is available in Postfix 2.8.
5356
5358 The amount of time that postscreen(8) will wait for an SMTP client to
5359 send a command before its turn, and for DNS blocklist lookup results to
5360 arrive (default: up to 2 seconds under stress, up to 6 seconds other‐
5361 wise).
5362
5363 Specify a non-zero time value (an integral value plus an optional
5364 one-letter suffix that specifies the time unit). Time units: s (sec‐
5365 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5366 unit is s (seconds).
5367
5368 This feature is available in Postfix 2.8.
5369
5371 Require that a remote SMTP client sends HELO or EHLO before commencing
5372 a MAIL transaction.
5373
5374 This feature is available in Postfix 2.8.
5375
5377 The action that postscreen(8) takes when a remote SMTP client sends
5378 non-SMTP commands as specified with the postscreen_forbidden_commands
5379 parameter. Specify one of the following:
5380
5381 ignore Ignore the failure of this test. Allow other tests to complete.
5382 Do not repeat this test before the result from some other test
5383 expires. This option is useful for testing and collecting sta‐
5384 tistics without blocking mail permanently.
5385
5386 enforce
5387 Allow other tests to complete. Reject attempts to deliver mail
5388 with a 550 SMTP reply, and log the helo/sender/recipient infor‐
5389 mation. Repeat this test the next time the client connects.
5390
5391 drop Drop the connection immediately with a 521 SMTP reply. Repeat
5392 this test the next time the client connects. This action is the
5393 same as with the Postfix SMTP server's smtpd_forbidden_commands
5394 feature.
5395
5396 This feature is available in Postfix 2.8.
5397
5399 Enable "non-SMTP command" tests in the postscreen(8) server. These
5400 tests are expensive: a client must disconnect after it passes the test,
5401 before it can talk to a real Postfix SMTP server.
5402
5403 This feature is available in Postfix 2.8.
5404
5406 The amount of time that postscreen(8) will use the result from a suc‐
5407 cessful "non_smtp_command" SMTP protocol test. During this time, the
5408 client IP address is excluded from this test. The default is long be‐
5409 cause a client must disconnect after it passes the test, before it can
5410 talk to a real Postfix SMTP server.
5411
5412 Specify a non-zero time value (an integral value plus an optional
5413 one-letter suffix that specifies the time unit). Time units: s (sec‐
5414 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5415 unit is d (days).
5416
5417 This feature is available in Postfix 2.8.
5418
5420 The action that postscreen(8) takes when a remote SMTP client sends
5421 multiple commands instead of sending one command and waiting for the
5422 server to respond. Specify one of the following:
5423
5424 ignore Ignore the failure of this test. Allow other tests to complete.
5425 Do not repeat this test before the result from some other test
5426 expires. This option is useful for testing and collecting sta‐
5427 tistics without blocking mail permanently.
5428
5429 enforce
5430 Allow other tests to complete. Reject attempts to deliver mail
5431 with a 550 SMTP reply, and log the helo/sender/recipient infor‐
5432 mation. Repeat this test the next time the client connects.
5433
5434 drop Drop the connection immediately with a 521 SMTP reply. Repeat
5435 this test the next time the client connects.
5436
5437 This feature is available in Postfix 2.8.
5438
5440 Enable "pipelining" SMTP protocol tests in the postscreen(8) server.
5441 These tests are expensive: a good client must disconnect after it
5442 passes the test, before it can talk to a real Postfix SMTP server.
5443
5444 This feature is available in Postfix 2.8.
5445
5447 The amount of time that postscreen(8) will use the result from a suc‐
5448 cessful "pipelining" SMTP protocol test. During this time, the client
5449 IP address is excluded from this test. The default is long because a
5450 good client must disconnect after it passes the test, before it can
5451 talk to a real Postfix SMTP server.
5452
5453 Specify a non-zero time value (an integral value plus an optional
5454 one-letter suffix that specifies the time unit). Time units: s (sec‐
5455 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5456 unit is d (days).
5457
5458 This feature is available in Postfix 2.8.
5459
5461 The number of clients that can be waiting for service from a real Post‐
5462 fix SMTP server process. When this queue is full, all clients will re‐
5463 ceive a 421 response.
5464
5465 This feature is available in Postfix 2.8.
5466
5468 The number of non-allowlisted clients that can be waiting for a deci‐
5469 sion whether they will receive service from a real Postfix SMTP server
5470 process. When this queue is full, all non-allowlisted clients will re‐
5471 ceive a 421 response.
5472
5473 This feature is available in Postfix 2.8.
5474
5476 Optional information that is appended after a 4XX or 5XX postscreen(8)
5477 server response. See smtpd_reject_footer for further details.
5478
5479 This feature is available in Postfix 2.8 and later.
5480
5482 Optional lookup table for information that is appended after a 4XX or
5483 5XX postscreen(8) server response. See smtpd_reject_footer_maps for
5484 further details.
5485
5486 This feature is available in Postfix 3.4 and later.
5487
5489 The SMTP TLS security level for the postscreen(8) server; when a
5490 non-empty value is specified, this overrides the obsolete parameters
5491 postscreen_use_tls and postscreen_enforce_tls. See smtpd_tls_secu‐
5492 rity_level for details.
5493
5494 This feature is available in Postfix 2.8 and later.
5495
5497 The name of the proxy protocol used by an optional before-postscreen
5498 proxy agent. When a proxy agent is used, this protocol conveys local
5499 and remote address and port information. Specify "postscreen_up‐
5500 stream_proxy_protocol = haproxy" to enable the haproxy protocol; ver‐
5501 sion 2 is supported with Postfix 3.5 and later.
5502
5503 This feature is available in Postfix 2.10 and later.
5504
5506 The time limit for the proxy protocol specified with the postscreen_up‐
5507 stream_proxy_protocol parameter.
5508
5509 This feature is available in Postfix 2.10 and later.
5510
5512 Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
5513 but do not require that clients use TLS encryption.
5514
5515 This feature is available in Postfix 2.8 and later. Preferably, use
5516 postscreen_tls_security_level instead.
5517
5519 How much time a postscreen(8) process may take to respond to a remote
5520 SMTP client command or to perform a cache operation before it is termi‐
5521 nated by a built-in watchdog timer. This is a safety mechanism that
5522 prevents postscreen(8) from becoming non-responsive due to a bug in
5523 Postfix itself or in system software. To avoid false alarms and unnec‐
5524 essary cache corruption this limit cannot be set under 10s.
5525
5526 Specify a non-zero time value (an integral value plus an optional
5527 one-letter suffix that specifies the time unit). Time units: s (sec‐
5528 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5529 unit is s (seconds).
5530
5531 This feature is available in Postfix 2.8.
5532
5534 Renamed to postscreen_allowlist_interfaces in Postfix 3.6.
5535
5536 This feature is available in Postfix 2.9 - 3.5.
5537
5539 The message delivery contexts where the Postfix local(8) delivery agent
5540 prepends a Delivered-To: message header with the address that the mail
5541 was delivered to. This information is used for mail delivery loop de‐
5542 tection.
5543
5544 By default, the Postfix local delivery agent prepends a Delivered-To:
5545 header when forwarding mail and when delivering to file (mailbox) and
5546 command. Turning off the Delivered-To: header when forwarding mail is
5547 not recommended.
5548
5549 Specify zero or more of forward, file, or command.
5550
5551 Example:
5552
5553 prepend_delivered_header = forward
5554
5556 The process ID of a Postfix command or daemon process.
5557
5559 The location of Postfix PID files relative to $queue_directory. This
5560 is a read-only parameter.
5561
5563 The process name of a Postfix command or daemon process.
5564
5566 What address lookup tables copy an address extension from the lookup
5567 key to the lookup result.
5568
5569 For example, with a virtual(5) mapping of "joe@example.com =>
5570 joe.user@example.net", the address "joe+foo@example.com" would rewrite
5571 to "joe.user+foo@example.net".
5572
5573 Specify zero or more of canonical, virtual, alias, forward, include or
5574 generic. These cause address extension propagation with canonical(5),
5575 virtual(5), and aliases(5) maps, with local(8) .forward and :include:
5576 file lookups, and with smtp(8) generic maps, respectively.
5577
5578 Note: enabling this feature for types other than canonical and virtual
5579 is likely to cause problems when mail is forwarded to other sites, es‐
5580 pecially with mail that is sent to a mailing list exploder address.
5581
5582 Examples:
5583
5584 propagate_unmatched_extensions = canonical, virtual, alias,
5585 forward, include
5586 propagate_unmatched_extensions = canonical, virtual
5587
5589 The network interface addresses that this mail system receives mail on
5590 by way of a proxy or network address translation unit.
5591
5592 This feature is available in Postfix 2.0 and later.
5593
5594 You must specify your "outside" proxy/NAT addresses when your system is
5595 a backup MX host for other domains, otherwise mail delivery loops will
5596 happen when the primary MX host is down.
5597
5598 Example:
5599
5600 proxy_interfaces = 1.2.3.4
5601
5603 The lookup tables that the proxymap(8) server is allowed to access for
5604 the read-only service.
5605
5606 Specify zero or more "type:name" lookup tables, separated by whitespace
5607 or comma. Table references that don't begin with proxy: are ignored.
5608
5609 This feature is available in Postfix 2.0 and later.
5610
5612 The lookup tables that the proxymap(8) server is allowed to access for
5613 the read-write service. Postfix-owned local database files should be
5614 stored under the Postfix-owned data_directory. Table references that
5615 don't begin with proxy: are ignored.
5616
5617 This feature is available in Postfix 2.5 and later.
5618
5620 The name of the proxymap read-only table lookup service. This service
5621 is normally implemented by the proxymap(8) daemon.
5622
5623 This feature is available in Postfix 2.6 and later.
5624
5626 The name of the proxywrite read-write table lookup service. This ser‐
5627 vice is normally implemented by the proxymap(8) daemon.
5628
5629 This feature is available in Postfix 2.6 and later.
5630
5632 The minimal delay between warnings that a specific destination is clog‐
5633 ging up the Postfix active queue. Specify 0 to disable.
5634
5635 Specify a non-negative time value (an integral value plus an optional
5636 one-letter suffix that specifies the time unit). Time units: s (sec‐
5637 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5638 unit is s (seconds).
5639
5640 This feature is enabled with the helpful_warnings parameter.
5641
5642 This feature is available in Postfix 2.0 and later.
5643
5645 How much time a Postfix queue manager process may take to handle a re‐
5646 quest before it is terminated by a built-in watchdog timer.
5647
5648 Specify a non-zero time value (an integral value plus an optional
5649 one-letter suffix that specifies the time unit). Time units: s (sec‐
5650 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5651 unit is s (seconds).
5652
5653 This feature is available in Postfix 2.8 and later.
5654
5656 Obsolete feature: the percentage of delivery resources that a busy mail
5657 system will use up for delivery of a large mailing list message.
5658
5659 This feature exists only in the oqmgr(8) old queue manager. The current
5660 queue manager solves the problem in a better way.
5661
5663 The time limit for the queue manager to send or receive information
5664 over an internal communication channel. The purpose is to break out of
5665 deadlock situations. If the time limit is exceeded the software either
5666 retries or aborts the operation.
5667
5668 Specify a non-zero time value (an integral value plus an optional
5669 one-letter suffix that specifies the time unit). Time units: s (sec‐
5670 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5671 unit is s (seconds).
5672
5673 This feature is available in Postfix 2.8 and later.
5674
5676 The maximal number of messages in the active queue.
5677
5679 The maximal number of recipients held in memory by the Postfix queue
5680 manager, and the maximal size of the short-term, in-memory "dead" des‐
5681 tination status cache.
5682
5684 The minimal number of in-memory recipients for any message. This takes
5685 priority over any other in-memory recipient limits (i.e., the global
5686 qmgr_message_recipient_limit and the per transport _recipient_limit) if
5687 necessary. The minimum value allowed for this parameter is 1.
5688
5690 What remote QMQP clients are allowed to connect to the Postfix QMQP
5691 server port.
5692
5693 By default, no client is allowed to use the service. This is because
5694 the QMQP server will relay mail to any destination.
5695
5696 Specify a list of client patterns. A list pattern specifies a host
5697 name, a domain name, an internet address, or a network/mask pattern,
5698 where the mask specifies the number of bits in the network part. When
5699 a pattern specifies a file name, its contents are substituted for the
5700 file name; when a pattern is a "type:table" table specification, table
5701 lookup is used instead.
5702
5703 Patterns are separated by whitespace and/or commas. In order to reverse
5704 the result, precede a pattern with an exclamation point (!). The form
5705 "!/file/name" is supported only in Postfix version 2.4 and later.
5706
5707 Pattern matching of domain names is controlled by the presence or ab‐
5708 sence of "qmqpd_authorized_clients" in the parent_domain_matches_subdo‐
5709 mains parameter value.
5710
5711 Example:
5712
5713 qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24
5714
5716 Enable logging of the remote QMQP client port in addition to the host‐
5717 name and IP address. The logging format is "host[address]:port".
5718
5719 This feature is available in Postfix 2.5 and later.
5720
5722 How long the Postfix QMQP server will pause before sending a negative
5723 reply to the remote QMQP client. The purpose is to slow down confused
5724 or malicious clients.
5725
5726 Specify a non-negative time value (an integral value plus an optional
5727 one-letter suffix that specifies the time unit). Time units: s (sec‐
5728 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5729 unit is s (seconds).
5730
5732 The time limit for sending or receiving information over the network.
5733 If a read or write operation blocks for more than $qmqpd_timeout sec‐
5734 onds the Postfix QMQP server gives up and disconnects.
5735
5736 Specify a non-zero time value (an integral value plus an optional
5737 one-letter suffix that specifies the time unit). Time units: s (sec‐
5738 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5739 unit is s (seconds).
5740
5742 The location of the Postfix top-level queue directory. This is the root
5743 directory of Postfix daemon processes that run chrooted.
5744
5746 The maximal number of (name=value) attributes that may be stored in a
5747 Postfix queue file. The limit is enforced by the cleanup(8) server.
5748
5749 This feature is available in Postfix 2.0 and later.
5750
5752 The minimal amount of free space in bytes in the queue file system that
5753 is needed to receive mail. This is currently used by the Postfix SMTP
5754 server to decide if it will accept any mail at all.
5755
5756 By default, the Postfix SMTP server rejects MAIL FROM commands when the
5757 amount of free space is less than 1.5*$message_size_limit (Postfix ver‐
5758 sion 2.1 and later). To specify a higher minimum free space limit,
5759 specify a queue_minfree value that is at least 1.5*$message_size_limit.
5760
5761 With Postfix versions 2.0 and earlier, a queue_minfree value of zero
5762 means there is no minimum required amount of free space.
5763
5765 The time between deferred queue scans by the queue manager; prior to
5766 Postfix 2.4 the default value was 1000s.
5767
5768 This parameter should be set less than or equal to $minimal_back‐
5769 off_time. See also $maximal_backoff_time.
5770
5771 Specify a non-zero time value (an integral value plus an optional
5772 one-letter suffix that specifies the time unit). Time units: s (sec‐
5773 onds), m (minutes), h (hours), d (days), w (weeks). The default time
5774 unit is s (seconds).
5775
5777 The name of the qmgr(8) service. This service manages the Postfix queue
5778 and schedules delivery requests.
5779
5780 This feature is available in Postfix 2.0 and later.
5781
5783 Optional lookup tables with RBL response templates. The tables are in‐
5784 dexed by the RBL domain name. By default, Postfix uses the default tem‐
5785 plate as specified with the default_rbl_reply configuration parameter.
5786 See there for a discussion of the syntax of RBL reply templates.
5787
5788 This feature is available in Postfix 2.0 and later.
5789
5791 The location of Postfix README files that describe how to build, con‐
5792 figure or operate a specific Postfix subsystem or feature.
5793
5795 Enable or disable recipient validation, built-in content filtering, or
5796 address mapping. Typically, these are specified in master.cf as com‐
5797 mand-line arguments for the smtpd(8), qmqpd(8) or pickup(8) daemons.
5798
5799 Specify zero or more of the following options. The options override
5800 main.cf settings and are either implemented by smtpd(8), qmqpd(8), or
5801 pickup(8) themselves, or they are forwarded to the cleanup server.
5802
5803 no_unknown_recipient_checks
5804 Do not try to reject unknown recipients (SMTP server only).
5805 This is typically specified AFTER an external content filter.
5806
5807 no_address_mappings
5808 Disable canonical address mapping, virtual alias map expansion,
5809 address masquerading, and automatic BCC (blind carbon-copy) re‐
5810 cipients. This is typically specified BEFORE an external content
5811 filter.
5812
5813 no_header_body_checks
5814 Disable header/body_checks. This is typically specified AFTER an
5815 external content filter.
5816
5817 no_milters
5818 Disable Milter (mail filter) applications. This is typically
5819 specified AFTER an external content filter.
5820
5821 Note: when the "BEFORE content filter" receive_override_options setting
5822 is specified in the main.cf file, specify the "AFTER content filter"
5823 receive_override_options setting in master.cf (and vice versa).
5824
5825 Examples:
5826
5827 receive_override_options =
5828 no_unknown_recipient_checks, no_header_body_checks
5829 receive_override_options = no_address_mappings
5830
5831 This feature is available in Postfix 2.1 and later.
5832
5834 Optional BCC (blind carbon-copy) address lookup tables, indexed by re‐
5835 cipient address. The BCC address (multiple results are not supported)
5836 is added when mail enters from outside of Postfix.
5837
5838 Specify zero or more "type:name" lookup tables, separated by whitespace
5839 or comma. Tables will be searched in the specified order until a match
5840 is found.
5841
5842 The table search order is as follows:
5843
5844 • Look up the "user+extension@domain.tld" address including the
5845 optional address extension.
5846
5847 • Look up the "user@domain.tld" address without the optional ad‐
5848 dress extension.
5849
5850 • Look up the "user+extension" address local part when the recipi‐
5851 ent domain equals $myorigin, $mydestination, $inet_interfaces or
5852 $proxy_interfaces.
5853
5854 • Look up the "user" address local part when the recipient domain
5855 equals $myorigin, $mydestination, $inet_interfaces or $proxy_in‐
5856 terfaces.
5857
5858 • Look up the "@domain.tld" part.
5859
5860 Note: with Postfix 2.3 and later the BCC address is added as if it was
5861 specified with NOTIFY=NONE. The sender will not be notified when the
5862 BCC address is undeliverable, as long as all down-stream software im‐
5863 plements RFC 3461.
5864
5865 Note: with Postfix 2.2 and earlier the sender will unconditionally be
5866 notified when the BCC address is undeliverable.
5867
5868 Note: automatic BCC recipients are produced only for new mail. To
5869 avoid mailer loops, automatic BCC recipients are not generated after
5870 Postfix forwards mail internally, or after Postfix generates mail it‐
5871 self.
5872
5873 Example:
5874
5875 recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
5876
5877 After a change, run "postmap /etc/postfix/recipient_bcc".
5878
5879 This feature is available in Postfix 2.1 and later.
5880
5882 What addresses are subject to recipient_canonical_maps address mapping.
5883 By default, recipient_canonical_maps address mapping is applied to en‐
5884 velope recipient addresses, and to header recipient addresses.
5885
5886 Specify one or more of: envelope_recipient, header_recipient
5887
5888 This feature is available in Postfix 2.2 and later.
5889
5891 Optional address mapping lookup tables for envelope and header recipi‐
5892 ent addresses. The table format and lookups are documented in canoni‐
5893 cal(5).
5894
5895 Note: $recipient_canonical_maps is processed before $canonical_maps.
5896
5897 Example:
5898
5899 recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
5900
5902 The set of characters that can separate an email address localpart,
5903 user name, or a .forward file name from its extension. For example,
5904 with "recipient_delimiter = +", the software tries user+foo@example.com
5905 before trying user@example.com, user+foo before trying user, and .for‐
5906 ward+foo before trying .forward.
5907
5908 More formally, an email address localpart or user name is separated
5909 from its extension by the first character that matches the recipi‐
5910 ent_delimiter set. The delimiter character and extension may then be
5911 used to generate an extended .forward file name. This implementation
5912 recognizes one delimiter character and one extension per email address
5913 localpart or email address. With Postfix 2.10 and earlier, the recipi‐
5914 ent_delimiter specifies a single character.
5915
5916 See canonical(5), local(8), relocated(5) and virtual(5) for the effects
5917 of recipient_delimiter on lookups in aliases, canonical, virtual, and
5918 relocated maps, and see the propagate_unmatched_extensions parameter
5919 for propagating an extension from one email address to another.
5920
5921 When used in command_execution_directory, forward_path, or luser_relay,
5922 ${recipient_delimiter} is replaced with the actual recipient delimiter
5923 that was found in the recipient email address (Postfix 2.11 and later),
5924 or it is replaced with the main.cf recipient_delimiter parameter value
5925 (Postfix 2.10 and earlier).
5926
5927 The recipient_delimiter is not applied to the mailer-daemon address,
5928 the postmaster address, or the double-bounce address. With the default
5929 "owner_request_special = yes" setting, the recipient_delimiter is also
5930 not applied to addresses with the special "owner-" prefix or the spe‐
5931 cial "-request" suffix.
5932
5933 Examples:
5934
5935 # Handle Postfix-style extensions.
5936 recipient_delimiter = +
5937
5938 # Handle both Postfix and qmail extensions (Postfix 2.11 and later).
5939 recipient_delimiter = +-
5940
5941 # Use .forward for mail without address extension, and for mail with
5942 # an unrecognized address extension.
5943 forward_path = $home/.forward${recipient_delimiter}${extension},
5944 $home/.forward
5945
5947 The numerical Postfix SMTP server response code when a remote SMTP
5948 client request is rejected by the "reject" restriction.
5949
5950 Do not change this unless you have a complete understanding of RFC
5951 5321.
5952
5954 The Postfix SMTP server's action when a reject-type restriction fails
5955 due to a temporary error condition. Specify "defer" to defer the remote
5956 SMTP client request immediately. With the default "defer_if_permit" ac‐
5957 tion, the Postfix SMTP server continues to look for opportunities to
5958 reject mail, and defers the client request only if it would otherwise
5959 be accepted.
5960
5961 For finer control, see: unverified_recipient_tempfail_action, unveri‐
5962 fied_sender_tempfail_action, unknown_address_tempfail_action, and un‐
5963 known_helo_hostname_tempfail_action.
5964
5965 This feature is available in Postfix 2.6 and later.
5966
5968 List of tables with remote SMTP client-certificate fingerprints or pub‐
5969 lic key fingerprints (Postfix 2.9 and later) for which the Postfix SMTP
5970 server will allow access with the permit_tls_clientcerts feature. The
5971 fingerprint digest algorithm is configurable via the smtpd_tls_finger‐
5972 print_digest parameter (hard-coded as md5 prior to Postfix version
5973 2.5).
5974
5975 The default algorithm is sha256 with Postfix >= 3.6 and the compatibil‐
5976 ity_level set to 3.6 or higher. With Postfix <= 3.5, the default algo‐
5977 rithm is md5. The best-practice algorithm is now sha256. Recent ad‐
5978 vances in hash function cryptanalysis have led to md5 and sha1 being
5979 deprecated in favor of sha256. However, as long as there are no known
5980 "second pre-image" attacks against the older algorithms, their use in
5981 this context, though not recommended, is still likely safe.
5982
5983 Postfix lookup tables are in the form of (key, value) pairs. Since we
5984 only need the key, the value can be chosen freely, e.g. the name of
5985 the user or host: D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80
5986 lutzpc.at.home
5987
5988 Example:
5989
5990 relay_clientcerts = hash:/etc/postfix/relay_clientcerts
5991
5992 For more fine-grained control, use check_ccert_access to select an ap‐
5993 propriate access(5) policy for each client. See RESTRIC‐
5994 TION_CLASS_README.
5995
5996 This feature is available with Postfix version 2.2.
5997
5999 rency_limit)
6000 The maximal number of parallel deliveries to the same destination via
6001 the relay message delivery transport. This limit is enforced by the
6002 queue manager. The message delivery transport name is the first field
6003 in the entry in the master.cf file.
6004
6005 This feature is available in Postfix 2.0 and later.
6006
6008 ent_limit)
6009 The maximal number of recipients per message for the relay message de‐
6010 livery transport. This limit is enforced by the queue manager. The mes‐
6011 sage delivery transport name is the first field in the entry in the
6012 master.cf file.
6013
6014 Setting this parameter to a value of 1 changes the meaning of re‐
6015 lay_destination_concurrency_limit from concurrency per domain into con‐
6016 currency per recipient.
6017
6018 This feature is available in Postfix 2.0 and later.
6019
6021 What destination domains (and subdomains thereof) this system will re‐
6022 lay mail to. For details about how the relay_domains value is used, see
6023 the description of the permit_auth_destination and reject_unauth_desti‐
6024 nation SMTP recipient restrictions.
6025
6026 Domains that match $relay_domains are delivered with the $relay_trans‐
6027 port mail delivery transport. The SMTP server validates recipient ad‐
6028 dresses with $relay_recipient_maps and rejects non-existent recipients.
6029 See also the relay domains address class in the ADDRESS_CLASS_README
6030 file.
6031
6032 Note: Postfix will not automatically forward mail for domains that list
6033 this system as their primary or backup MX host. See the per‐
6034 mit_mx_backup restriction in the postconf(5) manual page.
6035
6036 Specify a list of host or domain names, "/file/name" patterns or
6037 "type:table" lookup tables, separated by commas and/or whitespace.
6038 Continue long lines by starting the next line with whitespace. A
6039 "/file/name" pattern is replaced by its contents; a "type:table" lookup
6040 table is matched when a (parent) domain appears as lookup key. Specify
6041 "!pattern" to exclude a domain from the list. The form "!/file/name" is
6042 supported only in Postfix version 2.4 and later.
6043
6044 Pattern matching of domain names is controlled by the presence or ab‐
6045 sence of "relay_domains" in the parent_domain_matches_subdomains param‐
6046 eter value.
6047
6049 The numerical Postfix SMTP server response code when a client request
6050 is rejected by the reject_unauth_destination recipient restriction.
6051
6052 Do not change this unless you have a complete understanding of RFC
6053 5321.
6054
6056 Optional lookup tables with all valid addresses in the domains that
6057 match $relay_domains. Specify @domain as a wild-card for domains that
6058 have no valid recipient list, and become a source of backscatter mail:
6059 Postfix accepts spam for non-existent recipients and then floods inno‐
6060 cent people with undeliverable mail. Technically, tables listed with
6061 $relay_recipient_maps are used as lists: Postfix needs to know only if
6062 a lookup string is found or not, but it does not use the result from
6063 the table lookup.
6064
6065 Specify zero or more "type:name" lookup tables, separated by whitespace
6066 or comma. Tables will be searched in the specified order until a match
6067 is found.
6068
6069 If this parameter is non-empty, then the Postfix SMTP server will re‐
6070 ject mail to unknown relay users. This feature is off by default.
6071
6072 See also the relay domains address class in the ADDRESS_CLASS_README
6073 file.
6074
6075 Example:
6076
6077 relay_recipient_maps = hash:/etc/postfix/relay_recipients
6078
6079 This feature is available in Postfix 2.0 and later.
6080
6082 The default mail delivery transport and next-hop destination for remote
6083 delivery to domains listed with $relay_domains. In order of decreasing
6084 precedence, the nexthop destination is taken from $relay_transport,
6085 $sender_dependent_relayhost_maps, $relayhost, or from the recipient do‐
6086 main. This information can be overruled with the transport(5) table.
6087
6088 Specify a string of the form transport:nexthop, where transport is the
6089 name of a mail delivery transport defined in master.cf. The :nexthop
6090 destination is optional; its syntax is documented in the manual page of
6091 the corresponding delivery agent.
6092
6093 See also the relay domains address class in the ADDRESS_CLASS_README
6094 file.
6095
6096 This feature is available in Postfix 2.0 and later.
6097
6099 The next-hop destination(s) for non-local mail; overrides non-local do‐
6100 mains in recipient addresses. This information is overruled with re‐
6101 lay_transport, sender_dependent_default_transport_maps, default_trans‐
6102 port, sender_dependent_relayhost_maps and with the transport(5) table.
6103
6104 On an intranet, specify the organizational domain name. If your inter‐
6105 nal DNS uses no MX records, specify the name of the intranet gateway
6106 host instead.
6107
6108 In the case of SMTP or LMTP delivery, specify one or more destinations
6109 in the form of a domain name, hostname, hostname:port, [hostname]:port,
6110 [hostaddress] or [hostaddress]:port, separated by comma or whitespace.
6111 The form [hostname] turns off MX lookups. Multiple destinations are
6112 supported in Postfix 3.5 and later.
6113
6114 If you're connected via UUCP, see the UUCP_README file for useful in‐
6115 formation.
6116
6117 Examples:
6118
6119 relayhost = $mydomain
6120 relayhost = [gateway.example.com]
6121 relayhost = mail1.example:587, mail2.example:587
6122 relayhost = [an.ip.add.ress]
6123
6125 Optional lookup tables with new contact information for users or do‐
6126 mains that no longer exist. The table format and lookups are docu‐
6127 mented in relocated(5).
6128
6129 Specify zero or more "type:name" lookup tables, separated by whitespace
6130 or comma. Tables will be searched in the specified order until a match
6131 is found.
6132
6133 If you use this feature, run "postmap /etc/postfix/relocated" to build
6134 the necessary DBM or DB file after change, then "postfix reload" to
6135 make the changes visible.
6136
6137 Examples:
6138
6139 relocated_maps = dbm:/etc/postfix/relocated
6140 relocated_maps = hash:/etc/postfix/relocated
6141
6143 Don't rewrite message headers from remote clients at all when this pa‐
6144 rameter is empty; otherwise, rewrite message headers and append the
6145 specified domain name to incomplete addresses. The local_header_re‐
6146 write_clients parameter controls what clients Postfix considers local.
6147
6148 Examples:
6149
6150 The safe setting: append "domain.invalid" to incomplete header ad‐
6151 dresses from remote SMTP clients, so that those addresses cannot be
6152 confused with local addresses.
6153
6154 remote_header_rewrite_domain = domain.invalid
6155
6156 The default, purist, setting: don't rewrite headers from remote clients
6157 at all.
6158
6159 remote_header_rewrite_domain =
6160
6162 Require that a local(8) recipient's home directory exists before mail
6163 delivery is attempted. By default this test is disabled. It can be
6164 useful for environments that import home directories to the mail server
6165 (IMPORTING HOME DIRECTORIES IS NOT RECOMMENDED).
6166
6168 Reset the local(8) delivery agent's idea of the owner-alias attribute,
6169 when delivering mail to a child alias that does not have its own owner
6170 alias.
6171
6172 This feature is available in Postfix 2.8 and later. With older Postfix
6173 releases, the behavior is as if this parameter is set to "yes".
6174
6175 As documented in aliases(5), when an alias name has a companion alias
6176 named owner-name, this will replace the envelope sender address, so
6177 that delivery errors will be reported to the owner alias instead of the
6178 sender. This configuration is recommended for mailing lists.
6179
6180 A less known property of the owner alias is that it also forces the lo‐
6181 cal(8) delivery agent to write local and remote addresses from alias
6182 expansion to a new queue file, instead of attempting to deliver mail to
6183 local addresses as soon as they come out of alias expansion.
6184
6185 Writing local addresses from alias expansion to a new queue file allows
6186 for robust handling of temporary delivery errors: errors with one local
6187 member have no effect on deliveries to other members of the list. On
6188 the other hand, delivery to local addresses as soon as they come out of
6189 alias expansion is fragile: a temporary error with one local address
6190 from alias expansion will cause the entire alias to be expanded repeat‐
6191 edly until the error goes away, or until the message expires in the
6192 queue. In that case, a problem with one list member results in multi‐
6193 ple message deliveries to other list members.
6194
6195 The default behavior of Postfix 2.8 and later is to keep the
6196 owner-alias attribute of the parent alias, when delivering mail to a
6197 child alias that does not have its own owner alias. Then, local ad‐
6198 dresses from that child alias will be written to a new queue file, and
6199 a temporary error with one local address will not affect delivery to
6200 other mailing list members.
6201
6202 Unfortunately, older Postfix releases reset the owner-alias attribute
6203 when delivering mail to a child alias that does not have its own owner
6204 alias. To be precise, this resets only the decision to create a new
6205 queue file, not the decision to override the envelope sender address.
6206 The local(8) delivery agent then attempts to deliver local addresses as
6207 soon as they come out of child alias expansion. If delivery to any ad‐
6208 dress from child alias expansion fails with a temporary error condi‐
6209 tion, the entire mailing list may be expanded repeatedly until the mail
6210 expires in the queue, resulting in multiple deliveries of the same mes‐
6211 sage to mailing list members.
6212
6214 Resolve a recipient address safely instead of correctly, by looking in‐
6215 side quotes.
6216
6217 By default, the Postfix address resolver does not quote the address lo‐
6218 calpart as per RFC 822, so that additional @ or % or ! operators re‐
6219 main visible. This behavior is safe but it is also technically incor‐
6220 rect.
6221
6222 If you specify "resolve_dequoted_address = no", then the Postfix re‐
6223 solver will not know about additional @ etc. operators in the address
6224 localpart. This opens opportunities for obscure mail relay attacks with
6225 user@domain@domain addresses when Postfix provides backup MX service
6226 for Sendmail systems.
6227
6229 Resolve an address that ends in the "@" null domain as if the local
6230 hostname were specified, instead of rejecting the address as invalid.
6231
6232 This feature is available in Postfix 2.1 and later. Earlier versions
6233 always resolve the null domain as the local hostname.
6234
6235 The Postfix SMTP server uses this feature to reject mail from or to ad‐
6236 dresses that end in the "@" null domain, and from addresses that re‐
6237 write into a form that ends in the "@" null domain.
6238
6240 Resolve "user@ipaddress" as "user@[ipaddress]", instead of rejecting
6241 the address as invalid.
6242
6243 This feature is available in Postfix 2.3 and later.
6244
6246 Avoid logging that implies white is better than black. Instead use 'al‐
6247 lowlist', 'denylist', and variations of those words.
6248
6249 This feature is available in Postfix 3.6 and later.
6250
6252 The name of the address rewriting service. This service rewrites ad‐
6253 dresses to standard form and resolves them to a (delivery method,
6254 next-hop host, recipient) triple.
6255
6256 This feature is available in Postfix 2.0 and later.
6257
6259 The name of the directory with example Postfix configuration files.
6260 Starting with Postfix 2.1, these files have been replaced with the
6261 postconf(5) manual page.
6262
6264 When authenticating to a remote SMTP or LMTP server with the default
6265 setting "no", send no SASL authoriZation ID (authzid); send only the
6266 SASL authentiCation ID (authcid) plus the authcid's password.
6267
6268 The non-default setting "yes" enables the behavior of older Postfix
6269 versions. These always send a SASL authzid that is equal to the SASL
6270 authcid, but this causes interoperability problems with some SMTP
6271 servers.
6272
6273 This feature is available in Postfix 2.4.4 and later.
6274
6276 This parameter should not be used. It was replaced by sender_depen‐
6277 dent_relayhost_maps in Postfix version 2.3.
6278
6280 Optional BCC (blind carbon-copy) address lookup tables, indexed by
6281 sender address. The BCC address (multiple results are not supported)
6282 is added when mail enters from outside of Postfix.
6283
6284 Specify zero or more "type:name" lookup tables, separated by whitespace
6285 or comma. Tables will be searched in the specified order until a match
6286 is found.
6287
6288 The table search order is as follows:
6289
6290 • Look up the "user+extension@domain.tld" address including the
6291 optional address extension.
6292
6293 • Look up the "user@domain.tld" address without the optional ad‐
6294 dress extension.
6295
6296 • Look up the "user+extension" address local part when the sender
6297 domain equals $myorigin, $mydestination, $inet_interfaces or
6298 $proxy_interfaces.
6299
6300 • Look up the "user" address local part when the sender domain
6301 equals $myorigin, $mydestination, $inet_interfaces or $proxy_in‐
6302 terfaces.
6303
6304 • Look up the "@domain.tld" part.
6305
6306 Note: with Postfix 2.3 and later the BCC address is added as if it was
6307 specified with NOTIFY=NONE. The sender will not be notified when the
6308 BCC address is undeliverable, as long as all down-stream software im‐
6309 plements RFC 3461.
6310
6311 Note: with Postfix 2.2 and earlier the sender will be notified when the
6312 BCC address is undeliverable.
6313
6314 Note: automatic BCC recipients are produced only for new mail. To
6315 avoid mailer loops, automatic BCC recipients are not generated after
6316 Postfix forwards mail internally, or after Postfix generates mail it‐
6317 self.
6318
6319 Example:
6320
6321 sender_bcc_maps = hash:/etc/postfix/sender_bcc
6322
6323 After a change, run "postmap /etc/postfix/sender_bcc".
6324
6325 This feature is available in Postfix 2.1 and later.
6326
6328 What addresses are subject to sender_canonical_maps address mapping.
6329 By default, sender_canonical_maps address mapping is applied to enve‐
6330 lope sender addresses, and to header sender addresses.
6331
6332 Specify one or more of: envelope_sender, header_sender
6333
6334 This feature is available in Postfix 2.2 and later.
6335
6337 Optional address mapping lookup tables for envelope and header sender
6338 addresses. The table format and lookups are documented in canoni‐
6339 cal(5).
6340
6341 Example: you want to rewrite the SENDER address "user@ugly.domain" to
6342 "user@pretty.domain", while still being able to send mail to the RECIP‐
6343 IENT address "user@ugly.domain".
6344
6345 Note: $sender_canonical_maps is processed before $canonical_maps.
6346
6347 Example:
6348
6349 sender_canonical_maps = hash:/etc/postfix/sender_canonical
6350
6352 A sender-dependent override for the global default_transport parameter
6353 setting. The tables are searched by the envelope sender address and
6354 @domain. A lookup result of DUNNO terminates the search without over‐
6355 riding the global default_transport parameter setting. This informa‐
6356 tion is overruled with the transport(5) table.
6357
6358 Specify zero or more "type:name" lookup tables, separated by whitespace
6359 or comma. Tables will be searched in the specified order until a match
6360 is found.
6361
6362 Note: this overrides default_transport, not transport_maps, and there‐
6363 fore the expected syntax is that of default_transport, not the syntax
6364 of transport_maps. Specifically, this does not support the trans‐
6365 port_maps syntax for null transport, null nexthop, or null email ad‐
6366 dresses.
6367
6368 For safety reasons, this feature does not allow $number substitutions
6369 in regular expression maps.
6370
6371 This feature is available in Postfix 2.7 and later.
6372
6374 A sender-dependent override for the global relayhost parameter setting.
6375 The tables are searched by the envelope sender address and @domain. A
6376 lookup result of DUNNO terminates the search without overriding the
6377 global relayhost parameter setting (Postfix 2.6 and later). This infor‐
6378 mation is overruled with relay_transport, sender_dependent_de‐
6379 fault_transport_maps, default_transport and with the transport(5) ta‐
6380 ble.
6381
6382 Specify zero or more "type:name" lookup tables, separated by whitespace
6383 or comma. Tables will be searched in the specified order until a match
6384 is found.
6385
6386 For safety reasons, this feature does not allow $number substitutions
6387 in regular expression maps.
6388
6389 This feature is available in Postfix 2.3 and later.
6390
6392 Controls how the Postfix sendmail command converts email message line
6393 endings from <CR><LF> into UNIX format (<LF>).
6394
6395 always Always convert message lines ending in <CR><LF>. This setting is
6396 the default with Postfix 2.9 and later.
6397
6398 strict Convert message lines ending in <CR><LF> only if the first input
6399 line ends in <CR><LF>. This setting is backwards-compatible with
6400 Postfix 2.8 and earlier.
6401
6402 never Never convert message lines ending in <CR><LF>. This setting ex‐
6403 ists for completeness only.
6404
6405 This feature is available in Postfix 2.9 and later.
6406
6408 A Sendmail compatibility feature that specifies the location of the
6409 Postfix sendmail(1) command. This command can be used to submit mail
6410 into the Postfix queue.
6411
6413 The master.cf service name of a Postfix daemon process. This can be
6414 used to distinguish the logging from different services that use the
6415 same program name.
6416
6417 Example master.cf entries:
6418
6419 # Distinguish inbound MTA logging from submission and smtps logging.
6420 smtp inet n - n - - smtpd
6421 submission inet n - n - - smtpd
6422 -o syslog_name=postfix/$service_name
6423 smtps inet n - n - - smtpd
6424 -o syslog_name=postfix/$service_name
6425
6426 # Distinguish outbound MTA logging from inbound relay logging.
6427 smtp unix - - n - - smtp
6428 relay unix - - n - - smtp
6429 -o syslog_name=postfix/$service_name
6430
6432 How long the Postfix master(8) waits before forking a server that ap‐
6433 pears to be malfunctioning.
6434
6435 Specify a non-zero time value (an integral value plus an optional
6436 one-letter suffix that specifies the time unit). Time units: s (sec‐
6437 onds), m (minutes), h (hours), d (days), w (weeks). The default time
6438 unit is s (seconds).
6439
6441 The group ownership of set-gid Postfix commands and of group-writable
6442 Postfix directories. When this parameter value is changed you need to
6443 re-run "postfix set-permissions" (with Postfix version 2.0 and earlier:
6444 "/etc/postfix/post-install set-permissions".
6445
6447 The location of Postfix dynamically-linked libraries (libpostfix-*.so),
6448 and the default location of Postfix database plugins (postfix-*.so)
6449 that have a relative pathname in the dynamicmaps.cf file. The
6450 shlib_directory parameter defaults to "no" when Postfix dynami‐
6451 cally-linked libraries and database plugins are disabled at compile
6452 time, otherwise it typically defaults to /usr/lib/postfix or /usr/lo‐
6453 cal/lib/postfix.
6454
6455 Notes:
6456
6457 • The directory specified with shlib_directory should contain only
6458 Postfix-related files. Postfix dynamically-linked libraries and
6459 database plugins should not be installed in a "public" system
6460 directory such as /usr/lib or /usr/local/lib. Linking Postfix
6461 dynamically-linked library files or database plugins into
6462 non-Postfix programs is not supported. Postfix dynami‐
6463 cally-linked libraries and database plugins implement a Post‐
6464 fix-internal API that changes without maintaining compatibility.
6465
6466 • You can change the shlib_directory value after Postfix is built.
6467 However, you may have to run ldconfig or equivalent to prevent
6468 Postfix programs from failing because the libpostfix-*.so files
6469 are not found. No ldconfig command is needed if you keep the
6470 libpostfix-*.so files in the compiled-in default $shlib_direc‐
6471 tory location.
6472
6473 This feature is available in Postfix 3.0 and later.
6474
6476 Display the name of the recipient table in the "User unknown" re‐
6477 sponses. The extra detail makes troubleshooting easier but also re‐
6478 veals information that is nobody else's business.
6479
6480 This feature is available in Postfix 2.0 and later.
6481
6483 The name of the showq(8) service. This service produces mail queue sta‐
6484 tus reports.
6485
6486 This feature is available in Postfix 2.0 and later.
6487
6489 The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP client
6490 will try first, when a destination has IPv6 and IPv4 addresses with
6491 equal MX preference. This feature has no effect unless the inet_proto‐
6492 cols setting enables both IPv4 and IPv6.
6493
6494 Postfix SMTP client address preference has evolved. With Postfix 2.8
6495 the default is "ipv6"; earlier implementations are hard-coded to prefer
6496 IPv6 over IPv4.
6497
6498 Notes for mail delivery between sites that have both IPv4 and IPv6 con‐
6499 nectivity:
6500
6501 • The setting "smtp_address_preference = ipv6" is unsafe. It can
6502 fail to deliver mail when there is an outage that affects IPv6,
6503 while the destination is still reachable over IPv4.
6504
6505 • The setting "smtp_address_preference = any" is safe. With this,
6506 mail will eventually be delivered even if there is an outage
6507 that affects IPv6 or IPv4, as long as it does not affect both.
6508
6509 This feature is available in Postfix 2.8 and later.
6510
6512 In the context of email address verification, the SMTP protocol stage
6513 that determines whether an email address is deliverable. Specify one
6514 of "rcpt" or "data". The latter is needed with remote SMTP servers
6515 that reject recipients after the DATA command. Use transport_maps to
6516 apply this feature selectively:
6517
6518 /etc/postfix/main.cf:
6519 transport_maps = hash:/etc/postfix/transport
6520
6521 /etc/postfix/transport:
6522 smtp-domain-that-verifies-after-data smtp-data-target:
6523 lmtp-domain-that-verifies-after-data lmtp-data-target:
6524
6525 /etc/postfix/master.cf:
6526 smtp-data-target unix - - n - - smtp
6527 -o smtp_address_verify_target=data
6528 lmtp-data-target unix - - n - - lmtp
6529 -o lmtp_address_verify_target=data
6530
6531 Unselective use of the "data" target does no harm, but will result in
6532 unnecessary "lost connection after DATA" events at remote SMTP/LMTP
6533 servers.
6534
6535 This feature is available in Postfix 3.0 and later.
6536
6538 Always send EHLO at the start of an SMTP session.
6539
6540 With "smtp_always_send_ehlo = no", the Postfix SMTP client sends EHLO
6541 only when the word "ESMTP" appears in the server greeting banner (exam‐
6542 ple: 220 spike.porcupine.org ESMTP Postfix).
6543
6545 When a remote destination resolves to a combination of IPv4 and IPv6
6546 addresses, ensure that the Postfix SMTP client can try both address
6547 types before it runs into the smtp_mx_address_limit.
6548
6549 This avoids an interoperability problem when a destination resolves to
6550 primarily IPv6 addresses, the smtp_address_limit feature eliminates
6551 most or all IPv4 addresses, and the destination is not reachable over
6552 IPv6.
6553
6554 This feature is available in Postfix 3.3 and later.
6555
6557 An optional numerical network address that the Postfix SMTP client
6558 should bind to when making an IPv4 connection.
6559
6560 This can be specified in the main.cf file for all SMTP clients, or it
6561 can be specified in the master.cf file for a specific client, for exam‐
6562 ple:
6563
6564 /etc/postfix/master.cf:
6565 smtp ... smtp -o smtp_bind_address=11.22.33.44
6566
6567 See smtp_bind_address_enforce for how Postfix should handle errors
6568 (Postfix 3.7 and later).
6569
6570 Note 1: when inet_interfaces specifies no more than one IPv4 address,
6571 and that address is a non-loopback address, it is automatically used as
6572 the smtp_bind_address. This supports virtual IP hosting, but can be a
6573 problem on multi-homed firewalls. See the inet_interfaces documentation
6574 for more detail.
6575
6576 Note 2: address information may be enclosed inside [], but this form is
6577 not required here.
6578
6580 An optional numerical network address that the Postfix SMTP client
6581 should bind to when making an IPv6 connection.
6582
6583 This feature is available in Postfix 2.2 and later.
6584
6585 This can be specified in the main.cf file for all SMTP clients, or it
6586 can be specified in the master.cf file for a specific client, for exam‐
6587 ple:
6588
6589 /etc/postfix/master.cf:
6590 smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8
6591
6592 See smtp_bind_address_enforce for how Postfix should handle errors
6593 (Postfix 3.7 and later).
6594
6595 Note 1: when inet_interfaces specifies no more than one IPv6 address,
6596 and that address is a non-loopback address, it is automatically used as
6597 the smtp_bind_address6. This supports virtual IP hosting, but can be a
6598 problem on multi-homed firewalls. See the inet_interfaces documentation
6599 for more detail.
6600
6601 Note 2: address information may be enclosed inside [], but this form is
6602 not recommended here.
6603
6605 Defer delivery when the Postfix SMTP client cannot apply the
6606 smtp_bind_address or smtp_bind_address6 setting. By default, the Post‐
6607 fix SMTP client will continue delivery after logging a warning.
6608
6609 This feature is available in Postfix 3.7 and later.
6610
6612 Restricted body_checks(5) tables for the Postfix SMTP client. These
6613 tables are searched while mail is being delivered. Actions that change
6614 the delivery time or destination are not available.
6615
6616 This feature is available in Postfix 2.5 and later.
6617
6619 When the remote SMTP servername is a DNS CNAME, replace the servername
6620 with the result from CNAME expansion for the purpose of logging, SASL
6621 password lookup, TLS policy decisions, or TLS certificate verification.
6622 The value "no" hardens Postfix smtp_tls_per_site hostname-based poli‐
6623 cies against false hostname information in DNS CNAME records, and makes
6624 SASL password file lookups more predictable. This is the default set‐
6625 ting as of Postfix 2.3.
6626
6627 When DNS CNAME records are validated with secure DNS lookups
6628 (smtp_dns_support_level = dnssec), they are always allowed to override
6629 the above servername (Postfix 2.11 and later).
6630
6631 This feature is available in Postfix 2.2.9 and later.
6632
6634 The Postfix SMTP client time limit for completing a TCP connection, or
6635 zero (use the operating system built-in time limit).
6636
6637 When no connection can be made within the deadline, the Postfix SMTP
6638 client tries the next address on the mail exchanger list. Specify 0 to
6639 disable the time limit (i.e. use whatever timeout is implemented by the
6640 operating system).
6641
6642 Specify a non-negative time value (an integral value plus an optional
6643 one-letter suffix that specifies the time unit). Time units: s (sec‐
6644 onds), m (minutes), h (hours), d (days), w (weeks). The default time
6645 unit is s (seconds).
6646
6648 Permanently enable SMTP connection caching for the specified destina‐
6649 tions. With SMTP connection caching, a connection is not closed imme‐
6650 diately after completion of a mail transaction. Instead, the connec‐
6651 tion is kept open for up to $smtp_connection_cache_time_limit seconds.
6652 This allows connections to be reused for other deliveries, and can im‐
6653 prove mail delivery performance.
6654
6655 Specify a comma or white space separated list of destinations or
6656 pseudo-destinations:
6657
6658 • if mail is sent without a relay host: a domain name (the
6659 right-hand side of an email address, without the [] around a nu‐
6660 meric IP address),
6661
6662 • if mail is sent via a relay host: a relay host name (without []
6663 or non-default TCP port), as specified in main.cf or in the
6664 transport map,
6665
6666 • if mail is sent via a UNIX-domain socket: a pathname (without
6667 the unix: prefix),
6668
6669 • a /file/name with domain names and/or relay host names as de‐
6670 fined above,
6671
6672 • a "type:table" with domain names and/or relay host names on the
6673 left-hand side. The right-hand side result from "type:table"
6674 lookups is ignored.
6675
6676 This feature is available in Postfix 2.2 and later.
6677
6679 Temporarily enable SMTP connection caching while a destination has a
6680 high volume of mail in the active queue. With SMTP connection caching,
6681 a connection is not closed immediately after completion of a mail
6682 transaction. Instead, the connection is kept open for up to $smtp_con‐
6683 nection_cache_time_limit seconds. This allows connections to be reused
6684 for other deliveries, and can improve mail delivery performance.
6685
6686 This feature is available in Postfix 2.2 and later.
6687
6689 When SMTP connection caching is enabled, the amount of time that an un‐
6690 used SMTP client socket is kept open before it is closed. Do not spec‐
6691 ify larger values without permission from the remote sites.
6692
6693 This feature is available in Postfix 2.2 and later.
6694
6696 When SMTP connection caching is enabled, the number of times that an
6697 SMTP session may be reused before it is closed, or zero (no limit).
6698 With a reuse count limit of N, a connection is used up to N+1 times.
6699
6700 NOTE: This feature is unsafe. When a high-volume destination has multi‐
6701 ple inbound MTAs, then the slowest inbound MTA will attract the most
6702 connections to that destination. This limitation does not exist with
6703 the smtp_connection_reuse_time_limit feature.
6704
6705 This feature is available in Postfix 2.11.
6706
6708 The amount of time during which Postfix will use an SMTP connection re‐
6709 peatedly. The timer starts when the connection is initiated (i.e. it
6710 includes the connect, greeting and helo latency, in addition to the la‐
6711 tencies of subsequent mail delivery transactions).
6712
6713 This feature addresses a performance stability problem with remote SMTP
6714 servers. This problem is not specific to Postfix: it can happen when
6715 any MTA sends large amounts of SMTP email to a site that has multiple
6716 MX hosts.
6717
6718 The problem starts when one of a set of MX hosts becomes slower than
6719 the rest. Even though SMTP clients connect to fast and slow MX hosts
6720 with equal probability, the slow MX host ends up with more simultaneous
6721 inbound connections than the faster MX hosts, because the slow MX host
6722 needs more time to serve each client request.
6723
6724 The slow MX host becomes a connection attractor. If one MX host be‐
6725 comes N times slower than the rest, it dominates mail delivery latency
6726 unless there are more than N fast MX hosts to counter the effect. And
6727 if the number of MX hosts is smaller than N, the mail delivery latency
6728 becomes effectively that of the slowest MX host divided by the total
6729 number of MX hosts.
6730
6731 The solution uses connection caching in a way that differs from Postfix
6732 version 2.2. By limiting the amount of time during which a connection
6733 can be used repeatedly (instead of limiting the number of deliveries
6734 over that connection), Postfix not only restores fairness in the dis‐
6735 tribution of simultaneous connections across a set of MX hosts, it also
6736 favors deliveries over connections that perform well, which is exactly
6737 what we want.
6738
6739 The default reuse time limit, 300s, is comparable to the various smtp
6740 transaction timeouts which are fair estimates of maximum excess latency
6741 for a slow delivery. Note that hosts may accept thousands of messages
6742 over a single connection within the default connection reuse time
6743 limit. This number is much larger than the default Postfix version 2.2
6744 limit of 10 messages per cached connection. It may prove necessary to
6745 lower the limit to avoid interoperability issues with MTAs that exhibit
6746 bugs when many messages are delivered via a single connection. A lower
6747 reuse time limit risks losing the benefit of connection reuse when the
6748 average connection and mail delivery latency exceeds the reuse time
6749 limit.
6750
6751 This feature is available in Postfix 2.3 and later.
6752
6754 The Postfix SMTP client time limit for sending the SMTP ".", and for
6755 receiving the remote SMTP server response.
6756
6757 When no response is received within the deadline, a warning is logged
6758 that the mail may be delivered multiple times.
6759
6760 Specify a non-zero time value (an integral value plus an optional
6761 one-letter suffix that specifies the time unit). Time units: s (sec‐
6762 onds), m (minutes), h (hours), d (days), w (weeks). The default time
6763 unit is s (seconds).
6764
6766 The Postfix SMTP client time limit for sending the SMTP DATA command,
6767 and for receiving the remote SMTP server response.
6768
6769 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6770 The default time unit is s (seconds).
6771
6773 The Postfix SMTP client time limit for sending the SMTP message con‐
6774 tent. When the connection makes no progress for more than
6775 $smtp_data_xfer_timeout seconds the Postfix SMTP client terminates the
6776 transfer.
6777
6778 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6779 The default time unit is s (seconds).
6780
6782 Defer mail delivery when no MX record resolves to an IP address.
6783
6784 The default (no) is to return the mail as undeliverable. With older
6785 Postfix versions the default was to keep trying to deliver the mail un‐
6786 til someone fixed the MX record or until the mail was too old.
6787
6788 Note: the Postfix SMTP client always ignores MX records with equal or
6789 worse preference than the local MTA itself.
6790
6791 This feature is available in Postfix 2.1 and later.
6792
6794 Optional filter for the smtp(8) delivery agent to change the delivery
6795 status code or explanatory text of successful or unsuccessful deliver‐
6796 ies. See default_delivery_status_filter for details.
6797
6798 NOTE: This feature modifies Postfix SMTP client error or non-error mes‐
6799 sages that may or may not be derived from remote SMTP server responses.
6800 In contrast, the smtp_reply_filter feature modifies remote SMTP server
6801 responses only.
6802
6804 rency_limit)
6805 The maximal number of parallel deliveries to the same destination via
6806 the smtp message delivery transport. This limit is enforced by the
6807 queue manager. The message delivery transport name is the first field
6808 in the entry in the master.cf file.
6809
6811 ent_limit)
6812 The maximal number of recipients per message for the smtp message de‐
6813 livery transport. This limit is enforced by the queue manager. The mes‐
6814 sage delivery transport name is the first field in the entry in the
6815 master.cf file.
6816
6817 Setting this parameter to a value of 1 changes the meaning of smtp_des‐
6818 tination_concurrency_limit from concurrency per domain into concurrency
6819 per recipient.
6820
6822 Lookup tables, indexed by the remote SMTP server address, with case in‐
6823 sensitive lists of EHLO keywords (pipelining, starttls, auth, etc.)
6824 that the Postfix SMTP client will ignore in the EHLO response from a
6825 remote SMTP server. See smtp_discard_ehlo_keywords for details. The ta‐
6826 ble is not indexed by hostname for consistency with smtpd_dis‐
6827 card_ehlo_keyword_address_maps.
6828
6829 Specify zero or more "type:name" lookup tables, separated by whitespace
6830 or comma. Tables will be searched in the specified order until a match
6831 is found.
6832
6833 This feature is available in Postfix 2.2 and later.
6834
6836 A case insensitive list of EHLO keywords (pipelining, starttls, auth,
6837 etc.) that the Postfix SMTP client will ignore in the EHLO response
6838 from a remote SMTP server.
6839
6840 This feature is available in Postfix 2.2 and later.
6841
6842 Notes:
6843
6844 • Specify the silent-discard pseudo keyword to prevent this action
6845 from being logged.
6846
6847 • Use the smtp_discard_ehlo_keyword_address_maps feature to dis‐
6848 card EHLO keywords selectively.
6849
6851 Optional filter for Postfix SMTP client DNS lookup results. Specify
6852 zero or more lookup tables. The lookup tables are searched in the
6853 given order for a match with the DNS lookup result, converted to the
6854 following form:
6855
6856 name ttl class type preference value
6857
6858 The class field is always "IN", the preference field exists only for MX
6859 records, the names of hosts, domains, etc. end in ".", and those names
6860 are in ASCII form (xn--mumble form in the case of UTF8 names).
6861
6862 When a match is found, the table lookup result specifies an action. By
6863 default, the table query and the action name are case-insensitive.
6864 Currently, only the IGNORE action is implemented.
6865
6866 Notes:
6867
6868 • Postfix DNS reply filters have no effect on implicit DNS lookups
6869 through nsswitch.conf or equivalent mechanisms.
6870
6871 • The Postfix SMTP/LMTP client uses smtp_dns_reply_filter and
6872 lmtp_dns_reply_filter only to discover a remote SMTP or LMTP
6873 service (record types MX, A, AAAA, and TLSA). These lookups are
6874 also made to implement the features reject_unverified_sender and
6875 reject_unverified_recipient.
6876
6877 • The Postfix SMTP/LMTP client defers mail delivery when a filter
6878 removes all lookup results from a successful query.
6879
6880 • Postfix SMTP server uses smtpd_dns_reply_filter only to look up
6881 MX, A, AAAA, and TXT records to implement the features re‐
6882 ject_unknown_helo_hostname, reject_unknown_sender_domain, re‐
6883 ject_unknown_recipient_domain, reject_rbl_*, and reject_rhsbl_*.
6884
6885 • The Postfix SMTP server logs a warning or defers mail delivery
6886 when a filter removes all lookup results from a successful
6887 query.
6888
6889 Example: ignore Google AAAA records in Postfix SMTP client DNS lookups,
6890 because Google sometimes hard-rejects mail from IPv6 clients with valid
6891 PTR etc. records.
6892
6893 /etc/postfix/main.cf:
6894 smtp_dns_reply_filter = pcre:/etc/postfix/smtp_dns_reply_filter
6895
6896 /etc/postfix/smtp_dns_reply_filter:
6897 # /domain ttl IN AAAA address/ action, all case-insensitive.
6898 # Note: the domain name ends in ".".
6899 /^\S+\.google\.com\.\s+\S+\s+\S+\s+AAAA\s+/ IGNORE
6900
6901 This feature is available in Postfix 3.0 and later.
6902
6904 DNS Resolver options for the Postfix SMTP client. Specify zero or more
6905 of the following options, separated by comma or whitespace. Option
6906 names are case-sensitive. Some options refer to domain names that are
6907 specified in the file /etc/resolv.conf or equivalent.
6908
6909 res_defnames
6910 Append the current domain name to single-component names (those
6911 that do not contain a "." character). This can produce incorrect
6912 results, and is the hard-coded behavior prior to Postfix 2.8.
6913
6914 res_dnsrch
6915 Search for host names in the current domain and in parent do‐
6916 mains. This can produce incorrect results and is therefore not
6917 recommended.
6918
6919 This feature is available in Postfix 2.8 and later.
6920
6922 Level of DNS support in the Postfix SMTP client. With "smtp_dns_sup‐
6923 port_level" left at its empty default value, the legacy "dis‐
6924 able_dns_lookups" parameter controls whether DNS is enabled in the
6925 Postfix SMTP client, otherwise the legacy parameter is ignored.
6926
6927 Specify one of the following:
6928
6929 disabled
6930 Disable DNS lookups. No MX lookups are performed and hostname
6931 to address lookups are unconditionally "native". This setting
6932 is not appropriate for hosts that deliver mail to the public In‐
6933 ternet. Some obsolete how-to documents recommend disabling DNS
6934 lookups in some configurations with content_filters. This is no
6935 longer required and strongly discouraged.
6936
6937 enabled
6938 Enable DNS lookups. Nexthop destination domains not enclosed in
6939 "[]" will be subject to MX lookups. If "dns" and "native" are
6940 included in the "smtp_host_lookup" parameter value, DNS will be
6941 queried first to resolve MX-host A records, followed by "native"
6942 lookups if no answer is found in DNS.
6943
6944 dnssec Enable DNSSEC lookups. The "dnssec" setting differs from the
6945 "enabled" setting above in the following ways:
6946
6947 • Any MX lookups will set RES_USE_DNSSEC and RES_USE_EDNS0 to re‐
6948 quest DNSSEC-validated responses. If the MX response is
6949 DNSSEC-validated the corresponding hostnames are considered val‐
6950 idated.
6951
6952 • The address lookups of validated hostnames are also validated,
6953 (provided of course "smtp_host_lookup" includes "dns", see be‐
6954 low).
6955
6956 • Temporary failures in DNSSEC-enabled hostname-to-address resolu‐
6957 tion block any "native" lookups. Additional "native" lookups
6958 only happen when DNSSEC lookups hard-fail (NODATA or NXDOMAIN).
6959
6960 The Postfix SMTP client considers non-MX "[nexthop]" and "[nex‐
6961 thop]:port" destinations equivalent to statically-validated MX records
6962 of the form "nexthop. IN MX 0 nexthop." Therefore, with "dnssec" sup‐
6963 port turned on, validated hostname-to-address lookups apply to the nex‐
6964 thop domain of any "[nexthop]" or "[nexthop]:port" destination. This
6965 is also true for LMTP "inet:host" and "inet:host:port" destinations, as
6966 LMTP hostnames are never subject to MX lookups.
6967
6968 The "dnssec" setting is recommended only if you plan to use the dane or
6969 dane-only TLS security level, otherwise enabling DNSSEC support in
6970 Postfix offers no additional security. Postfix DNSSEC support relies
6971 on an upstream recursive nameserver that validates DNSSEC signatures.
6972 Such a DNS server will always filter out forged DNS responses, even
6973 when Postfix itself is not configured to use DNSSEC.
6974
6975 When using Postfix DANE support the "smtp_host_lookup" parameter should
6976 include "dns", as DANE is not applicable to hosts resolved via "native"
6977 lookups.
6978
6979 As mentioned above, Postfix is not a validating stub resolver; it re‐
6980 lies on the system's configured DNSSEC-validating recursive nameserver
6981 to perform all DNSSEC validation. Since this nameserver's DNSSEC-vali‐
6982 dated responses will be fully trusted, it is strongly recommended that
6983 the MTA host have a local DNSSEC-validating recursive caching name‐
6984 server listening on a loopback address, and be configured to use only
6985 this nameserver for all lookups. Otherwise, Postfix may remain subject
6986 to man-in-the-middle attacks that forge responses from the recursive
6987 nameserver
6988
6989 DNSSEC support requires a version of Postfix compiled against a reason‐
6990 ably-modern DNS resolver(3) library that implements the RES_USE_DNSSEC
6991 and RES_USE_EDNS0 resolver options.
6992
6993 This feature is available in Postfix 2.11 and later.
6994
6996 Enforcement mode: require that remote SMTP servers use TLS encryption,
6997 and never send mail in the clear. This also requires that the remote
6998 SMTP server hostname matches the information in the remote server cer‐
6999 tificate, and that the remote SMTP server certificate was issued by a
7000 CA that is trusted by the Postfix SMTP client. If the certificate
7001 doesn't verify or the hostname doesn't match, delivery is deferred and
7002 mail stays in the queue.
7003
7004 The server hostname is matched against all names provided as dNSNames
7005 in the SubjectAlternativeName. If no dNSNames are specified, the Com‐
7006 monName is checked. The behavior may be changed with the smtp_tls_en‐
7007 force_peername option.
7008
7009 This option is useful only if you are definitely sure that you will
7010 only connect to servers that support RFC 2487 _and_ that provide valid
7011 server certificates. Typical use is for clients that send all their
7012 email to a dedicated mailhub.
7013
7014 This feature is available in Postfix 2.2 and later. With Postfix 2.3
7015 and later use smtp_tls_security_level instead.
7016
7018 Optional list of relay hosts for SMTP destinations that can't be found
7019 or that are unreachable. With Postfix 2.2 and earlier this parameter is
7020 called fallback_relay.
7021
7022 By default, mail is returned to the sender when a destination is not
7023 found, and delivery is deferred when a destination is unreachable.
7024
7025 With bulk email deliveries, it can be beneficial to run the fallback
7026 relay MTA on the same host, so that it can reuse the sender IP address.
7027 This speeds up deliveries that are delayed by IP-based reputation sys‐
7028 tems (greylist, etc.).
7029
7030 The fallback relays must be SMTP destinations. Specify a domain, host,
7031 host:port, [host]:port, [address] or [address]:port; the form [host]
7032 turns off MX lookups. If you specify multiple SMTP destinations, Post‐
7033 fix will try them in the specified order.
7034
7035 To prevent mailer loops between MX hosts and fall-back hosts, Postfix
7036 version 2.2 and later will not use the fallback relays for destinations
7037 that it is MX host for (assuming DNS lookup is turned on).
7038
7040 Optional lookup tables that perform address rewriting in the Postfix
7041 SMTP client, typically to transform a locally valid address into a
7042 globally valid address when sending mail across the Internet. This is
7043 needed when the local machine does not have its own Internet domain
7044 name, but uses something like localdomain.local instead.
7045
7046 Specify zero or more "type:name" lookup tables, separated by whitespace
7047 or comma. Tables will be searched in the specified order until a match
7048 is found.
7049
7050 The table format and lookups are documented in generic(5); examples are
7051 shown in the ADDRESS_REWRITING_README and STANDARD_CONFIGURATION_README
7052 documents.
7053
7054 This feature is available in Postfix 2.2 and later.
7055
7057 Restricted header_checks(5) tables for the Postfix SMTP client. These
7058 tables are searched while mail is being delivered. Actions that change
7059 the delivery time or destination are not available.
7060
7061 This feature is available in Postfix 2.5 and later.
7062
7064 The hostname to send in the SMTP HELO or EHLO command.
7065
7066 The default value is the machine hostname. Specify a hostname or
7067 [ip.add.re.ss].
7068
7069 This information can be specified in the main.cf file for all SMTP
7070 clients, or it can be specified in the master.cf file for a specific
7071 client, for example:
7072
7073 /etc/postfix/master.cf:
7074 mysmtp ... smtp -o smtp_helo_name=foo.bar.com
7075
7076 This feature is available in Postfix 2.0 and later.
7077
7079 The Postfix SMTP client time limit for sending the HELO or EHLO com‐
7080 mand, and for receiving the initial remote SMTP server response.
7081
7082 Specify a non-zero time value (an integral value plus an optional
7083 one-letter suffix that specifies the time unit). Time units: s (sec‐
7084 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7085 unit is s (seconds).
7086
7088 What mechanisms the Postfix SMTP client uses to look up a host's IP ad‐
7089 dress. This parameter is ignored when DNS lookups are disabled (see:
7090 disable_dns_lookups and smtp_dns_support_level). The "dns" mechanism
7091 is always tried before "native" if both are listed.
7092
7093 Specify one of the following:
7094
7095 dns Hosts can be found in the DNS (preferred).
7096
7097 native Use the native naming service only (nsswitch.conf, or equivalent
7098 mechanism).
7099
7100 dns, native
7101 Use the native service for hosts not found in the DNS.
7102
7103 This feature is available in Postfix 2.1 and later.
7104
7106 The maximal length of message header and body lines that Postfix will
7107 send via SMTP. This limit does not include the <CR><LF> at the end of
7108 each line. Longer lines are broken by inserting "<CR><LF><SPACE>", to
7109 minimize the damage to MIME formatted mail. Specify zero to disable
7110 this limit.
7111
7112 The Postfix limit of 998 characters not including <CR><LF> is consis‐
7113 tent with the SMTP limit of 1000 characters including <CR><LF>. The
7114 Postfix limit was 990 with Postfix 2.8 and earlier.
7115
7117 The Postfix SMTP client time limit for sending the MAIL FROM command,
7118 and for receiving the remote SMTP server response.
7119
7120 Specify a non-zero time value (an integral value plus an optional
7121 one-letter suffix that specifies the time unit). Time units: s (sec‐
7122 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7123 unit is s (seconds).
7124
7126 Restricted mime_header_checks(5) tables for the Postfix SMTP client.
7127 These tables are searched while mail is being delivered. Actions that
7128 change the delivery time or destination are not available.
7129
7130 This feature is available in Postfix 2.5 and later.
7131
7133 The minimum plaintext data transfer rate in bytes/second for DATA re‐
7134 quests, when deadlines are enabled with smtp_per_request_deadline. Af‐
7135 ter a write operation transfers N plaintext message bytes (possibly af‐
7136 ter TLS encryption), and after the DATA request deadline is decremented
7137 by the elapsed time of that write operation, the DATA request deadline
7138 is incremented by N/smtp_min_data_rate seconds. However, the deadline
7139 will never be incremented beyond the time limit specified with
7140 smtp_data_xfer_timeout.
7141
7142 This feature is available in Postfix 3.7 and later.
7143
7145 The maximal number of MX (mail exchanger) IP addresses that can result
7146 from Postfix SMTP client mail exchanger lookups, or zero (no limit).
7147 Prior to Postfix version 2.3, this limit was disabled by default.
7148
7149 This feature is available in Postfix 2.1 and later.
7150
7152 The maximal number of SMTP sessions per delivery request before the
7153 Postfix SMTP client gives up or delivers to a fall-back relay host, or
7154 zero (no limit). This restriction ignores sessions that fail to com‐
7155 plete the SMTP initial handshake (Postfix version 2.2 and earlier) or
7156 that fail to complete the EHLO and TLS handshake (Postfix version 2.3
7157 and later).
7158
7159 This feature is available in Postfix 2.1 and later.
7160
7162 Restricted nested_header_checks(5) tables for the Postfix SMTP client.
7163 These tables are searched while mail is being delivered. Actions that
7164 change the delivery time or destination are not available.
7165
7166 This feature is available in Postfix 2.5 and later.
7167
7169 Never send EHLO at the start of an SMTP session. See also the smtp_al‐
7170 ways_send_ehlo parameter.
7171
7173 Change the behavior of the smtp_*_timeout time limits, from a time
7174 limit per read or write system call, to a time limit to send or receive
7175 a complete record (an SMTP command line, SMTP response line, SMTP mes‐
7176 sage content line, or TLS protocol message). This limits the impact
7177 from hostile peers that trickle data one byte at a time.
7178
7179 Note: when per-record deadlines are enabled, a short timeout may cause
7180 problems with TLS over very slow network connections. The reasons are
7181 that a TLS protocol message can be up to 16 kbytes long (with TLSv1),
7182 and that an entire TLS protocol message must be sent or received within
7183 the per-record deadline.
7184
7185 This feature is available in Postfix 2.9-3.6. With older Postfix re‐
7186 leases, the behavior is as if this parameter is set to "no". Postfix
7187 3.7 and later use smtp_per_request_deadline.
7188
7190 Change the behavior of the smtp_*_timeout time limits, from a time
7191 limit per plaintext or TLS read or write call, to a combined time limit
7192 for sending a complete SMTP request and for receiving a complete SMTP
7193 response. The deadline limits only the time spent waiting for plaintext
7194 or TLS read or write calls, not time spent elsewhere. The per-request
7195 deadline limits the impact from hostile peers that trickle data one
7196 byte at a time.
7197
7198 See smtp_min_data_rate for how the per-request deadline is managed dur‐
7199 ing the DATA phase.
7200
7201 Note: when per-request deadlines are enabled, a short time limit may
7202 cause problems with TLS over very slow network connections. The reason
7203 is that a TLS protocol message can be up to 16 kbytes long (with
7204 TLSv1), and that an entire TLS protocol message must be transferred
7205 within the per-request deadline.
7206
7207 This feature is available in Postfix 3.7 and later. A weaker feature,
7208 called smtp_per_record_deadline, is available with Postfix 2.9-3.6.
7209
7210 This feature is available in Postfix 3.7 and later.
7211
7213 How long the Postfix SMTP client pauses before sending ".<CR><LF>" in
7214 order to work around the PIX firewall "<CR><LF>.<CR><LF>" bug.
7215
7216 Choosing too short a time makes this workaround ineffective when send‐
7217 ing large messages over slow network connections.
7218
7219 Specify a non-zero time value (an integral value plus an optional
7220 one-letter suffix that specifies the time unit). Time units: s (sec‐
7221 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7222 unit is s (seconds).
7223
7225 Lookup tables, indexed by the remote SMTP server address, with per-des‐
7226 tination workarounds for CISCO PIX firewall bugs. The table is not in‐
7227 dexed by hostname for consistency with smtp_discard_ehlo_keyword_ad‐
7228 dress_maps.
7229
7230 Specify zero or more "type:name" lookup tables, separated by whitespace
7231 or comma. Tables will be searched in the specified order until a match
7232 is found.
7233
7234 This feature is available in Postfix 2.4 and later.
7235
7237 How long a message must be queued before the Postfix SMTP client turns
7238 on the PIX firewall "<CR><LF>.<CR><LF>" bug workaround for delivery
7239 through firewalls with "smtp fixup" mode turned on.
7240
7241 Specify a non-negative time value (an integral value plus an optional
7242 one-letter suffix that specifies the time unit). Time units: s (sec‐
7243 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7244 unit is s (seconds).
7245
7246 By default, the workaround is turned off for mail that is queued for
7247 less than 500 seconds. In other words, the workaround is normally
7248 turned off for the first delivery attempt.
7249
7250 Specify 0 to enable the PIX firewall "<CR><LF>.<CR><LF>" bug workaround
7251 upon the first delivery attempt.
7252
7254 A list that specifies zero or more workarounds for CISCO PIX firewall
7255 bugs. These workarounds are implemented by the Postfix SMTP client.
7256 Workaround names are separated by comma or space, and are case insensi‐
7257 tive. This parameter setting can be overruled with per-destination
7258 smtp_pix_workaround_maps settings.
7259
7260 delay_dotcrlf
7261 Insert a delay before sending ".<CR><LF>" after the end of the
7262 message content. The delay is subject to the smtp_pix_work‐
7263 around_delay_time and smtp_pix_workaround_threshold_time parame‐
7264 ter settings.
7265
7266 disable_esmtp
7267 Disable all extended SMTP commands: send HELO instead of EHLO.
7268
7269 This feature is available in Postfix 2.4 and later. The default set‐
7270 tings are backwards compatible with earlier Postfix versions.
7271
7273 The Postfix SMTP client time limit for sending the QUIT command, and
7274 for receiving the remote SMTP server response.
7275
7276 Specify a non-zero time value (an integral value plus an optional
7277 one-letter suffix that specifies the time unit). Time units: s (sec‐
7278 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7279 unit is s (seconds).
7280
7282 Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO commands
7283 as required by RFC 5321. This includes putting quotes around an address
7284 localpart that ends in ".".
7285
7286 The default is to comply with RFC 5321. If you have to send mail to a
7287 broken SMTP server, configure a special SMTP client in master.cf:
7288
7289 /etc/postfix/master.cf:
7290 broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no
7291
7292 and route mail for the destination in question to the "broken-smtp"
7293 message delivery with a transport(5) table.
7294
7295 This feature is available in Postfix 2.1 and later.
7296
7298 Randomize the order of equal-preference MX host addresses. This is a
7299 performance feature of the Postfix SMTP client.
7300
7302 The Postfix SMTP client time limit for sending the SMTP RCPT TO com‐
7303 mand, and for receiving the remote SMTP server response.
7304
7305 Specify a non-zero time value (an integral value plus an optional
7306 one-letter suffix that specifies the time unit). Time units: s (sec‐
7307 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7308 unit is s (seconds).
7309
7311 A mechanism to transform replies from remote SMTP servers one line at a
7312 time. This is a last-resort tool to work around server replies that
7313 break interoperability with the Postfix SMTP client. Other uses in‐
7314 volve fault injection to test Postfix's handling of invalid responses.
7315
7316 Notes:
7317
7318 • In the case of a multi-line reply, the Postfix SMTP client uses
7319 the final reply line's numerical SMTP reply code and enhanced
7320 status code.
7321
7322 • The numerical SMTP reply code (XYZ) takes precedence over the
7323 enhanced status code (X.Y.Z). When the enhanced status code
7324 initial digit differs from the SMTP reply code initial digit, or
7325 when no enhanced status code is present, the Postfix SMTP client
7326 uses a generic enhanced status code (X.0.0) instead.
7327
7328 Specify the name of a "type:table" lookup table. The search string is a
7329 single SMTP reply line as received from the remote SMTP server, except
7330 that the trailing <CR><LF> are removed. When the lookup succeeds, the
7331 result replaces the single SMTP reply line.
7332
7333 Examples:
7334
7335 /etc/postfix/main.cf:
7336 smtp_reply_filter = pcre:/etc/postfix/reply_filter
7337
7338 /etc/postfix/reply_filter:
7339 # Transform garbage into "250-filler..." so that it looks like
7340 # one line from a multi-line reply. It does not matter what we
7341 # substitute here as long it has the right syntax. The Postfix
7342 # SMTP client will use the final line's numerical SMTP reply
7343 # code and enhanced status code.
7344 !/^([2-5][0-9][0-9]($|[- ]))/ 250-filler for garbage
7345
7346 This feature is available in Postfix 2.7.
7347
7349 The Postfix SMTP client time limit for sending the RSET command, and
7350 for receiving the remote SMTP server response. The SMTP client sends
7351 RSET in order to finish a recipient address probe, or to verify that a
7352 cached session is still usable.
7353
7354 Specify a non-zero time value (an integral value plus an optional
7355 one-letter suffix that specifies the time unit). Time units: s (sec‐
7356 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7357 unit is s (seconds).
7358
7359 This feature is available in Postfix 2.1 and later.
7360
7362 An optional table to prevent repeated SASL authentication failures with
7363 the same remote SMTP server hostname, username and password. Each table
7364 (key, value) pair contains a server name, a username and password, and
7365 the full server response. This information is stored when a remote SMTP
7366 server rejects an authentication attempt with a 535 reply code. As
7367 long as the smtp_sasl_password_maps information does not change, and as
7368 long as the smtp_sasl_auth_cache_name information does not expire (see
7369 smtp_sasl_auth_cache_time) the Postfix SMTP client avoids SASL authen‐
7370 tication attempts with the same server, username and password, and in‐
7371 stead bounces or defers mail as controlled with the
7372 smtp_sasl_auth_soft_bounce configuration parameter.
7373
7374 Use a per-destination delivery concurrency of 1 (for example,
7375 "smtp_destination_concurrency_limit = 1", "relay_destination_concur‐
7376 rency_limit = 1", etc.), otherwise multiple delivery agents may experi‐
7377 ence a login failure at the same time.
7378
7379 The table must be accessed via the proxywrite service, i.e. the map
7380 name must start with "proxy:". The table should be stored under the di‐
7381 rectory specified with the data_directory parameter.
7382
7383 This feature uses cryptographic hashing to protect plain-text pass‐
7384 words, and requires that Postfix is compiled with TLS support.
7385
7386 Example:
7387
7388 smtp_sasl_auth_cache_name = proxy:btree:/var/lib/postfix/sasl_auth_cache
7389
7390 This feature is available in Postfix 2.5 and later.
7391
7393 The maximal age of an smtp_sasl_auth_cache_name entry before it is re‐
7394 moved.
7395
7396 Specify a non-negative time value (an integral value plus an optional
7397 one-letter suffix that specifies the time unit). Time units: s (sec‐
7398 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7399 unit is d (days).
7400
7401 This feature is available in Postfix 2.5 and later.
7402
7404 Enable SASL authentication in the Postfix SMTP client. By default, the
7405 Postfix SMTP client uses no authentication.
7406
7407 Example:
7408
7409 smtp_sasl_auth_enable = yes
7410
7412 When a remote SMTP server rejects a SASL authentication request with a
7413 535 reply code, defer mail delivery instead of returning mail as unde‐
7414 liverable. The latter behavior was hard-coded prior to Postfix version
7415 2.5.
7416
7417 Note: the setting "yes" overrides the global soft_bounce parameter, but
7418 the setting "no" does not.
7419
7420 Example:
7421
7422 # Default as of Postfix 2.5
7423 smtp_sasl_auth_soft_bounce = yes
7424 # The old hard-coded default
7425 smtp_sasl_auth_soft_bounce = no
7426
7427 This feature is available in Postfix 2.5 and later.
7428
7430 If non-empty, a Postfix SMTP client filter for the remote SMTP server's
7431 list of offered SASL mechanisms. Different client and server implemen‐
7432 tations may support different mechanism lists; by default, the Postfix
7433 SMTP client will use the intersection of the two. smtp_sasl_mecha‐
7434 nism_filter specifies an optional third mechanism list to intersect
7435 with.
7436
7437 Specify mechanism names, "/file/name" patterns or "type:table" lookup
7438 tables. The right-hand side result from "type:table" lookups is ig‐
7439 nored. Specify "!pattern" to exclude a mechanism name from the list.
7440 The form "!/file/name" is supported only in Postfix version 2.4 and
7441 later.
7442
7443 This feature is available in Postfix 2.2 and later.
7444
7445 Examples:
7446
7447 smtp_sasl_mechanism_filter = plain, login
7448 smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs
7449 smtp_sasl_mechanism_filter = !gssapi, !login, static:rest
7450
7452 Optional Postfix SMTP client lookup tables with one username:password
7453 entry per sender, remote hostname or next-hop domain. Per-sender lookup
7454 is done only when sender-dependent authentication is enabled. If no
7455 username:password entry is found, then the Postfix SMTP client will not
7456 attempt to authenticate to the remote host.
7457
7458 The Postfix SMTP client opens the lookup table before going to chroot
7459 jail, so you can leave the password file in /etc/postfix.
7460
7461 Specify zero or more "type:name" lookup tables, separated by whitespace
7462 or comma. Tables will be searched in the specified order until a match
7463 is found.
7464
7466 Implementation-specific information that the Postfix SMTP client passes
7467 through to the SASL plug-in implementation that is selected with
7468 smtp_sasl_type. Typically this specifies the name of a configuration
7469 file or rendezvous point.
7470
7471 This feature is available in Postfix 2.3 and later.
7472
7474 Postfix SMTP client SASL security options; as of Postfix 2.3 the list
7475 of available features depends on the SASL client implementation that is
7476 selected with smtp_sasl_type.
7477
7478 The following security features are defined for the cyrus client SASL
7479 implementation:
7480
7481 Specify zero or more of the following:
7482
7483 noplaintext
7484 Disallow methods that use plaintext passwords.
7485
7486 noactive
7487 Disallow methods subject to active (non-dictionary) attack.
7488
7489 nodictionary
7490 Disallow methods subject to passive (dictionary) attack.
7491
7492 noanonymous
7493 Disallow methods that allow anonymous authentication.
7494
7495 mutual_auth
7496 Only allow methods that provide mutual authentication (not
7497 available with SASL version 1).
7498
7499 Example:
7500
7501 smtp_sasl_security_options = noplaintext
7502
7504 The SASL authentication security options that the Postfix SMTP client
7505 uses for TLS encrypted SMTP sessions.
7506
7507 This feature is available in Postfix 2.2 and later.
7508
7510 tions)
7511 The SASL authentication security options that the Postfix SMTP client
7512 uses for TLS encrypted SMTP sessions with a verified server certifi‐
7513 cate.
7514
7515 When mail is sent to the public MX host for the recipient's domain,
7516 server certificates are by default optional, and delivery proceeds even
7517 if certificate verification fails. For delivery via a submission ser‐
7518 vice that requires SASL authentication, it may be appropriate to send
7519 plaintext passwords only when the connection to the server is strongly
7520 encrypted and the server identity is verified.
7521
7522 The smtp_sasl_tls_verified_security_options parameter makes it possible
7523 to only enable plaintext mechanisms when a secure connection to the
7524 server is available. Submission servers subject to this policy must ei‐
7525 ther have verifiable certificates or offer suitable non-plaintext SASL
7526 mechanisms.
7527
7528 This feature is available in Postfix 2.6 and later.
7529
7531 The SASL plug-in type that the Postfix SMTP client should use for au‐
7532 thentication. The available types are listed with the "postconf -A"
7533 command.
7534
7535 This feature is available in Postfix 2.3 and later.
7536
7538 Whether or not to append the "AUTH=<>" option to the MAIL FROM command
7539 in SASL-authenticated SMTP sessions. The default is not to send this,
7540 to avoid problems with broken remote SMTP servers. Before Postfix 2.9
7541 the behavior is as if "smtp_send_dummy_mail_auth = yes".
7542
7543 This feature is available in Postfix 2.9 and later.
7544
7546 Send the non-standard XFORWARD command when the Postfix SMTP server
7547 EHLO response announces XFORWARD support.
7548
7549 This allows a Postfix SMTP delivery agent, used for injecting mail into
7550 a content filter, to forward the name, address, protocol and HELO name
7551 of the original client to the content filter and downstream queuing
7552 SMTP server. This can produce more useful logging than local‐
7553 host[127.0.0.1] etc.
7554
7555 This feature is available in Postfix 2.1 and later.
7556
7558 Enable sender-dependent authentication in the Postfix SMTP client; this
7559 is available only with SASL authentication, and disables SMTP connec‐
7560 tion caching to ensure that mail from different senders will use the
7561 appropriate credentials.
7562
7563 This feature is available in Postfix 2.3 and later.
7564
7566 Skip SMTP servers that greet with a 4XX status code (go away, try again
7567 later).
7568
7569 By default, the Postfix SMTP client moves on the next mail exchanger.
7570 Specify "smtp_skip_4xx_greeting = no" if Postfix should defer delivery
7571 immediately.
7572
7573 This feature is available in Postfix 2.0 and earlier. Later Postfix
7574 versions always skip remote SMTP servers that greet with a 4XX status
7575 code.
7576
7578 Skip remote SMTP servers that greet with a 5XX status code.
7579
7580 By default, the Postfix SMTP client moves on the next mail exchanger.
7581 Specify "smtp_skip_5xx_greeting = no" if Postfix should bounce the mail
7582 immediately. Caution: the latter behavior appears to contradict RFC
7583 2821.
7584
7586 Do not wait for the response to the SMTP QUIT command.
7587
7589 Time limit for Postfix SMTP client write and read operations during TLS
7590 startup and shutdown handshake procedures.
7591
7592 Specify a non-zero time value (an integral value plus an optional
7593 one-letter suffix that specifies the time unit). Time units: s (sec‐
7594 onds), m (minutes), h (hours), d (days), w (weeks). The default time
7595 unit is s (seconds).
7596
7597 This feature is available in Postfix 2.2 and later.
7598
7600 The default TCP port that the Postfix SMTP client connects to. Specify
7601 a symbolic name (see services(5)) or a numeric port.
7602
7604 A file containing CA certificates of root CAs trusted to sign either
7605 remote SMTP server certificates or intermediate CA certificates. These
7606 are loaded into memory before the smtp(8) client enters the chroot
7607 jail. If the number of trusted roots is large, consider using
7608 smtp_tls_CApath instead, but note that the latter directory must be
7609 present in the chroot jail if the smtp(8) client is chrooted. This file
7610 may also be used to augment the client certificate trust chain, but it
7611 is best to include all the required certificates directly in
7612 $smtp_tls_cert_file (or, Postfix >= 3.4 $smtp_tls_chain_files).
7613
7614 Specify "smtp_tls_CAfile = /path/to/system_CA_file" to use ONLY the
7615 system-supplied default Certification Authority certificates.
7616
7617 Specify "tls_append_default_CA = no" to prevent Postfix from appending
7618 the system-supplied default CAs and trusting third-party certificates.
7619
7620 Example:
7621
7622 smtp_tls_CAfile = /etc/postfix/CAcert.pem
7623
7624 This feature is available in Postfix 2.2 and later.
7625
7627 Directory with PEM format Certification Authority certificates that the
7628 Postfix SMTP client uses to verify a remote SMTP server certificate.
7629 Don't forget to create the necessary "hash" links with, for example,
7630 "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs".
7631
7632 To use this option in chroot mode, this directory (or a copy) must be
7633 inside the chroot jail.
7634
7635 Specify "smtp_tls_CApath = /path/to/system_CA_directory" to use ONLY
7636 the system-supplied default Certification Authority certificates.
7637
7638 Specify "tls_append_default_CA = no" to prevent Postfix from appending
7639 the system-supplied default CAs and trusting third-party certificates.
7640
7641 Example:
7642
7643 smtp_tls_CApath = /etc/postfix/certs
7644
7645 This feature is available in Postfix 2.2 and later.
7646
7648 Try to detect a mail hijacking attack based on a TLS protocol vulnera‐
7649 bility (CVE-2009-3555), where an attacker prepends malicious HELO,
7650 MAIL, RCPT, DATA commands to a Postfix SMTP client TLS session. The
7651 attack would succeed with non-Postfix SMTP servers that reply to the
7652 malicious HELO, MAIL, RCPT, DATA commands after negotiating the Postfix
7653 SMTP client TLS session.
7654
7655 This feature is available in Postfix 2.7.
7656
7658 File with the Postfix SMTP client RSA certificate in PEM format. This
7659 file may also contain the Postfix SMTP client private RSA key, and
7660 these may be the same as the Postfix SMTP server RSA certificate and
7661 key file. With Postfix >= 3.4 the preferred way to configure client
7662 keys and certificates is via the "smtp_tls_chain_files" parameter.
7663
7664 Do not configure client certificates unless you must present client TLS
7665 certificates to one or more servers. Client certificates are not usu‐
7666 ally needed, and can cause problems in configurations that work well
7667 without them. The recommended setting is to let the defaults stand:
7668
7669 smtp_tls_cert_file =
7670 smtp_tls_key_file =
7671 smtp_tls_eccert_file =
7672 smtp_tls_eckey_file =
7673 # Obsolete DSA parameters
7674 smtp_tls_dcert_file =
7675 smtp_tls_dkey_file =
7676 # Postfix >= 3.4 interface
7677 smtp_tls_chain_files =
7678
7679 The best way to use the default settings is to comment out the above
7680 parameters in main.cf if present.
7681
7682 To enable remote SMTP servers to verify the Postfix SMTP client cer‐
7683 tificate, the issuing CA certificates must be made available to the
7684 server. You should include the required certificates in the client cer‐
7685 tificate file, the client certificate first, then the issuing CA(s)
7686 (bottom-up order).
7687
7688 Example: the certificate for "client.example.com" was issued by "inter‐
7689 mediate CA" which itself has a certificate issued by "root CA". As the
7690 "root" super-user create the client.pem file with:
7691
7692 # umask 077
7693 # cat client_key.pem client_cert.pem intermediate_CA.pem > chain.pem
7694
7695 If you also want to verify remote SMTP server certificates issued by
7696 these CAs, you can add the CA certificates to the smtp_tls_CAfile, in
7697 which case it is not necessary to have them in the smtp_tls_cert_file,
7698 smtp_tls_dcert_file (obsolete) or smtp_tls_eccert_file.
7699
7700 A certificate supplied here must be usable as an SSL client certificate
7701 and hence pass the "openssl verify -purpose sslclient ..." test.
7702
7703 Example:
7704
7705 smtp_tls_cert_file = /etc/postfix/chain.pem
7706
7707 This feature is available in Postfix 2.2 and later.
7708
7710 List of one or more PEM files, each holding one or more private keys
7711 directly followed by a corresponding certificate chain. The file names
7712 are separated by commas and/or whitespace. This parameter obsoletes
7713 the legacy algorithm-specific key and certificate file settings. When
7714 this parameter is non-empty, the legacy parameters are ignored, and a
7715 warning is logged if any are also non-empty.
7716
7717 With the proliferation of multiple private key algorithms-which, as of
7718 OpenSSL 1.1.1, include DSA (obsolete), RSA, ECDSA, Ed25519 and Ed448-it
7719 is increasingly impractical to use separate parameters to configure the
7720 key and certificate chain for each algorithm. Therefore, Postfix now
7721 supports storing multiple keys and corresponding certificate chains in
7722 a single file or in a set of files.
7723
7724 Each key must appear immediately before the corresponding certificate,
7725 optionally followed by additional issuer certificates that complete the
7726 certificate chain for that key. When multiple files are specified,
7727 they are equivalent to a single file that is concatenated from those
7728 files in the given order. Thus, while a key must always precede its
7729 certificate and issuer chain, it can be in a separate file, so long as
7730 that file is listed immediately before the file that holds the corre‐
7731 sponding certificate chain. Once all the files are concatenated, the
7732 sequence of PEM objects must be: key1, cert1, [chain1], key2, cert2,
7733 [chain2], ..., keyN, certN, [chainN].
7734
7735 Storing the private key in the same file as the corresponding certifi‐
7736 cate is more reliable. With the key and certificate in separate files,
7737 there is a chance that during key rollover a Postfix process might load
7738 a private key and certificate from separate files that don't match.
7739 Various operational errors may even result in a persistent broken con‐
7740 figuration in which the certificate does not match the private key.
7741
7742 The file or files must contain at most one key of each type. If, for
7743 example, two or more RSA keys and corresponding chains are listed, de‐
7744 pending on the version of OpenSSL either only the last one will be used
7745 or a configuration error may be detected. Note that while "Ed25519"
7746 and "Ed448" are considered separate algorithms, the various ECDSA
7747 curves (typically one of prime256v1, secp384r1 or secp521r1) are con‐
7748 sidered as different parameters of a single "ECDSA" algorithm, so it is
7749 not presently possible to configure keys for more than one ECDSA curve.
7750
7751 Example (separate files for each key and corresponding certificate
7752 chain):
7753
7754 /etc/postfix/main.cf:
7755 smtp_tls_chain_files =
7756 ${config_directory}/ed25519.pem,
7757 ${config_directory}/ed448.pem,
7758 ${config_directory}/rsa.pem
7759
7760 /etc/postfix/ed25519.pem:
7761 -----BEGIN PRIVATE KEY-----
7762 MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
7763 -----END PRIVATE KEY-----
7764 -----BEGIN CERTIFICATE-----
7765 MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
7766 ...
7767 nC0egv51YPDWxEHom4QA
7768 -----END CERTIFICATE-----
7769
7770 /etc/postfix/ed448.pem:
7771 -----BEGIN PRIVATE KEY-----
7772 MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
7773 LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
7774 -----END PRIVATE KEY-----
7775 -----BEGIN CERTIFICATE-----
7776 MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
7777 ...
7778 pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
7779 -----END CERTIFICATE-----
7780
7781 /etc/postfix/rsa.pem:
7782 -----BEGIN PRIVATE KEY-----
7783 MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
7784 ...
7785 ahQkZ3+krcaJvDSMgvu0tDc=
7786 -----END PRIVATE KEY-----
7787 -----BEGIN CERTIFICATE-----
7788 MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
7789 ...
7790 Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
7791 -----END CERTIFICATE-----
7792
7793 Example (all keys and certificates in a single file):
7794
7795 /etc/postfix/main.cf:
7796 smtp_tls_chain_files = ${config_directory}/chains.pem
7797
7798 /etc/postfix/chains.pem:
7799 -----BEGIN PRIVATE KEY-----
7800 MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
7801 -----END PRIVATE KEY-----
7802 -----BEGIN CERTIFICATE-----
7803 MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
7804 ...
7805 nC0egv51YPDWxEHom4QA
7806 -----END CERTIFICATE-----
7807 -----BEGIN PRIVATE KEY-----
7808 MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
7809 LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
7810 -----END PRIVATE KEY-----
7811 -----BEGIN CERTIFICATE-----
7812 MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
7813 ...
7814 pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
7815 -----END CERTIFICATE-----
7816 -----BEGIN PRIVATE KEY-----
7817 MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
7818 ...
7819 ahQkZ3+krcaJvDSMgvu0tDc=
7820 -----END PRIVATE KEY-----
7821 -----BEGIN CERTIFICATE-----
7822 MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
7823 ...
7824 Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
7825 -----END CERTIFICATE-----
7826
7827 This feature is available in Postfix 3.4 and later.
7828
7830 Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS cipher
7831 list. As this feature applies to all TLS security levels, it is easy to
7832 create interoperability problems by choosing a non-default cipher list.
7833 Do not use a non-default TLS cipher list on hosts that deliver email to
7834 the public Internet: you will be unable to send email to servers that
7835 only support the ciphers you exclude. Using a restricted cipher list
7836 may be more appropriate for an internal MTA, where one can exert some
7837 control over the TLS software and settings of the peer servers.
7838
7839 Note: do not use "" quotes around the parameter value.
7840
7841 This feature is available in Postfix version 2.2. It is not used with
7842 Postfix 2.3 and later; use smtp_tls_mandatory_ciphers instead.
7843
7845 The minimum TLS cipher grade that the Postfix SMTP client will use with
7846 opportunistic TLS encryption. Cipher types listed in smtp_tls_ex‐
7847 clude_ciphers are excluded from the base definition of the selected ci‐
7848 pher grade. The default value is "medium" for Postfix releases after
7849 the middle of 2015, "export" for older releases.
7850
7851 When TLS is mandatory the cipher grade is chosen via the
7852 smtp_tls_mandatory_ciphers configuration parameter, see there for syn‐
7853 tax details. See smtp_tls_policy_maps for information on how to config‐
7854 ure ciphers on a per-destination basis.
7855
7856 This feature is available in Postfix 2.6 and later. With earlier Post‐
7857 fix releases only the smtp_tls_mandatory_ciphers parameter is imple‐
7858 mented, and opportunistic TLS always uses "export" or better (i.e. all)
7859 ciphers.
7860
7862 Try to make multiple deliveries per TLS-encrypted connection. This
7863 uses the tlsproxy(8) service to encrypt an SMTP connection, uses the
7864 scache(8) service to save that connection, and relies on hints from the
7865 qmgr(8) daemon.
7866
7867 See "Client-side TLS connection reuse" for background details.
7868
7869 This feature is available in Postfix 3.4 and later.
7870
7872 The TLS policy for MX hosts with "secure" TLSA records when the nexthop
7873 destination security level is dane, but the MX record was found via an
7874 "insecure" MX lookup. The choices are:
7875
7876 may The TLSA records will be ignored and TLS will be optional. If
7877 the MX host does not appear to support STARTTLS, or the STARTTLS
7878 handshake fails, mail may be sent in the clear.
7879
7880 encrypt
7881 The TLSA records will signal a requirement to use TLS. While
7882 TLS encryption will be required, authentication will not be per‐
7883 formed.
7884
7885 dane The TLSA records will be used just as with "secure" MX records.
7886 TLS encryption will be required, and, if at least one of the
7887 TLSA records is "usable", authentication will be required. When
7888 authentication succeeds, it will be logged only as "Trusted",
7889 not "Verified", because the MX host name could have been forged.
7890 The default setting for Postfix >= 3.6 is "dane" with
7891 "smtp_tls_security_level = dane", otherwise "may". This behavior
7892 was backported to Postfix versions 3.5.9, 3.4.19, 3.3.16.
7893 3.2.21. With earlier Postfix versions the default setting was
7894 always "dane".
7895
7896 Though with "insecure" MX records an active attacker can compromise
7897 SMTP transport security by returning forged MX records, such attacks
7898 are "tamper-evident" since any forged MX hostnames will be recorded in
7899 the mail logs. Attackers who place a high value on staying hidden may
7900 be deterred from forging MX records.
7901
7902 This feature is available in Postfix 3.1 and later. The may policy is
7903 backwards-compatible with earlier Postfix versions.
7904
7906 File with the Postfix SMTP client DSA certificate in PEM format. This
7907 file may also contain the Postfix SMTP client private DSA key. The DSA
7908 algorithm is obsolete and should not be used.
7909
7910 See the discussion under smtp_tls_cert_file for more details.
7911
7912 Example:
7913
7914 smtp_tls_dcert_file = /etc/postfix/client-dsa.pem
7915
7916 This feature is available in Postfix 2.2 and later.
7917
7919 File with the Postfix SMTP client DSA private key in PEM format. This
7920 file may be combined with the Postfix SMTP client DSA certificate file
7921 specified with $smtp_tls_dcert_file. The DSA algorithm is obsolete and
7922 should not be used.
7923
7924 The private key must be accessible without a pass-phrase, i.e. it must
7925 not be encrypted. File permissions should grant read-only access to the
7926 system superuser account ("root"), and no access to anyone else.
7927
7928 This feature is available in Postfix 2.2 and later.
7929
7931 File with the Postfix SMTP client ECDSA certificate in PEM format.
7932 This file may also contain the Postfix SMTP client ECDSA private key.
7933 With Postfix >= 3.4 the preferred way to configure client keys and cer‐
7934 tificates is via the "smtp_tls_chain_files" parameter.
7935
7936 See the discussion under smtp_tls_cert_file for more details.
7937
7938 Example:
7939
7940 smtp_tls_eccert_file = /etc/postfix/ecdsa-ccert.pem
7941
7942 This feature is available in Postfix 2.6 and later, when Postfix is
7943 compiled and linked with OpenSSL 1.0.0 or later.
7944
7946 File with the Postfix SMTP client ECDSA private key in PEM format.
7947 This file may be combined with the Postfix SMTP client ECDSA certifi‐
7948 cate file specified with $smtp_tls_eccert_file. With Postfix >= 3.4
7949 the preferred way to configure client keys and certificates is via the
7950 "smtp_tls_chain_files" parameter.
7951
7952 The private key must be accessible without a pass-phrase, i.e. it must
7953 not be encrypted. File permissions should grant read-only access to the
7954 system superuser account ("root"), and no access to anyone else.
7955
7956 This feature is available in Postfix 2.6 and later, when Postfix is
7957 compiled and linked with OpenSSL 1.0.0 or later.
7958
7960 With mandatory TLS encryption, require that the remote SMTP server
7961 hostname matches the information in the remote SMTP server certificate.
7962 As of RFC 2487 the requirements for hostname checking for MTA clients
7963 are not specified.
7964
7965 This option can be set to "no" to disable strict peer name checking.
7966 This setting has no effect on sessions that are controlled via the
7967 smtp_tls_per_site table.
7968
7969 Disabling the hostname verification can make sense in a closed environ‐
7970 ment where special CAs are created. If not used carefully, this option
7971 opens the danger of a "man-in-the-middle" attack (the CommonName of
7972 this attacker will be logged).
7973
7974 This feature is available in Postfix 2.2 and later. With Postfix 2.3
7975 and later use smtp_tls_security_level instead.
7976
7978 List of ciphers or cipher types to exclude from the Postfix SMTP client
7979 cipher list at all TLS security levels. This is not an OpenSSL ci‐
7980 pherlist, it is a simple list separated by whitespace and/or commas.
7981 The elements are a single cipher, or one or more "+" separated cipher
7982 properties, in which case only ciphers matching all the properties are
7983 excluded.
7984
7985 Examples (some of these will cause problems):
7986
7987 smtp_tls_exclude_ciphers = aNULL
7988 smtp_tls_exclude_ciphers = MD5, DES
7989 smtp_tls_exclude_ciphers = DES+MD5
7990 smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
7991 smtp_tls_exclude_ciphers = kEDH+aRSA
7992
7993 The first setting disables anonymous ciphers. The next setting disables
7994 ciphers that use the MD5 digest algorithm or the (single) DES encryp‐
7995 tion algorithm. The next setting disables ciphers that use MD5 and DES
7996 together. The next setting disables the two ciphers "AES256-SHA" and
7997 "DES-CBC3-MD5". The last setting disables ciphers that use "EDH" key
7998 exchange with RSA authentication.
7999
8000 This feature is available in Postfix 2.3 and later.
8001
8003 List of acceptable remote SMTP server certificate fingerprints for the
8004 "fingerprint" TLS security level (smtp_tls_security_level = finger‐
8005 print). At this security level, Certification Authorities are not used,
8006 and certificate expiration times are ignored. Instead, server certifi‐
8007 cates are verified directly via their certificate fingerprint or public
8008 key fingerprint (Postfix 2.9 and later). The fingerprint is a message
8009 digest of the server certificate (or public key). The digest algorithm
8010 is selected via the smtp_tls_fingerprint_digest parameter.
8011
8012 The colons between each pair of nibbles in the fingerprint value are
8013 optional (Postfix >= 3.6). These were required in earlier Postfix re‐
8014 leases.
8015
8016 When an smtp_tls_policy_maps table entry specifies the "fingerprint"
8017 security level, any "match" attributes in that entry specify the list
8018 of valid fingerprints for the corresponding destination. Multiple fin‐
8019 gerprints can be combined with a "|" delimiter in a single match attri‐
8020 bute, or multiple match attributes can be employed.
8021
8022 Example: Certificate fingerprint verification with internal mailhub.
8023 Two matching fingerprints are listed. The relayhost may be multiple
8024 physical hosts behind a load-balancer, each with its own private/public
8025 key and self-signed certificate. Alternatively, a single relayhost may
8026 be in the process of switching from one set of private/public keys to
8027 another, and both keys are trusted just prior to the transition.
8028
8029 relayhost = [mailhub.example.com]
8030 smtp_tls_security_level = fingerprint
8031 smtp_tls_fingerprint_digest = sha256
8032 smtp_tls_fingerprint_cert_match =
8033 cd:fc:d8:db:f8:c4:82:96:6c:...:28:71:e8:f5:8d:a5:0d:9b:d4:a6
8034 dd:5c:ef:f5:c3:bc:64:25:36:...:99:36:06:ce:40:ef:de:2e:ad:a4
8035
8036 Example: Certificate fingerprint verification with selected destina‐
8037 tions. As in the example above, we show two matching fingerprints:
8038
8039 /etc/postfix/main.cf:
8040 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
8041 smtp_tls_fingerprint_digest = sha256
8042
8043 /etc/postfix/tls_policy:
8044 example.com fingerprint
8045 match=51:e9:af:2e:1e:40:1f:...:64:0a:30:35:2d:09:16:31:5a:eb:82:76
8046 match=b6:b4:72:34:e2:59:cd:...:c2:ca:63:0d:4d:cc:2c:7d:84:de:e6:2f
8047
8048 This feature is available in Postfix 2.5 and later.
8049
8051 The message digest algorithm used to construct remote SMTP server cer‐
8052 tificate fingerprints. At the "fingerprint" TLS security level
8053 (smtp_tls_security_level = fingerprint), the server certificate is ver‐
8054 ified by directly matching its certificate fingerprint or its public
8055 key fingerprint (Postfix 2.9 and later). The fingerprint is the message
8056 digest of the server certificate (or its public key) using the selected
8057 algorithm. With a digest algorithm resistant to "second pre-image" at‐
8058 tacks, it is not feasible to create a new public key and a matching
8059 certificate (or public/private key-pair) that has the same fingerprint.
8060
8061 The default algorithm is sha256 with Postfix >= 3.6 and the compatibil‐
8062 ity_level set to 3.6 or higher. With Postfix <= 3.5, the default algo‐
8063 rithm is md5.
8064
8065 The best-practice algorithm is now sha256. Recent advances in hash
8066 function cryptanalysis have led to md5 and sha1 being deprecated in fa‐
8067 vor of sha256. However, as long as there are no known "second pre-im‐
8068 age" attacks against the older algorithms, their use in this context,
8069 though not recommended, is still likely safe.
8070
8071 While additional digest algorithms are often available with OpenSSL's
8072 libcrypto, only those used by libssl in SSL cipher suites are available
8073 to Postfix. You'll likely find support for md5, sha1, sha256 and
8074 sha512.
8075
8076 To find the fingerprint of a specific certificate file, with a specific
8077 digest algorithm, run:
8078
8079 $ openssl x509 -noout -fingerprint -digest -in certfile.pem
8080
8081 The text to the right of the "=" sign is the desired fingerprint. For
8082 example:
8083
8084 $ openssl x509 -noout -fingerprint -sha256 -in cert.pem
8085 SHA256 Fingerprint=D4:6A:AB:19:24:...:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
8086
8087 To extract the public key fingerprint from an X.509 certificate, you
8088 need to extract the public key from the certificate and compute the ap‐
8089 propriate digest of its DER (ASN.1) encoding. With OpenSSL the "-pub‐
8090 key" option of the "x509" command extracts the public key always in
8091 "PEM" format. We pipe the result to another OpenSSL command that con‐
8092 verts the key to DER and then to the "dgst" command to compute the fin‐
8093 gerprint.
8094
8095 The actual command to transform the key to DER format depends on the
8096 version of OpenSSL used. As of OpenSSL 1.0.0, the "pkey" command sup‐
8097 ports all key types.
8098
8099 # OpenSSL >= 1.0 with SHA-256 fingerprints.
8100 $ openssl x509 -in cert.pem -noout -pubkey |
8101 openssl pkey -pubin -outform DER |
8102 openssl dgst -sha256 -c
8103 (stdin)= 64:3f:1f:f6:e5:1e:d4:2a:56:...:fc:09:1a:61:98:b5:bc:7c:60:58
8104
8105 The Postfix SMTP server and client log the peer (leaf) certificate fin‐
8106 gerprint and the public key fingerprint when the TLS loglevel is 2 or
8107 higher.
8108
8109 This feature is available in Postfix 2.5 and later.
8110
8112 Lookup the associated DANE TLSA RRset even when a hostname is not an
8113 alias and its address records lie in an unsigned zone. This is un‐
8114 likely to ever yield DNSSEC validated results, since child zones of un‐
8115 signed zones are also unsigned in the absence of DLV or locally config‐
8116 ured non-root trust-anchors. We anticipate that such mechanisms will
8117 not be used for just the "_tcp" subdomain of a host. Suppressing the
8118 TLSA RRset lookup reduces latency and avoids potential interoperability
8119 problems with nameservers for unsigned zones that are not prepared to
8120 handle the new TLSA RRset.
8121
8122 This feature is available in Postfix 2.11.
8123
8125 File with the Postfix SMTP client RSA private key in PEM format. This
8126 file may be combined with the Postfix SMTP client RSA certificate file
8127 specified with $smtp_tls_cert_file. With Postfix >= 3.4 the preferred
8128 way to configure client keys and certificates is via the
8129 "smtp_tls_chain_files" parameter.
8130
8131 The private key must be accessible without a pass-phrase, i.e. it must
8132 not be encrypted. File permissions should grant read-only access to the
8133 system superuser account ("root"), and no access to anyone else.
8134
8135 Example:
8136
8137 smtp_tls_key_file = $smtp_tls_cert_file
8138
8139 This feature is available in Postfix 2.2 and later.
8140
8142 Enable additional Postfix SMTP client logging of TLS activity. Each
8143 logging level also includes the information that is logged at a lower
8144 logging level.
8145
8146 0 Disable logging of TLS activity.
8147
8148 1 Log only a summary message on TLS handshake completion - no
8149 logging of remote SMTP server certificate trust-chain verifica‐
8150 tion errors if server certificate verification is not required.
8151 With Postfix 2.8 and earlier, log the summary message and uncon‐
8152 ditionally log trust-chain verification errors.
8153
8154 2 Also log levels during TLS negotiation.
8155
8156 3 Also log the hexadecimal and ASCII dump of the TLS negotiation
8157 process.
8158
8159 4 Also log the hexadecimal and ASCII dump of complete transmis‐
8160 sion after STARTTLS.
8161
8162 Do not use "smtp_tls_loglevel = 2" or higher except in case of prob‐
8163 lems. Use of loglevel 4 is strongly discouraged.
8164
8165 This feature is available in Postfix 2.2 and later.
8166
8168 The minimum TLS cipher grade that the Postfix SMTP client will use with
8169 mandatory TLS encryption. The default value "medium" is suitable for
8170 most destinations with which you may want to enforce TLS, and is beyond
8171 the reach of today's cryptanalytic methods. See smtp_tls_policy_maps
8172 for information on how to configure ciphers on a per-destination basis.
8173
8174 The following cipher grades are supported:
8175
8176 export Enable "EXPORT" grade or better OpenSSL ciphers. The underlying
8177 cipherlist is specified via the tls_export_cipherlist configura‐
8178 tion parameter, which you are strongly encouraged not to change.
8179 This choice is insecure and SHOULD NOT be used.
8180
8181 low Enable "LOW" grade or better OpenSSL ciphers. The underlying
8182 cipherlist is specified via the tls_low_cipherlist configuration
8183 parameter, which you are strongly encouraged not to change.
8184 This choice is insecure and SHOULD NOT be used.
8185
8186 medium Enable "MEDIUM" grade or better OpenSSL ciphers. The underlying
8187 cipherlist is specified via the tls_medium_cipherlist configura‐
8188 tion parameter, which you are strongly encouraged not to change.
8189
8190 high Enable only "HIGH" grade OpenSSL ciphers. This setting may be
8191 appropriate when all mandatory TLS destinations (e.g. when all
8192 mail is routed to a suitably capable relayhost) support at least
8193 one "HIGH" grade cipher. The underlying cipherlist is specified
8194 via the tls_high_cipherlist configuration parameter, which you
8195 are strongly encouraged not to change.
8196
8197 null Enable only the "NULL" OpenSSL ciphers, these provide authenti‐
8198 cation without encryption. This setting is only appropriate in
8199 the rare case that all servers are prepared to use NULL ciphers
8200 (not normally enabled in TLS servers). A plausible use-case is
8201 an LMTP server listening on a UNIX-domain socket that is config‐
8202 ured to support "NULL" ciphers. The underlying cipherlist is
8203 specified via the tls_null_cipherlist configuration parameter,
8204 which you are strongly encouraged not to change.
8205
8206 The underlying cipherlists for grades other than "null" include anony‐
8207 mous ciphers, but these are automatically filtered out if the Postfix
8208 SMTP client is configured to verify server certificates. You are very
8209 unlikely to need to take any steps to exclude anonymous ciphers, they
8210 are excluded automatically as necessary. If you must exclude anonymous
8211 ciphers at the "may" or "encrypt" security levels, when the Postfix
8212 SMTP client does not need or use peer certificates, set "smtp_tls_ex‐
8213 clude_ciphers = aNULL". To exclude anonymous ciphers only when TLS is
8214 enforced, set "smtp_tls_mandatory_exclude_ciphers = aNULL".
8215
8216 This feature is available in Postfix 2.3 and later.
8217
8219 Additional list of ciphers or cipher types to exclude from the Postfix
8220 SMTP client cipher list at mandatory TLS security levels. This list
8221 works in addition to the exclusions listed with smtp_tls_exclude_ci‐
8222 phers (see there for syntax details).
8223
8224 Starting with Postfix 2.6, the mandatory cipher exclusions can be spec‐
8225 ified on a per-destination basis via the TLS policy "exclude" attri‐
8226 bute. See smtp_tls_policy_maps for notes and examples.
8227
8228 This feature is available in Postfix 2.3 and later.
8229
8231 TLS protocols that the Postfix SMTP client will use with mandatory TLS
8232 encryption. In main.cf the values are separated by whitespace, commas
8233 or colons. In the policy table "protocols" attribute (see smtp_tls_pol‐
8234 icy_maps) the only valid separator is colon. An empty value means allow
8235 all protocols.
8236
8237 The valid protocol names (see SSL_get_version(3)) are "SSLv2", "SSLv3",
8238 "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3". Starting with Postfix
8239 3.6, the default value is ">=TLSv1", which sets TLS 1.0 as the lowest
8240 supported TLS protocol version (see below). Older releases use the "!"
8241 exclusion syntax, also described below.
8242
8243 As of Postfix 3.6, the preferred way to limit the range of acceptable
8244 protocols is to set a lowest acceptable TLS protocol version and/or a
8245 highest acceptable TLS protocol version. To set the lower bound in‐
8246 clude an element of the form: ">=version" where version is a either one
8247 of the TLS protocol names listed above, or a hexadecimal number corre‐
8248 sponding to the desired TLS protocol version (0301 for TLS 1.0, 0302
8249 for TLS 1.1, etc.). For the upper bound, use "<=version". There must
8250 be no whitespace between the ">=" or "<=" symbols and the protocol name
8251 or number.
8252
8253 Hexadecimal protocol numbers make it possible to specify protocol
8254 bounds for TLS versions that are known to OpenSSL, but might not be
8255 known to Postfix. They cannot be used with the legacy exclusion syn‐
8256 tax. Leading "0" or "0x" prefixes are supported, but not required.
8257 Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
8258 "TLSv1". Hexadecimal versions unknown to OpenSSL will fail to set the
8259 upper or lower bound, and a warning will be logged. Hexadecimal ver‐
8260 sions should only be used when Postfix is linked with some future ver‐
8261 sion of OpenSSL that supports TLS 1.4 or later, but Postfix does not
8262 yet support a symbolic name for that protocol version.
8263
8264 Hexadecimal example (Postfix >= 3.6):
8265
8266 # Allow only TLS 1.2 through (hypothetical) TLS 1.4, once supported
8267 # in some future version of OpenSSL (presently a warning is logged).
8268 smtp_tls_mandatory_protocols = >=TLSv1.2, <=0305
8269 # Allow only TLS 1.2 and up:
8270 smtp_tls_mandatory_protocols = >=0x0303
8271
8272 With Postfix < 3.6 there is no support for a minimum or maximum ver‐
8273 sion, and the protocol range is configured via protocol exclusions. To
8274 require at least TLS 1.0, set "smtp_tls_mandatory_protocols = !SSLv2,
8275 !SSLv3". Listing the protocols to include, rather than the protocols to
8276 exclude, is supported, but not recommended. The exclusion syntax more
8277 accurately matches the underlying OpenSSL interface.
8278
8279 When using the exclusion syntax, take care to ensure that the range of
8280 protocols supported by the Postfix SMTP client is contiguous. When a
8281 protocol version is enabled, disabling any higher version implicitly
8282 disables all versions above that higher version. Thus, for example:
8283
8284 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1.1
8285
8286 also disables any protocol versions higher than TLSv1.1 leaving only
8287 "TLSv1" enabled.
8288
8289 Support for "TLSv1.3" was introduced in OpenSSL 1.1.1. Disabling this
8290 protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch re‐
8291 leases >= 3.0.14, 3.1.10, 3.2.7 and 3.3.2).
8292
8293 While the vast majority of SMTP servers with DANE TLSA records now sup‐
8294 port at least TLS 1.2, a few still only support TLS 1.0. If you use
8295 "dane" or "dane-only" it is best not to disable TLSv1, except perhaps
8296 via the policy table for destinations which you are sure will support
8297 "TLSv1.2".
8298
8299 See the documentation of the smtp_tls_policy_maps parameter and
8300 TLS_README for more information about security levels.
8301
8302 Example:
8303 # Preferred syntax with Postfix >= 3.6:
8304 smtp_tls_mandatory_protocols = >=TLSv1.2, <=TLSv1.3
8305 # Legacy syntax:
8306 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
8307
8308 This feature is available in Postfix 2.3 and later.
8309
8311 Log the hostname of a remote SMTP server that offers STARTTLS, when TLS
8312 is not already enabled for that server.
8313
8314 The logfile record looks like:
8315
8316 postfix/smtp[pid]: Host offered STARTTLS: [name.of.host]
8317
8318 This feature is available in Postfix 2.2 and later.
8319
8321 Optional lookup tables with the Postfix SMTP client TLS usage policy by
8322 next-hop destination and by remote SMTP server hostname. When both
8323 lookups succeed, the more specific per-site policy (NONE, MUST, etc.)
8324 overrides the less specific one (MAY), and the more secure per-site
8325 policy (MUST, etc.) overrides the less secure one (NONE). With Postfix
8326 2.3 and later smtp_tls_per_site is strongly discouraged: use
8327 smtp_tls_policy_maps instead.
8328
8329 Use of the bare hostname as the per-site table lookup key is discour‐
8330 aged. Always use the full destination nexthop (enclosed in [] with a
8331 possible ":port" suffix). A recipient domain or MX-enabled transport
8332 next-hop with no port suffix may look like a bare hostname, but is
8333 still a suitable destination.
8334
8335 Specify a next-hop destination or server hostname on the left-hand
8336 side; no wildcards are allowed. The next-hop destination is either the
8337 recipient domain, or the destination specified with a transport(5) ta‐
8338 ble, the relayhost parameter, or the relay_transport parameter. On the
8339 right hand side specify one of the following keywords:
8340
8341 NONE Don't use TLS at all. This overrides a less specific MAY lookup
8342 result from the alternate host or next-hop lookup key, and over‐
8343 rides the global smtp_use_tls, smtp_enforce_tls, and
8344 smtp_tls_enforce_peername settings.
8345
8346 MAY Try to use TLS if the server announces support, otherwise use an
8347 unencrypted connection. This has less precedence than a more
8348 specific result (including NONE) from the alternate host or
8349 next-hop lookup key, and has less precedence than the more spe‐
8350 cific global "smtp_enforce_tls = yes" or "smtp_tls_enforce_peer‐
8351 name = yes".
8352
8353 MUST_NOPEERMATCH
8354 Require TLS encryption, but do not require that the remote SMTP
8355 server hostname matches the information in the remote SMTP
8356 server certificate, or that the server certificate was issued by
8357 a trusted CA. This overrides a less secure NONE or a less spe‐
8358 cific MAY lookup result from the alternate host or next-hop
8359 lookup key, and overrides the global smtp_use_tls, smtp_en‐
8360 force_tls and smtp_tls_enforce_peername settings.
8361
8362 MUST Require TLS encryption, require that the remote SMTP server
8363 hostname matches the information in the remote SMTP server cer‐
8364 tificate, and require that the remote SMTP server certificate
8365 was issued by a trusted CA. This overrides a less secure NONE or
8366 MUST_NOPEERMATCH or a less specific MAY lookup result from the
8367 alternate host or next-hop lookup key, and overrides the global
8368 smtp_use_tls, smtp_enforce_tls and smtp_tls_enforce_peername
8369 settings.
8370
8371 The above keywords correspond to the "none", "may", "encrypt" and "ver‐
8372 ify" security levels for the new smtp_tls_security_level parameter in‐
8373 troduced in Postfix 2.3. Starting with Postfix 2.3, and independently
8374 of how the policy is specified, the smtp_tls_mandatory_ciphers and
8375 smtp_tls_mandatory_protocols parameters apply when TLS encryption is
8376 mandatory. Connections for which encryption is optional typically en‐
8377 able all "export" grade and better ciphers (see smtp_tls_ciphers and
8378 smtp_tls_protocols).
8379
8380 As long as no secure DNS lookup mechanism is available, false hostnames
8381 in MX or CNAME responses can change the server hostname that Postfix
8382 uses for TLS policy lookup and server certificate verification. Even
8383 with a perfect match between the server hostname and the server cer‐
8384 tificate, there is no guarantee that Postfix is connected to the right
8385 server. See TLS_README (Closing a DNS loophole with obsolete per-site
8386 TLS policies) for a possible work-around.
8387
8388 This feature is available in Postfix 2.2 and later. With Postfix 2.3
8389 and later use smtp_tls_policy_maps instead.
8390
8392 Optional lookup tables with the Postfix SMTP client TLS security policy
8393 by next-hop destination; when a non-empty value is specified, this
8394 overrides the obsolete smtp_tls_per_site parameter. See TLS_README for
8395 a more detailed discussion of TLS security levels.
8396
8397 Specify zero or more "type:name" lookup tables, separated by whitespace
8398 or comma. Tables will be searched in the specified order until a match
8399 is found.
8400
8401 The TLS policy table is indexed by the full next-hop destination, which
8402 is either the recipient domain, or the verbatim next-hop specified in
8403 the transport table, $local_transport, $virtual_transport, $re‐
8404 lay_transport or $default_transport. This includes any enclosing square
8405 brackets and any non-default destination server port suffix. The LMTP
8406 socket type prefix (inet: or unix:) is not included in the lookup key.
8407
8408 Only the next-hop domain, or $myhostname with LMTP over UNIX-domain
8409 sockets, is used as the nexthop name for certificate verification. The
8410 port and any enclosing square brackets are used in the table lookup
8411 key, but are not used for server name verification.
8412
8413 When the lookup key is a domain name without enclosing square brackets
8414 or any :port suffix (typically the recipient domain), and the full do‐
8415 main is not found in the table, just as with the transport(5) table,
8416 the parent domain starting with a leading "." is matched recursively.
8417 This allows one to specify a security policy for a recipient domain and
8418 all its sub-domains.
8419
8420 The lookup result is a security level, followed by an optional list of
8421 whitespace and/or comma separated name=value attributes that override
8422 related main.cf settings. The TLS security levels in order of increas‐
8423 ing security are:
8424
8425 none No TLS. No additional attributes are supported at this level.
8426
8427 may Opportunistic TLS. Since sending in the clear is acceptable, de‐
8428 manding stronger than default TLS security merely reduces inter‐
8429 operability. The optional "ciphers", "exclude", and "protocols"
8430 attributes (available for opportunistic TLS with Postfix >= 2.6)
8431 and "connection_reuse" attribute (Postfix >= 3.4) override the
8432 "smtp_tls_ciphers", "smtp_tls_exclude_ciphers", "smtp_tls_proto‐
8433 cols", and "smtp_tls_connection_reuse" configuration parameters.
8434 In the policy table, multiple ciphers, protocols or excluded ci‐
8435 phers must be separated by colons, as attribute values may not
8436 contain whitespace or commas. When opportunistic TLS handshakes
8437 fail, Postfix retries the connection with TLS disabled. This
8438 allows mail delivery to sites with non-interoperable TLS imple‐
8439 mentations.
8440
8441 encrypt
8442 Mandatory TLS encryption. At this level and higher, the optional
8443 "protocols" attribute overrides the main.cf smtp_tls_manda‐
8444 tory_protocols parameter, the optional "ciphers" attribute over‐
8445 rides the main.cf smtp_tls_mandatory_ciphers parameter, the op‐
8446 tional "exclude" attribute (Postfix >= 2.6) overrides the
8447 main.cf smtp_tls_mandatory_exclude_ciphers parameter, and the
8448 optional "connection_reuse" attribute (Postfix >= 3.4) overrides
8449 the main.cf smtp_tls_connection_reuse parameter. In the policy
8450 table, multiple ciphers, protocols or excluded ciphers must be
8451 separated by colons, as attribute values may not contain white‐
8452 space or commas.
8453
8454 dane Opportunistic DANE TLS. The TLS policy for the destination is
8455 obtained via TLSA records in DNSSEC. If no TLSA records are
8456 found, the effective security level used is may. If TLSA
8457 records are found, but none are usable, the effective security
8458 level is encrypt. When usable TLSA records are obtained for the
8459 remote SMTP server, the server certificate must match the TLSA
8460 records. RFC 7672 (DANE) TLS authentication and DNSSEC support
8461 is available with Postfix 2.11 and later. The optional "connec‐
8462 tion_reuse" attribute (Postfix >= 3.4) overrides the main.cf
8463 smtp_tls_connection_reuse parameter. When the effective secu‐
8464 rity level used is may, the optional "ciphers", "exclude", and
8465 "protocols" attributes (Postfix >= 2.6) override the
8466 "smtp_tls_ciphers", "smtp_tls_exclude_ciphers", and
8467 "smtp_tls_protocols" configuration parameters. When the effec‐
8468 tive security level used is encrypt, the optional "ciphers",
8469 "exclude", and "protocols" attributes (Postfix >= 2.6) override
8470 the "smtp_tls_mandatory_ciphers", "smtp_tls_mandatory_ex‐
8471 clude_ciphers", and "smtp_tls_mandatory_protocols" configuration
8472 parameters.
8473
8474 dane-only
8475 Mandatory DANE TLS. The TLS policy for the destination is ob‐
8476 tained via TLSA records in DNSSEC. If no TLSA records are
8477 found, or none are usable, no connection is made to the server.
8478 When usable TLSA records are obtained for the remote SMTP
8479 server, the server certificate must match the TLSA records. RFC
8480 7672 (DANE) TLS authentication and DNSSEC support is available
8481 with Postfix 2.11 and later. The optional "ciphers", "exclude",
8482 and "protocols" attributes (Postfix >= 2.6) override the
8483 "smtp_tls_mandatory_ciphers", "smtp_tls_mandatory_exclude_ci‐
8484 phers", and "smtp_tls_mandatory_protocols" configuration parame‐
8485 ters. The optional "connection_reuse" attribute (Postfix >= 3.4)
8486 overrides the main.cf smtp_tls_connection_reuse parameter.
8487
8488 fingerprint
8489 Certificate fingerprint verification. Available with Postfix 2.5
8490 and later. At this security level, there are no trusted Certifi‐
8491 cation Authorities. The certificate trust chain, expiration
8492 date, ... are not checked. Instead, the optional "match" attri‐
8493 bute, or else the main.cf smtp_tls_fingerprint_cert_match param‐
8494 eter, lists the certificate fingerprints or the public key fin‐
8495 gerprint (Postfix 2.9 and later) of the valid server certifi‐
8496 cate. The digest algorithm used to calculate the fingerprint is
8497 selected by the smtp_tls_fingerprint_digest parameter. Multiple
8498 fingerprints can be combined with a "|" delimiter in a single
8499 match attribute, or multiple match attributes can be employed.
8500 The ":" character is not used as a delimiter as it occurs be‐
8501 tween each pair of fingerprint (hexadecimal) digits. The op‐
8502 tional "ciphers", "exclude", and "protocols" attributes (Postfix
8503 >= 2.6) override the "smtp_tls_mandatory_ciphers",
8504 "smtp_tls_mandatory_exclude_ciphers", and "smtp_tls_manda‐
8505 tory_protocols" configuration parameters. The optional "connec‐
8506 tion_reuse" attribute (Postfix >= 3.4) overrides the main.cf
8507 smtp_tls_connection_reuse parameter.
8508
8509 verify Mandatory TLS verification. At this security level, DNS MX
8510 lookups are trusted to be secure enough, and the name verified
8511 in the server certificate is usually obtained indirectly via
8512 unauthenticated DNS MX lookups. The optional "match" attribute
8513 overrides the main.cf smtp_tls_verify_cert_match parameter. In
8514 the policy table, multiple match patterns and strategies must be
8515 separated by colons. In practice explicit control over matching
8516 is more common with the "secure" policy, described below. The
8517 optional "ciphers", "exclude", and "protocols" attributes (Post‐
8518 fix >= 2.6) override the "smtp_tls_mandatory_ciphers",
8519 "smtp_tls_mandatory_exclude_ciphers", and "smtp_tls_manda‐
8520 tory_protocols" configuration parameters. The optional "connec‐
8521 tion_reuse" attribute (Postfix >= 3.4) overrides the main.cf
8522 smtp_tls_connection_reuse parameter.
8523
8524 secure Secure-channel TLS. At this security level, DNS MX lookups,
8525 though potentially used to determine the candidate next-hop
8526 gateway IP addresses, are not trusted to be secure enough for
8527 TLS peername verification. Instead, the default name verified in
8528 the server certificate is obtained directly from the next-hop,
8529 or is explicitly specified via the optional "match" attribute
8530 which overrides the main.cf smtp_tls_secure_cert_match parame‐
8531 ter. In the policy table, multiple match patterns and strategies
8532 must be separated by colons. The match attribute is most useful
8533 when multiple domains are supported by a common server: the pol‐
8534 icy entries for additional domains specify matching rules for
8535 the primary domain certificate. While transport table overrides
8536 that route the secondary domains to the primary nexthop also al‐
8537 low secure verification, they risk delivery to the wrong desti‐
8538 nation when domains change hands or are re-assigned to new gate‐
8539 ways. With the "match" attribute approach, routing is not per‐
8540 turbed, and mail is deferred if verification of a new MX host
8541 fails. The optional "ciphers", "exclude", and "protocols" at‐
8542 tributes (Postfix >= 2.6) override the "smtp_tls_mandatory_ci‐
8543 phers", "smtp_tls_mandatory_exclude_ciphers", and
8544 "smtp_tls_mandatory_protocols" configuration parameters. The op‐
8545 tional "connection_reuse" attribute (Postfix >= 3.4) overrides
8546 the main.cf smtp_tls_connection_reuse parameter.
8547
8548 Example:
8549
8550 /etc/postfix/main.cf:
8551 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
8552 # Postfix 2.5 and later.
8553 #
8554 # The default digest is sha256 with Postfix >= 3.6 and
8555 # compatibility level >= 3.
8556 #
8557 smtp_tls_fingerprint_digest = sha256
8558
8559 /etc/postfix/tls_policy:
8560 example.edu none
8561 example.mil may
8562 example.gov encrypt protocols=TLSv1
8563 example.com verify ciphers=high
8564 example.net secure
8565 .example.net secure match=.example.net:example.net
8566 [mail.example.org]:587 secure match=nexthop
8567 # Postfix 2.5 and later
8568 [thumb.example.org] fingerprint
8569 match=b6:b4:72:34:e2:59:cd:...:c2:ca:63:0d:4d:cc:2c:7d:84:de:e6:2f
8570 match=51:e9:af:2e:1e:40:1f:...:64:0a:30:35:2d:09:16:31:5a:eb:82:76
8571
8572 Note: The "hostname" strategy if listed in a non-default setting of
8573 smtp_tls_secure_cert_match or in the "match" attribute in the policy
8574 table can render the "secure" level vulnerable to DNS forgery. Do not
8575 use the "hostname" strategy for secure-channel configurations in envi‐
8576 ronments where DNS security is not assured.
8577
8578 This feature is available in Postfix 2.3 and later.
8579
8581 TLS protocols that the Postfix SMTP client will use with opportunistic
8582 TLS encryption. In main.cf the values are separated by whitespace,
8583 commas or colons. In the policy table "protocols" attribute (see
8584 smtp_tls_policy_maps) the only valid separator is colon. An empty
8585 value means allow all protocols.
8586
8587 The valid protocol names (see SSL_get_version(3)) are "SSLv2", "SSLv3",
8588 "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3". Starting with Postfix
8589 3.6, the default value is ">=TLSv1", which sets TLS 1.0 as the lowest
8590 supported TLS protocol version (see below). Older releases use the "!"
8591 exclusion syntax, also described below.
8592
8593 As of Postfix 3.6, the preferred way to limit the range of acceptable
8594 protocols is to set the lowest acceptable TLS protocol version and/or
8595 the highest acceptable TLS protocol version. To set the lower bound
8596 include an element of the form: ">=version" where version is either one
8597 of the TLS protocol names listed above, or a hexadecimal number corre‐
8598 sponding to the desired TLS protocol version (0301 for TLS 1.0, 0302
8599 for TLS 1.1, etc.). For the upper bound, use "<=version". There must
8600 be no whitespace between the ">=" or "<=" symbols and the protocol name
8601 or number.
8602
8603 Hexadecimal protocol numbers make it possible to specify protocol
8604 bounds for TLS versions that are known to OpenSSL, but might not be
8605 known to Postfix. They cannot be used with the legacy exclusion syn‐
8606 tax. Leading "0" or "0x" prefixes are supported, but not required.
8607 Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
8608 "TLSv1". Hexadecimal versions unknown to OpenSSL will fail to set the
8609 upper or lower bound, and a warning will be logged. Hexadecimal ver‐
8610 sions should only be used when Postfix is linked with some future ver‐
8611 sion of OpenSSL that supports TLS 1.4 or later, but Postfix does not
8612 yet support a symbolic name for that protocol version.
8613
8614 Hexadecimal example (Postfix >= 3.6):
8615
8616 # Allow only TLS 1.0 through (hypothetical) TLS 1.4, once supported
8617 # in some future version of OpenSSL (presently a warning is logged).
8618 smtp_tls_protocols = >=TLSv1, <=0305
8619 # Allow only TLS 1.0 and up:
8620 smtp_tls_protocols = >=0x0301
8621
8622 With Postfix < 3.6 there is no support for a minimum or maximum ver‐
8623 sion, and the protocol range is configured via protocol exclusions. To
8624 require at least TLS 1.0, set "smtp_tls_protocols = !SSLv2, !SSLv3".
8625 Listing the protocols to include, rather than protocols to exclude, is
8626 supported, but not recommended. The exclusion form more accurately
8627 matches the underlying OpenSSL interface.
8628
8629 When using the exclusion syntax, take care to ensure that the range of
8630 protocols advertised by an SSL/TLS client is contiguous. When a proto‐
8631 col version is enabled, disabling any higher version implicitly dis‐
8632 ables all versions above that higher version. Thus, for example:
8633
8634 smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1.1
8635 also disables any protocols version higher than TLSv1.1 leaving only
8636 "TLSv1" enabled.
8637
8638 Support for "TLSv1.3" was introduced in OpenSSL 1.1.1. Disabling this
8639 protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch re‐
8640 leases >= 3.0.14, 3.1.10, 3.2.7 and 3.3.2).
8641
8642 Example:
8643 # Preferred syntax with Postfix >= 3.6:
8644 smtp_tls_protocols = >=TLSv1, <=TLSv1.3
8645 # Legacy syntax:
8646 smtp_tls_protocols = !SSLv2, !SSLv3
8647
8648 This feature is available in Postfix 2.6 and later.
8649
8651 The verification depth for remote SMTP server certificates. A depth of
8652 1 is sufficient if the issuing CA is listed in a local CA file.
8653
8654 The default verification depth is 9 (the OpenSSL default) for compati‐
8655 bility with earlier Postfix behavior. Prior to Postfix 2.5, the default
8656 value was 5, but the limit was not actually enforced. If you have set
8657 this to a lower non-default value, certificates with longer trust
8658 chains may now fail to verify. Certificate chains with 1 or 2 CAs are
8659 common, deeper chains are more rare and any number between 5 and 9
8660 should suffice in practice. You can choose a lower number if, for exam‐
8661 ple, you trust certificates directly signed by an issuing CA but not
8662 any CAs it delegates to.
8663
8664 This feature is available in Postfix 2.2 and later.
8665
8667 How the Postfix SMTP client verifies the server certificate peername
8668 for the "secure" TLS security level. In a "secure" TLS policy table
8669 ($smtp_tls_policy_maps) entry the optional "match" attribute overrides
8670 this main.cf setting.
8671
8672 This parameter specifies one or more patterns or strategies separated
8673 by commas, whitespace or colons. In the policy table the only valid
8674 separator is the colon character.
8675
8676 For a description of the pattern and strategy syntax see the
8677 smtp_tls_verify_cert_match parameter. The "hostname" strategy should be
8678 avoided in this context, as in the absence of a secure global DNS, us‐
8679 ing the results of MX lookups in certificate verification is not immune
8680 to active (man-in-the-middle) attacks on DNS.
8681
8682 Sample main.cf setting:
8683
8684 smtp_tls_secure_cert_match = nexthop
8685
8686 Sample policy table override:
8687
8688 example.net secure match=example.com:.example.com
8689 .example.net secure match=example.com:.example.com
8690
8691 This feature is available in Postfix 2.3 and later.
8692
8694 The default SMTP TLS security level for the Postfix SMTP client. When
8695 a non-empty value is specified, this overrides the obsolete parameters
8696 smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername; when no
8697 value is specified for smtp_tls_enforce_peername or the obsolete param‐
8698 eters, the default SMTP TLS security level is none.
8699
8700 Specify one of the following security levels:
8701
8702 none No TLS. TLS will not be used unless enabled for specific desti‐
8703 nations via smtp_tls_policy_maps.
8704
8705 may Opportunistic TLS. Use TLS if this is supported by the remote
8706 SMTP server, otherwise use plaintext. Since sending in the clear
8707 is acceptable, demanding stronger than default TLS security
8708 merely reduces interoperability. The "smtp_tls_ciphers" and
8709 "smtp_tls_protocols" (Postfix >= 2.6) configuration parameters
8710 provide control over the protocols and cipher grade used with
8711 opportunistic TLS. With earlier releases the opportunistic TLS
8712 cipher grade is always "export" and no protocols are disabled.
8713 When TLS handshakes fail, the connection is retried with TLS
8714 disabled. This allows mail delivery to sites with non-interop‐
8715 erable TLS implementations.
8716
8717 encrypt
8718 Mandatory TLS encryption. Since a minimum level of security is
8719 intended, it is reasonable to be specific about sufficiently se‐
8720 cure protocol versions and ciphers. At this security level and
8721 higher, the main.cf parameters smtp_tls_mandatory_protocols and
8722 smtp_tls_mandatory_ciphers specify the TLS protocols and minimum
8723 cipher grade which the administrator considers secure enough for
8724 mandatory encrypted sessions. This security level is not an ap‐
8725 propriate default for systems delivering mail to the Internet.
8726
8727 dane Opportunistic DANE TLS. At this security level, the TLS policy
8728 for the destination is obtained via DNSSEC. For TLSA policy to
8729 be in effect, the destination domain's containing DNS zone must
8730 be signed and the Postfix SMTP client's operating system must be
8731 configured to send its DNS queries to a recursive DNS nameserver
8732 that is able to validate the signed records. Each MX host's DNS
8733 zone should also be signed, and should publish DANE TLSA (RFC
8734 7672) records that specify how that MX host's TLS certificate is
8735 to be verified. TLSA records do not preempt the normal SMTP MX
8736 host selection algorithm, if some MX hosts support TLSA and oth‐
8737 ers do not, TLS security will vary from delivery to delivery.
8738 It is up to the domain owner to configure their MX hosts and
8739 their DNS sensibly. To configure the Postfix SMTP client for
8740 DNSSEC lookups see the documentation for the smtp_dns_sup‐
8741 port_level main.cf parameter. When DNSSEC-validated TLSA
8742 records are not found the effective tls security level is "may".
8743 When TLSA records are found, but are all unusable the effective
8744 security level is "encrypt". For purposes of protocol and ci‐
8745 pher selection, the "dane" security level is treated like a
8746 "mandatory" TLS security level, and weak ciphers and protocols
8747 are disabled. Since DANE authenticates server certificates the
8748 "aNULL" cipher-suites are transparently excluded at this level,
8749 no need to configure this manually. RFC 7672 (DANE) TLS authen‐
8750 tication is available with Postfix 2.11 and later.
8751
8752 dane-only
8753 Mandatory DANE TLS. This is just like "dane" above, but DANE
8754 TLSA authentication is required. There is no fallback to "may"
8755 or "encrypt" when TLSA records are missing or unusable. RFC
8756 7672 (DANE) TLS authentication is available with Postfix 2.11
8757 and later.
8758
8759 fingerprint
8760 Certificate fingerprint verification. At this security level,
8761 there are no trusted Certification Authorities. The certificate
8762 trust chain, expiration date, etc., are not checked. Instead,
8763 the smtp_tls_fingerprint_cert_match parameter lists the certifi‐
8764 cate fingerprint or public key fingerprint (Postfix 2.9 and
8765 later) of the valid server certificate. The digest algorithm
8766 used to calculate the fingerprint is selected by the
8767 smtp_tls_fingerprint_digest parameter. Available with Postfix
8768 2.5 and later.
8769
8770 verify Mandatory TLS verification. At this security level, DNS MX
8771 lookups are trusted to be secure enough, and the name verified
8772 in the server certificate is usually obtained indirectly via
8773 unauthenticated DNS MX lookups. The smtp_tls_verify_cert_match
8774 parameter controls how the server name is verified. In practice
8775 explicit control over matching is more common at the "secure"
8776 level, described below. This security level is not an appropri‐
8777 ate default for systems delivering mail to the Internet.
8778
8779 secure Secure-channel TLS. At this security level, DNS MX lookups,
8780 though potentially used to determine the candidate next-hop
8781 gateway IP addresses, are not trusted to be secure enough for
8782 TLS peername verification. Instead, the default name verified in
8783 the server certificate is obtained from the next-hop domain as
8784 specified in the smtp_tls_secure_cert_match configuration param‐
8785 eter. The default matching rule is that a server certificate
8786 matches when its name is equal to or is a sub-domain of the nex‐
8787 thop domain. This security level is not an appropriate default
8788 for systems delivering mail to the Internet.
8789
8790 Examples:
8791
8792 # No TLS. Formerly: smtp_use_tls=no and smtp_enforce_tls=no.
8793 smtp_tls_security_level = none
8794
8795 # Opportunistic TLS.
8796 smtp_tls_security_level = may
8797 # Do not tweak opportunistic ciphers or protocols unless it is essential
8798 # to do so (if a security vulnerability is found in the SSL library that
8799 # can be mitigated by disabling a particular protocol or raising the
8800 # cipher grade).
8801 smtp_tls_ciphers = medium
8802 smtp_tls_protocols = >=TLSv1
8803 # Legacy (Postfix < 3.6) syntax:
8804 smtp_tls_protocols = !SSLv2, !SSLv3
8805
8806 # Mandatory (high-grade) TLS encryption.
8807 smtp_tls_security_level = encrypt
8808 smtp_tls_mandatory_ciphers = high
8809
8810 # Authenticated TLS 1.2 or better matching the nexthop domain or a
8811 # subdomain.
8812 smtp_tls_security_level = secure
8813 smtp_tls_mandatory_ciphers = high
8814 smtp_tls_mandatory_protocols = >=TLSv1.2
8815 smtp_tls_secure_cert_match = nexthop, dot-nexthop
8816
8817 # Certificate fingerprint verification (Postfix >= 2.5).
8818 # The CA-less "fingerprint" security level only scales to a limited
8819 # number of destinations. As a global default rather than a per-site
8820 # setting, this is practical only when mail for all recipients is sent
8821 # to a central mail hub.
8822 relayhost = [mailhub.example.com]
8823 smtp_tls_security_level = fingerprint
8824 smtp_tls_mandatory_protocols = >=TLSv1.2
8825 smtp_tls_mandatory_ciphers = high
8826 smtp_tls_fingerprint_cert_match =
8827 3D:95:34:51:...:40:99:C0:C1
8828 EC:3B:2D:B0:...:A3:9D:72:F6
8829
8830 This feature is available in Postfix 2.3 and later.
8831
8833 Optional name to send to the remote SMTP server in the TLS Server Name
8834 Indication (SNI) extension. The SNI extension is always on when DANE
8835 is used to authenticate the server, and in that case the SNI name sent
8836 is the one required by RFC7672 and this parameter is ignored.
8837
8838 Some SMTP servers use the received SNI name to select an appropriate
8839 certificate chain to present to the client. While this may improve in‐
8840 teroperability with such servers, it may reduce interoperability with
8841 other servers that choose to abort the connection when they don't have
8842 a certificate chain configured for the requested name. Such servers
8843 should select a default certificate chain and continue the handshake,
8844 but some may not. Therefore, absent DANE, no SNI name is sent by de‐
8845 fault.
8846
8847 The SNI name must be either a valid DNS hostname, or else one of the
8848 special values hostname or nexthop, which select either the remote
8849 hostname or the nexthop domain respectively. DNS names for SNI must be
8850 in A-label (punycode) form. Invalid DNS names log a configuration er‐
8851 ror warning and mail delivery is deferred.
8852
8853 Except when using a relayhost to forward all email, the only sensible
8854 non-empty main.cf setting for this parameter is hostname. Other
8855 non-empty values are only practical on a per-destination basis via the
8856 servername attribute of the Postfix TLS policy table. When in doubt,
8857 leave this parameter empty, and configure per-destination SNI as
8858 needed.
8859
8860 This feature is available in Postfix 3.4 and later.
8861
8863 Name of the file containing the optional Postfix SMTP client TLS ses‐
8864 sion cache. Specify a database type that supports enumeration, such as
8865 btree or sdbm; there is no need to support concurrent access. The file
8866 is created if it does not exist. The smtp(8) daemon does not use this
8867 parameter directly, rather the cache is implemented indirectly in the
8868 tlsmgr(8) daemon. This means that per-smtp-instance master.cf overrides
8869 of this parameter are not effective. Note that each of the cache data‐
8870 bases supported by tlsmgr(8) daemon: $smtpd_tls_session_cache_database,
8871 $smtp_tls_session_cache_database (and with Postfix 2.3 and later
8872 $lmtp_tls_session_cache_database), needs to be stored separately. It is
8873 not at this time possible to store multiple caches in a single data‐
8874 base.
8875
8876 Note: dbm databases are not suitable. TLS session objects are too
8877 large.
8878
8879 As of version 2.5, Postfix no longer uses root privileges when opening
8880 this file. The file should now be stored under the Postfix-owned
8881 data_directory. As a migration aid, an attempt to open the file under a
8882 non-Postfix directory is redirected to the Postfix-owned data_direc‐
8883 tory, and a warning is logged.
8884
8885 Example:
8886
8887 smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
8888
8889 This feature is available in Postfix 2.2 and later.
8890
8892 The expiration time of Postfix SMTP client TLS session cache informa‐
8893 tion. A cache cleanup is performed periodically every $smtp_tls_ses‐
8894 sion_cache_timeout seconds. As with $smtp_tls_session_cache_database,
8895 this parameter is implemented in the tlsmgr(8) daemon and therefore
8896 per-smtp-instance master.cf overrides are not possible.
8897
8898 As of Postfix 2.11 this setting cannot exceed 100 days. If set <= 0,
8899 session caching is disabled. If set to a positive value less than 2
8900 minutes, the minimum value of 2 minutes is used instead.
8901
8902 Specify a non-zero time value (an integral value plus an optional
8903 one-letter suffix that specifies the time unit). Time units: s (sec‐
8904 onds), m (minutes), h (hours), d (days), w (weeks). The default time
8905 unit is s (seconds).
8906
8907 This feature is available in Postfix 2.2 and later.
8908
8910 Zero or more PEM-format files with trust-anchor certificates and/or
8911 public keys. If the parameter is not empty the root CAs in CAfile and
8912 CApath are no longer trusted. Rather, the Postfix SMTP client will
8913 only trust certificate-chains signed by one of the trust-anchors con‐
8914 tained in the chosen files. The specified trust-anchor certificates
8915 and public keys are not subject to expiration, and need not be
8916 (self-signed) root CAs. They may, if desired, be intermediate certifi‐
8917 cates. Therefore, these certificates also may be found "in the middle"
8918 of the trust chain presented by the remote SMTP server, and any un‐
8919 trusted issuing parent certificates will be ignored. Specify a list of
8920 pathnames separated by comma or whitespace.
8921
8922 Whether specified in main.cf, or on a per-destination basis, the
8923 trust-anchor PEM file must be accessible to the Postfix SMTP client in
8924 the chroot jail if applicable. The trust-anchor file should contain
8925 only certificates and public keys, no private key material, and must be
8926 readable by the non-privileged $mail_owner user. This allows destina‐
8927 tions to be bound to a set of specific CAs or public keys without
8928 trusting the same CAs for all destinations.
8929
8930 The main.cf parameter supports single-purpose Postfix installations
8931 that send mail to a fixed set of SMTP peers. At most sites, if
8932 trust-anchor files are used at all, they will be specified on a
8933 per-destination basis via the "tafile" attribute of the "verify" and
8934 "secure" levels in smtp_tls_policy_maps.
8935
8936 The underlying mechanism is in support of RFC 7672 (DANE TLSA), which
8937 defines mechanisms for an SMTP client MTA to securely determine server
8938 TLS certificates via DNS.
8939
8940 If you want your trust anchors to be public keys, with OpenSSL you can
8941 extract a single PEM public key from a PEM X.509 file containing a sin‐
8942 gle certificate, as follows:
8943
8944 $ openssl x509 -in cert.pem -out ta-key.pem -noout -pubkey
8945
8946 This feature is available in Postfix 2.11 and later.
8947
8949 How the Postfix SMTP client verifies the server certificate peername
8950 for the "verify" TLS security level. In a "verify" TLS policy table
8951 ($smtp_tls_policy_maps) entry the optional "match" attribute overrides
8952 this main.cf setting.
8953
8954 This parameter specifies one or more patterns or strategies separated
8955 by commas, whitespace or colons. In the policy table the only valid
8956 separator is the colon character.
8957
8958 Patterns specify domain names, or domain name suffixes:
8959
8960 example.com
8961 Match the example.com domain, i.e. one of the names in the
8962 server certificate must be example.com. Upper and lower case
8963 distinctions are ignored.
8964
8965 .example.com
8966 Match subdomains of the example.com domain, i.e. match a name in
8967 the server certificate that consists of a non-zero number of la‐
8968 bels followed by a .example.com suffix. Case distinctions are
8969 ignored.
8970
8971 Strategies specify a transformation from the next-hop domain to the ex‐
8972 pected name in the server certificate:
8973
8974 nexthop
8975 Match against the next-hop domain, which is either the recipient
8976 domain, or the transport next-hop configured for the domain
8977 stripped of any optional socket type prefix, enclosing square
8978 brackets and trailing port. When MX lookups are not suppressed,
8979 this is the original nexthop domain prior to the MX lookup, not
8980 the result of the MX lookup. For LMTP delivery via UNIX-domain
8981 sockets, the verified next-hop name is $myhostname. This strat‐
8982 egy is suitable for use with the "secure" policy. Case is ig‐
8983 nored.
8984
8985 dot-nexthop
8986 As above, but match server certificate names that are subdomains
8987 of the next-hop domain. Case is ignored.
8988
8989 hostname
8990 Match against the hostname of the server, often obtained via an
8991 unauthenticated DNS MX lookup. For LMTP delivery via UNIX-domain
8992 sockets, the verified name is $myhostname. This matches the ver‐
8993 ification strategy of the "MUST" keyword in the obsolete
8994 smtp_tls_per_site table, and is suitable for use with the "ver‐
8995 ify" security level. When the next-hop name is enclosed in
8996 square brackets to suppress MX lookups, the "hostname" strategy
8997 is the same as the "nexthop" strategy. Case is ignored.
8998
8999 Sample main.cf setting:
9000
9001 smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
9002
9003 Sample policy table override:
9004
9005 example.com verify match=hostname:nexthop
9006 .example.com verify match=example.com:.example.com:hostname
9007
9008 This feature is available in Postfix 2.3 and later.
9009
9011 Request that the Postfix SMTP client connects using the SUBMIS‐
9012 SIONS/SMTPS protocol instead of using the STARTTLS command.
9013
9014 This mode requires "smtp_tls_security_level = encrypt" or stronger.
9015
9016 Example: deliver all remote mail via a provider's server "mail.exam‐
9017 ple.com".
9018
9019 /etc/postfix/main.cf:
9020 # Client-side SMTPS requires "encrypt" or stronger.
9021 smtp_tls_security_level = encrypt
9022 smtp_tls_wrappermode = yes
9023 # The [] suppress MX lookups.
9024 relayhost = [mail.example.com]:465
9025
9026 More examples are in TLS_README, including examples for older Postfix
9027 versions.
9028
9029 This feature is available in Postfix 3.0 and later.
9030
9032 Opportunistic mode: use TLS when a remote SMTP server announces START‐
9033 TLS support, otherwise send the mail in the clear. Beware: some SMTP
9034 servers offer STARTTLS even if it is not configured. With Postfix <
9035 2.3, if the TLS handshake fails, and no other server is available, de‐
9036 livery is deferred and mail stays in the queue. If this is a concern
9037 for you, use the smtp_tls_per_site feature instead.
9038
9039 This feature is available in Postfix 2.2 and later. With Postfix 2.3
9040 and later use smtp_tls_security_level instead.
9041
9043 The Postfix SMTP client time limit for sending the XFORWARD command,
9044 and for receiving the remote SMTP server response.
9045
9046 Specify a non-zero time value (an integral value plus an optional
9047 one-letter suffix that specifies the time unit). Time units: s (sec‐
9048 onds), m (minutes), h (hours), d (days), w (weeks). The default time
9049 unit is s (seconds).
9050
9051 This feature is available in Postfix 2.1 and later.
9052
9054 What remote SMTP clients are allowed to specify the XVERP command.
9055 This command requests that mail be delivered one recipient at a time
9056 with a per recipient return address.
9057
9058 By default, no clients are allowed to specify XVERP.
9059
9060 This parameter was renamed with Postfix version 2.1. The default value
9061 is backwards compatible with Postfix version 2.0.
9062
9063 Specify a list of network/netmask patterns, separated by commas and/or
9064 whitespace. The mask specifies the number of bits in the network part
9065 of a host address. You can also specify hostnames or .domain names (the
9066 initial dot causes the domain to match any name below it),
9067 "/file/name" or "type:table" patterns. A "/file/name" pattern is re‐
9068 placed by its contents; a "type:table" lookup table is matched when a
9069 table entry matches a lookup string (the lookup result is ignored).
9070 Continue long lines by starting the next line with whitespace. Specify
9071 "!pattern" to exclude an address or network block from the list. The
9072 form "!/file/name" is supported only in Postfix version 2.4 and later.
9073
9074 Note: IP version 6 address information must be specified inside [] in
9075 the smtpd_authorized_verp_clients value, and in files specified with
9076 "/file/name". IP version 6 addresses contain the ":" character, and
9077 would otherwise be confused with a "type:table" pattern.
9078
9080 What remote SMTP clients are allowed to use the XCLIENT feature. This
9081 command overrides remote SMTP client information that is used for ac‐
9082 cess control. Typical use is for SMTP-based content filters, fetch‐
9083 mail-like programs, or SMTP server access rule testing. See the
9084 XCLIENT_README document for details.
9085
9086 This feature is available in Postfix 2.1 and later.
9087
9088 By default, no clients are allowed to specify XCLIENT.
9089
9090 Specify a list of network/netmask patterns, separated by commas and/or
9091 whitespace. The mask specifies the number of bits in the network part
9092 of a host address. You can also specify hostnames or .domain names (the
9093 initial dot causes the domain to match any name below it),
9094 "/file/name" or "type:table" patterns. A "/file/name" pattern is re‐
9095 placed by its contents; a "type:table" lookup table is matched when a
9096 table entry matches a lookup string (the lookup result is ignored).
9097 Continue long lines by starting the next line with whitespace. Specify
9098 "!pattern" to exclude an address or network block from the list. The
9099 form "!/file/name" is supported only in Postfix version 2.4 and later.
9100
9101 Note: IP version 6 address information must be specified inside [] in
9102 the smtpd_authorized_xclient_hosts value, and in files specified with
9103 "/file/name". IP version 6 addresses contain the ":" character, and
9104 would otherwise be confused with a "type:table" pattern.
9105
9107 What remote SMTP clients are allowed to use the XFORWARD feature. This
9108 command forwards information that is used to improve logging after
9109 SMTP-based content filters. See the XFORWARD_README document for de‐
9110 tails.
9111
9112 This feature is available in Postfix 2.1 and later.
9113
9114 By default, no clients are allowed to specify XFORWARD.
9115
9116 Specify a list of network/netmask patterns, separated by commas and/or
9117 whitespace. The mask specifies the number of bits in the network part
9118 of a host address. You can also specify hostnames or .domain names (the
9119 initial dot causes the domain to match any name below it),
9120 "/file/name" or "type:table" patterns. A "/file/name" pattern is re‐
9121 placed by its contents; a "type:table" lookup table is matched when a
9122 table entry matches a lookup string (the lookup result is ignored).
9123 Continue long lines by starting the next line with whitespace. Specify
9124 "!pattern" to exclude an address or network block from the list. The
9125 form "!/file/name" is supported only in Postfix version 2.4 and later.
9126
9127 Note: IP version 6 address information must be specified inside [] in
9128 the smtpd_authorized_xforward_hosts value, and in files specified with
9129 "/file/name". IP version 6 addresses contain the ":" character, and
9130 would otherwise be confused with a "type:table" pattern.
9131
9133 The text that follows the 220 status code in the SMTP greeting banner.
9134 Some people like to see the mail version advertised. By default, Post‐
9135 fix shows no version.
9136
9137 You MUST specify $myhostname at the start of the text. This is required
9138 by the SMTP protocol.
9139
9140 Example:
9141
9142 smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
9143
9145 The maximal number of AUTH commands that any client is allowed to send
9146 to this service per time unit, regardless of whether or not Postfix ac‐
9147 tually accepts those commands. The time unit is specified with the
9148 anvil_rate_time_unit configuration parameter.
9149
9150 By default, there is no limit on the number of AUTH commands that a
9151 client may send.
9152
9153 To disable this feature, specify a limit of 0.
9154
9155 WARNING: The purpose of this feature is to limit abuse. It must not be
9156 used to regulate legitimate mail traffic.
9157
9158 This feature is available in Postfix 3.1 and later.
9159
9161 How many simultaneous connections any client is allowed to make to this
9162 service. By default, the limit is set to half the default process
9163 limit value.
9164
9165 To disable this feature, specify a limit of 0.
9166
9167 WARNING: The purpose of this feature is to limit abuse. It must not be
9168 used to regulate legitimate mail traffic.
9169
9170 This feature is available in Postfix 2.2 and later.
9171
9173 The maximal number of connection attempts any client is allowed to make
9174 to this service per time unit. The time unit is specified with the
9175 anvil_rate_time_unit configuration parameter.
9176
9177 By default, a client can make as many connections per time unit as
9178 Postfix can accept.
9179
9180 To disable this feature, specify a limit of 0.
9181
9182 WARNING: The purpose of this feature is to limit abuse. It must not be
9183 used to regulate legitimate mail traffic.
9184
9185 This feature is available in Postfix 2.2 and later.
9186
9187 Example:
9188
9189 smtpd_client_connection_rate_limit = 1000
9190
9192 Clients that are excluded from smtpd_client_*_count/rate_limit restric‐
9193 tions. See the mynetworks parameter description for the parameter value
9194 syntax.
9195
9196 By default, clients in trusted networks are excluded. Specify a list of
9197 network blocks, hostnames or .domain names (the initial dot causes the
9198 domain to match any name below it).
9199
9200 Note: IP version 6 address information must be specified inside [] in
9201 the smtpd_client_event_limit_exceptions value, and in files specified
9202 with "/file/name". IP version 6 addresses contain the ":" character,
9203 and would otherwise be confused with a "type:table" pattern.
9204
9205 Pattern matching of domain names is controlled by the presence or ab‐
9206 sence of "smtpd_client_event_limit_exceptions" in the parent_do‐
9207 main_matches_subdomains parameter value (Postfix 3.0 and later).
9208
9209 This feature is available in Postfix 2.2 and later.
9210
9212 The maximal number of message delivery requests that any client is al‐
9213 lowed to make to this service per time unit, regardless of whether or
9214 not Postfix actually accepts those messages. The time unit is speci‐
9215 fied with the anvil_rate_time_unit configuration parameter.
9216
9217 By default, a client can send as many message delivery requests per
9218 time unit as Postfix can accept.
9219
9220 To disable this feature, specify a limit of 0.
9221
9222 WARNING: The purpose of this feature is to limit abuse. It must not be
9223 used to regulate legitimate mail traffic.
9224
9225 This feature is available in Postfix 2.2 and later.
9226
9227 Example:
9228
9229 smtpd_client_message_rate_limit = 1000
9230
9232 The maximal number of new (i.e., uncached) TLS sessions that a remote
9233 SMTP client is allowed to negotiate with this service per time unit.
9234 The time unit is specified with the anvil_rate_time_unit configuration
9235 parameter.
9236
9237 By default, a remote SMTP client can negotiate as many new TLS sessions
9238 per time unit as Postfix can accept.
9239
9240 To disable this feature, specify a limit of 0. Otherwise, specify a
9241 limit that is at least the per-client concurrent session limit, or else
9242 legitimate client sessions may be rejected.
9243
9244 WARNING: The purpose of this feature is to limit abuse. It must not be
9245 used to regulate legitimate mail traffic.
9246
9247 This feature is available in Postfix 2.3 and later.
9248
9249 Example:
9250
9251 smtpd_client_new_tls_session_rate_limit = 100
9252
9254 Enable logging of the remote SMTP client port in addition to the host‐
9255 name and IP address. The logging format is "host[address]:port".
9256
9257 This feature is available in Postfix 2.5 and later.
9258
9260 The maximal number of recipient addresses that any client is allowed to
9261 send to this service per time unit, regardless of whether or not Post‐
9262 fix actually accepts those recipients. The time unit is specified with
9263 the anvil_rate_time_unit configuration parameter.
9264
9265 By default, a client can send as many recipient addresses per time unit
9266 as Postfix can accept.
9267
9268 To disable this feature, specify a limit of 0.
9269
9270 WARNING: The purpose of this feature is to limit abuse. It must not be
9271 used to regulate legitimate mail traffic.
9272
9273 This feature is available in Postfix 2.2 and later.
9274
9275 Example:
9276
9277 smtpd_client_recipient_rate_limit = 1000
9278
9280 Optional restrictions that the Postfix SMTP server applies in the con‐
9281 text of a client connection request. See SMTPD_ACCESS_README, section
9282 "Delayed evaluation of SMTP access restriction lists" for a discussion
9283 of evaluation context and time.
9284
9285 The default is to allow all connection requests.
9286
9287 Specify a list of restrictions, separated by commas and/or whitespace.
9288 Continue long lines by starting the next line with whitespace. Re‐
9289 strictions are applied in the order as specified; the first restriction
9290 that matches wins.
9291
9292 The following restrictions are specific to client hostname or client
9293 network address information.
9294
9295 check_ccert_access type:table
9296 By default use the remote SMTP client certificate fingerprint or
9297 the public key fingerprint (Postfix 2.9 and later) as the lookup
9298 key for the specified access(5) database; with Postfix version
9299 2.2, also require that the remote SMTP client certificate is
9300 verified successfully. The fingerprint digest algorithm is con‐
9301 figurable via the smtpd_tls_fingerprint_digest parameter
9302 (hard-coded as md5 prior to Postfix version 2.5). This feature
9303 requires "smtpd_tls_ask_ccert = yes" and is available with Post‐
9304 fix version 2.2 and later.
9305 The default algorithm is sha256 with Postfix >= 3.6 and the com‐
9306 patibility_level set to 3.6 or higher. With Postfix <= 3.5, the
9307 default algorithm is md5. The best-practice algorithm is now
9308 sha256. Recent advances in hash function cryptanalysis have led
9309 to md5 and sha1 being deprecated in favor of sha256. However,
9310 as long as there are no known "second pre-image" attacks against
9311 the older algorithms, their use in this context, though not rec‐
9312 ommended, is still likely safe.
9313 Alternatively, check_ccert_access accepts an explicit search or‐
9314 der (Postfix 3.5 and later). The default search order as de‐
9315 scribed above corresponds with:
9316 check_ccert_access { type:table, { search_order = cert_finger‐
9317 print, pubkey_fingerprint } }
9318 The commas are optional.
9319
9320 check_client_access type:table
9321 Search the specified access database for the client hostname,
9322 parent domains, client IP address, or networks obtained by
9323 stripping least significant octets. See the access(5) manual
9324 page for details.
9325
9326 check_client_a_access type:table
9327 Search the specified access(5) database for the IP addresses for
9328 the client hostname, and execute the corresponding action.
9329 Note: a result of "OK" is not allowed for safety reasons. In‐
9330 stead, use DUNNO in order to exclude specific hosts from
9331 denylists. This feature is available in Postfix 3.0 and later.
9332
9333 check_client_mx_access type:table
9334 Search the specified access(5) database for the MX hosts for the
9335 client hostname, and execute the corresponding action. If no MX
9336 record is found, look up A or AAAA records, just like the Post‐
9337 fix SMTP client would. Note: a result of "OK" is not allowed for
9338 safety reasons. Instead, use DUNNO in order to exclude specific
9339 hosts from denylists. This feature is available in Postfix 2.7
9340 and later.
9341
9342 check_client_ns_access type:table
9343 Search the specified access(5) database for the DNS servers for
9344 the client hostname, and execute the corresponding action.
9345 Note: a result of "OK" is not allowed for safety reasons. In‐
9346 stead, use DUNNO in order to exclude specific hosts from
9347 denylists. This feature is available in Postfix 2.7 and later.
9348
9349 check_reverse_client_hostname_access type:table
9350 Search the specified access database for the unverified reverse
9351 client hostname, parent domains, client IP address, or networks
9352 obtained by stripping least significant octets. See the ac‐
9353 cess(5) manual page for details. Note: a result of "OK" is not
9354 allowed for safety reasons. Instead, use DUNNO in order to ex‐
9355 clude specific hosts from denylists. This feature is available
9356 in Postfix 2.6 and later.
9357
9358 check_reverse_client_hostname_a_access type:table
9359 Search the specified access(5) database for the IP addresses for
9360 the unverified reverse client hostname, and execute the corre‐
9361 sponding action. Note: a result of "OK" is not allowed for
9362 safety reasons. Instead, use DUNNO in order to exclude specific
9363 hosts from denylists. This feature is available in Postfix 3.0
9364 and later.
9365
9366 check_reverse_client_hostname_mx_access type:table
9367 Search the specified access(5) database for the MX hosts for the
9368 unverified reverse client hostname, and execute the correspond‐
9369 ing action. If no MX record is found, look up A or AAAA
9370 records, just like the Postfix SMTP client would. Note: a re‐
9371 sult of "OK" is not allowed for safety reasons. Instead, use
9372 DUNNO in order to exclude specific hosts from denylists. This
9373 feature is available in Postfix 2.7 and later.
9374
9375 check_reverse_client_hostname_ns_access type:table
9376 Search the specified access(5) database for the DNS servers for
9377 the unverified reverse client hostname, and execute the corre‐
9378 sponding action. Note: a result of "OK" is not allowed for
9379 safety reasons. Instead, use DUNNO in order to exclude specific
9380 hosts from denylists. This feature is available in Postfix 2.7
9381 and later.
9382
9383 check_sasl_access type:table
9384 Use the remote SMTP client SASL user name as the lookup key for
9385 the specified access(5) database. The lookup key has the form
9386 "username@domainname" when the smtpd_sasl_local_domain parameter
9387 value is non-empty. Unlike the check_client_access feature,
9388 check_sasl_access does not perform matches of parent domains or
9389 IP subnet ranges. This feature is available with Postfix ver‐
9390 sion 2.11 and later.
9391
9392 permit_inet_interfaces
9393 Permit the request when the client IP address matches $inet_in‐
9394 terfaces.
9395
9396 permit_mynetworks
9397 Permit the request when the client IP address matches any net‐
9398 work or network address listed in $mynetworks.
9399
9400 permit_sasl_authenticated
9401 Permit the request when the client is successfully authenticated
9402 via the RFC 4954 (AUTH) protocol.
9403
9404 permit_tls_all_clientcerts
9405 Permit the request when the remote SMTP client certificate is
9406 verified successfully. This option must be used only if a spe‐
9407 cial CA issues the certificates and only this CA is listed as a
9408 trusted CA. Otherwise, clients with a third-party certificate
9409 would also be allowed to relay. Specify "tls_append_default_CA
9410 = no" when the trusted CA is specified with smtpd_tls_CAfile or
9411 smtpd_tls_CApath, to prevent Postfix from appending the sys‐
9412 tem-supplied default CAs. This feature requires
9413 "smtpd_tls_ask_ccert = yes" and is available with Postfix ver‐
9414 sion 2.2 and later.
9415
9416 permit_tls_clientcerts
9417 Permit the request when the remote SMTP client certificate fin‐
9418 gerprint or public key fingerprint (Postfix 2.9 and later) is
9419 listed in $relay_clientcerts. The fingerprint digest algorithm
9420 is configurable via the smtpd_tls_fingerprint_digest parameter
9421 (hard-coded as md5 prior to Postfix version 2.5). This feature
9422 requires "smtpd_tls_ask_ccert = yes" and is available with Post‐
9423 fix version 2.2 and later.
9424 The default algorithm is sha256 with Postfix >= 3.6 and the com‐
9425 patibility_level set to 3.6 or higher. With Postfix <= 3.5, the
9426 default algorithm is md5. The best-practice algorithm is now
9427 sha256. Recent advances in hash function cryptanalysis have led
9428 to md5 and sha1 being deprecated in favor of sha256. However,
9429 as long as there are no known "second pre-image" attacks against
9430 the older algorithms, their use in this context, though not rec‐
9431 ommended, is still likely safe.
9432
9433 reject_rbl_client rbl_domain=d.d.d.d
9434 Reject the request when the reversed client network address is
9435 listed with the A record "d.d.d.d" under rbl_domain (Postfix
9436 version 2.1 and later only). Each "d" is a number, or a pattern
9437 inside "[]" that contains one or more ";"-separated numbers or
9438 number..number ranges (Postfix version 2.8 and later). If no
9439 "=d.d.d.d" is specified, reject the request when the reversed
9440 client network address is listed with any A record under rbl_do‐
9441 main.
9442 The maps_rbl_reject_code parameter specifies the response code
9443 for rejected requests (default: 554), the default_rbl_reply
9444 parameter specifies the default server reply, and the rbl_re‐
9445 ply_maps parameter specifies tables with server replies indexed
9446 by rbl_domain. This feature is available in Postfix 2.0 and
9447 later.
9448
9449 permit_dnswl_client dnswl_domain=d.d.d.d
9450 Accept the request when the reversed client network address is
9451 listed with the A record "d.d.d.d" under dnswl_domain. Each "d"
9452 is a number, or a pattern inside "[]" that contains one or more
9453 ";"-separated numbers or number..number ranges. If no
9454 "=d.d.d.d" is specified, accept the request when the reversed
9455 client network address is listed with any A record under
9456 dnswl_domain.
9457 For safety, permit_dnswl_client is silently ignored when it
9458 would override reject_unauth_destination. The result is DE‐
9459 FER_IF_REJECT when allowlist lookup fails. This feature is
9460 available in Postfix 2.8 and later.
9461
9462 reject_rhsbl_client rbl_domain=d.d.d.d
9463 Reject the request when the client hostname is listed with the A
9464 record "d.d.d.d" under rbl_domain (Postfix version 2.1 and later
9465 only). Each "d" is a number, or a pattern inside "[]" that con‐
9466 tains one or more ";"-separated numbers or number..number ranges
9467 (Postfix version 2.8 and later). If no "=d.d.d.d" is specified,
9468 reject the request when the client hostname is listed with any A
9469 record under rbl_domain. See the reject_rbl_client description
9470 above for additional RBL related configuration parameters. This
9471 feature is available in Postfix 2.0 and later; with Postfix ver‐
9472 sion 2.8 and later, reject_rhsbl_reverse_client will usually
9473 produce better results.
9474
9475 permit_rhswl_client rhswl_domain=d.d.d.d
9476 Accept the request when the client hostname is listed with the A
9477 record "d.d.d.d" under rhswl_domain. Each "d" is a number, or a
9478 pattern inside "[]" that contains one or more ";"-separated num‐
9479 bers or number..number ranges. If no "=d.d.d.d" is specified,
9480 accept the request when the client hostname is listed with any A
9481 record under rhswl_domain.
9482 Caution: client name allowlisting is fragile, since the client
9483 name lookup can fail due to temporary outages. Client name al‐
9484 lowlisting should be used only to reduce false positives in e.g.
9485 DNS-based blocklists, and not for making access rule exceptions.
9486 For safety, permit_rhswl_client is silently ignored when it
9487 would override reject_unauth_destination. The result is DE‐
9488 FER_IF_REJECT when allowlist lookup fails. This feature is
9489 available in Postfix 2.8 and later.
9490
9491 reject_rhsbl_reverse_client rbl_domain=d.d.d.d
9492 Reject the request when the unverified reverse client hostname
9493 is listed with the A record "d.d.d.d" under rbl_domain. Each
9494 "d" is a number, or a pattern inside "[]" that contains one or
9495 more ";"-separated numbers or number..number ranges. If no
9496 "=d.d.d.d" is specified, reject the request when the unverified
9497 reverse client hostname is listed with any A record under
9498 rbl_domain. See the reject_rbl_client description above for ad‐
9499 ditional RBL related configuration parameters. This feature is
9500 available in Postfix 2.8 and later.
9501
9502 reject_unknown_client_hostname (with Postfix < 2.3: reject_un‐
9503 known_client)
9504 Reject the request when 1) the client IP address->name mapping
9505 fails, or 2) the name->address mapping fails, or 3) the
9506 name->address mapping does not match the client IP address.
9507 This is a stronger restriction than the reject_unknown_re‐
9508 verse_client_hostname feature, which triggers only under condi‐
9509 tion 1) above.
9510 The unknown_client_reject_code parameter specifies the response
9511 code for rejected requests (default: 450). The reply is always
9512 450 in case the address->name or name->address lookup failed due
9513 to a temporary problem.
9514
9515 reject_unknown_reverse_client_hostname
9516 Reject the request when the client IP address has no ad‐
9517 dress->name mapping.
9518 This is a weaker restriction than the reject_un‐
9519 known_client_hostname feature, which requires not only that the
9520 address->name and name->address mappings exist, but also that
9521 the two mappings reproduce the client IP address.
9522 The unknown_client_reject_code parameter specifies the response
9523 code for rejected requests (default: 450). The reply is always
9524 450 in case the address->name lookup failed due to a temporary
9525 problem.
9526 This feature is available in Postfix 2.3 and later.
9527
9528 In addition, you can use any of the following generic restrictions.
9529 These restrictions are applicable in any SMTP command context.
9530
9531 check_policy_service servername
9532 Query the specified policy server. See the SMTPD_POLICY_README
9533 document for details. This feature is available in Postfix 2.1
9534 and later.
9535
9536 defer Defer the request. The client is told to try again later. This
9537 restriction is useful at the end of a restriction list, to make
9538 the default policy explicit.
9539 The defer_code parameter specifies the SMTP server reply code
9540 (default: 450).
9541
9542 defer_if_permit
9543 Defer the request if some later restriction would result in an
9544 explicit or implicit PERMIT action. This is useful when a
9545 denylisting feature fails due to a temporary problem. This fea‐
9546 ture is available in Postfix version 2.1 and later.
9547
9548 defer_if_reject
9549 Defer the request if some later restriction would result in a
9550 REJECT action. This is useful when an allowlisting feature
9551 fails due to a temporary problem. This feature is available in
9552 Postfix version 2.1 and later.
9553
9554 permit Permit the request. This restriction is useful at the end of a
9555 restriction list, to make the default policy explicit.
9556
9557 reject_multi_recipient_bounce
9558 Reject the request when the envelope sender is the null address,
9559 and the message has multiple envelope recipients. This usage has
9560 rare but legitimate applications: under certain conditions,
9561 multi-recipient mail that was posted with the DSN option NO‐
9562 TIFY=NEVER may be forwarded with the null sender address.
9563 Note: this restriction can only work reliably when used in
9564 smtpd_data_restrictions or smtpd_end_of_data_restrictions, be‐
9565 cause the total number of recipients is not known at an earlier
9566 stage of the SMTP conversation. Use at the RCPT stage will only
9567 reject the second etc. recipient.
9568 The multi_recipient_bounce_reject_code parameter specifies the
9569 response code for rejected requests (default: 550). This fea‐
9570 ture is available in Postfix 2.1 and later.
9571
9572 reject_plaintext_session
9573 Reject the request when the connection is not encrypted. This
9574 restriction should not be used before the client has had a
9575 chance to negotiate encryption with the AUTH or STARTTLS com‐
9576 mands.
9577 The plaintext_reject_code parameter specifies the response code
9578 for rejected requests (default: 450). This feature is avail‐
9579 able in Postfix 2.3 and later.
9580
9581 reject_unauth_pipelining
9582 Reject the request when the client sends SMTP commands ahead of
9583 time where it is not allowed, or when the client sends SMTP com‐
9584 mands ahead of time without knowing that Postfix actually sup‐
9585 ports ESMTP command pipelining. This stops mail from bulk mail
9586 software that improperly uses ESMTP command pipelining in order
9587 to speed up deliveries.
9588 With Postfix 2.6 and later, the SMTP server sets a per-session
9589 flag whenever it detects illegal pipelining, including pipelined
9590 HELO or EHLO commands. The reject_unauth_pipelining feature sim‐
9591 ply tests whether the flag was set at any point in time during
9592 the session.
9593 With older Postfix versions, reject_unauth_pipelining checks the
9594 current status of the input read queue, and its usage is not
9595 recommended in contexts other than smtpd_data_restrictions.
9596
9597 reject Reject the request. This restriction is useful at the end of a
9598 restriction list, to make the default policy explicit. The re‐
9599 ject_code configuration parameter specifies the response code
9600 for rejected requests (default: 554).
9601
9602 sleep seconds
9603 Pause for the specified number of seconds and proceed with the
9604 next restriction in the list, if any. This may stop zombie mail
9605 when used as:
9606 /etc/postfix/main.cf:
9607 smtpd_client_restrictions =
9608 sleep 1, reject_unauth_pipelining
9609 smtpd_delay_reject = no
9610 This feature is available in Postfix 2.3.
9611
9612 warn_if_reject
9613 A safety net for testing. When "warn_if_reject" is placed before
9614 a reject-type restriction, access table query, or check_pol‐
9615 icy_service query, this logs a "reject_warning" message instead
9616 of rejecting a request (when a reject-type restriction fails due
9617 to a temporary error, this logs a "reject_warning" message for
9618 any implicit "defer_if_permit" actions that would normally pre‐
9619 vent mail from being accepted by some later access restriction).
9620 This feature has no effect on defer_if_reject restrictions.
9621
9622 Other restrictions that are valid in this context:
9623
9624 • SMTP command specific restrictions that are described under the
9625 smtpd_helo_restrictions, smtpd_sender_restrictions or smtpd_re‐
9626 cipient_restrictions parameters. When helo, sender or recipient
9627 restrictions are listed under smtpd_client_restrictions, they
9628 have effect only with "smtpd_delay_reject = yes", so that
9629 $smtpd_client_restrictions is evaluated at the time of the RCPT
9630 TO command.
9631
9632 Example:
9633
9634 smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname
9635
9637 A mechanism to transform commands from remote SMTP clients. This is a
9638 last-resort tool to work around client commands that break interoper‐
9639 ability with the Postfix SMTP server. Other uses involve fault injec‐
9640 tion to test Postfix's handling of invalid commands.
9641
9642 Specify the name of a "type:table" lookup table. The search string is
9643 the SMTP command as received from the remote SMTP client, except that
9644 initial whitespace and the trailing <CR><LF> are removed. The result
9645 value is executed by the Postfix SMTP server.
9646
9647 There is no need to use smtpd_command_filter for the following cases:
9648
9649 • Use "resolve_numeric_domain = yes" to accept "user@ipaddress".
9650
9651 • Postfix already accepts the correct form "user@[ipaddress]". Use
9652 virtual_alias_maps or canonical_maps to translate these into do‐
9653 main names if necessary.
9654
9655 • Use "strict_rfc821_envelopes = no" to accept "RCPT TO:<User Name
9656 <user@example.com>>". Postfix will ignore the "User Name" part
9657 and deliver to the <user@example.com> address.
9658
9659 Examples of problems that can be solved with the smtpd_command_filter
9660 feature:
9661
9662 /etc/postfix/main.cf:
9663 smtpd_command_filter = pcre:/etc/postfix/command_filter
9664
9665 /etc/postfix/command_filter:
9666 # Work around clients that send malformed HELO commands.
9667 /^HELO\s*$/ HELO domain.invalid
9668
9669 # Work around clients that send empty lines.
9670 /^\s*$/ NOOP
9671
9672 # Work around clients that send RCPT TO:<'user@domain'>.
9673 # WARNING: do not lose the parameters that follow the address.
9674 /^(RCPT\s+TO:\s*<)'([^[:space:]]+)'(>.*)/ $1$2$3
9675
9676 # Append XVERP to MAIL FROM commands to request VERP-style delivery.
9677 # See VERP_README for more information on how to use Postfix VERP.
9678 /^(MAIL\s+FROM:\s*<listname@example\.com>.*)/ $1 XVERP
9679
9680 # Bounce-never mail sink. Use notify_classes=bounce,resource,software
9681 # to send bounced mail to the postmaster (with message body removed).
9682 /^(RCPT\s+TO:\s*<.*>.*)\s+NOTIFY=\S+(.*)/ $1 NOTIFY=NEVER$2
9683 /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER
9684
9685 This feature is available in Postfix 2.7.
9686
9688 Optional access restrictions that the Postfix SMTP server applies in
9689 the context of the SMTP DATA command. See SMTPD_ACCESS_README, section
9690 "Delayed evaluation of SMTP access restriction lists" for a discussion
9691 of evaluation context and time.
9692
9693 This feature is available in Postfix 2.0 and later.
9694
9695 Specify a list of restrictions, separated by commas and/or whitespace.
9696 Continue long lines by starting the next line with whitespace. Re‐
9697 strictions are applied in the order as specified; the first restriction
9698 that matches wins.
9699
9700 The following restrictions are valid in this context:
9701
9702 • Generic restrictions that can be used in any SMTP command con‐
9703 text, described under smtpd_client_restrictions.
9704
9705 • SMTP command specific restrictions described under
9706 smtpd_client_restrictions, smtpd_helo_restrictions,
9707 smtpd_sender_restrictions or smtpd_recipient_restrictions.
9708
9709 • However, no recipient information is available in the case of
9710 multi-recipient mail. Acting on only one recipient would be mis‐
9711 leading, because any decision will affect all recipients
9712 equally. Acting on all recipients would require a possibly very
9713 large amount of memory, and would also be misleading for the
9714 reasons mentioned before.
9715
9716 Examples:
9717
9718 smtpd_data_restrictions = reject_unauth_pipelining
9719 smtpd_data_restrictions = reject_multi_recipient_bounce
9720
9722 Postpone the start of an SMTP mail transaction until a valid RCPT TO
9723 command is received. Specify "no" to create a mail transaction as soon
9724 as the Postfix SMTP server receives a valid MAIL FROM command.
9725
9726 With sites that reject lots of mail, the default setting reduces the
9727 use of disk, CPU and memory resources. The downside is that rejected
9728 recipients are logged with NOQUEUE instead of a mail transaction ID.
9729 This complicates the logfile analysis of multi-recipient mail.
9730
9731 This feature is available in Postfix 2.3 and later.
9732
9734 Wait until the RCPT TO command before evaluating $smtpd_client_restric‐
9735 tions, $smtpd_helo_restrictions and $smtpd_sender_restrictions, or wait
9736 until the ETRN command before evaluating $smtpd_client_restrictions and
9737 $smtpd_helo_restrictions.
9738
9739 This feature is turned on by default because some clients apparently
9740 mis-behave when the Postfix SMTP server rejects commands before RCPT
9741 TO.
9742
9743 The default setting has one major benefit: it allows Postfix to log re‐
9744 cipient address information when rejecting a client name/address or
9745 sender address, so that it is possible to find out whose mail is being
9746 rejected.
9747
9749 Lookup tables, indexed by the remote SMTP client address, with case in‐
9750 sensitive lists of EHLO keywords (pipelining, starttls, auth, etc.)
9751 that the Postfix SMTP server will not send in the EHLO response to a
9752 remote SMTP client. See smtpd_discard_ehlo_keywords for details. The
9753 tables are not searched by hostname for robustness reasons.
9754
9755 Specify zero or more "type:name" lookup tables, separated by whitespace
9756 or comma. Tables will be searched in the specified order until a match
9757 is found.
9758
9759 This feature is available in Postfix 2.2 and later.
9760
9762 A case insensitive list of EHLO keywords (pipelining, starttls, auth,
9763 etc.) that the Postfix SMTP server will not send in the EHLO response
9764 to a remote SMTP client.
9765
9766 This feature is available in Postfix 2.2 and later.
9767
9768 Notes:
9769
9770 • Specify the silent-discard pseudo keyword to prevent this action
9771 from being logged.
9772
9773 • Use the smtpd_discard_ehlo_keyword_address_maps feature to dis‐
9774 card EHLO keywords selectively.
9775
9777 Optional filter for Postfix SMTP server DNS lookup results. See
9778 smtp_dns_reply_filter for details including an example.
9779
9780 This feature is available in Postfix 3.0 and later.
9781
9783 Optional access restrictions that the Postfix SMTP server applies in
9784 the context of the SMTP END-OF-DATA command. See SMTPD_ACCESS_README,
9785 section "Delayed evaluation of SMTP access restriction lists" for a
9786 discussion of evaluation context and time.
9787
9788 This feature is available in Postfix 2.2 and later.
9789
9790 See smtpd_data_restrictions for details and limitations.
9791
9793 Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
9794 require that clients use TLS encryption. According to RFC 2487 this
9795 MUST NOT be applied in case of a publicly-referenced SMTP server. This
9796 option is therefore off by default.
9797
9798 Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes".
9799
9800 Note 2: when invoked via "sendmail -bs", Postfix will never offer
9801 STARTTLS due to insufficient privileges to access the server private
9802 key. This is intended behavior.
9803
9804 This feature is available in Postfix 2.2 and later. With Postfix 2.3
9805 and later use smtpd_tls_security_level instead.
9806
9808 With Postfix version 2.1 and later: the SMTP server response delay af‐
9809 ter a client has made more than $smtpd_soft_error_limit errors, and
9810 fewer than $smtpd_hard_error_limit errors, without delivering mail.
9811
9812 With Postfix version 2.0 and earlier: the SMTP server delay before
9813 sending a reject (4xx or 5xx) response, when the client has made fewer
9814 than $smtpd_soft_error_limit errors without delivering mail. When the
9815 client has made $smtpd_soft_error_limit or more errors, delay all re‐
9816 sponses with the larger of (number of errors) seconds or $smtpd_er‐
9817 ror_sleep_time.
9818
9819 Specify a non-negative time value (an integral value plus an optional
9820 one-letter suffix that specifies the time unit). Time units: s (sec‐
9821 onds), m (minutes), h (hours), d (days), w (weeks). The default time
9822 unit is s (seconds).
9823
9825 Optional restrictions that the Postfix SMTP server applies in the con‐
9826 text of a client ETRN command. See SMTPD_ACCESS_README, section "De‐
9827 layed evaluation of SMTP access restriction lists" for a discussion of
9828 evaluation context and time.
9829
9830 The Postfix ETRN implementation accepts only destinations that are eli‐
9831 gible for the Postfix "fast flush" service. See the ETRN_README file
9832 for details.
9833
9834 Specify a list of restrictions, separated by commas and/or whitespace.
9835 Continue long lines by starting the next line with whitespace. Re‐
9836 strictions are applied in the order as specified; the first restriction
9837 that matches wins.
9838
9839 The following restrictions are specific to the domain name information
9840 received with the ETRN command.
9841
9842 check_etrn_access type:table
9843 Search the specified access database for the ETRN domain name or
9844 its parent domains. See the access(5) manual page for details.
9845
9846 Other restrictions that are valid in this context:
9847
9848 • Generic restrictions that can be used in any SMTP command con‐
9849 text, described under smtpd_client_restrictions.
9850
9851 • SMTP command specific restrictions described under
9852 smtpd_client_restrictions and smtpd_helo_restrictions.
9853
9854 Example:
9855
9856 smtpd_etrn_restrictions = permit_mynetworks, reject
9857
9859 What characters are allowed in $name expansions of RBL reply templates.
9860 Characters not in the allowed set are replaced by "_". Use C like es‐
9861 capes to specify special characters such as whitespace.
9862
9863 The smtpd_expansion_filter value is not subject to Postfix configura‐
9864 tion parameter $name expansion.
9865
9866 This feature is available in Postfix 2.0 and later.
9867
9869 gus}})
9870 List of commands that cause the Postfix SMTP server to immediately ter‐
9871 minate the session with a 221 code. This can be used to disconnect
9872 clients that obviously attempt to abuse the system. In addition to the
9873 commands listed in this parameter, commands that follow the "Label:"
9874 format of message headers will also cause a disconnect. With Postfix
9875 versions 3.6 and earlier, the default value is "CONNECT GET POST".
9876
9877 This feature is available in Postfix 2.2 and later.
9878
9879 Support for inline regular expressions was added in Postfix version
9880 3.7. See regexp_table(5) for a description of the syntax and features.
9881
9883 The maximal number of errors a remote SMTP client is allowed to make
9884 without delivering mail. The Postfix SMTP server disconnects when the
9885 limit is reached. Normally the default limit is 20, but it changes un‐
9886 der overload to just 1. With Postfix 2.5 and earlier, the SMTP server
9887 always allows up to 20 errors by default. Valid values are greater
9888 than zero.
9889
9891 Require that a remote SMTP client introduces itself with the HELO or
9892 EHLO command before sending the MAIL command or other commands that re‐
9893 quire EHLO negotiation.
9894
9895 Example:
9896
9897 smtpd_helo_required = yes
9898
9900 Optional restrictions that the Postfix SMTP server applies in the con‐
9901 text of a client HELO command. See SMTPD_ACCESS_README, section "De‐
9902 layed evaluation of SMTP access restriction lists" for a discussion of
9903 evaluation context and time.
9904
9905 The default is to permit everything.
9906
9907 Note: specify "smtpd_helo_required = yes" to fully enforce this re‐
9908 striction (without "smtpd_helo_required = yes", a client can simply
9909 skip smtpd_helo_restrictions by not sending HELO or EHLO).
9910
9911 Specify a list of restrictions, separated by commas and/or whitespace.
9912 Continue long lines by starting the next line with whitespace. Re‐
9913 strictions are applied in the order as specified; the first restriction
9914 that matches wins.
9915
9916 The following restrictions are specific to the hostname information re‐
9917 ceived with the HELO or EHLO command.
9918
9919 check_helo_access type:table
9920 Search the specified access(5) database for the HELO or EHLO
9921 hostname or parent domains, and execute the corresponding ac‐
9922 tion. Note: specify "smtpd_helo_required = yes" to fully en‐
9923 force this restriction (without "smtpd_helo_required = yes", a
9924 client can simply skip check_helo_access by not sending HELO or
9925 EHLO).
9926
9927 check_helo_a_access type:table
9928 Search the specified access(5) database for the IP addresses for
9929 the HELO or EHLO hostname, and execute the corresponding action.
9930 Note 1: a result of "OK" is not allowed for safety reasons. In‐
9931 stead, use DUNNO in order to exclude specific hosts from
9932 denylists. Note 2: specify "smtpd_helo_required = yes" to fully
9933 enforce this restriction (without "smtpd_helo_required = yes", a
9934 client can simply skip check_helo_a_access by not sending HELO
9935 or EHLO). This feature is available in Postfix 3.0 and later.
9936
9937 check_helo_mx_access type:table
9938 Search the specified access(5) database for the MX hosts for the
9939 HELO or EHLO hostname, and execute the corresponding action. If
9940 no MX record is found, look up A or AAAA records, just like the
9941 Postfix SMTP client would. Note 1: a result of "OK" is not al‐
9942 lowed for safety reasons. Instead, use DUNNO in order to exclude
9943 specific hosts from denylists. Note 2: specify "smtpd_helo_re‐
9944 quired = yes" to fully enforce this restriction (without
9945 "smtpd_helo_required = yes", a client can simply skip
9946 check_helo_mx_access by not sending HELO or EHLO). This feature
9947 is available in Postfix 2.1 and later.
9948
9949 check_helo_ns_access type:table
9950 Search the specified access(5) database for the DNS servers for
9951 the HELO or EHLO hostname, and execute the corresponding action.
9952 Note 1: a result of "OK" is not allowed for safety reasons. In‐
9953 stead, use DUNNO in order to exclude specific hosts from
9954 denylists. Note 2: specify "smtpd_helo_required = yes" to fully
9955 enforce this restriction (without "smtpd_helo_required = yes", a
9956 client can simply skip check_helo_ns_access by not sending HELO
9957 or EHLO). This feature is available in Postfix 2.1 and later.
9958
9959 reject_invalid_helo_hostname (with Postfix < 2.3: reject_invalid_host‐
9960 name)
9961 Reject the request when the HELO or EHLO hostname is malformed.
9962 Note: specify "smtpd_helo_required = yes" to fully enforce this
9963 restriction (without "smtpd_helo_required = yes", a client can
9964 simply skip reject_invalid_helo_hostname by not sending HELO or
9965 EHLO).
9966 The invalid_hostname_reject_code specifies the response code for
9967 rejected requests (default: 501).
9968
9969 reject_non_fqdn_helo_hostname (with Postfix < 2.3: re‐
9970 ject_non_fqdn_hostname)
9971 Reject the request when the HELO or EHLO hostname is not in
9972 fully-qualified domain or address literal form, as required by
9973 the RFC. Note: specify "smtpd_helo_required = yes" to fully en‐
9974 force this restriction (without "smtpd_helo_required = yes", a
9975 client can simply skip reject_non_fqdn_helo_hostname by not
9976 sending HELO or EHLO).
9977 The non_fqdn_reject_code parameter specifies the response code
9978 for rejected requests (default: 504).
9979
9980 reject_rhsbl_helo rbl_domain=d.d.d.d
9981 Reject the request when the HELO or EHLO hostname is listed with
9982 the A record "d.d.d.d" under rbl_domain (Postfix version 2.1 and
9983 later only). Each "d" is a number, or a pattern inside "[]"
9984 that contains one or more ";"-separated numbers or number..num‐
9985 ber ranges (Postfix version 2.8 and later). If no "=d.d.d.d" is
9986 specified, reject the request when the HELO or EHLO hostname is
9987 listed with any A record under rbl_domain. See the re‐
9988 ject_rbl_client description for additional RBL related configu‐
9989 ration parameters. Note: specify "smtpd_helo_required = yes" to
9990 fully enforce this restriction (without "smtpd_helo_required =
9991 yes", a client can simply skip reject_rhsbl_helo by not sending
9992 HELO or EHLO). This feature is available in Postfix 2.0 and
9993 later.
9994
9995 reject_unknown_helo_hostname (with Postfix < 2.3: reject_unknown_host‐
9996 name)
9997 Reject the request when the HELO or EHLO hostname has no DNS A
9998 or MX record.
9999 The reply is specified with the unknown_hostname_reject_code pa‐
10000 rameter (default: 450) or unknown_helo_hostname_tempfail_action
10001 (default: defer_if_permit). See the respective parameter de‐
10002 scriptions for details.
10003 Note: specify "smtpd_helo_required = yes" to fully enforce this
10004 restriction (without "smtpd_helo_required = yes", a client can
10005 simply skip reject_unknown_helo_hostname by not sending HELO or
10006 EHLO).
10007
10008 Other restrictions that are valid in this context:
10009
10010 • Generic restrictions that can be used in any SMTP command con‐
10011 text, described under smtpd_client_restrictions.
10012
10013 • Client hostname or network address specific restrictions de‐
10014 scribed under smtpd_client_restrictions.
10015
10016 • SMTP command specific restrictions described under
10017 smtpd_sender_restrictions or smtpd_recipient_restrictions. When
10018 sender or recipient restrictions are listed under smtpd_helo_re‐
10019 strictions, they have effect only with "smtpd_delay_reject =
10020 yes", so that $smtpd_helo_restrictions is evaluated at the time
10021 of the RCPT TO command.
10022
10023 Examples:
10024
10025 smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname
10026 smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname
10027
10029 The maximal number of lines in the Postfix SMTP server command history
10030 before it is flushed upon receipt of EHLO, RSET, or end of DATA.
10031
10033 The number of junk commands (NOOP, VRFY, ETRN or RSET) that a remote
10034 SMTP client can send before the Postfix SMTP server starts to increment
10035 the error counter with each junk command. The junk command count is
10036 reset after mail is delivered. See also the smtpd_error_sleep_time and
10037 smtpd_soft_error_limit configuration parameters. Normally the default
10038 limit is 100, but it changes under overload to just 1. With Postfix 2.5
10039 and earlier, the SMTP server always allows up to 100 junk commands by
10040 default.
10041
10043 Enable logging of the named "permit" actions in SMTP server access
10044 lists (by default, the SMTP server logs "reject" actions but not "per‐
10045 mit" actions). This feature does not affect conditional actions such
10046 as "defer_if_permit".
10047
10048 Specify a list of "permit" action names, "/file/name" or "type:table"
10049 patterns, separated by commas and/or whitespace. The list is matched
10050 left to right, and the search stops on the first match. A "/file/name"
10051 pattern is replaced by its contents; a "type:table" lookup table is
10052 matched when a name matches a lookup key (the lookup result is ig‐
10053 nored). Continue long lines by starting the next line with whitespace.
10054 Specify "!pattern" to exclude a name from the list.
10055
10056 Examples:
10057
10058 /etc/postfix/main.cf:
10059 # Log all "permit" actions.
10060 smtpd_log_access_permit_actions = static:all
10061
10062 /etc/postfix/main.cf:
10063 # Log "permit_dnswl_client" only.
10064 smtpd_log_access_permit_actions = permit_dnswl_client
10065
10066 This feature is available in Postfix 2.10 and later.
10067
10069 Lookup tables with Milter settings per remote SMTP client IP address.
10070 The lookup result overrides the smtpd_milters setting, and has the same
10071 syntax.
10072
10073 Note: lookup tables cannot return empty responses. Specify a lookup re‐
10074 sult of DISABLE (case does not matter) to indicate that Milter support
10075 should be disabled.
10076
10077 Example to disable Milters for local clients:
10078
10079 /etc/postfix/main.cf:
10080 smtpd_milter_maps = cidr:/etc/postfix/smtpd_milter_map
10081 smtpd_milters = inet:host:port, { inet:host:port, ... }, ...
10082
10083 /etc/postfix/smtpd_milter_map:
10084 # Disable Milters for local clients.
10085 127.0.0.0/8 DISABLE
10086 192.168.0.0/16 DISABLE
10087 ::/64 DISABLE
10088 2001:db8::/32 DISABLE
10089
10090 This feature is available in Postfix 3.2 and later.
10091
10093 A list of Milter (mail filter) applications for new mail that arrives
10094 via the Postfix smtpd(8) server. Specify space or comma as separator.
10095 See the MILTER_README document for details.
10096
10097 This feature is available in Postfix 2.3 and later.
10098
10100 The minimum plaintext data transfer rate in bytes/second for DATA and
10101 BDAT requests, when deadlines are enabled with smtpd_per_request_dead‐
10102 line. After a read operation transfers N plaintext message bytes (pos‐
10103 sibly after TLS decryption), and after the DATA or BDAT request dead‐
10104 line is decremented by the elapsed time of that read operation, the
10105 DATA or BDAT request deadline is incremented by N/smtpd_min_data_rate
10106 seconds. However, the deadline will never be incremented beyond the
10107 time limit specified with smtpd_timeout.
10108
10109 This feature is available in Postfix 3.7 and later.
10110
10112 List of commands that the Postfix SMTP server replies to with "250 Ok",
10113 without doing any syntax checks and without changing state. This list
10114 overrides any commands built into the Postfix SMTP server.
10115
10117 The lookup key to be used in SMTP access(5) tables instead of the null
10118 sender address.
10119
10121 Attempt to look up the remote SMTP client hostname, and verify that the
10122 name matches the client IP address. A client name is set to "unknown"
10123 when it cannot be looked up or verified, or when name lookup is dis‐
10124 abled. Turning off name lookup reduces delays due to DNS lookup and
10125 increases the maximal inbound delivery rate.
10126
10127 This feature is available in Postfix 2.3 and later.
10128
10130 Change the behavior of the smtpd_timeout and smtpd_starttls_timeout
10131 time limits, from a time limit per read or write system call, to a time
10132 limit to send or receive a complete record (an SMTP command line, SMTP
10133 response line, SMTP message content line, or TLS protocol message).
10134 This limits the impact from hostile peers that trickle data one byte at
10135 a time.
10136
10137 Note: when per-record deadlines are enabled, a short timeout may cause
10138 problems with TLS over very slow network connections. The reasons are
10139 that a TLS protocol message can be up to 16 kbytes long (with TLSv1),
10140 and that an entire TLS protocol message must be sent or received within
10141 the per-record deadline.
10142
10143 This feature is available in Postfix 2.9-3.6. With older Postfix re‐
10144 leases, the behavior is as if this parameter is set to "no". Postfix
10145 3.7 and later use smtpd_per_request_deadline.
10146
10148 Change the behavior of the smtpd_timeout and smtpd_starttls_timeout
10149 time limits, from a time limit per plaintext or TLS read or write call,
10150 to a combined time limit for receiving a complete SMTP request and for
10151 sending a complete SMTP response. The deadline limits only the time
10152 spent waiting for plaintext or TLS read or write calls, not time spent
10153 elsewhere. The per-request deadline limits the impact from hostile
10154 peers that trickle data one byte at a time.
10155
10156 See smtpd_min_data_rate for how the per-request deadline is managed
10157 during the DATA and BDAT phase.
10158
10159 Note: when per-request deadlines are enabled, a short time limit may
10160 cause problems with TLS over very slow network connections. The reason
10161 is that a TLS protocol message can be up to 16 kbytes long (with
10162 TLSv1), and that an entire TLS protocol message must be transferred
10163 within the per-request deadline.
10164
10165 This feature is available in Postfix 3.7 and later. A weaker feature,
10166 called smtpd_per_record_deadline, is available with Postfix 2.9-3.6.
10167 With older Postfix releases, the behavior is as if this parameter is
10168 set to "no".
10169
10170 This feature is available in Postfix 3.7 and later.
10171
10173 problem)
10174 The default action when an SMTPD policy service request fails. Specify
10175 "DUNNO" to behave as if the failed SMTPD policy service request was
10176 not sent, and to continue processing other access restrictions, if any.
10177
10178 Limitations:
10179
10180 • This parameter may specify any value that would be a valid SMTPD
10181 policy server response (or access(5) map lookup result). An ac‐
10182 cess(5) map or policy server in this parameter value may need to
10183 be declared in advance with a restriction_class setting.
10184
10185 • If the specified action invokes another check_policy_service re‐
10186 quest, that request will have the built-in default action.
10187
10188 This feature is available in Postfix 3.0 and later.
10189
10191 The time after which an idle SMTPD policy service connection is closed.
10192
10193 Specify a non-zero time value (an integral value plus an optional
10194 one-letter suffix that specifies the time unit). Time units: s (sec‐
10195 onds), m (minutes), h (hours), d (days), w (weeks). The default time
10196 unit is s (seconds).
10197
10198 This feature is available in Postfix 2.1 and later.
10199
10201 The time after which an active SMTPD policy service connection is
10202 closed.
10203
10204 Specify a non-zero time value (an integral value plus an optional
10205 one-letter suffix that specifies the time unit). Time units: s (sec‐
10206 onds), m (minutes), h (hours), d (days), w (weeks). The default time
10207 unit is s (seconds).
10208
10209 This feature is available in Postfix 2.1 and later.
10210
10212 Optional information that the Postfix SMTP server specifies in the
10213 "policy_context" attribute of a policy service request (originally, to
10214 share the same service endpoint among multiple check_policy_service
10215 clients).
10216
10217 This feature is available in Postfix 3.1 and later.
10218
10220 The maximal number of requests per SMTPD policy service connection, or
10221 zero (no limit). Once a connection reaches this limit, the connection
10222 is closed and the next request will be sent over a new connection. This
10223 is a workaround to avoid error-recovery delays with policy servers that
10224 cannot maintain a persistent connection.
10225
10226 This feature is available in Postfix 3.0 and later.
10227
10229 The delay between attempts to resend a failed SMTPD policy service re‐
10230 quest. Specify a value greater than zero.
10231
10232 Specify a non-zero time value (an integral value plus an optional
10233 one-letter suffix that specifies the time unit). Time units: s (sec‐
10234 onds), m (minutes), h (hours), d (days), w (weeks). The default time
10235 unit is s (seconds).
10236
10237 This feature is available in Postfix 3.0 and later.
10238
10240 The time limit for connecting to, writing to, or receiving from a dele‐
10241 gated SMTPD policy server.
10242
10243 Specify a non-zero time value (an integral value plus an optional
10244 one-letter suffix that specifies the time unit). Time units: s (sec‐
10245 onds), m (minutes), h (hours), d (days), w (weeks). The default time
10246 unit is s (seconds).
10247
10248 This feature is available in Postfix 2.1 and later.
10249
10251 The maximal number of attempts to send an SMTPD policy service request
10252 before giving up. Specify a value greater than zero.
10253
10254 This feature is available in Postfix 3.0 and later.
10255
10257 How the Postfix SMTP server announces itself to the proxy filter. By
10258 default, the Postfix hostname is used.
10259
10260 This feature is available in Postfix 2.1 and later.
10261
10263 The hostname and TCP port of the mail filtering proxy server. The
10264 proxy receives all mail from the Postfix SMTP server, and is supposed
10265 to give the result to another Postfix SMTP server process.
10266
10267 Specify "host:port" or "inet:host:port" for a TCP endpoint, or
10268 "unix:pathname" for a UNIX-domain endpoint. The host can be specified
10269 as an IP address or as a symbolic name; no MX lookups are done. When
10270 no "host" or "host:" is specified, the local machine is assumed. Path‐
10271 name interpretation is relative to the Postfix queue directory.
10272
10273 This feature is available in Postfix 2.1 and later.
10274
10275 The "inet:" and "unix:" prefixes are available in Postfix 2.3 and
10276 later.
10277
10279 List of options that control how the Postfix SMTP server communicates
10280 with a before-queue content filter. Specify zero or more of the follow‐
10281 ing, separated by comma or whitespace.
10282
10283 speed_adjust
10284 Do not connect to a before-queue content filter until an entire
10285 message has been received. This reduces the number of simultane‐
10286 ous before-queue content filter processes.
10287
10288 NOTE 1: A filter must not selectively reject recipients of a multi-re‐
10289 cipient message. Rejecting all recipients is OK, as is accepting all
10290 recipients.
10291
10292 NOTE 2: This feature increases the minimum amount of free queue space
10293 by $message_size_limit. The extra space is needed to save the message
10294 to a temporary file.
10295
10296 This feature is available in Postfix 2.7 and later.
10297
10299 The time limit for connecting to a proxy filter and for sending or re‐
10300 ceiving information. When a connection fails the client gets a generic
10301 error message while more detailed information is logged to the maillog
10302 file.
10303
10304 Specify a non-zero time value (an integral value plus an optional
10305 one-letter suffix that specifies the time unit). Time units: s (sec‐
10306 onds), m (minutes), h (hours), d (days), w (weeks). The default time
10307 unit is s (seconds).
10308
10309 This feature is available in Postfix 2.1 and later.
10310
10312 The maximal number of recipients that the Postfix SMTP server accepts
10313 per message delivery request.
10314
10316 The number of recipients that a remote SMTP client can send in excess
10317 of the limit specified with $smtpd_recipient_limit, before the Postfix
10318 SMTP server increments the per-session error count for each excess re‐
10319 cipient.
10320
10322 Optional restrictions that the Postfix SMTP server applies in the con‐
10323 text of a client RCPT TO command, after smtpd_relay_restrictions. See
10324 SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access re‐
10325 striction lists" for a discussion of evaluation context and time.
10326
10327 With Postfix versions before 2.10, the rules for relay permission and
10328 spam blocking were combined under smtpd_recipient_restrictions, result‐
10329 ing in error-prone configuration. As of Postfix 2.10, relay permission
10330 rules are preferably implemented with smtpd_relay_restrictions, so that
10331 a permissive spam blocking policy under smtpd_recipient_restrictions
10332 will no longer result in a permissive mail relay policy.
10333
10334 For backwards compatibility, sites that migrate from Postfix versions
10335 before 2.10 can set smtpd_relay_restrictions to the empty value, and
10336 use smtpd_recipient_restrictions exactly as before.
10337
10338 IMPORTANT: Either the smtpd_relay_restrictions or the smtpd_recipi‐
10339 ent_restrictions parameter must specify at least one of the following
10340 restrictions. Otherwise Postfix will refuse to receive mail:
10341
10342 reject, reject_unauth_destination
10343
10344 defer, defer_if_permit, defer_unauth_destination
10345
10346 Specify a list of restrictions, separated by commas and/or whitespace.
10347 Continue long lines by starting the next line with whitespace. Re‐
10348 strictions are applied in the order as specified; the first restriction
10349 that matches wins.
10350
10351 The following restrictions are specific to the recipient address that
10352 is received with the RCPT TO command.
10353
10354 check_recipient_access type:table
10355 Search the specified access(5) database for the resolved RCPT TO
10356 address, domain, parent domains, or localpart@, and execute the
10357 corresponding action.
10358
10359 check_recipient_a_access type:table
10360 Search the specified access(5) database for the IP addresses for
10361 the RCPT TO domain, and execute the corresponding action. Note:
10362 a result of "OK" is not allowed for safety reasons. Instead, use
10363 DUNNO in order to exclude specific hosts from denylists. This
10364 feature is available in Postfix 3.0 and later.
10365
10366 check_recipient_mx_access type:table
10367 Search the specified access(5) database for the MX hosts for the
10368 RCPT TO domain, and execute the corresponding action. If no MX
10369 record is found, look up A or AAAA records, just like the Post‐
10370 fix SMTP client would. Note: a result of "OK" is not allowed for
10371 safety reasons. Instead, use DUNNO in order to exclude specific
10372 hosts from denylists. This feature is available in Postfix 2.1
10373 and later.
10374
10375 check_recipient_ns_access type:table
10376 Search the specified access(5) database for the DNS servers for
10377 the RCPT TO domain, and execute the corresponding action. Note:
10378 a result of "OK" is not allowed for safety reasons. Instead, use
10379 DUNNO in order to exclude specific hosts from denylists. This
10380 feature is available in Postfix 2.1 and later.
10381
10382 permit_auth_destination
10383 Permit the request when one of the following is true:
10384
10385 • Postfix is a mail forwarder: the resolved RCPT TO domain matches
10386 $relay_domains or a subdomain thereof, and the address contains
10387 no sender-specified routing (user@elsewhere@domain),
10388
10389 • Postfix is the final destination: the resolved RCPT TO domain
10390 matches $mydestination, $inet_interfaces, $proxy_interfaces,
10391 $virtual_alias_domains, or $virtual_mailbox_domains, and the ad‐
10392 dress contains no sender-specified routing (user@elsewhere@do‐
10393 main).
10394
10395 permit_mx_backup
10396 Permit the request when the local mail system is a backup MX for
10397 the RCPT TO domain, or when the domain is an authorized destina‐
10398 tion (see permit_auth_destination for definition).
10399
10400 • Safety: permit_mx_backup does not accept addresses that have
10401 sender-specified routing information (example: user@else‐
10402 where@domain).
10403
10404 • Safety: permit_mx_backup can be vulnerable to mis-use when ac‐
10405 cess is not restricted with permit_mx_backup_networks.
10406
10407 • Safety: as of Postfix version 2.3, permit_mx_backup no longer
10408 accepts the address when the local mail system is a primary MX
10409 for the recipient domain. Exception: permit_mx_backup accepts
10410 the address when it specifies an authorized destination (see
10411 permit_auth_destination for definition).
10412
10413 • Limitation: mail may be rejected in case of a temporary DNS
10414 lookup problem with Postfix prior to version 2.0.
10415
10416 reject_non_fqdn_recipient
10417 Reject the request when the RCPT TO address specifies a domain
10418 that is not in fully-qualified domain form, as required by the
10419 RFC.
10420 The non_fqdn_reject_code parameter specifies the response code
10421 for rejected requests (default: 504).
10422
10423 reject_rhsbl_recipient rbl_domain=d.d.d.d
10424 Reject the request when the RCPT TO domain is listed with the A
10425 record "d.d.d.d" under rbl_domain (Postfix version 2.1 and later
10426 only). Each "d" is a number, or a pattern inside "[]" that con‐
10427 tains one or more ";"-separated numbers or number..number ranges
10428 (Postfix version 2.8 and later). If no "=d.d.d.d" is specified,
10429 reject the request when the RCPT TO domain is listed with any A
10430 record under rbl_domain.
10431 The maps_rbl_reject_code parameter specifies the response code
10432 for rejected requests (default: 554); the default_rbl_reply pa‐
10433 rameter specifies the default server reply; and the rbl_re‐
10434 ply_maps parameter specifies tables with server replies indexed
10435 by rbl_domain. This feature is available in Postfix version 2.0
10436 and later.
10437
10438 reject_unauth_destination
10439 Reject the request unless one of the following is true:
10440
10441 • Postfix is a mail forwarder: the resolved RCPT TO domain matches
10442 $relay_domains or a subdomain thereof, and contains no
10443 sender-specified routing (user@elsewhere@domain),
10444
10445 • Postfix is the final destination: the resolved RCPT TO domain
10446 matches $mydestination, $inet_interfaces, $proxy_interfaces,
10447 $virtual_alias_domains, or $virtual_mailbox_domains, and con‐
10448 tains no sender-specified routing (user@elsewhere@domain).
10449 The relay_domains_reject_code parameter specifies the response
10450 code for rejected requests (default: 554).
10451
10452 defer_unauth_destination
10453 Reject the same requests as reject_unauth_destination, with a
10454 non-permanent error code. This feature is available in Postfix
10455 2.10 and later.
10456
10457 reject_unknown_recipient_domain
10458 Reject the request when Postfix is not final destination for the
10459 recipient domain, and the RCPT TO domain has 1) no DNS MX and no
10460 DNS A record or 2) a malformed MX record such as a record with a
10461 zero-length MX hostname (Postfix version 2.3 and later).
10462 The reply is specified with the unknown_address_reject_code pa‐
10463 rameter (default: 450), unknown_address_tempfail_action (de‐
10464 fault: defer_if_permit), or 556 (nullmx, Postfix 3.0 and later).
10465 See the respective parameter descriptions for details.
10466
10467 reject_unlisted_recipient (with Postfix version 2.0: check_recipi‐
10468 ent_maps)
10469 Reject the request when the RCPT TO address is not listed in the
10470 list of valid recipients for its domain class. See the smtpd_re‐
10471 ject_unlisted_recipient parameter description for details. This
10472 feature is available in Postfix 2.1 and later.
10473
10474 reject_unverified_recipient
10475 Reject the request when mail to the RCPT TO address is known to
10476 bounce, or when the recipient address destination is not reach‐
10477 able. Address verification information is managed by the ver‐
10478 ify(8) server; see the ADDRESS_VERIFICATION_README file for de‐
10479 tails.
10480 The unverified_recipient_reject_code parameter specifies the nu‐
10481 merical response code when an address is known to bounce (de‐
10482 fault: 450, change it to 550 when you are confident that it is
10483 safe to do so).
10484 The unverified_recipient_defer_code parameter specifies the nu‐
10485 merical response code when an address probe failed due to a tem‐
10486 porary problem (default: 450).
10487 The unverified_recipient_tempfail_action parameter specifies the
10488 action after address probe failure due to a temporary problem
10489 (default: defer_if_permit).
10490 This feature breaks for aliased addresses with "enable_origi‐
10491 nal_recipient = no" (Postfix <= 3.2).
10492 This feature is available in Postfix 2.1 and later.
10493
10494 Other restrictions that are valid in this context:
10495
10496 • Generic restrictions that can be used in any SMTP command con‐
10497 text, described under smtpd_client_restrictions.
10498
10499 • SMTP command specific restrictions described under
10500 smtpd_client_restrictions, smtpd_helo_restrictions and
10501 smtpd_sender_restrictions.
10502
10503 Example:
10504
10505 # The Postfix before 2.10 default mail relay policy. Later Postfix
10506 # versions implement this preferably with smtpd_relay_restrictions.
10507 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
10508
10510 Optional information that is appended after each Postfix SMTP server
10511 4XX or 5XX response.
10512
10513 The following example uses "\c" at the start of the template (supported
10514 in Postfix 2.10 and later) to suppress the line break between the reply
10515 text and the footer text. With earlier Postfix versions, the footer
10516 text always begins on a new line, and the "\c" is output literally.
10517
10518 /etc/postfix/main.cf:
10519 smtpd_reject_footer = \c. For assistance, call 800-555-0101.
10520 Please provide the following information in your problem report:
10521 time ($localtime), client ($client_address) and server
10522 ($server_name).
10523
10524 Server response:
10525
10526 550-5.5.1 <user@example> Recipient address rejected: User
10527 unknown. For assistance, call 800-555-0101. Please provide the
10528 following information in your problem report: time (Jan 4 15:42:00),
10529 client (192.168.1.248) and server (mail1.example.com).
10530
10531 Note: the above text is meant to make it easier to find the Postfix
10532 logfile records for a failed SMTP session. The text itself is not
10533 logged to the Postfix SMTP server's maillog file.
10534
10535 Be sure to keep the text as short as possible. Long text may be trun‐
10536 cated before it is logged to the remote SMTP client's maillog file, or
10537 before it is returned to the sender in a delivery status notification.
10538
10539 The template text is not subject to Postfix configuration parameter
10540 $name expansion. Instead, this feature supports a limited number of
10541 $name attributes in the footer text. These attributes are replaced with
10542 their current value for the SMTP session.
10543
10544 Note: specify $$name in footer text that is looked up from regexp: or
10545 pcre:-based smtpd_reject_footer_maps, otherwise the Postfix server will
10546 not use the footer text and will log a warning instead.
10547
10548 client_address
10549 The Client IP address that is logged in the maillog file.
10550
10551 client_port
10552 The client TCP port that is logged in the maillog file.
10553
10554 localtime
10555 The server local time (Mmm dd hh:mm:ss) that is logged in the
10556 maillog file.
10557
10558 server_name
10559 The server's myhostname value. This attribute is made available
10560 for sites with multiple MTAs (perhaps behind a load-balancer),
10561 where the server name can help the server support team to
10562 quickly find the right log files.
10563
10564 Notes:
10565
10566 • NOT SUPPORTED are other attributes such as sender, recipient, or
10567 main.cf parameters.
10568
10569 • For safety reasons, text that does not match $smtpd_expan‐
10570 sion_filter is censored.
10571
10572 This feature supports the two-character sequence \n as a request for a
10573 line break in the footer text. Postfix automatically inserts after each
10574 line break the three-digit SMTP reply code (and optional enhanced sta‐
10575 tus code) from the original Postfix reject message.
10576
10577 To work around mail software that mis-handles multi-line replies, spec‐
10578 ify the two-character sequence \c at the start of the template. This
10579 suppresses the line break between the reply text and the footer text
10580 (Postfix 2.10 and later).
10581
10582 This feature is available in Postfix 2.8 and later.
10583
10585 Lookup tables, indexed by the complete Postfix SMTP server 4xx or 5xx
10586 response, with reject footer templates. See smtpd_reject_footer for de‐
10587 tails.
10588
10589 Specify zero or more "type:name" lookup tables, separated by whitespace
10590 or comma. Tables will be searched in the specified order until a match
10591 is found.
10592
10593 This feature is available in Postfix 3.4 and later.
10594
10596 Request that the Postfix SMTP server rejects mail for unknown recipient
10597 addresses, even when no explicit reject_unlisted_recipient access re‐
10598 striction is specified. This prevents the Postfix queue from filling up
10599 with undeliverable MAILER-DAEMON messages.
10600
10601 An address is always considered "known" when it matches a virtual(5)
10602 alias or a canonical(5) mapping.
10603
10604 • The recipient domain matches $mydestination, $inet_interfaces or
10605 $proxy_interfaces, but the recipient is not listed in $local_re‐
10606 cipient_maps, and $local_recipient_maps is not null.
10607
10608 • The recipient domain matches $virtual_alias_domains but the re‐
10609 cipient is not listed in $virtual_alias_maps.
10610
10611 • The recipient domain matches $virtual_mailbox_domains but the
10612 recipient is not listed in $virtual_mailbox_maps, and $vir‐
10613 tual_mailbox_maps is not null.
10614
10615 • The recipient domain matches $relay_domains but the recipient is
10616 not listed in $relay_recipient_maps, and $relay_recipient_maps
10617 is not null.
10618
10619 This feature is available in Postfix 2.1 and later.
10620
10622 Request that the Postfix SMTP server rejects mail from unknown sender
10623 addresses, even when no explicit reject_unlisted_sender access restric‐
10624 tion is specified. This can slow down an explosion of forged mail from
10625 worms or viruses.
10626
10627 An address is always considered "known" when it matches a virtual(5)
10628 alias or a canonical(5) mapping.
10629
10630 • The sender domain matches $mydestination, $inet_interfaces or
10631 $proxy_interfaces, but the sender is not listed in $local_recip‐
10632 ient_maps, and $local_recipient_maps is not null.
10633
10634 • The sender domain matches $virtual_alias_domains but the sender
10635 is not listed in $virtual_alias_maps.
10636
10637 • The sender domain matches $virtual_mailbox_domains but the
10638 sender is not listed in $virtual_mailbox_maps, and $vir‐
10639 tual_mailbox_maps is not null.
10640
10641 • The sender domain matches $relay_domains but the sender is not
10642 listed in $relay_recipient_maps, and $relay_recipient_maps is
10643 not null.
10644
10645 This feature is available in Postfix 2.1 and later.
10646
10648 Evaluate smtpd_relay_restrictions before smtpd_recipient_restrictions.
10649 Historically, smtpd_relay_restrictions was evaluated after smtpd_recip‐
10650 ient_restrictions, contradicting documented behavior.
10651
10652 Background: the smtpd_relay_restrictions feature is primarily designed
10653 to enforce a mail relaying policy, while smtpd_recipient_restrictions
10654 is primarily designed to enforce spam blocking policy. Both are evalu‐
10655 ated while replying to the RCPT TO command, and both support the same
10656 features.
10657
10658 This feature is available in Postfix 3.6 and later.
10659
10661 cated, defer_unauth_destination)
10662 Access restrictions for mail relay control that the Postfix SMTP server
10663 applies in the context of the RCPT TO command, before smtpd_recipi‐
10664 ent_restrictions. See SMTPD_ACCESS_README, section "Delayed evaluation
10665 of SMTP access restriction lists" for a discussion of evaluation con‐
10666 text and time.
10667
10668 With Postfix versions before 2.10, the rules for relay permission and
10669 spam blocking were combined under smtpd_recipient_restrictions, result‐
10670 ing in error-prone configuration. As of Postfix 2.10, relay permission
10671 rules are preferably implemented with smtpd_relay_restrictions, so that
10672 a permissive spam blocking policy under smtpd_recipient_restrictions
10673 will no longer result in a permissive mail relay policy.
10674
10675 For backwards compatibility, sites that migrate from Postfix versions
10676 before 2.10 can set smtpd_relay_restrictions to the empty value, and
10677 use smtpd_recipient_restrictions exactly as before.
10678
10679 By default, the Postfix SMTP server accepts:
10680
10681 • Mail from clients whose IP address matches $mynetworks, or:
10682
10683 • Mail from clients who are SASL authenticated, or:
10684
10685 • Mail to remote destinations that match $relay_domains, except
10686 for addresses that contain sender-specified routing (user@else‐
10687 where@domain), or:
10688
10689 • Mail to local destinations that match $inet_interfaces or
10690 $proxy_interfaces, $mydestination, $virtual_alias_domains, or
10691 $virtual_mailbox_domains.
10692
10693 IMPORTANT: Either the smtpd_relay_restrictions or the smtpd_recipi‐
10694 ent_restrictions parameter must specify at least one of the following
10695 restrictions. Otherwise Postfix will refuse to receive mail:
10696
10697 reject, reject_unauth_destination
10698
10699 defer, defer_if_permit, defer_unauth_destination
10700
10701 Specify a list of restrictions, separated by commas and/or whitespace.
10702 Continue long lines by starting the next line with whitespace. The
10703 same restrictions are available as documented under smtpd_recipient_re‐
10704 strictions.
10705
10706 This feature is available in Postix 2.10 and later.
10707
10709 User-defined aliases for groups of access restrictions. The aliases can
10710 be specified in smtpd_recipient_restrictions etc., and on the
10711 right-hand side of a Postfix access(5) table.
10712
10713 One major application is for implementing per-recipient UCE control.
10714 See the RESTRICTION_CLASS_README document for other examples.
10715
10717 The application name that the Postfix SMTP server uses for SASL server
10718 initialization. This controls the name of the SASL configuration file.
10719 The default value is smtpd, corresponding to a SASL configuration file
10720 named smtpd.conf.
10721
10722 This feature is available in Postfix 2.1 and 2.2. With Postfix 2.3 it
10723 was renamed to smtpd_sasl_path.
10724
10726 Enable SASL authentication in the Postfix SMTP server. By default, the
10727 Postfix SMTP server does not use authentication.
10728
10729 If a remote SMTP client is authenticated, the permit_sasl_authenticated
10730 access restriction can be used to permit relay access, like this:
10731
10732 # With Postfix 2.10 and later, the mail relay policy is
10733 # preferably specified under smtpd_relay_restrictions.
10734 smtpd_relay_restrictions =
10735 permit_mynetworks, permit_sasl_authenticated, ...
10736
10737 # With Postfix before 2.10, the relay policy can be
10738 # specified only under smtpd_recipient_restrictions.
10739 smtpd_recipient_restrictions =
10740 permit_mynetworks, permit_sasl_authenticated, ...
10741
10742 To reject all SMTP connections from unauthenticated clients, specify
10743 "smtpd_delay_reject = yes" (which is the default) and use:
10744
10745 smtpd_client_restrictions = permit_sasl_authenticated, reject
10746
10747 See the SASL_README file for SASL configuration and operation details.
10748
10750 Report the SASL authenticated user name in the smtpd(8) Received mes‐
10751 sage header.
10752
10753 This feature is available in Postfix 2.3 and later.
10754
10756 What remote SMTP clients the Postfix SMTP server will not offer AUTH
10757 support to.
10758
10759 Some clients (Netscape 4 at least) have a bug that causes them to re‐
10760 quire a login and password whenever AUTH is offered, whether it's nec‐
10761 essary or not. To work around this, specify, for example, $mynetworks
10762 to prevent Postfix from offering AUTH to local clients.
10763
10764 Specify a list of network/netmask patterns, separated by commas and/or
10765 whitespace. The mask specifies the number of bits in the network part
10766 of a host address. You can also specify "/file/name" or "type:table"
10767 patterns. A "/file/name" pattern is replaced by its contents; a
10768 "type:table" lookup table is matched when a table entry matches a
10769 lookup string (the lookup result is ignored). Continue long lines by
10770 starting the next line with whitespace. Specify "!pattern" to exclude
10771 an address or network block from the list. The form "!/file/name" is
10772 supported only in Postfix version 2.4 and later.
10773
10774 Note: IP version 6 address information must be specified inside [] in
10775 the smtpd_sasl_exceptions_networks value, and in files specified with
10776 "/file/name". IP version 6 addresses contain the ":" character, and
10777 would otherwise be confused with a "type:table" pattern.
10778
10779 Example:
10780
10781 smtpd_sasl_exceptions_networks = $mynetworks
10782
10783 This feature is available in Postfix 2.1 and later.
10784
10786 The name of the Postfix SMTP server's local SASL authentication realm.
10787
10788 By default, the local authentication realm name is the null string.
10789
10790 Examples:
10791
10792 smtpd_sasl_local_domain = $mydomain
10793 smtpd_sasl_local_domain = $myhostname
10794
10796 If non-empty, a filter for the SASL mechanism names that the Postfix
10797 SMTP server will announce in the EHLO response. By default, the Postfix
10798 SMTP server will not announce the EXTERNAL mechanism, because Postfix
10799 support for that is not implemented.
10800
10801 Specify mechanism names, "/file/name" patterns, or "type:table" lookup
10802 tables, separated by comma or whitespace. The right-hand side result
10803 from "type:table" lookups is ignored. Specify "!pattern" to exclude a
10804 mechanism name from the list.
10805
10806 Examples:
10807
10808 smtpd_sasl_mechanism_filter = !external, !gssapi, static:rest
10809 smtpd_sasl_mechanism_filter = login, plain
10810 smtpd_sasl_mechanism_filter = /etc/postfix/smtpd_mechs
10811
10812 This feature is available in Postfix 3.6 and later.
10813
10815 Implementation-specific information that the Postfix SMTP server passes
10816 through to the SASL plug-in implementation that is selected with
10817 smtpd_sasl_type. Typically this specifies the name of a configuration
10818 file or rendezvous point.
10819
10820 This feature is available in Postfix 2.3 and later. In earlier releases
10821 it was called smtpd_sasl_application_name.
10822
10824 The maximum length of a SASL client's response to a server challenge.
10825 When the client's "initial response" is longer than the normal limit
10826 for SMTP commands, the client must omit its initial response, and wait
10827 for an empty server challenge; it can then send what would have been
10828 its "initial response" as a response to the empty server challenge.
10829 RFC4954 requires the server to accept client responses up to at least
10830 12288 octets of base64-encoded text. The default value is therefore
10831 also the minimum value accepted for this parameter.
10832
10833 This feature is available in Postfix 3.4 and later. Prior versions use
10834 "line_length_limit", which may need to be raised to accommodate larger
10835 client responses, as may be needed with GSSAPI authentication of Win‐
10836 dows AD users who are members of many groups.
10837
10839 Postfix SMTP server SASL security options; as of Postfix 2.3 the list
10840 of available features depends on the SASL server implementation that is
10841 selected with smtpd_sasl_type.
10842
10843 The following security features are defined for the cyrus server SASL
10844 implementation:
10845
10846 Restrict what authentication mechanisms the Postfix SMTP server will
10847 offer to the client. The list of available authentication mechanisms
10848 is system dependent.
10849
10850 Specify zero or more of the following:
10851
10852 noplaintext
10853 Disallow methods that use plaintext passwords.
10854
10855 noactive
10856 Disallow methods subject to active (non-dictionary) attack.
10857
10858 nodictionary
10859 Disallow methods subject to passive (dictionary) attack.
10860
10861 noanonymous
10862 Disallow methods that allow anonymous authentication.
10863
10864 forward_secrecy
10865 Only allow methods that support forward secrecy (Dovecot only).
10866
10867 mutual_auth
10868 Only allow methods that provide mutual authentication (not
10869 available with Cyrus SASL version 1).
10870
10871 By default, the Postfix SMTP server accepts plaintext passwords but not
10872 anonymous logins.
10873
10874 Warning: it appears that clients try authentication methods in the or‐
10875 der as advertised by the server (e.g., PLAIN ANONYMOUS CRAM-MD5) which
10876 means that if you disable plaintext passwords, clients will log in
10877 anonymously, even when they should be able to use CRAM-MD5. So, if you
10878 disable plaintext logins, disable anonymous logins too. Postfix treats
10879 anonymous login as no authentication.
10880
10881 Example:
10882
10883 smtpd_sasl_security_options = noanonymous, noplaintext
10884
10886 The service name that is passed to the SASL plug-in that is selected
10887 with smtpd_sasl_type and smtpd_sasl_path.
10888
10889 This feature is available in Postfix 2.11 and later. Prior versions be‐
10890 have as if "smtp" is specified.
10891
10893 The SASL authentication security options that the Postfix SMTP server
10894 uses for TLS encrypted SMTP sessions.
10895
10896 This feature is available in Postfix 2.2 and later.
10897
10899 The SASL plug-in type that the Postfix SMTP server should use for au‐
10900 thentication. The available types are listed with the "postconf -a"
10901 command.
10902
10903 This feature is available in Postfix 2.3 and later.
10904
10906 Optional lookup table with the SASL login names that own the sender
10907 (MAIL FROM) addresses.
10908
10909 Specify zero or more "type:name" lookup tables, separated by whitespace
10910 or comma. Tables will be searched in the specified order until a match
10911 is found. With lookups from indexed files such as DB or DBM, or from
10912 networked tables such as NIS, LDAP or SQL, the following search opera‐
10913 tions are done with a sender address of user@domain:
10914
10915 1) user@domain
10916 This table lookup is always done and has the highest precedence.
10917
10918 2) user
10919 This table lookup is done only when the domain part of the
10920 sender address matches $myorigin, $mydestination, $inet_inter‐
10921 faces or $proxy_interfaces.
10922
10923 3) @domain
10924 This table lookup is done last and has the lowest precedence.
10925
10926 In all cases the result of table lookup must be either "not found" or a
10927 list of SASL login names separated by comma and/or whitespace.
10928
10930 Optional restrictions that the Postfix SMTP server applies in the con‐
10931 text of a client MAIL FROM command. See SMTPD_ACCESS_README, section
10932 "Delayed evaluation of SMTP access restriction lists" for a discussion
10933 of evaluation context and time.
10934
10935 The default is to permit everything.
10936
10937 Specify a list of restrictions, separated by commas and/or whitespace.
10938 Continue long lines by starting the next line with whitespace. Re‐
10939 strictions are applied in the order as specified; the first restriction
10940 that matches wins.
10941
10942 The following restrictions are specific to the sender address received
10943 with the MAIL FROM command.
10944
10945 check_sender_access type:table
10946 Search the specified access(5) database for the MAIL FROM ad‐
10947 dress, domain, parent domains, or localpart@, and execute the
10948 corresponding action.
10949
10950 check_sender_a_access type:table
10951 Search the specified access(5) database for the IP addresses for
10952 the MAIL FROM domain, and execute the corresponding action.
10953 Note: a result of "OK" is not allowed for safety reasons. In‐
10954 stead, use DUNNO in order to exclude specific hosts from
10955 denylists. This feature is available in Postfix 3.0 and later.
10956
10957 check_sender_mx_access type:table
10958 Search the specified access(5) database for the MX hosts for the
10959 MAIL FROM domain, and execute the corresponding action. If no
10960 MX record is found, look up A or AAAA records, just like the
10961 Postfix SMTP client would. Note: a result of "OK" is not allowed
10962 for safety reasons. Instead, use DUNNO in order to exclude spe‐
10963 cific hosts from denylists. This feature is available in Post‐
10964 fix 2.1 and later.
10965
10966 check_sender_ns_access type:table
10967 Search the specified access(5) database for the DNS servers for
10968 the MAIL FROM domain, and execute the corresponding action.
10969 Note: a result of "OK" is not allowed for safety reasons. In‐
10970 stead, use DUNNO in order to exclude specific hosts from
10971 denylists. This feature is available in Postfix 2.1 and later.
10972
10973 reject_authenticated_sender_login_mismatch
10974 Enforces the reject_sender_login_mismatch restriction for au‐
10975 thenticated clients only. This feature is available in Postfix
10976 version 2.1 and later.
10977
10978 reject_known_sender_login_mismatch
10979 Apply the reject_sender_login_mismatch restriction only to MAIL
10980 FROM addresses that are known in $smtpd_sender_login_maps. This
10981 feature is available in Postfix version 2.11 and later.
10982
10983 reject_non_fqdn_sender
10984 Reject the request when the MAIL FROM address specifies a domain
10985 that is not in fully-qualified domain form as required by the
10986 RFC.
10987 The non_fqdn_reject_code parameter specifies the response code
10988 for rejected requests (default: 504).
10989
10990 reject_rhsbl_sender rbl_domain=d.d.d.d
10991 Reject the request when the MAIL FROM domain is listed with the
10992 A record "d.d.d.d" under rbl_domain (Postfix version 2.1 and
10993 later only). Each "d" is a number, or a pattern inside "[]"
10994 that contains one or more ";"-separated numbers or number..num‐
10995 ber ranges (Postfix version 2.8 and later). If no "=d.d.d.d" is
10996 specified, reject the request when the MAIL FROM domain is
10997 listed with any A record under rbl_domain.
10998 The maps_rbl_reject_code parameter specifies the response code
10999 for rejected requests (default: 554); the default_rbl_reply pa‐
11000 rameter specifies the default server reply; and the rbl_re‐
11001 ply_maps parameter specifies tables with server replies indexed
11002 by rbl_domain. This feature is available in Postfix 2.0 and
11003 later.
11004
11005 reject_sender_login_mismatch
11006 Reject the request when $smtpd_sender_login_maps specifies an
11007 owner for the MAIL FROM address, but the client is not (SASL)
11008 logged in as that MAIL FROM address owner; or when the client is
11009 (SASL) logged in, but the client login name doesn't own the MAIL
11010 FROM address according to $smtpd_sender_login_maps.
11011
11012 reject_unauthenticated_sender_login_mismatch
11013 Enforces the reject_sender_login_mismatch restriction for unau‐
11014 thenticated clients only. This feature is available in Postfix
11015 version 2.1 and later.
11016
11017 reject_unknown_sender_domain
11018 Reject the request when Postfix is not the final destination for
11019 the sender address, and the MAIL FROM domain has 1) no DNS MX
11020 and no DNS A record, or 2) a malformed MX record such as a
11021 record with a zero-length MX hostname (Postfix version 2.3 and
11022 later).
11023 The reply is specified with the unknown_address_reject_code pa‐
11024 rameter (default: 450), unknown_address_tempfail_action (de‐
11025 fault: defer_if_permit), or 550 (nullmx, Postfix 3.0 and later).
11026 See the respective parameter descriptions for details.
11027
11028 reject_unlisted_sender
11029 Reject the request when the MAIL FROM address is not listed in
11030 the list of valid recipients for its domain class. See the
11031 smtpd_reject_unlisted_sender parameter description for details.
11032 This feature is available in Postfix 2.1 and later.
11033
11034 reject_unverified_sender
11035 Reject the request when mail to the MAIL FROM address is known
11036 to bounce, or when the sender address destination is not reach‐
11037 able. Address verification information is managed by the ver‐
11038 ify(8) server; see the ADDRESS_VERIFICATION_README file for de‐
11039 tails.
11040 The unverified_sender_reject_code parameter specifies the numer‐
11041 ical response code when an address is known to bounce (default:
11042 450, change into 550 when you are confident that it is safe to
11043 do so).
11044 The unverified_sender_defer_code specifies the numerical re‐
11045 sponse code when an address probe failed due to a temporary
11046 problem (default: 450).
11047 The unverified_sender_tempfail_action parameter specifies the
11048 action after address probe failure due to a temporary problem
11049 (default: defer_if_permit).
11050 This feature breaks for aliased addresses with "enable_origi‐
11051 nal_recipient = no" (Postfix <= 3.2).
11052 This feature is available in Postfix 2.1 and later.
11053
11054 Other restrictions that are valid in this context:
11055
11056 • Generic restrictions that can be used in any SMTP command con‐
11057 text, described under smtpd_client_restrictions.
11058
11059 • SMTP command specific restrictions described under
11060 smtpd_client_restrictions and smtpd_helo_restrictions.
11061
11062 • SMTP command specific restrictions described under smtpd_recipi‐
11063 ent_restrictions. When recipient restrictions are listed under
11064 smtpd_sender_restrictions, they have effect only with "smtpd_de‐
11065 lay_reject = yes", so that $smtpd_sender_restrictions is evalu‐
11066 ated at the time of the RCPT TO command.
11067
11068 Examples:
11069
11070 smtpd_sender_restrictions = reject_unknown_sender_domain
11071 smtpd_sender_restrictions = reject_unknown_sender_domain,
11072 check_sender_access hash:/etc/postfix/access
11073
11075 The internal service that postscreen(8) hands off allowed connections
11076 to. In a future version there may be different classes of SMTP service.
11077
11078 This feature is available in Postfix 2.8.
11079
11081 The number of errors a remote SMTP client is allowed to make without
11082 delivering mail before the Postfix SMTP server slows down all its re‐
11083 sponses.
11084
11085 • With Postfix version 2.1 and later, when the error count is >
11086 $smtpd_soft_error_limit, the Postfix SMTP server delays all re‐
11087 sponses by $smtpd_error_sleep_time.
11088
11089 • With Postfix versions 2.0 and earlier, when the error count is >
11090 $smtpd_soft_error_limit, the Postfix SMTP server delays all re‐
11091 sponses by the larger of (number of errors) seconds or
11092 $smtpd_error_sleep_time.
11093
11094 • With Postfix versions 2.0 and earlier, when the error count is
11095 <= $smtpd_soft_error_limit, the Postfix SMTP server delays 4XX
11096 and 5XX responses by $smtpd_error_sleep_time.
11097
11099 The time limit for Postfix SMTP server write and read operations during
11100 TLS startup and shutdown handshake procedures. The current default
11101 value is stress-dependent. Before Postfix version 2.8, it was fixed at
11102 300s.
11103
11104 Specify a non-zero time value (an integral value plus an optional
11105 one-letter suffix that specifies the time unit). Time units: s (sec‐
11106 onds), m (minutes), h (hours), d (days), w (weeks). The default time
11107 unit is s (seconds).
11108
11109 This feature is available in Postfix 2.2 and later.
11110
11112 When the Postfix SMTP server wants to send an SMTP server response, how
11113 long the Postfix SMTP server will wait for an underlying network write
11114 operation to complete; and when the Postfix SMTP server Postfix wants
11115 to receive an SMTP client request, how long the Postfix SMTP server
11116 will wait for an underlying network read operation to complete. See the
11117 smtpd_per_request_deadline for how this time limit may be enforced
11118 (with Postfix 2.9-3.6 see smtpd_per_record_deadline).
11119
11120 Normally the default limit is 300s, but it changes under overload to
11121 just 10s. With Postfix 2.5 and earlier, the SMTP server always uses a
11122 time limit of 300s by default.
11123
11124 Note: if you set SMTP time limits to very large values you may have to
11125 update the global ipc_timeout parameter.
11126
11127 Specify a non-zero time value (an integral value plus an optional
11128 one-letter suffix that specifies the time unit). Time units: s (sec‐
11129 onds), m (minutes), h (hours), d (days), w (weeks). The default time
11130 unit is s (seconds).
11131
11133 A file containing (PEM format) CA certificates of root CAs trusted to
11134 sign either remote SMTP client certificates or intermediate CA certifi‐
11135 cates. These are loaded into memory before the smtpd(8) server enters
11136 the chroot jail. If the number of trusted roots is large, consider us‐
11137 ing smtpd_tls_CApath instead, but note that the latter directory must
11138 be present in the chroot jail if the smtpd(8) server is chrooted. This
11139 file may also be used to augment the server certificate trust chain,
11140 but it is best to include all the required certificates directly in the
11141 server certificate file.
11142
11143 Specify "smtpd_tls_CAfile = /path/to/system_CA_file" to use ONLY the
11144 system-supplied default Certification Authority certificates.
11145
11146 Specify "tls_append_default_CA = no" to prevent Postfix from appending
11147 the system-supplied default CAs and trusting third-party certificates.
11148
11149 By default (see smtpd_tls_ask_ccert), client certificates are not re‐
11150 quested, and smtpd_tls_CAfile should remain empty. If you do make use
11151 of client certificates, the distinguished names (DNs) of the Certifica‐
11152 tion Authorities listed in smtpd_tls_CAfile are sent to the remote SMTP
11153 client in the client certificate request message. MUAs with multiple
11154 client certificates may use the list of preferred Certification Author‐
11155 ities to select the correct client certificate. You may want to put
11156 your "preferred" CA or CAs in this file, and install other trusted CAs
11157 in $smtpd_tls_CApath.
11158
11159 Example:
11160
11161 smtpd_tls_CAfile = /etc/postfix/CAcert.pem
11162
11163 This feature is available in Postfix 2.2 and later.
11164
11166 A directory containing (PEM format) CA certificates of root CAs trusted
11167 to sign either remote SMTP client certificates or intermediate CA cer‐
11168 tificates. Do not forget to create the necessary "hash" links with, for
11169 example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". To use
11170 smtpd_tls_CApath in chroot mode, this directory (or a copy) must be in‐
11171 side the chroot jail.
11172
11173 Specify "smtpd_tls_CApath = /path/to/system_CA_directory" to use ONLY
11174 the system-supplied default Certification Authority certificates.
11175
11176 Specify "tls_append_default_CA = no" to prevent Postfix from appending
11177 the system-supplied default CAs and trusting third-party certificates.
11178
11179 By default (see smtpd_tls_ask_ccert), client certificates are not re‐
11180 quested, and smtpd_tls_CApath should remain empty. In contrast to
11181 smtpd_tls_CAfile, DNs of Certification Authorities installed in
11182 $smtpd_tls_CApath are not included in the client certificate request
11183 message. MUAs with multiple client certificates may use the list of
11184 preferred Certification Authorities to select the correct client cer‐
11185 tificate. You may want to put your "preferred" CA or CAs in
11186 $smtpd_tls_CAfile, and install the remaining trusted CAs in
11187 $smtpd_tls_CApath.
11188
11189 Example:
11190
11191 smtpd_tls_CApath = /etc/postfix/certs
11192
11193 This feature is available in Postfix 2.2 and later.
11194
11196 Force the Postfix SMTP server to issue a TLS session id, even when TLS
11197 session caching is turned off (smtpd_tls_session_cache_database is
11198 empty). This behavior is compatible with Postfix < 2.3.
11199
11200 With Postfix 2.3 and later the Postfix SMTP server can disable session
11201 id generation when TLS session caching is turned off. This keeps remote
11202 SMTP clients from caching sessions that almost certainly cannot be
11203 re-used.
11204
11205 By default, the Postfix SMTP server always generates TLS session ids.
11206 This works around a known defect in mail client applications such as MS
11207 Outlook, and may also prevent interoperability issues with other MTAs.
11208
11209 Example:
11210
11211 smtpd_tls_always_issue_session_ids = no
11212
11213 This feature is available in Postfix 2.3 and later.
11214
11216 Ask a remote SMTP client for a client certificate. This information is
11217 needed for certificate based mail relaying with, for example, the per‐
11218 mit_tls_clientcerts feature.
11219
11220 Some clients such as Netscape will either complain if no certificate is
11221 available (for the list of CAs in $smtpd_tls_CAfile) or will offer mul‐
11222 tiple client certificates to choose from. This may be annoying, so this
11223 option is "off" by default.
11224
11225 This feature is available in Postfix 2.2 and later.
11226
11228 When TLS encryption is optional in the Postfix SMTP server, do not an‐
11229 nounce or accept SASL authentication over unencrypted connections.
11230
11231 This feature is available in Postfix 2.2 and later.
11232
11234 The verification depth for remote SMTP client certificates. A depth of
11235 1 is sufficient if the issuing CA is listed in a local CA file.
11236
11237 The default verification depth is 9 (the OpenSSL default) for compati‐
11238 bility with earlier Postfix behavior. Prior to Postfix 2.5, the default
11239 value was 5, but the limit was not actually enforced. If you have set
11240 this to a lower non-default value, certificates with longer trust
11241 chains may now fail to verify. Certificate chains with 1 or 2 CAs are
11242 common, deeper chains are more rare and any number between 5 and 9
11243 should suffice in practice. You can choose a lower number if, for exam‐
11244 ple, you trust certificates directly signed by an issuing CA but not
11245 any CAs it delegates to.
11246
11247 This feature is available in Postfix 2.2 and later.
11248
11250 File with the Postfix SMTP server RSA certificate in PEM format. This
11251 file may also contain the Postfix SMTP server private RSA key. With
11252 Postfix >= 3.4 the preferred way to configure server keys and certifi‐
11253 cates is via the "smtpd_tls_chain_files" parameter.
11254
11255 Public Internet MX hosts without certificates signed by a "reputable"
11256 CA must generate, and be prepared to present to most clients, a
11257 self-signed or private-CA signed certificate. The client will not be
11258 able to authenticate the server, but unless it is running Postfix 2.3
11259 or similar software, it will still insist on a server certificate.
11260
11261 For servers that are not public Internet MX hosts, Postfix supports
11262 configurations with no certificates. This entails the use of just the
11263 anonymous TLS ciphers, which are not supported by typical SMTP clients.
11264 Since some clients may not fall back to plain text after a TLS hand‐
11265 shake failure, a certificate-less Postfix SMTP server will be unable to
11266 receive email from some TLS-enabled clients. To avoid accidental con‐
11267 figurations with no certificates, Postfix enables certificate-less op‐
11268 eration only when the administrator explicitly sets
11269 "smtpd_tls_cert_file = none". This ensures that new Postfix SMTP server
11270 configurations will not accidentally enable TLS without certificates.
11271
11272 Note that server certificates are not optional in TLS 1.3. To run with‐
11273 out certificates you'd have to disable the TLS 1.3 protocol by includ‐
11274 ing '!TLSv1.3' in "smtpd_tls_protocols" and perhaps also
11275 "smtpd_tls_mandatory_protocols". It is simpler instead to just config‐
11276 ure a certificate chain. Certificate-less operation is not recom‐
11277 mended.
11278
11279 Both RSA and DSA certificates are supported. When both types are
11280 present, the cipher used determines which certificate will be presented
11281 to the client. For Netscape and OpenSSL clients without special cipher
11282 choices the RSA certificate is preferred.
11283
11284 To enable a remote SMTP client to verify the Postfix SMTP server cer‐
11285 tificate, the issuing CA certificates must be made available to the
11286 client. You should include the required certificates in the server cer‐
11287 tificate file, the server certificate first, then the issuing CA(s)
11288 (bottom-up order).
11289
11290 Example: the certificate for "server.example.com" was issued by "inter‐
11291 mediate CA" which itself has a certificate of "root CA". Create the
11292 server.pem file with "cat server_cert.pem intermediate_CA.pem
11293 root_CA.pem > server.pem".
11294
11295 If you also want to verify client certificates issued by these CAs, you
11296 can add the CA certificates to the smtpd_tls_CAfile, in which case it
11297 is not necessary to have them in the smtpd_tls_cert_file,
11298 smtpd_tls_dcert_file (obsolete) or smtpd_tls_eccert_file.
11299
11300 A certificate supplied here must be usable as an SSL server certificate
11301 and hence pass the "openssl verify -purpose sslserver ..." test.
11302
11303 Example:
11304
11305 smtpd_tls_cert_file = /etc/postfix/server.pem
11306
11307 This feature is available in Postfix 2.2 and later.
11308
11310 List of one or more PEM files, each holding one or more private keys
11311 directly followed by a corresponding certificate chain. The file names
11312 are separated by commas and/or whitespace. This parameter obsoletes
11313 the legacy algorithm-specific key and certificate file settings. When
11314 this parameter is non-empty, the legacy parameters are ignored, and a
11315 warning is logged if any are also non-empty.
11316
11317 With the proliferation of multiple private key algorithms-which, as of
11318 OpenSSL 1.1.1, include DSA (obsolete), RSA, ECDSA, Ed25519 and Ed448-it
11319 is increasingly impractical to use separate parameters to configure the
11320 key and certificate chain for each algorithm. Therefore, Postfix now
11321 supports storing multiple keys and corresponding certificate chains in
11322 a single file or in a set of files.
11323
11324 Each key must appear immediately before the corresponding certificate,
11325 optionally followed by additional issuer certificates that complete the
11326 certificate chain for that key. When multiple files are specified,
11327 they are equivalent to a single file that is concatenated from those
11328 files in the given order. Thus, while a key must always precede its
11329 certificate and issuer chain, it can be in a separate file, so long as
11330 that file is listed immediately before the file that holds the corre‐
11331 sponding certificate chain. Once all the files are concatenated, the
11332 sequence of PEM objects must be: key1, cert1, [chain1], key2, cert2,
11333 [chain2], ..., keyN, certN, [chainN].
11334
11335 Storing the private key in the same file as the corresponding certifi‐
11336 cate is more reliable. With the key and certificate in separate files,
11337 there is a chance that during key rollover a Postfix process might load
11338 a private key and certificate from separate files that don't match.
11339 Various operational errors may even result in a persistent broken con‐
11340 figuration in which the certificate does not match the private key.
11341
11342 The file or files must contain at most one key of each type. If, for
11343 example, two or more RSA keys and corresponding chains are listed, de‐
11344 pending on the version of OpenSSL either only the last one will be used
11345 or a configuration error may be detected. Note that while "Ed25519"
11346 and "Ed448" are considered separate algorithms, the various ECDSA
11347 curves (typically one of prime256v1, secp384r1 or secp521r1) are con‐
11348 sidered as different parameters of a single "ECDSA" algorithm, so it is
11349 not presently possible to configure keys for more than one ECDSA curve.
11350
11351 RSA is still the most widely supported algorithm. Presently (late
11352 2018), ECDSA support is common, but not yet universal, and Ed25519 and
11353 Ed448 support is mostly absent. Therefore, an RSA key should generally
11354 be configured, along with any additional keys for the other algorithms
11355 when desired.
11356
11357 Example (separate files for each key and corresponding certificate
11358 chain):
11359
11360 /etc/postfix/main.cf:
11361 smtpd_tls_chain_files =
11362 ${config_directory}/ed25519.pem,
11363 ${config_directory}/ed448.pem,
11364 ${config_directory}/rsa.pem
11365
11366 /etc/postfix/ed25519.pem:
11367 -----BEGIN PRIVATE KEY-----
11368 MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
11369 -----END PRIVATE KEY-----
11370 -----BEGIN CERTIFICATE-----
11371 MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
11372 ...
11373 nC0egv51YPDWxEHom4QA
11374 -----END CERTIFICATE-----
11375
11376 /etc/postfix/ed448.pem:
11377 -----BEGIN PRIVATE KEY-----
11378 MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
11379 LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
11380 -----END PRIVATE KEY-----
11381 -----BEGIN CERTIFICATE-----
11382 MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
11383 ...
11384 pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
11385 -----END CERTIFICATE-----
11386
11387 /etc/postfix/rsa.pem:
11388 -----BEGIN PRIVATE KEY-----
11389 MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
11390 ...
11391 ahQkZ3+krcaJvDSMgvu0tDc=
11392 -----END PRIVATE KEY-----
11393 -----BEGIN CERTIFICATE-----
11394 MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
11395 ...
11396 Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
11397 -----END CERTIFICATE-----
11398
11399 Example (all keys and certificates in a single file):
11400
11401 /etc/postfix/main.cf:
11402 smtpd_tls_chain_files = ${config_directory}/chains.pem
11403
11404 /etc/postfix/chains.pem:
11405 -----BEGIN PRIVATE KEY-----
11406 MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
11407 -----END PRIVATE KEY-----
11408 -----BEGIN CERTIFICATE-----
11409 MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
11410 ...
11411 nC0egv51YPDWxEHom4QA
11412 -----END CERTIFICATE-----
11413 -----BEGIN PRIVATE KEY-----
11414 MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
11415 LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
11416 -----END PRIVATE KEY-----
11417 -----BEGIN CERTIFICATE-----
11418 MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
11419 ...
11420 pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
11421 -----END CERTIFICATE-----
11422 -----BEGIN PRIVATE KEY-----
11423 MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
11424 ...
11425 ahQkZ3+krcaJvDSMgvu0tDc=
11426 -----END PRIVATE KEY-----
11427 -----BEGIN CERTIFICATE-----
11428 MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
11429 ...
11430 Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
11431 -----END CERTIFICATE-----
11432
11433 This feature is available in Postfix 3.4 and later.
11434
11436 Obsolete Postfix < 2.3 control for the Postfix SMTP server TLS cipher
11437 list. It is easy to create interoperability problems by choosing a
11438 non-default cipher list. Do not use a non-default TLS cipherlist for MX
11439 hosts on the public Internet. Clients that begin the TLS handshake, but
11440 are unable to agree on a common cipher, may not be able to send any
11441 email to the SMTP server. Using a restricted cipher list may be more
11442 appropriate for a dedicated MSA or an internal mailhub, where one can
11443 exert some control over the TLS software and settings of the connecting
11444 clients.
11445
11446 Note: do not use "" quotes around the parameter value.
11447
11448 This feature is available with Postfix version 2.2. It is not used with
11449 Postfix 2.3 and later; use smtpd_tls_mandatory_ciphers instead.
11450
11452 The minimum TLS cipher grade that the Postfix SMTP server will use with
11453 opportunistic TLS encryption. Cipher types listed in smtpd_tls_ex‐
11454 clude_ciphers are excluded from the base definition of the selected ci‐
11455 pher grade. The default value is "medium" for Postfix releases after
11456 the middle of 2015, "export" for older releases.
11457
11458 When TLS is mandatory the cipher grade is chosen via the
11459 smtpd_tls_mandatory_ciphers configuration parameter, see there for syn‐
11460 tax details.
11461
11462 This feature is available in Postfix 2.6 and later. With earlier Post‐
11463 fix releases only the smtpd_tls_mandatory_ciphers parameter is imple‐
11464 mented, and opportunistic TLS always uses "export" or better (i.e. all)
11465 ciphers.
11466
11468 File with the Postfix SMTP server DSA certificate in PEM format. This
11469 file may also contain the Postfix SMTP server private DSA key. The DSA
11470 algorithm is obsolete and should not be used.
11471
11472 See the discussion under smtpd_tls_cert_file for more details.
11473
11474 Example:
11475
11476 smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
11477
11478 This feature is available in Postfix 2.2 and later.
11479
11481 File with DH parameters that the Postfix SMTP server should use with
11482 non-export EDH ciphers.
11483
11484 With Postfix >= 3.7, built with OpenSSL version is 3.0.0 or later, if
11485 the parameter value is either empty or "auto", then the DH parameter
11486 selection is delegated to the OpenSSL library, which selects appropri‐
11487 ate parameters based on the TLS handshake. This choice is likely to be
11488 the most interoperable with SMTP clients using various TLS libraries,
11489 and custom local parameters are no longer recommended when using Post‐
11490 fix >= 3.7 built against OpenSSL 3.0.0.
11491
11492 The best-practice choice of parameters uses a 2048-bit prime. This is
11493 fine, despite the historical "1024" in the parameter name. Do not be
11494 tempted to use much larger values, performance degrades quickly, and
11495 you may also cease to interoperate with some mainstream SMTP clients.
11496 As of Postfix 3.1, the compiled-in default prime is 2048-bits, and it
11497 is not strictly necessary, though perhaps somewhat beneficial to gener‐
11498 ate custom DH parameters.
11499
11500 Instead of using the exact same parameter sets as distributed with
11501 other TLS packages, it is more secure to generate your own set of pa‐
11502 rameters with something like the following commands:
11503
11504 openssl dhparam -out /etc/postfix/dh2048.pem 2048
11505 openssl dhparam -out /etc/postfix/dh1024.pem 1024
11506 # As of Postfix 3.6, export-grade 512-bit DH parameters are no longer
11507 # supported or needed.
11508 openssl dhparam -out /etc/postfix/dh512.pem 512
11509
11510 It is safe to share the same DH parameters between multiple Postfix in‐
11511 stances. If you prefer, you can generate separate parameters for each
11512 instance.
11513
11514 If you want to take maximal advantage of ciphers that offer forward se‐
11515 crecy see the Getting started section of FORWARD_SECRECY_README. The
11516 full document conveniently presents all information about Postfix "per‐
11517 fect" forward secrecy support in one place: what forward secrecy is,
11518 how to tweak settings, and what you can expect to see when Postfix uses
11519 ciphers with forward secrecy.
11520
11521 Example:
11522
11523 smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
11524
11525 This feature is available in Postfix 2.2 and later.
11526
11528 File with DH parameters that the Postfix SMTP server should use with
11529 export-grade EDH ciphers. The default SMTP server cipher grade is
11530 "medium" with Postfix releases after the middle of 2015, and as a re‐
11531 sult export-grade cipher suites are by default not used.
11532
11533 With Postfix >= 3.6 export-grade Diffie-Hellman key exchange is no
11534 longer supported, and this parameter is silently ignored.
11535
11536 See also the discussion under the smtpd_tls_dh1024_param_file configu‐
11537 ration parameter.
11538
11539 Example:
11540
11541 smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
11542
11543 This feature is available in Postfix 2.2 and later, but is ignored in
11544 Postfix 3.6 and later.
11545
11547 File with the Postfix SMTP server DSA private key in PEM format. This
11548 file may be combined with the Postfix SMTP server DSA certificate file
11549 specified with $smtpd_tls_dcert_file. The DSA algorithm is obsolete and
11550 should not be used.
11551
11552 The private key must be accessible without a pass-phrase, i.e. it must
11553 not be encrypted. File permissions should grant read-only access to the
11554 system superuser account ("root"), and no access to anyone else.
11555
11556 This feature is available in Postfix 2.2 and later.
11557
11559 File with the Postfix SMTP server ECDSA certificate in PEM format.
11560 This file may also contain the Postfix SMTP server private ECDSA key.
11561 With Postfix >= 3.4 the preferred way to configure server keys and cer‐
11562 tificates is via the "smtpd_tls_chain_files" parameter.
11563
11564 See the discussion under smtpd_tls_cert_file for more details.
11565
11566 Example:
11567
11568 smtpd_tls_eccert_file = /etc/postfix/ecdsa-scert.pem
11569
11570 This feature is available in Postfix 2.6 and later, when Postfix is
11571 compiled and linked with OpenSSL 1.0.0 or later.
11572
11574 File with the Postfix SMTP server ECDSA private key in PEM format.
11575 This file may be combined with the Postfix SMTP server ECDSA certifi‐
11576 cate file specified with $smtpd_tls_eccert_file. With Postfix >= 3.4
11577 the preferred way to configure server keys and certificates is via the
11578 "smtpd_tls_chain_files" parameter.
11579
11580 The private key must be accessible without a pass-phrase, i.e. it must
11581 not be encrypted. File permissions should grant read-only access to the
11582 system superuser account ("root"), and no access to anyone else.
11583
11584 This feature is available in Postfix 2.6 and later, when Postfix is
11585 compiled and linked with OpenSSL 1.0.0 or later.
11586
11588 The Postfix SMTP server security grade for ephemeral elliptic-curve
11589 Diffie-Hellman (EECDH) key exchange. As of Postfix 3.6, the value of
11590 this parameter is always ignored, and Postfix behaves as though the
11591 auto value (described below) was chosen.
11592
11593 The available choices are:
11594
11595 auto Use the most preferred curve that is supported by both the
11596 client and the server. This setting requires Postfix >= 3.2
11597 compiled and linked with OpenSSL >= 1.0.2. This is the default
11598 setting under the above conditions (and the only setting used
11599 with Postfix >= 3.6).
11600
11601 none Don't use EECDH. Ciphers based on EECDH key exchange will be
11602 disabled. This is the default in Postfix versions 2.6 and 2.7.
11603
11604 strong Use EECDH with approximately 128 bits of security at a reason‐
11605 able computational cost. This is the default in Postfix versions
11606 2.8-3.5.
11607
11608 ultra Use EECDH with approximately 192 bits of security at computa‐
11609 tional cost that is approximately twice as high as 128 bit
11610 strength ECC.
11611
11612 If you want to take maximal advantage of ciphers that offer forward se‐
11613 crecy see the Getting started section of FORWARD_SECRECY_README. The
11614 full document conveniently presents all information about Postfix "per‐
11615 fect" forward secrecy support in one place: what forward secrecy is,
11616 how to tweak settings, and what you can expect to see when Postfix uses
11617 ciphers with forward secrecy.
11618
11619 This feature is available in Postfix 2.6 and later, when it is compiled
11620 and linked with OpenSSL 1.0.0 or later on platforms where EC algorithms
11621 have not been disabled by the vendor.
11622
11624 List of ciphers or cipher types to exclude from the SMTP server cipher
11625 list at all TLS security levels. Excluding valid ciphers can create in‐
11626 teroperability problems. DO NOT exclude ciphers unless it is essential
11627 to do so. This is not an OpenSSL cipherlist; it is a simple list sepa‐
11628 rated by whitespace and/or commas. The elements are a single cipher, or
11629 one or more "+" separated cipher properties, in which case only ciphers
11630 matching all the properties are excluded.
11631
11632 Examples (some of these will cause problems):
11633
11634 smtpd_tls_exclude_ciphers = aNULL
11635 smtpd_tls_exclude_ciphers = MD5, DES
11636 smtpd_tls_exclude_ciphers = DES+MD5
11637 smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
11638 smtpd_tls_exclude_ciphers = kEDH+aRSA
11639
11640 The first setting disables anonymous ciphers. The next setting disables
11641 ciphers that use the MD5 digest algorithm or the (single) DES encryp‐
11642 tion algorithm. The next setting disables ciphers that use MD5 and DES
11643 together. The next setting disables the two ciphers "AES256-SHA" and
11644 "DES-CBC3-MD5". The last setting disables ciphers that use "EDH" key
11645 exchange with RSA authentication.
11646
11647 This feature is available in Postfix 2.3 and later.
11648
11650 The message digest algorithm to construct remote SMTP client-certifi‐
11651 cate fingerprints or public key fingerprints (Postfix 2.9 and later)
11652 for check_ccert_access and permit_tls_clientcerts.
11653
11654 The default algorithm is sha256 with Postfix >= 3.6 and the compatibil‐
11655 ity_level set to 3.6 or higher. With Postfix <= 3.5, the default algo‐
11656 rithm is md5.
11657
11658 The best-practice algorithm is now sha256. Recent advances in hash
11659 function cryptanalysis have led to md5 and sha1 being deprecated in fa‐
11660 vor of sha256. However, as long as there are no known "second pre-im‐
11661 age" attacks against the older algorithms, their use in this context,
11662 though not recommended, is still likely safe.
11663
11664 While additional digest algorithms are often available with OpenSSL's
11665 libcrypto, only those used by libssl in SSL cipher suites are available
11666 to Postfix. You'll likely find support for md5, sha1, sha256 and
11667 sha512.
11668
11669 To find the fingerprint of a specific certificate file, with a specific
11670 digest algorithm, run:
11671
11672 $ openssl x509 -noout -fingerprint -digest -in certfile.pem
11673
11674 The text to the right of "=" sign is the desired fingerprint. For ex‐
11675 ample:
11676
11677 $ openssl x509 -noout -fingerprint -sha256 -in cert.pem
11678 SHA256 Fingerprint=D4:6A:AB:19:24:...:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
11679
11680 To extract the public key fingerprint from an X.509 certificate, you
11681 need to extract the public key from the certificate and compute the ap‐
11682 propriate digest of its DER (ASN.1) encoding. With OpenSSL the "-pub‐
11683 key" option of the "x509" command extracts the public key always in
11684 "PEM" format. We pipe the result to another OpenSSL command that con‐
11685 verts the key to DER and then to the "dgst" command to compute the fin‐
11686 gerprint.
11687
11688 Example:
11689
11690 $ openssl x509 -in cert.pem -noout -pubkey |
11691 openssl pkey -pubin -outform DER |
11692 openssl dgst -sha256 -c
11693 (stdin)= 64:3f:1f:f6:e5:1e:d4:2a:56:8b:fc:09:1a:61:98:b5:bc:7c:60:58
11694
11695 The Postfix SMTP server and client log the peer (leaf) certificate fin‐
11696 gerprint and public key fingerprint when the TLS loglevel is 2 or
11697 higher.
11698
11699 Example: client-certificate access table, with sha256 fingerprints:
11700
11701 /etc/postfix/main.cf:
11702 smtpd_tls_fingerprint_digest = sha256
11703 smtpd_client_restrictions =
11704 check_ccert_access hash:/etc/postfix/access,
11705 reject
11706 /etc/postfix/access:
11707 # Action folded to next line...
11708 AF:88:7C:AD:51:95:6F:36:96:...:01:FB:2E:48:CD:AB:49:25:A2:3B
11709 OK
11710 85:16:78:FD:73:6E:CE:70:E0:...:5F:0D:3C:C8:6D:C4:2C:24:59:E1
11711 permit_auth_destination
11712
11713 This feature is available in Postfix 2.5 and later.
11714
11716 File with the Postfix SMTP server RSA private key in PEM format. This
11717 file may be combined with the Postfix SMTP server RSA certificate file
11718 specified with $smtpd_tls_cert_file. With Postfix >= 3.4 the preferred
11719 way to configure server keys and certificates is via the
11720 "smtpd_tls_chain_files" parameter.
11721
11722 The private key must be accessible without a pass-phrase, i.e. it must
11723 not be encrypted. File permissions should grant read-only access to the
11724 system superuser account ("root"), and no access to anyone else.
11725
11727 Enable additional Postfix SMTP server logging of TLS activity. Each
11728 logging level also includes the information that is logged at a lower
11729 logging level.
11730
11731 0 Disable logging of TLS activity.
11732
11733 1 Log only a summary message on TLS handshake completion - no
11734 logging of client certificate trust-chain verification errors if
11735 client certificate verification is not required. With Postfix
11736 2.8 and earlier, log the summary message, peer certificate sum‐
11737 mary information and unconditionally log trust-chain verifica‐
11738 tion errors.
11739
11740 2 Also log levels during TLS negotiation.
11741
11742 3 Also log hexadecimal and ASCII dump of TLS negotiation
11743 process.
11744
11745 4 Also log hexadecimal and ASCII dump of complete transmission
11746 after STARTTLS.
11747
11748 Do not use "smtpd_tls_loglevel = 2" or higher except in case of prob‐
11749 lems. Use of loglevel 4 is strongly discouraged.
11750
11751 This feature is available in Postfix 2.2 and later.
11752
11754 The minimum TLS cipher grade that the Postfix SMTP server will use with
11755 mandatory TLS encryption. The default grade ("medium") is sufficiently
11756 strong that any benefit from globally restricting TLS sessions to a
11757 more stringent grade is likely negligible, especially given the fact
11758 that many implementations still do not offer any stronger ("high"
11759 grade) ciphers, while those that do, will always use "high" grade ci‐
11760 phers. So insisting on "high" grade ciphers is generally counter-pro‐
11761 ductive. Allowing "export" or "low" ciphers is typically not a good
11762 idea, as systems limited to just these are limited to obsolete
11763 browsers. No known SMTP clients fail to support at least one "medium"
11764 or "high" grade cipher.
11765
11766 The following cipher grades are supported:
11767
11768 export Enable "EXPORT" grade or stronger OpenSSL ciphers. The underly‐
11769 ing cipherlist is specified via the tls_export_cipherlist con‐
11770 figuration parameter, which you are strongly encouraged not to
11771 change. This choice is insecure and SHOULD NOT be used.
11772
11773 low Enable "LOW" grade or stronger OpenSSL ciphers. The underlying
11774 cipherlist is specified via the tls_low_cipherlist configuration
11775 parameter, which you are strongly encouraged not to change.
11776 This choice is insecure and SHOULD NOT be used.
11777
11778 medium Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use
11779 128-bit or longer symmetric bulk-encryption keys. This is the
11780 default minimum strength for mandatory TLS encryption. The un‐
11781 derlying cipherlist is specified via the tls_medium_cipherlist
11782 configuration parameter, which you are strongly encouraged not
11783 to change.
11784
11785 high Enable only "HIGH" grade OpenSSL ciphers. The underlying ci‐
11786 pherlist is specified via the tls_high_cipherlist configuration
11787 parameter, which you are strongly encouraged to not change.
11788
11789 null Enable only the "NULL" OpenSSL ciphers, these provide authenti‐
11790 cation without encryption. This setting is only appropriate in
11791 the rare case that all clients are prepared to use NULL ciphers
11792 (not normally enabled in TLS clients). The underlying cipherlist
11793 is specified via the tls_null_cipherlist configuration parame‐
11794 ter, which you are strongly encouraged not to change.
11795
11796 Cipher types listed in smtpd_tls_mandatory_exclude_ciphers or
11797 smtpd_tls_exclude_ciphers are excluded from the base definition of the
11798 selected cipher grade. See smtpd_tls_ciphers for cipher controls that
11799 apply to opportunistic TLS.
11800
11801 The underlying cipherlists for grades other than "null" include anony‐
11802 mous ciphers, but these are automatically filtered out if the server is
11803 configured to ask for remote SMTP client certificates. You are very
11804 unlikely to need to take any steps to exclude anonymous ciphers, they
11805 are excluded automatically as required. If you must exclude anonymous
11806 ciphers even when Postfix does not need or use peer certificates, set
11807 "smtpd_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers only
11808 when TLS is enforced, set "smtpd_tls_mandatory_exclude_ciphers = aN‐
11809 ULL".
11810
11811 This feature is available in Postfix 2.3 and later.
11812
11814 Additional list of ciphers or cipher types to exclude from the Postfix
11815 SMTP server cipher list at mandatory TLS security levels. This list
11816 works in addition to the exclusions listed with smtpd_tls_exclude_ci‐
11817 phers (see there for syntax details).
11818
11819 This feature is available in Postfix 2.3 and later.
11820
11822 TLS protocols accepted by the Postfix SMTP server with mandatory TLS
11823 encryption. If the list is empty, the server supports all available
11824 TLS protocol versions. A non-empty value is a list of protocol names
11825 to include or exclude, separated by whitespace, commas or colons.
11826
11827 The valid protocol names (see SSL_get_version(3)) are "SSLv2", "SSLv3",
11828 "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3". Starting with Postfix
11829 3.6, the default value is ">=TLSv1", which sets TLS 1.0 as the lowest
11830 supported TLS protocol version (see below). Older releases use the "!"
11831 exclusion syntax, also described below.
11832
11833 As of Postfix 3.6, the preferred way to limit the range of acceptable
11834 protocols is to set the lowest acceptable TLS protocol version and/or
11835 the highest acceptable TLS protocol version. To set the lower bound
11836 include an element of the form: ">=version" where version is a either
11837 one of the TLS protocol names listed above, or a hexadecimal number
11838 corresponding to the desired TLS protocol version (0301 for TLS 1.0,
11839 0302 for TLS 1.1, etc.). For the upper bound, use "<=version". There
11840 must be no whitespace between the ">=" or "<=" symbols and the protocol
11841 name or number.
11842
11843 Hexadecimal protocol numbers make it possible to specify protocol
11844 bounds for TLS versions that are known to OpenSSL, but might not be
11845 known to Postfix. They cannot be used with the legacy exclusion syn‐
11846 tax. Leading "0" or "0x" prefixes are supported, but not required.
11847 Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
11848 "TLSv1". Hexadecimal versions unknown to OpenSSL will fail to set the
11849 upper or lower bound, and a warning will be logged. Hexadecimal ver‐
11850 sions should only be used when Postfix is linked with some future ver‐
11851 sion of OpenSSL that supports TLS 1.4 or later, but Postfix does not
11852 yet support a symbolic name for that protocol version.
11853
11854 Hexadecimal example (Postfix >= 3.6):
11855
11856 # Allow only TLS 1.2 through (hypothetical) TLS 1.4, once supported
11857 # in some future version of OpenSSL (presently a warning is logged).
11858 smtpd_tls_mandatory_protocols = >=TLSv1.2, <=0305
11859 # Allow only TLS 1.2 and up:
11860 smtpd_tls_mandatory_protocols = >=0x0303
11861
11862 With Postfix < 3.6 there is no support for a minimum or maximum ver‐
11863 sion, and the protocol range is configured via protocol exclusions. To
11864 require at least TLS 1.0, set "smtpd_tls_mandatory_protocols = !SSLv2,
11865 !SSLv3". Listing the protocols to include, rather than protocols to
11866 exclude, is supported, but not recommended. The exclusion form more
11867 accurately matches the underlying OpenSSL interface.
11868
11869 Support for "TLSv1.3" was introduced in OpenSSL 1.1.1. Disabling this
11870 protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch re‐
11871 leases >= 3.0.14, 3.1.10, 3.2.7 and 3.3.2).
11872
11873 Example:
11874
11875 # Preferred syntax with Postfix >= 3.6:
11876 smtpd_tls_mandatory_protocols = >=TLSv1.2, <=TLSv1.3
11877 # Legacy syntax:
11878 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
11879
11880 This feature is available in Postfix 2.3 and later.
11881
11883 TLS protocols accepted by the Postfix SMTP server with opportunistic
11884 TLS encryption. If the list is empty, the server supports all available
11885 TLS protocol versions. A non-empty value is a list of protocol names
11886 to include or exclude, separated by whitespace, commas or colons.
11887
11888 The valid protocol names (see SSL_get_version(3)) are "SSLv2", "SSLv3",
11889 "TLSv1", "TLSv1.1", "TLSv1.2" and "TLSv1.3". Starting with Postfix
11890 3.6, the default value is ">=TLSv1", which sets TLS 1.0 as the lowest
11891 supported TLS protocol version (see below). Older releases use the "!"
11892 exclusion syntax, also described below.
11893
11894 As of Postfix 3.6, the preferred way to limit the range of acceptable
11895 protocols is to set the lowest acceptable TLS protocol version and/or
11896 the highest acceptable TLS protocol version. To set the lower bound
11897 include an element of the form: ">=version" where version is a either
11898 one of the TLS protocol names listed above, or a hexadecimal number
11899 corresponding to the desired TLS protocol version (0301 for TLS 1.0,
11900 0302 for TLS 1.1, etc.). For the upper bound, use "<=version". There
11901 must be no whitespace between the ">=" or "<=" symbols and the protocol
11902 name or number.
11903
11904 Hexadecimal protocol numbers make it possible to specify protocol
11905 bounds for TLS versions that are known to OpenSSL, but might not be
11906 known to Postfix. They cannot be used with the legacy exclusion syn‐
11907 tax. Leading "0" or "0x" prefixes are supported, but not required.
11908 Therefore, "301", "0301", "0x301" and "0x0301" are all equivalent to
11909 "TLSv1". Hexadecimal versions unknown to OpenSSL will fail to set the
11910 upper or lower bound, and a warning will be logged. Hexadecimal ver‐
11911 sions should only be used when Postfix is linked with some future ver‐
11912 sion of OpenSSL that supports TLS 1.4 or later, but Postfix does not
11913 yet support a symbolic name for that protocol version.
11914
11915 Hexadecimal example (Postfix >= 3.6):
11916
11917 # Allow only TLS 1.0 through (hypothetical) TLS 1.4, once supported
11918 # in some future version of OpenSSL (presently a warning is logged).
11919 smtpd_tls_protocols = >=TLSv1, <=0305
11920 # Allow only TLS 1.0 and up:
11921 smtpd_tls_protocols = >=0x0301
11922
11923 With Postfix < 3.6 there is no support for a minimum or maximum ver‐
11924 sion, and the protocol range is configured via protocol exclusions. To
11925 require at least TLS 1.0, set "smtpd_tls_protocols = !SSLv2, !SSLv3".
11926 Listing the protocols to include, rather than protocols to exclude, is
11927 supported, but not recommended. The exclusion form more accurately
11928 matches the underlying OpenSSL interface.
11929
11930 Support for "TLSv1.3" was introduced in OpenSSL 1.1.1. Disabling this
11931 protocol via "!TLSv1.3" is supported since Postfix 3.4 (or patch re‐
11932 leases >= 3.0.14, 3.1.10, 3.2.7 and 3.3.2).
11933
11934 Example:
11935 # Preferred syntax with Postfix >= 3.6:
11936 smtpd_tls_protocols = >=TLSv1, <=TLSv1.3
11937 # Legacy syntax:
11938 smtpd_tls_protocols = !SSLv2, !SSLv3
11939
11940 This feature is available in Postfix 2.6 and later.
11941
11943 Request that the Postfix SMTP server produces Received: message head‐
11944 ers that include information about the protocol and cipher used, as
11945 well as the remote SMTP client CommonName and client certificate issuer
11946 CommonName. This is disabled by default, as the information may be
11947 modified in transit through other mail servers. Only information that
11948 was recorded by the final destination can be trusted.
11949
11950 This feature is available in Postfix 2.2 and later.
11951
11953 With mandatory TLS encryption, require a trusted remote SMTP client
11954 certificate in order to allow TLS connections to proceed. This option
11955 implies "smtpd_tls_ask_ccert = yes".
11956
11957 When TLS encryption is optional, this setting is ignored with a warning
11958 written to the mail log.
11959
11960 This feature is available in Postfix 2.2 and later.
11961
11963 The SMTP TLS security level for the Postfix SMTP server; when a
11964 non-empty value is specified, this overrides the obsolete parameters
11965 smtpd_use_tls and smtpd_enforce_tls. This parameter is ignored with
11966 "smtpd_tls_wrappermode = yes".
11967
11968 Specify one of the following security levels:
11969
11970 none TLS will not be used.
11971
11972 may Opportunistic TLS: announce STARTTLS support to remote SMTP
11973 clients, but do not require that clients use TLS encryption.
11974
11975 encrypt
11976 Mandatory TLS encryption: announce STARTTLS support to remote
11977 SMTP clients, and require that clients use TLS encryption. Ac‐
11978 cording to RFC 2487 this MUST NOT be applied in case of a pub‐
11979 licly-referenced SMTP server. Instead, this option should be
11980 used only on dedicated servers.
11981
11982 Note 1: the "fingerprint", "verify" and "secure" levels are not sup‐
11983 ported here. The Postfix SMTP server logs a warning and uses "encrypt"
11984 instead. To verify remote SMTP client certificates, see TLS_README for
11985 a discussion of the smtpd_tls_ask_ccert, smtpd_tls_req_ccert, and per‐
11986 mit_tls_clientcerts features.
11987
11988 Note 2: The parameter setting "smtpd_tls_security_level = encrypt" im‐
11989 plies "smtpd_tls_auth_only = yes".
11990
11991 Note 3: when invoked via "sendmail -bs", Postfix will never offer
11992 STARTTLS due to insufficient privileges to access the server private
11993 key. This is intended behavior.
11994
11995 This feature is available in Postfix 2.3 and later.
11996
11998 Name of the file containing the optional Postfix SMTP server TLS ses‐
11999 sion cache. Specify a database type that supports enumeration, such as
12000 btree or sdbm; there is no need to support concurrent access. The file
12001 is created if it does not exist. The smtpd(8) daemon does not use this
12002 parameter directly, rather the cache is implemented indirectly in the
12003 tlsmgr(8) daemon. This means that per-smtpd-instance master.cf over‐
12004 rides of this parameter are not effective. Note that each of the cache
12005 databases supported by tlsmgr(8) daemon: $smtpd_tls_session_cache_data‐
12006 base, $smtp_tls_session_cache_database (and with Postfix 2.3 and later
12007 $lmtp_tls_session_cache_database), needs to be stored separately. It is
12008 not at this time possible to store multiple caches in a single data‐
12009 base.
12010
12011 Note: dbm databases are not suitable. TLS session objects are too
12012 large.
12013
12014 As of version 2.5, Postfix no longer uses root privileges when opening
12015 this file. The file should now be stored under the Postfix-owned
12016 data_directory. As a migration aid, an attempt to open the file under a
12017 non-Postfix directory is redirected to the Postfix-owned data_direc‐
12018 tory, and a warning is logged.
12019
12020 As of Postfix 2.11 the preferred mechanism for session resumption is
12021 RFC 5077 TLS session tickets, which don't require server-side storage.
12022 Consequently, for Postfix >= 2.11 this parameter should generally be
12023 left empty. TLS session tickets require an OpenSSL library (at least
12024 version 0.9.8h) that provides full support for this TLS extension. See
12025 also smtpd_tls_session_cache_timeout.
12026
12027 Example:
12028
12029 smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
12030
12031 This feature is available in Postfix 2.2 and later.
12032
12034 The expiration time of Postfix SMTP server TLS session cache informa‐
12035 tion. A cache cleanup is performed periodically every $smtpd_tls_ses‐
12036 sion_cache_timeout seconds. As with $smtpd_tls_session_cache_database,
12037 this parameter is implemented in the tlsmgr(8) daemon and therefore
12038 per-smtpd-instance master.cf overrides are not possible.
12039
12040 As of Postfix 2.11 this setting cannot exceed 100 days. If set <= 0,
12041 session caching is disabled, not just via the database, but also via
12042 RFC 5077 TLS session tickets, which don't require server-side storage.
12043 If set to a positive value less than 2 minutes, the minimum value of 2
12044 minutes is used instead. TLS session tickets require an OpenSSL li‐
12045 brary (at least version 0.9.8h) that provides full support for this TLS
12046 extension.
12047
12048 Specify a non-negative time value (an integral value plus an optional
12049 one-letter suffix that specifies the time unit). Time units: s (sec‐
12050 onds), m (minutes), h (hours), d (days), w (weeks). The default time
12051 unit is s (seconds).
12052
12053 This feature is available in Postfix 2.2 and later, and updated for TLS
12054 session ticket support in Postfix 2.11.
12055
12057 Run the Postfix SMTP server in TLS "wrapper" mode, instead of using the
12058 STARTTLS command.
12059
12060 If you want to support this service, enable a special port in mas‐
12061 ter.cf, and specify "-o smtpd_tls_wrappermode=yes" on the SMTP server's
12062 command line. Port 465 (submissions/smtps) is reserved for this pur‐
12063 pose.
12064
12065 This feature is available in Postfix 2.2 and later.
12066
12068 The name of the proxy protocol used by an optional before-smtpd proxy
12069 agent. When a proxy agent is used, this protocol conveys local and re‐
12070 mote address and port information. Specify "smtpd_upstream_proxy_pro‐
12071 tocol = haproxy" to enable the haproxy protocol; version 2 is supported
12072 with Postfix 3.5 and later.
12073
12074 NOTE: To use the nginx proxy with smtpd(8), enable the XCLIENT protocol
12075 with smtpd_authorized_xclient_hosts. This supports SASL authentication
12076 in the proxy agent (Postfix 2.9 and later).
12077
12078 This feature is available in Postfix 2.10 and later.
12079
12081 The time limit for the proxy protocol specified with the smtpd_up‐
12082 stream_proxy_protocol parameter.
12083
12084 Specify a non-zero time value (an integral value plus an optional
12085 one-letter suffix that specifies the time unit). Time units: s (sec‐
12086 onds), m (minutes), h (hours), d (days), w (weeks). The default time
12087 unit is s (seconds).
12088
12089 This feature is available in Postfix 2.10 and later.
12090
12092 Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
12093 but do not require that clients use TLS encryption.
12094
12095 Note: when invoked via "sendmail -bs", Postfix will never offer START‐
12096 TLS due to insufficient privileges to access the server private key.
12097 This is intended behavior.
12098
12099 This feature is available in Postfix 2.2 and later. With Postfix 2.3
12100 and later use smtpd_tls_security_level instead.
12101
12103 Detect that a message requires SMTPUTF8 support for the specified mail
12104 origin classes. This is a workaround to avoid chicken-and-egg problems
12105 during the initial SMTPUTF8 roll-out in environments with pre-existing
12106 mail flows that contain UTF8. Those mail flows should not break because
12107 Postfix suddenly refuses to deliver such mail to down-stream MTAs that
12108 don't announce SMTPUTF8 support.
12109
12110 The problem is that Postfix cannot rely solely on the sender's declara‐
12111 tion that a message requires SMTPUTF8 support, because UTF8 may be in‐
12112 troduced during local processing (for example, the client hostname in
12113 Postfix's Received: header, adding @$myorigin or .$mydomain to an in‐
12114 complete address, address rewriting, alias expansion, automatic BCC re‐
12115 cipients, local forwarding, and changes made by header checks or Milter
12116 applications).
12117
12118 For now, the default is to enable "SMTPUTF8 required" autodetection
12119 only for Postfix sendmail command-line submissions and address verifi‐
12120 cation probes. This may change once SMTPUTF8 support achieves world
12121 domination. However, sites that add UTF8 content via local processing
12122 (see above) should autodetect the need for SMTPUTF8 support for all
12123 email.
12124
12125 Specify one or more of the following:
12126
12127 sendmail
12128 Submission with the Postfix sendmail(1) command.
12129
12130 smtpd Mail received with the smtpd(8) daemon.
12131
12132 qmqpd Mail received with the qmqpd(8) daemon.
12133
12134 forward
12135 Local forwarding or aliasing. When a message is received with
12136 "SMTPUTF8 required", then the forwarded (aliased) message always
12137 has "SMTPUTF8 required".
12138
12139 bounce
12140 Submission by the bounce(8) daemon. When a message is received
12141 with "SMTPUTF8 required", then the delivery status notification
12142 always has "SMTPUTF8 required".
12143
12144 notify
12145 Postmaster notification from the smtp(8) or smtpd(8) daemon.
12146
12147 verify
12148 Address verification probe from the verify(8) daemon.
12149
12150 all Enable SMTPUTF8 autodetection for all mail.
12151
12152 This feature is available in Postfix 3.0 and later.
12153
12155 Enable preliminary SMTPUTF8 support for the protocols described in RFC
12156 6531, RFC 6532, and RFC 6533. This requires that Postfix is built to
12157 support these protocols.
12158
12159 This feature is available in Postfix 3.0 and later.
12160
12162 Safety net to keep mail queued that would otherwise be returned to the
12163 sender. This parameter disables locally-generated bounces, changes the
12164 handling of negative responses from remote servers, content filters or
12165 plugins, and prevents the Postfix SMTP server from rejecting mail per‐
12166 manently by changing 5xx reply codes into 4xx. However, soft_bounce is
12167 no cure for address rewriting mistakes or mail routing mistakes.
12168
12169 Note: "soft_bounce = yes" is in some cases implemented by modifying
12170 server responses. Therefore, the response that Postfix logs may differ
12171 from the response that Postfix actually sends or receives.
12172
12173 Example:
12174
12175 soft_bounce = yes
12176
12178 The time after which a stale exclusive mailbox lockfile is removed.
12179 This is used for delivery to file or mailbox.
12180
12181 Specify a non-zero time value (an integral value plus an optional
12182 one-letter suffix that specifies the time unit). Time units: s (sec‐
12183 onds), m (minutes), h (hours), d (days), w (weeks). The default time
12184 unit is s (seconds).
12185
12187 This feature is documented in the STRESS_README document.
12188
12189 This feature is available in Postfix 2.5 and later.
12190
12192 Reject mail with 8-bit text in message headers. This blocks mail from
12193 poorly written applications.
12194
12195 This feature should not be enabled on a general purpose mail server,
12196 because it is likely to reject legitimate email.
12197
12198 This feature is available in Postfix 2.0 and later.
12199
12201 Enable both strict_7bit_headers and strict_8bitmime_body.
12202
12203 This feature should not be enabled on a general purpose mail server,
12204 because it is likely to reject legitimate email.
12205
12206 This feature is available in Postfix 2.0 and later.
12207
12209 Reject 8-bit message body text without 8-bit MIME content encoding in‐
12210 formation. This blocks mail from poorly written applications.
12211
12212 Unfortunately, this also rejects majordomo approval requests when the
12213 included request contains valid 8-bit MIME mail, and it rejects bounces
12214 from mailers that do not MIME encapsulate 8-bit content (for example,
12215 bounces from qmail or from old versions of Postfix).
12216
12217 This feature should not be enabled on a general purpose mail server,
12218 because it is likely to reject legitimate email.
12219
12220 This feature is available in Postfix 2.0 and later.
12221
12223 Defer delivery when a mailbox file is not owned by its recipient. The
12224 default setting is not backwards compatible.
12225
12226 This feature is available in Postfix 2.5.3 and later.
12227
12229 Reject mail with invalid Content-Transfer-Encoding: information for the
12230 message/* or multipart/* MIME content types. This blocks mail from
12231 poorly written software.
12232
12233 This feature should not be enabled on a general purpose mail server,
12234 because it will reject mail after a single violation.
12235
12236 This feature is available in Postfix 2.0 and later.
12237
12239 Require that addresses received in SMTP MAIL FROM and RCPT TO commands
12240 are enclosed with <>, and that those addresses do not contain RFC 822
12241 style comments or phrases. This stops mail from poorly written soft‐
12242 ware.
12243
12244 By default, the Postfix SMTP server accepts RFC 822 syntax in MAIL FROM
12245 and RCPT TO addresses.
12246
12248 Enable stricter enforcement of the SMTPUTF8 protocol. The Postfix SMTP
12249 server accepts UTF8 sender or recipient addresses only when the client
12250 requests an SMTPUTF8 mail transaction.
12251
12252 This feature is available in Postfix 3.0 and later.
12253
12255 Obsolete SUN mailtool compatibility feature. Instead, use "mailbox_de‐
12256 livery_lock = dotlock".
12257
12259 Enable the rewriting of "site!user" into "user@site". This is neces‐
12260 sary if your machine is connected to UUCP networks. It is enabled by
12261 default.
12262
12263 Note: with Postfix version 2.2, message header address rewriting hap‐
12264 pens only when one of the following conditions is true:
12265
12266 • The message is received with the Postfix sendmail(1) command,
12267
12268 • The message is received from a network client that matches $lo‐
12269 cal_header_rewrite_clients,
12270
12271 • The message is received from the network, and the re‐
12272 mote_header_rewrite_domain parameter specifies a non-empty
12273 value.
12274
12275 To get the behavior before Postfix version 2.2, specify "lo‐
12276 cal_header_rewrite_clients = static:all".
12277
12278 Example:
12279
12280 swap_bangpath = no
12281
12283 The syslog facility of Postfix logging. Specify a facility as defined
12284 in syslog.conf(5). The default facility is "mail".
12285
12286 Warning: a non-default syslog_facility setting takes effect only after
12287 a Postfix process has completed initialization. Errors during process
12288 initialization will be logged with the default facility. Examples are
12289 errors while parsing the command line arguments, and errors while ac‐
12290 cessing the Postfix main.cf configuration file.
12291
12293 A prefix that is prepended to the process name in syslog records, so
12294 that, for example, "smtpd" becomes "prefix/smtpd".
12295
12296 Warning: a non-default syslog_name setting takes effect only after a
12297 Postfix process has completed initialization. Errors during process
12298 initialization will be logged with the default name. Examples are er‐
12299 rors while parsing the command line arguments, and errors while access‐
12300 ing the Postfix main.cf configuration file.
12301
12303 An optional workaround for routers that break TCP window scaling.
12304 Specify a value > 0 and < 65536 to enable this feature. With Postfix
12305 TCP servers (smtpd(8), qmqpd(8)), this feature is implemented by the
12306 Postfix master(8) daemon.
12307
12308 To change this parameter without stopping Postfix, you need to first
12309 terminate all Postfix TCP servers:
12310
12311 # postconf -e master_service_disable=inet
12312 # postfix reload
12313
12314 This immediately terminates all processes that accept network connec‐
12315 tions. Next, you enable Postfix TCP servers with the updated tcp_win‐
12316 dowsize setting:
12317
12318 # postconf -e tcp_windowsize=65535 master_service_disable=
12319 # postfix reload
12320
12321 If you skip these steps with a running Postfix system, then the
12322 tcp_windowsize change will work only for Postfix TCP clients (smtp(8),
12323 lmtp(8)).
12324
12325 This feature is available in Postfix 2.6 and later.
12326
12328 Append the system-supplied default Certification Authority certificates
12329 to the ones specified with *_tls_CApath or *_tls_CAfile. The default
12330 is "no"; this prevents Postfix from trusting third-party certificates
12331 and giving them relay permission with permit_tls_all_clientcerts.
12332
12333 This feature is available in Postfix 2.4.15, 2.5.11, 2.6.8, 2.7.2 and
12334 later versions. Specify "tls_append_default_CA = yes" for backwards
12335 compatibility, to avoid breaking certificate verification with sites
12336 that don't use permit_tls_all_clientcerts.
12337
12339 The number of pseudo-random bytes that an smtp(8) or smtpd(8) process
12340 requests from the tlsmgr(8) server in order to seed its internal pseudo
12341 random number generator (PRNG). The default of 32 bytes (equivalent to
12342 256 bits) is sufficient to generate a 128bit (or 168bit) session key.
12343
12344 This feature is available in Postfix 2.2 and later.
12345
12347 Configure RFC7671 DANE TLSA digest algorithm agility. Do not change
12348 this setting from its default value.
12349
12350 See Section 8 of RFC7671 for correct key rotation procedures.
12351
12352 This feature is available in Postfix 2.11 through 3.1. Postfix 3.2 and
12353 later ignore this configuration parameter and behave as though it were
12354 set to "on".
12355
12357 DANE TLSA (RFC 6698, RFC 7671, RFC 7672) resource-record "matching
12358 type" digest algorithms in descending preference order. All the speci‐
12359 fied algorithms must be supported by the underlying OpenSSL library,
12360 otherwise the Postfix SMTP client will not support DANE TLSA security.
12361
12362 Specify a list of digest names separated by commas and/or whitespace.
12363 Each digest name may be followed by an optional "=<number>" suffix.
12364 For example, "sha512" may instead be specified as "sha512=2" and
12365 "sha256" may instead be specified as "sha256=1". The optional number
12366 must match the <a href="https://www.iana.org/assignments/dane-parame‐
12367 ters/dane-parameters.xhtml#matching-types" >IANA assigned TLSA matching
12368 type number the algorithm in question. Postfix will check this con‐
12369 straint for the algorithms it knows about. Additional matching type
12370 algorithms registered with IANA can be added with explicit numbers pro‐
12371 vided they are supported by OpenSSL.
12372
12373 Invalid list elements are logged with a warning and disable DANE sup‐
12374 port. TLSA RRs that specify digests not included in the list are ig‐
12375 nored with a warning.
12376
12377 Note: It is unwise to omit sha256 from the digest list. This digest
12378 algorithm is the only mandatory to implement digest algorithm in RFC
12379 6698, and many servers are expected to publish TLSA records with just
12380 sha256 digests. Unless one of the standard digests is seriously com‐
12381 promised and servers have had ample time to update their TLSA records
12382 you should not omit any standard digests, just arrange them in order
12383 from strongest to weakest.
12384
12385 This feature is available in Postfix 2.11 and later.
12386
12388 Enable support for RFC 6698 (DANE TLSA) DNS records that contain di‐
12389 gests of trust-anchors with certificate usage "2". Do not change this
12390 setting from its default value.
12391
12392 This feature is available in Postfix 2.11 through 3.1. It has been
12393 withdrawn in Postfix 3.2, as trust-anchor TLSA records are now widely
12394 used and have proved sufficiently reliable. Postfix 3.2 and later ig‐
12395 nore this configuration parameter and behaves as though it were set to
12396 "yes".
12397
12399 List or bit-mask of OpenSSL bug work-arounds to disable.
12400
12401 The OpenSSL toolkit includes a set of work-arounds for buggy SSL/TLS
12402 implementations. Applications, such as Postfix, that want to maximize
12403 interoperability ask the OpenSSL library to enable the full set of rec‐
12404 ommended work-arounds.
12405
12406 From time to time, it is discovered that a work-around creates a secu‐
12407 rity issue, and should no longer be used. If upgrading OpenSSL to a
12408 fixed version is not an option or an upgrade is not available in a
12409 timely manner, or in closed environments where no buggy clients or
12410 servers exist, it may be appropriate to disable some or all of the
12411 OpenSSL interoperability work-arounds. This parameter specifies which
12412 bug work-arounds to disable.
12413
12414 If the value of the parameter is a hexadecimal long integer starting
12415 with "0x", the bug work-arounds corresponding to the bits specified in
12416 its value are removed from the SSL_OP_ALL work-around bit-mask (see
12417 openssl/ssl.h and SSL_CTX_set_options(3)). You can specify more bits
12418 than are present in SSL_OP_ALL, excess bits are ignored. Specifying
12419 0xFFFFFFFF disables all bug-workarounds on a 32-bit system. This should
12420 also be sufficient on 64-bit systems, until OpenSSL abandons support
12421 for 32-bit systems and starts using the high 32 bits of a 64-bit
12422 bug-workaround mask.
12423
12424 Otherwise, the parameter is a white-space or comma separated list of
12425 specific named bug work-arounds chosen from the list below. It is pos‐
12426 sible that your OpenSSL version includes new bug work-arounds added af‐
12427 ter your Postfix source code was last updated, in that case you can
12428 only disable one of these via the hexadecimal syntax above.
12429
12430 CRYPTOPRO_TLSEXT_BUG
12431 New with GOST support in OpenSSL 1.0.0.
12432
12433 DONT_INSERT_EMPTY_FRAGMENTS
12434 See SSL_CTX_set_options(3)
12435
12436 LEGACY_SERVER_CONNECT
12437 See SSL_CTX_set_options(3)
12438
12439 MICROSOFT_BIG_SSLV3_BUFFER
12440 See SSL_CTX_set_options(3)
12441
12442 MICROSOFT_SESS_ID_BUG
12443 See SSL_CTX_set_options(3)
12444
12445 MSIE_SSLV2_RSA_PADDING
12446 also aliased as CVE-2005-2969. Postfix 2.8 disables this
12447 work-around by default with OpenSSL versions that may predate
12448 the fix. Fixed in OpenSSL 0.9.7h and OpenSSL 0.9.8a.
12449
12450 NETSCAPE_CHALLENGE_BUG
12451 See SSL_CTX_set_options(3)
12452
12453 NETSCAPE_REUSE_CIPHER_CHANGE_BUG
12454 also aliased as CVE-2010-4180. Postfix 2.8 disables this
12455 work-around by default with OpenSSL versions that may predate
12456 the fix. Fixed in OpenSSL 0.9.8q and OpenSSL 1.0.0c.
12457
12458 SSLEAY_080_CLIENT_DH_BUG
12459 See SSL_CTX_set_options(3)
12460
12461 SSLREF2_REUSE_CERT_TYPE_BUG
12462 See SSL_CTX_set_options(3)
12463
12464 TLS_BLOCK_PADDING_BUG
12465 See SSL_CTX_set_options(3)
12466
12467 TLS_D5_BUG
12468 See SSL_CTX_set_options(3)
12469
12470 TLS_ROLLBACK_BUG
12471 See SSL_CTX_set_options(3). This is disabled in OpenSSL 0.9.7
12472 and later. Nobody should still be using 0.9.6!
12473
12474 TLSEXT_PADDING
12475 Postfix >= 3.4. See SSL_CTX_set_options(3).
12476
12477 This feature is available in Postfix 2.8 and later.
12478
12480 The prioritized list of elliptic curves supported by the Postfix SMTP
12481 client and server. These curves are used by the Postfix SMTP server
12482 when "smtpd_tls_eecdh_grade = auto". The selected curves must be im‐
12483 plemented by OpenSSL and be standardized for use in TLS (RFC 8422). It
12484 is unwise to list only "bleeding-edge" curves supported by a small sub‐
12485 set of clients. The default list is suitable for most users.
12486
12487 Postfix skips curve names that are unknown to OpenSSL, or that are
12488 known but not yet implemented. This makes it possible to "anticipate"
12489 support for curves that should be used once they become available. In
12490 particular, in some OpenSSL versions, the new RFC 8031 curves "X25519"
12491 and "X448" may be known by name, but ECDH support for either or both
12492 may be missing. These curves may appear in the default value of this
12493 parameter, even though they'll only be usable with later versions of
12494 OpenSSL.
12495
12496 This feature is available in Postfix 3.2 and later, when it is compiled
12497 and linked with OpenSSL 1.0.2 or later on platforms where EC algorithms
12498 have not been disabled by the vendor.
12499
12501 The elliptic curve used by the Postfix SMTP server for sensibly strong
12502 ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
12503 server when "smtpd_tls_eecdh_grade = strong". The phrase "sensibly
12504 strong" means approximately 128-bit security based on best known at‐
12505 tacks. The selected curve must be implemented by OpenSSL (as reported
12506 by ecparam(1) with the "-list_curves" option) and be one of the curves
12507 listed in Section 5.1.1 of RFC 8422. You should not generally change
12508 this setting. Remote SMTP client implementations must support this
12509 curve for EECDH key exchange to take place. It is unwise to choose
12510 only "bleeding-edge" curves supported by only a small subset of
12511 clients.
12512
12513 The default "strong" curve is rated in NSA Suite B for information
12514 classified up to SECRET.
12515
12516 Note: elliptic curve names are poorly standardized; different standards
12517 groups are assigning different names to the same underlying curves.
12518 The curve with the X9.62 name "prime256v1" is also known under the SECG
12519 name "secp256r1", but OpenSSL does not recognize the latter name.
12520
12521 If you want to take maximal advantage of ciphers that offer forward se‐
12522 crecy see the Getting started section of FORWARD_SECRECY_README. The
12523 full document conveniently presents all information about Postfix "per‐
12524 fect" forward secrecy support in one place: what forward secrecy is,
12525 how to tweak settings, and what you can expect to see when Postfix uses
12526 ciphers with forward secrecy.
12527
12528 This feature is available in Postfix 2.6 and later, when it is compiled
12529 and linked with OpenSSL 1.0.0 or later on platforms where EC algorithms
12530 have not been disabled by the vendor.
12531
12533 The elliptic curve used by the Postfix SMTP server for maximally strong
12534 ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
12535 server when "smtpd_tls_eecdh_grade = ultra". The phrase "maximally
12536 strong" means approximately 192-bit security based on best known at‐
12537 tacks. This additional strength comes at a significant computational
12538 cost, most users should instead set "smtpd_tls_eecdh_grade = strong".
12539 The selected curve must be implemented by OpenSSL (as reported by ec‐
12540 param(1) with the "-list_curves" option) and be one of the curves
12541 listed in Section 5.1.1 of RFC 8422. You should not generally change
12542 this setting. Remote SMTP client implementations must support this
12543 curve for EECDH key exchange to take place. It is unwise to choose
12544 only "bleeding-edge" curves supported by only a small subset of
12545 clients.
12546
12547 This default "ultra" curve is rated in NSA Suite B for information
12548 classified up to TOP SECRET.
12549
12550 If you want to take maximal advantage of ciphers that offer forward se‐
12551 crecy see the Getting started section of FORWARD_SECRECY_README. The
12552 full document conveniently presents all information about Postfix "per‐
12553 fect" forward secrecy support in one place: what forward secrecy is,
12554 how to tweak settings, and what you can expect to see when Postfix uses
12555 ciphers with forward secrecy.
12556
12557 This feature is available in Postfix 2.6 and later, when it is compiled
12558 and linked with OpenSSL 1.0.0 or later on platforms where EC algorithms
12559 have not been disabled by the vendor.
12560
12562 The OpenSSL cipherlist for "export" or higher grade ciphers. This de‐
12563 fines the meaning of the "export" setting in smtpd_tls_ciphers,
12564 smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ci‐
12565 phers, lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. With Postfix
12566 releases before the middle of 2015 this is the default cipherlist for
12567 the opportunistic ("may") TLS client security level and also the de‐
12568 fault cipherlist for the SMTP server. You are strongly encouraged not
12569 to change this setting.
12570
12571 This feature is available in Postfix 2.3 and later.
12572
12574 A workaround for implementations that hang Postfix while shutting down
12575 a TLS session, until Postfix times out. With this enabled, Postfix will
12576 not wait for the remote TLS peer to respond to a TLS 'close' notifica‐
12577 tion. This behavior is recommended for TLSv1.0 and later.
12578
12580 The OpenSSL cipherlist for "high" grade ciphers. This defines the mean‐
12581 ing of the "high" setting in smtpd_tls_ciphers, smtpd_tls_mandatory_ci‐
12582 phers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, lmtp_tls_ciphers,
12583 and lmtp_tls_mandatory_ciphers. You are strongly encouraged not to
12584 change this setting.
12585
12586 This feature is available in Postfix 2.3 and later.
12587
12589 A temporary migration aid for sites that use certificate public-key
12590 fingerprints with Postfix 2.9.0..2.9.5, which use an incorrect algo‐
12591 rithm. This parameter has no effect on the certificate fingerprint sup‐
12592 port that is available since Postfix 2.2.
12593
12594 Specify "tls_legacy_public_key_fingerprints = yes" temporarily, pending
12595 a migration from configuration files with incorrect Postfix
12596 2.9.0..2.9.5 certificate public-key finger prints, to the correct fin‐
12597 gerprints used by Postfix 2.9.6 and later. To compute the correct cer‐
12598 tificate public-key fingerprints, see TLS_README.
12599
12600 This feature is available in Postfix 2.9.6 and later.
12601
12603 The OpenSSL cipherlist for "low" or higher grade ciphers. This defines
12604 the meaning of the "low" setting in smtpd_tls_ciphers, smtpd_tls_manda‐
12605 tory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers,
12606 lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly en‐
12607 couraged not to change this setting.
12608
12609 This feature is available in Postfix 2.3 and later.
12610
12612 The OpenSSL cipherlist for "medium" or higher grade ciphers. This de‐
12613 fines the meaning of the "medium" setting in smtpd_tls_ciphers,
12614 smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ci‐
12615 phers, lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. This is the
12616 default cipherlist for mandatory TLS encryption in the TLS client (with
12617 anonymous ciphers disabled when verifying server certificates). This
12618 is the default cipherlist for opportunistic TLS with Postfix releases
12619 after the middle of 2015. You are strongly encouraged not to change
12620 this setting.
12621
12622 This feature is available in Postfix 2.3 and later.
12623
12625 The OpenSSL cipherlist for "NULL" grade ciphers that provide authenti‐
12626 cation without encryption. This defines the meaning of the "null" set‐
12627 ting in smtpd_tls_mandatory_ciphers, smtp_tls_mandatory_ciphers and
12628 lmtp_tls_mandatory_ciphers. You are strongly encouraged not to change
12629 this setting.
12630
12631 This feature is available in Postfix 2.3 and later.
12632
12634 With SSLv3 and later, use the Postfix SMTP server's cipher preference
12635 order instead of the remote client's cipher preference order.
12636
12637 By default, the OpenSSL server selects the client's most preferred ci‐
12638 pher that the server supports. With SSLv3 and later, the server may
12639 choose its own most preferred cipher that is supported (offered) by the
12640 client. Setting "tls_preempt_cipherlist = yes" enables server cipher
12641 preferences.
12642
12643 While server cipher selection may in some cases lead to a more secure
12644 or performant cipher choice, there is some risk of interoperability is‐
12645 sues. In the past, some SSL clients have listed lower priority ciphers
12646 that they did not implement correctly. If the server chooses a cipher
12647 that the client prefers less, it may select a cipher whose client im‐
12648 plementation is flawed. Most notably Windows 2003 Microsoft Exchange
12649 servers have flawed implementations of DES-CBC3-SHA, which OpenSSL con‐
12650 siders stronger than RC4-SHA. Enabling server cipher-suite selection
12651 may create interoperability issues with Windows 2003 Microsoft Exchange
12652 clients.
12653
12654 This feature is available in Postfix 2.8 and later, in combination with
12655 OpenSSL 0.9.7 and later.
12656
12658 The number of bytes that tlsmgr(8) reads from $tls_random_source when
12659 (re)seeding the in-memory pseudo random number generator (PRNG) pool.
12660 The default of 32 bytes (256 bits) is good enough for 128bit symmetric
12661 keys. If using EGD or a device file, a maximum of 255 bytes is read.
12662
12663 This feature is available in Postfix 2.2 and later.
12664
12666 Name of the pseudo random number generator (PRNG) state file that is
12667 maintained by tlsmgr(8). The file is created when it does not exist,
12668 and its length is fixed at 1024 bytes.
12669
12670 As of version 2.5, Postfix no longer uses root privileges when opening
12671 this file, and the default file location was changed from ${config_di‐
12672 rectory}/prng_exch to ${data_directory}/prng_exch. As a migration aid,
12673 an attempt to open the file under a non-Postfix directory is redirected
12674 to the Postfix-owned data_directory, and a warning is logged.
12675
12676 This feature is available in Postfix 2.2 and later.
12677
12679 The time between attempts by tlsmgr(8) to save the state of the pseudo
12680 random number generator (PRNG) to the file specified with $tls_ran‐
12681 dom_exchange_name.
12682
12683 Specify a non-zero time value (an integral value plus an optional
12684 one-letter suffix that specifies the time unit). Time units: s (sec‐
12685 onds), m (minutes), h (hours), d (days), w (weeks). The default time
12686 unit is s (seconds).
12687
12688 This feature is available in Postfix 2.2 and later.
12689
12691 The maximal time between attempts by tlsmgr(8) to re-seed the in-memory
12692 pseudo random number generator (PRNG) pool from external sources. The
12693 actual time between re-seeding attempts is calculated using the PRNG,
12694 and is between 0 and the time specified.
12695
12696 Specify a non-zero time value (an integral value plus an optional
12697 one-letter suffix that specifies the time unit). Time units: s (sec‐
12698 onds), m (minutes), h (hours), d (days), w (weeks). The default time
12699 unit is s (seconds).
12700
12701 This feature is available in Postfix 2.2 and later.
12702
12704 The external entropy source for the in-memory tlsmgr(8) pseudo random
12705 number generator (PRNG) pool. Be sure to specify a non-blocking source.
12706 If this source is not a regular file, the entropy source type must be
12707 prepended: egd:/path/to/egd_socket for a source with EGD compatible
12708 socket interface, or dev:/path/to/device for a device file.
12709
12710 Note: on OpenBSD systems specify dev:/dev/arandom when dev:/dev/urandom
12711 gives timeout errors.
12712
12713 This feature is available in Postfix 2.2 and later.
12714
12716 Optional lookup tables that map names received from remote SMTP clients
12717 via the TLS Server Name Indication (SNI) extension to the appropriate
12718 keys and certificate chains. This parameter is implemented in the
12719 Postfix TLS library, and applies to both smtpd(8) and the SMTP server
12720 mode of tlsproxy(8).
12721
12722 When this parameter is non-empty, the Postfix SMTP server enables SNI
12723 extension processing, and logs SNI values that are invalid or don't
12724 match an entry in the specified tables. When an entry does match, the
12725 SNI name is logged as part of the connection summary at log levels 1
12726 and higher.
12727
12728 The lookup key is either the verbatim SNI domain name or an ancestor
12729 domain prefixed with a leading dot. For internationalized domains, the
12730 lookup key must be in IDNA 2008 A-label form (as required in the TLS
12731 SNI extension).
12732
12733 The syntax of the lookup value is the same as with the
12734 smtp_tls_chain_files parameter (see there for additional details), but
12735 here scoped to just TLS connections in which the client sends a match‐
12736 ing SNI domain name.
12737
12738 Example:
12739
12740 /etc/postfix/main.cf:
12741 #
12742 # The indexed SNI table must be created with "postmap -F"
12743 #
12744 indexed = ${default_database_type}:${config_directory}/
12745 tls_server_sni_maps = ${indexed}sni
12746
12747 /etc/postfix/sni:
12748 #
12749 # The example.com domain has both an RSA and ECDSA certificate
12750 # chain. The chain files MUST start with the private key,
12751 # with the certificate chain next, starting with the leaf
12752 # (server) certificate, and then the issuer certificates.
12753 #
12754 example.com /etc/postfix/sni-chains/rsa2048.example.com.pem,
12755 /etc/postfix/sni-chains/ecdsa-p256.example.com.pem
12756 #
12757 # The example.net domain has a wildcard certificate, and two
12758 # additional DNS names. So its certificate chain is also used
12759 # with any subdomain, plus the additional names.
12760 #
12761 example.net /etc/postfix/sni-chains/example.net.pem
12762 .example.net /etc/postfix/sni-chains/example.net.pem
12763 example.info /etc/postfix/sni-chains/example.net.pem
12764 example.org /etc/postfix/sni-chains/example.net.pem
12765
12766 Note that the SNI lookup tables should also have entries for the do‐
12767 mains that correspond to the Postfix SMTP server's default certifi‐
12768 cate(s). This ensures that the remote SMTP client's TLS SNI extension
12769 gets a positive response when it specifies one of the Postfix SMTP
12770 server's default domains, and ensures that the Postfix SMTP server will
12771 not log an SNI name mismatch for such a domain. The Postfix SMTP
12772 server's default certificates are then only used when the client sends
12773 no SNI or when it sends SNI with a domain that the server knows no cer‐
12774 tificate(s) for.
12775
12776 The mapping from an SNI domain name to a certificate chain is indirect.
12777 In the input source files for "cdb", "hash", "btree" or other tables
12778 that are converted to on-disk indexed files via postmap(1), the value
12779 specified for each key is a list of filenames. When postmap(1) is used
12780 with the -F option, the generated table stores for each lookup key the
12781 base64-encoded contents of the associated files. When querying tables
12782 via postmap -Fq, the table value is decoded from base64, yielding the
12783 original file content, plus a new line.
12784
12785 With "regexp", "pcre", "inline", "texthash", "static" and similar ta‐
12786 bles that are interpreted at run-time, and don't have a separate source
12787 format, the table value is again a list files, that are loaded into
12788 memory when the table is opened.
12789
12790 With tables whose content is managed outside of Postfix, such as LDAP,
12791 MySQL, PostgreSQL, socketmap and tcp, the value must be a concatenation
12792 of the desired PEM keys and certificate chains, that is then further
12793 encoded to yield a single-line base64 string. Creation of such tables
12794 and secure storage (the value includes private key material) are out‐
12795 side the responsibility of Postfix.
12796
12797 With "socketmap" and "tcp" the data will be transmitted in the clear,
12798 and there is no query access control, so these are generally unsuitable
12799 for storing SNI chains. With LDAP and SQL, you should restrict read
12800 access and use TLS to protect the sensitive data in transit.
12801
12802 Typically there is only one private key and its chain of certificates
12803 starting with the "leaf" certificate corresponding to that key, and
12804 continuing with the appropriate intermediate issuer CA certificates,
12805 with each certificate ideally followed by its issuer. Servers that
12806 have keys and certificates for more than one algorithm (e.g. both an
12807 RSA key and an ECDSA key, or even RSA, ECDSA and Ed25519) can use mul‐
12808 tiple chains concatenated together, with the key always listed before
12809 the corresponding certificates.
12810
12811 This feature is available in Postfix 3.4 and later.
12812
12814 3.0: aes-128-cbc)
12815 Algorithm used to encrypt RFC5077 TLS session tickets. This algorithm
12816 must use CBC mode, have a 128-bit block size, and must have a key
12817 length between 128 and 256 bits. The default is aes-256-cbc. Overrid‐
12818 ing the default to choose a different algorithm is discouraged.
12819
12820 Setting this parameter empty disables session ticket support in the
12821 Postfix SMTP server. Another way to disable session ticket support is
12822 via the tls_ssl_options parameter.
12823
12824 This feature is available in Postfix 3.0 and later.
12825
12827 List or bit-mask of OpenSSL options to enable.
12828
12829 The OpenSSL toolkit provides a set of options that applications can en‐
12830 able to tune the OpenSSL behavior. Some of these work around bugs in
12831 other implementations and are on by default. You can use the tls_dis‐
12832 able_workarounds parameter to selectively disable some or all of the
12833 bug work-arounds, making OpenSSL more strict at the cost of non-inter‐
12834 operability with SSL clients or servers that exhibit the bugs.
12835
12836 Other options are off by default, and typically enable or disable fea‐
12837 tures rather than bug work-arounds. These may be turned on (with care)
12838 via the tls_ssl_options parameter. The value is a white-space or comma
12839 separated list of named options chosen from the list below. The names
12840 are not case-sensitive, you can use lower-case if you prefer. The up‐
12841 per case values below match the corresponding macro name in the ssl.h
12842 header file with the SSL_OP_ prefix removed. It is possible that your
12843 OpenSSL version includes new options added after your Postfix source
12844 code was last updated, in that case you can only enable one of these
12845 via the hexadecimal syntax below.
12846
12847 You should only enable features via the hexadecimal mask when the need
12848 to control the feature is critical (to deal with a new vulnerability or
12849 a serious interoperability problem). Postfix DOES NOT promise back‐
12850 wards compatible behavior with respect to the mask bits. A feature en‐
12851 abled via the mask in one release may be enabled by other means in a
12852 later release, and the mask bit will then be ignored. Therefore, use
12853 of the hexadecimal mask is only a temporary measure until a new Postfix
12854 or OpenSSL release provides a better solution.
12855
12856 If the value of the parameter is a hexadecimal long integer starting
12857 with "0x", the options corresponding to the bits specified in its value
12858 are enabled (see openssl/ssl.h and SSL_CTX_set_options(3)). You can
12859 only enable options not already controlled by other Postfix settings.
12860 For example, you cannot disable protocols or enable server cipher pref‐
12861 erence. Do not attempt to enable all features by specifying
12862 0xFFFFFFFF, this is unlikely to be a good idea. Some bug work-arounds
12863 are also valid here, allowing them to be re-enabled if/when they're no
12864 longer enabled by default. The supported values include:
12865
12866 ENABLE_MIDDLEBOX_COMPAT
12867 Postfix >= 3.4. See SSL_CTX_set_options(3).
12868
12869 LEGACY_SERVER_CONNECT
12870 See SSL_CTX_set_options(3).
12871
12872 NO_TICKET
12873 Enabled by default when needed in fully-patched Postfix >= 2.7.
12874 Not needed at all for Postfix >= 2.11, unless for some reason
12875 you do not want to support TLS session resumption. Best not set
12876 explicitly. See SSL_CTX_set_options(3).
12877
12878 NO_COMPRESSION
12879 Disable SSL compression even if supported by the OpenSSL li‐
12880 brary. Compression is CPU-intensive, and compression before en‐
12881 cryption does not always improve security.
12882
12883 NO_RENEGOTIATION
12884 Postfix >= 3.4. This can reduce opportunities for a potential
12885 CPU exhaustion attack. See SSL_CTX_set_options(3).
12886
12887 NO_SESSION_RESUMPTION_ON_RENEGOTIATION
12888 Postfix >= 3.4. See SSL_CTX_set_options(3).
12889
12890 PRIORITIZE_CHACHA
12891 Postfix >= 3.4. See SSL_CTX_set_options(3).
12892
12893 This feature is available in Postfix 2.11 and later.
12894
12896 Match multiple DNS labels with "*" in wildcard certificates.
12897
12898 Some mail service providers prepend the customer domain name to a base
12899 domain for which they have a wildcard TLS certificate. For example,
12900 the MX records for example.com hosted by example.net may be:
12901
12902 example.com. IN MX 0 example.com.mx1.example.net.
12903 example.com. IN MX 0 example.com.mx2.example.net.
12904
12905 and the TLS certificate may be for "*.example.net". The "*" then corre‐
12906 sponds with multiple labels in the mail server domain name. While
12907 multi-label wildcards are not widely supported, and are not blessed by
12908 any standard, there is little to be gained by disallowing their use in
12909 this context.
12910
12911 Notes:
12912
12913 • In a certificate name, the "*" is special only when it is used
12914 as the first label.
12915
12916 • While Postfix (2.11 or later) can match "*" with multiple domain
12917 name labels, other implementations likely will not.
12918
12919 • Earlier Postfix implementations behave as if "tls_wild‐
12920 card_matches_multiple_labels = no".
12921
12922 This feature is available in Postfix 2.11 and later.
12923
12925 The name of the tlsmgr(8) service entry in master.cf. This service
12926 maintains TLS session caches and other information in support of TLS.
12927
12928 This feature is available in Postfix 2.11 and later.
12929
12931 A file containing CA certificates of root CAs trusted to sign either
12932 remote TLS server certificates or intermediate CA certificates. See
12933 smtp_tls_CAfile for further details.
12934
12935 This feature is available in Postfix 3.4 and later.
12936
12938 Directory with PEM format Certification Authority certificates that the
12939 Postfix tlsproxy(8) client uses to verify a remote TLS server certifi‐
12940 cate. See smtp_tls_CApath for further details.
12941
12942 This feature is available in Postfix 3.4 and later.
12943
12945 File with the Postfix tlsproxy(8) client RSA certificate in PEM format.
12946 See smtp_tls_cert_file for further details. The preferred way to con‐
12947 figure tlsproxy client keys and certificates is via the "tl‐
12948 sproxy_client_chain_files" parameter.
12949
12950 This feature is available in Postfix 3.4 and later.
12951
12953 Files with the Postfix tlsproxy(8) client keys and certificate chains
12954 in PEM format. See smtp_tls_chain_files for further details.
12955
12956 This feature is available in Postfix 3.4 and later.
12957
12959 File with the Postfix tlsproxy(8) client DSA certificate in PEM format.
12960 See smtp_tls_dcert_file for further details. DSA is obsolete and should
12961 not be used.
12962
12963 This feature is available in Postfix 3.4 and later.
12964
12966 File with the Postfix tlsproxy(8) client DSA private key in PEM format.
12967 See smtp_tls_dkey_file for further details. DSA is obsolete and should
12968 not be used.
12969
12970 This feature is available in Postfix 3.4 and later.
12971
12973 File with the Postfix tlsproxy(8) client ECDSA certificate in PEM for‐
12974 mat. See smtp_tls_eccert_file for further details. The preferred way to
12975 configure tlsproxy client keys and certificates is via the "tl‐
12976 sproxy_client_chain_files" parameter.
12977
12978 This feature is available in Postfix 3.4 and later.
12979
12981 File with the Postfix tlsproxy(8) client ECDSA private key in PEM for‐
12982 mat. See smtp_tls_eckey_file for further details. The preferred way to
12983 configure tlsproxy client keys and certificates is via the "tl‐
12984 sproxy_client_chain_files" parameter.
12985
12986 This feature is available in Postfix 3.4 and later.
12987
12989 Enforcement mode: require that SMTP servers use TLS encryption. See
12990 smtp_enforce_tls for further details. Use tlsproxy_client_secu‐
12991 rity_level instead.
12992
12993 This feature is available in Postfix 3.4 and later.
12994
12996 The message digest algorithm used to construct remote TLS server cer‐
12997 tificate fingerprints. See smtp_tls_fingerprint_digest for further de‐
12998 tails.
12999
13000 This feature is available in Postfix 3.4 and later.
13001
13003 File with the Postfix tlsproxy(8) client RSA private key in PEM format.
13004 See smtp_tls_key_file for further details. The preferred way to config‐
13005 ure tlsproxy client keys and certificates is via the "tl‐
13006 sproxy_client_chain_files" parameter.
13007
13008 This feature is available in Postfix 3.4 and later.
13009
13011 The default TLS security level for the Postfix tlsproxy(8) client. See
13012 smtp_tls_security_level for further details.
13013
13014 This feature is available in Postfix 3.4 - 3.6. It was renamed to tl‐
13015 sproxy_client_security_level in Postfix 3.7.
13016
13018 Enable additional Postfix tlsproxy(8) client logging of TLS activity.
13019 See smtp_tls_loglevel for further details.
13020
13021 This feature is available in Postfix 3.4 and later.
13022
13024 The name of the parameter that provides the tlsproxy_client_loglevel
13025 value.
13026
13027 This feature is available in Postfix 3.4 and later.
13028
13030 Optional lookup tables with the Postfix tlsproxy(8) client TLS usage
13031 policy by next-hop destination and by remote TLS server hostname. See
13032 smtp_tls_per_site for further details.
13033
13034 This feature is available in Postfix 3.4 and later.
13035
13037 Optional lookup tables with the Postfix tlsproxy(8) client TLS security
13038 policy by next-hop destination. See smtp_tls_policy_maps for further
13039 details.
13040
13041 This feature is available in Postfix 3.4 - 3.6. It was renamed to tl‐
13042 sproxy_client_policy_maps in Postfix 3.7.
13043
13045 Optional lookup tables with the Postfix tlsproxy(8) client TLS security
13046 policy by next-hop destination. See smtp_tls_policy_maps for further
13047 details.
13048
13049 This feature is available in Postfix 3.7 and later. It was previously
13050 called tlsproxy_client_policy.
13051
13053 The verification depth for remote TLS server certificates. See
13054 smtp_tls_scert_verifydepth for further details.
13055
13056 This feature is available in Postfix 3.4 and later.
13057
13059 The default TLS security level for the Postfix tlsproxy(8) client. See
13060 smtp_tls_security_level for further details.
13061
13062 This feature is available in Postfix 3.7 and later. It was previously
13063 called tlsproxy_client_level.
13064
13066 Opportunistic mode: use TLS when a remote server announces TLS support.
13067 See smtp_use_tls for further details. Use tlsproxy_client_secu‐
13068 rity_level instead.
13069
13070 This feature is available in Postfix 3.4 and later.
13071
13073 Mandatory TLS: announce STARTTLS support to remote SMTP clients, and
13074 require that clients use TLS encryption. See smtpd_enforce_tls for fur‐
13075 ther details. Use tlsproxy_tls_security_level instead.
13076
13077 This feature is available in Postfix 2.8 and later.
13078
13080 The name of the tlsproxy(8) service entry in master.cf. This service
13081 performs plaintext <=> TLS ciphertext conversion.
13082
13083 This feature is available in Postfix 2.8 and later.
13084
13086 A file containing (PEM format) CA certificates of root CAs trusted to
13087 sign either remote SMTP client certificates or intermediate CA certifi‐
13088 cates. See smtpd_tls_CAfile for further details.
13089
13090 This feature is available in Postfix 2.8 and later.
13091
13093 A directory containing (PEM format) CA certificates of root CAs trusted
13094 to sign either remote SMTP client certificates or intermediate CA cer‐
13095 tificates. See smtpd_tls_CApath for further details.
13096
13097 This feature is available in Postfix 2.8 and later.
13098
13100 sion_ids)
13101 Force the Postfix tlsproxy(8) server to issue a TLS session id, even
13102 when TLS session caching is turned off. See smtpd_tls_always_issue_ses‐
13103 sion_ids for further details.
13104
13105 This feature is available in Postfix 2.8 and later.
13106
13108 Ask a remote SMTP client for a client certificate. See
13109 smtpd_tls_ask_ccert for further details.
13110
13111 This feature is available in Postfix 2.8 and later.
13112
13114 The verification depth for remote SMTP client certificates. A depth of
13115 1 is sufficient if the issuing CA is listed in a local CA file. See
13116 smtpd_tls_ccert_verifydepth for further details.
13117
13118 This feature is available in Postfix 2.8 and later.
13119
13121 File with the Postfix tlsproxy(8) server RSA certificate in PEM format.
13122 This file may also contain the Postfix tlsproxy(8) server private RSA
13123 key. See smtpd_tls_cert_file for further details. With Postfix >= 3.4
13124 the preferred way to configure tlsproxy server keys and certificates is
13125 via the "tlsproxy_tls_chain_files" parameter.
13126
13127 This feature is available in Postfix 2.8 and later.
13128
13130 Files with the Postfix tlsproxy(8) server keys and certificate chains
13131 in PEM format. See smtpd_tls_chain_files for further details.
13132
13133 This feature is available in Postfix 3.4 and later.
13134
13136 The minimum TLS cipher grade that the Postfix tlsproxy(8) server will
13137 use with opportunistic TLS encryption. See smtpd_tls_ciphers for fur‐
13138 ther details.
13139
13140 This feature is available in Postfix 2.8 and later.
13141
13143 File with the Postfix tlsproxy(8) server DSA certificate in PEM format.
13144 This file may also contain the Postfix tlsproxy(8) server private DSA
13145 key. DSA is obsolete and should not be used. See smtpd_tls_dcert_file
13146 for further details.
13147
13148 This feature is available in Postfix 2.8 and later.
13149
13151 File with DH parameters that the Postfix tlsproxy(8) server should use
13152 with non-export EDH ciphers. See smtpd_tls_dh1024_param_file for fur‐
13153 ther details.
13154
13155 This feature is available in Postfix 2.8 and later.
13156
13158 File with DH parameters that the Postfix tlsproxy(8) server should use
13159 with export-grade EDH ciphers. See smtpd_tls_dh512_param_file for fur‐
13160 ther details. The default SMTP server cipher grade is "medium" with
13161 Postfix releases after the middle of 2015, and as a result export-grade
13162 cipher suites are by default not used.
13163
13164 With Postfix >= 3.6 export-grade Diffie-Hellman key exchange is no
13165 longer supported, and this parameter is silently ignored.
13166
13167 This feature is available in Postfix 2.8 and later.
13168
13170 File with the Postfix tlsproxy(8) server DSA private key in PEM format.
13171 This file may be combined with the Postfix tlsproxy(8) server DSA cer‐
13172 tificate file specified with $smtpd_tls_dcert_file. DSA is obsolete
13173 and should not be used. See smtpd_tls_dkey_file for further details.
13174
13175 This feature is available in Postfix 2.8 and later.
13176
13178 File with the Postfix tlsproxy(8) server ECDSA certificate in PEM for‐
13179 mat. This file may also contain the Postfix tlsproxy(8) server private
13180 ECDSA key. See smtpd_tls_eccert_file for further details. With Post‐
13181 fix >= 3.4 the preferred way to configure tlsproxy server keys and cer‐
13182 tificates is via the "tlsproxy_tls_chain_files" parameter.
13183
13184 This feature is available in Postfix 2.8 and later.
13185
13187 File with the Postfix tlsproxy(8) server ECDSA private key in PEM for‐
13188 mat. This file may be combined with the Postfix tlsproxy(8) server
13189 ECDSA certificate file specified with $smtpd_tls_eccert_file. See
13190 smtpd_tls_eckey_file for further details. With Postfix >= 3.4 the pre‐
13191 ferred way to configure tlsproxy server keys and certificates is via
13192 the "tlsproxy_tls_chain_files" parameter.
13193
13194 This feature is available in Postfix 2.8 and later.
13195
13197 The Postfix tlsproxy(8) server security grade for ephemeral ellip‐
13198 tic-curve Diffie-Hellman (EECDH) key exchange. See
13199 smtpd_tls_eecdh_grade for further details.
13200
13201 This feature is available in Postfix 2.8 and later.
13202
13204 List of ciphers or cipher types to exclude from the tlsproxy(8) server
13205 cipher list at all TLS security levels. See smtpd_tls_exclude_ciphers
13206 for further details.
13207
13208 This feature is available in Postfix 2.8 and later.
13209
13211 The message digest algorithm to construct remote SMTP client-certifi‐
13212 cate fingerprints. See smtpd_tls_fingerprint_digest for further de‐
13213 tails.
13214
13215 This feature is available in Postfix 2.8 and later.
13216
13218 File with the Postfix tlsproxy(8) server RSA private key in PEM format.
13219 This file may be combined with the Postfix tlsproxy(8) server RSA cer‐
13220 tificate file specified with $smtpd_tls_cert_file. See
13221 smtpd_tls_key_file for further details. With Postfix >= 3.4 the pre‐
13222 ferred way to configure tlsproxy server keys and certificates is via
13223 the "tlsproxy_tls_chain_files" parameter.
13224
13225 This feature is available in Postfix 2.8 and later.
13226
13228 Enable additional Postfix tlsproxy(8) server logging of TLS activity.
13229 Each logging level also includes the information that is logged at a
13230 lower logging level. See smtpd_tls_loglevel for further details.
13231
13232 This feature is available in Postfix 2.8 and later.
13233
13235 The minimum TLS cipher grade that the Postfix tlsproxy(8) server will
13236 use with mandatory TLS encryption. See smtpd_tls_mandatory_ciphers for
13237 further details.
13238
13239 This feature is available in Postfix 2.8 and later.
13240
13242 clude_ciphers)
13243 Additional list of ciphers or cipher types to exclude from the tl‐
13244 sproxy(8) server cipher list at mandatory TLS security levels. See
13245 smtpd_tls_mandatory_exclude_ciphers for further details.
13246
13247 This feature is available in Postfix 2.8 and later.
13248
13250 The SSL/TLS protocols accepted by the Postfix tlsproxy(8) server with
13251 mandatory TLS encryption. If the list is empty, the server supports all
13252 available SSL/TLS protocol versions. See smtpd_tls_mandatory_protocols
13253 for further details.
13254
13255 This feature is available in Postfix 2.8 and later.
13256
13258 List of TLS protocols that the Postfix tlsproxy(8) server will exclude
13259 or include with opportunistic TLS encryption. See smtpd_tls_protocols
13260 for further details.
13261
13262 This feature is available in Postfix 2.8 and later.
13263
13265 With mandatory TLS encryption, require a trusted remote SMTP client
13266 certificate in order to allow TLS connections to proceed. See
13267 smtpd_tls_req_ccert for further details.
13268
13269 This feature is available in Postfix 2.8 and later.
13270
13272 The SMTP TLS security level for the Postfix tlsproxy(8) server; when a
13273 non-empty value is specified, this overrides the obsolete parameters
13274 smtpd_use_tls and smtpd_enforce_tls. See smtpd_tls_security_level for
13275 further details.
13276
13277 This feature is available in Postfix 2.8 and later.
13278
13280
13281 Obsolete expiration time of Postfix tlsproxy(8) server TLS session
13282 cache information. Since the cache is shared with smtpd(8) and managed
13283 by tlsmgr(8), there is only one expiration time for the SMTP server
13284 cache shared by all three services, namely smtpd_tls_ses‐
13285 sion_cache_timeout.
13286
13287 This feature is available in Postfix 2.8 and later.
13288
13290 Opportunistic TLS: announce STARTTLS support to remote SMTP clients,
13291 but do not require that clients use TLS encryption. See smtpd_use_tls
13292 for further details. Use tlsproxy_tls_security_level instead.
13293
13294 This feature is available in Postfix 2.8 and later.
13295
13297 How much time a tlsproxy(8) process may take to process local or remote
13298 I/O before it is terminated by a built-in watchdog timer. This is a
13299 safety mechanism that prevents tlsproxy(8) from becoming non-responsive
13300 due to a bug in Postfix itself or in system software. To avoid false
13301 alarms and unnecessary cache corruption this limit cannot be set under
13302 10s.
13303
13304 Specify a non-zero time value (an integral value plus an optional
13305 one-letter suffix that specifies the time unit). Time units: s (sec‐
13306 onds), m (minutes), h (hours), d (days), w (weeks). The default time
13307 unit is s (seconds).
13308
13309 This feature is available in Postfix 2.8 and later
13310
13312 The name of the trace service. This service is implemented by the
13313 bounce(8) daemon and maintains a record of mail deliveries and produces
13314 a mail delivery report when verbose delivery is requested with "send‐
13315 mail -v".
13316
13317 This feature is available in Postfix 2.1 and later.
13318
13320 A transport-specific override for the default_delivery_slot_cost param‐
13321 eter value, where transport is the master.cf name of the message deliv‐
13322 ery transport.
13323
13324 Note: transport_delivery_slot_cost parameters will not show up in
13325 "postconf" command output before Postfix version 2.9. This limitation
13326 applies to many parameters whose name is a combination of a master.cf
13327 service name and a built-in suffix (in this case: "_deliv‐
13328 ery_slot_cost").
13329
13331 A transport-specific override for the default_delivery_slot_discount
13332 parameter value, where transport is the master.cf name of the message
13333 delivery transport.
13334
13335 Note: transport_delivery_slot_discount parameters will not show up in
13336 "postconf" command output before Postfix version 2.9. This limitation
13337 applies to many parameters whose name is a combination of a master.cf
13338 service name and a built-in suffix (in this case: "_delivery_slot_dis‐
13339 count").
13340
13342 A transport-specific override for the default_delivery_slot_loan param‐
13343 eter value, where transport is the master.cf name of the message deliv‐
13344 ery transport.
13345
13346 Note: transport_delivery_slot_loan parameters will not show up in
13347 "postconf" command output before Postfix version 2.9. This limitation
13348 applies to many parameters whose name is a combination of a master.cf
13349 service name and a built-in suffix (in this case: "_deliv‐
13350 ery_slot_loan").
13351
13353 tination_concurrency_failed_cohort_limit)
13354 A transport-specific override for the default_destination_concur‐
13355 rency_failed_cohort_limit parameter value, where transport is the mas‐
13356 ter.cf name of the message delivery transport.
13357
13358 Note: some transport_destination_concurrency_failed_cohort_limit param‐
13359 eters will not show up in "postconf" command output before Postfix ver‐
13360 sion 2.9. This limitation applies to many parameters whose name is a
13361 combination of a master.cf service name and a built-in suffix (in this
13362 case: "_destination_concurrency_failed_cohort_limit").
13363
13364 This feature is available in Postfix 2.5 and later.
13365
13367 rency_limit)
13368 A transport-specific override for the default_destination_concur‐
13369 rency_limit parameter value, where transport is the master.cf name of
13370 the message delivery transport.
13371
13372 Note: some transport_destination_concurrency_limit parameters will not
13373 show up in "postconf" command output before Postfix version 2.9. This
13374 limitation applies to many parameters whose name is a combination of a
13375 master.cf service name and a built-in suffix (in this case: "_destina‐
13376 tion_concurrency_limit").
13377
13379 nation_concurrency_negative_feedback)
13380 A transport-specific override for the default_destination_concur‐
13381 rency_negative_feedback parameter value, where transport is the mas‐
13382 ter.cf name of the message delivery transport.
13383
13384 Note: some transport_destination_concurrency_negative_feedback parame‐
13385 ters will not show up in "postconf" command output before Postfix ver‐
13386 sion 2.9. This limitation applies to many parameters whose name is a
13387 combination of a master.cf service name and a built-in suffix (in this
13388 case: "_destination_concurrency_negative_feedback").
13389
13390 This feature is available in Postfix 2.5 and later.
13391
13393 nation_concurrency_positive_feedback)
13394 A transport-specific override for the default_destination_concur‐
13395 rency_positive_feedback parameter value, where transport is the mas‐
13396 ter.cf name of the message delivery transport.
13397
13398 Note: some transport_destination_concurrency_positive_feedback parame‐
13399 ters will not show up in "postconf" command output before Postfix ver‐
13400 sion 2.9. This limitation applies to many parameters whose name is a
13401 combination of a master.cf service name and a built-in suffix (in this
13402 case: "_destination_concurrency_positive_feedback").
13403
13404 This feature is available in Postfix 2.5 and later.
13405
13407 A transport-specific override for the default_destination_rate_delay
13408 parameter value, where transport is the master.cf name of the message
13409 delivery transport.
13410
13411 Note: some transport_destination_rate_delay parameters will not show up
13412 in "postconf" command output before Postfix version 2.9. This limita‐
13413 tion applies to many parameters whose name is a combination of a mas‐
13414 ter.cf service name and a built-in suffix (in this case: "_destina‐
13415 tion_rate_delay").
13416
13417 This feature is available in Postfix 2.5 and later.
13418
13420 ent_limit)
13421 A transport-specific override for the default_destination_recipi‐
13422 ent_limit parameter value, where transport is the master.cf name of the
13423 message delivery transport.
13424
13425 Note: some transport_destination_recipient_limit parameters will not
13426 show up in "postconf" command output before Postfix version 2.9. This
13427 limitation applies to many parameters whose name is a combination of a
13428 master.cf service name and a built-in suffix (in this case: "_destina‐
13429 tion_recipient_limit").
13430
13432 A transport-specific override for the default_extra_recipient_limit pa‐
13433 rameter value, where transport is the master.cf name of the message de‐
13434 livery transport.
13435
13436 Note: transport_extra_recipient_limit parameters will not show up in
13437 "postconf" command output before Postfix version 2.9. This limitation
13438 applies to many parameters whose name is a combination of a master.cf
13439 service name and a built-in suffix (in this case: "_extra_recipi‐
13440 ent_limit").
13441
13443 currency)
13444 A transport-specific override for the initial_destination_concurrency
13445 parameter value, where transport is the master.cf name of the message
13446 delivery transport.
13447
13448 Note: some transport_initial_destination_concurrency parameters will
13449 not show up in "postconf" command output before Postfix version 2.9.
13450 This limitation applies to many parameters whose name is a combination
13451 of a master.cf service name and a built-in suffix (in this case: "_ini‐
13452 tial_destination_concurrency").
13453
13454 This feature is available in Postfix 2.5 and later.
13455
13457 Optional lookup tables with mappings from recipient address to (message
13458 delivery transport, next-hop destination). See transport(5) for de‐
13459 tails.
13460
13461 Specify zero or more "type:table" lookup tables, separated by white‐
13462 space or comma. Tables will be searched in the specified order until a
13463 match is found. If you use this feature with local files, run "postmap
13464 /etc/postfix/transport" after making a change.
13465
13466 Pattern matching of domain names is controlled by the presence or ab‐
13467 sence of "transport_maps" in the parent_domain_matches_subdomains pa‐
13468 rameter value.
13469
13470 For safety reasons, as of Postfix 2.3 this feature does not allow $num‐
13471 ber substitutions in regular expression maps.
13472
13473 Examples:
13474
13475 transport_maps = dbm:/etc/postfix/transport
13476 transport_maps = hash:/etc/postfix/transport
13477
13479 A transport-specific override for the default_minimum_delivery_slots
13480 parameter value, where transport is the master.cf name of the message
13481 delivery transport.
13482
13483 Note: transport_minimum_delivery_slots parameters will not show up in
13484 "postconf" command output before Postfix version 2.9. This limitation
13485 applies to many parameters whose name is a combination of a master.cf
13486 service name and a built-in suffix (in this case: "_minimum_deliv‐
13487 ery_slots").
13488
13490 A transport-specific override for the default_recipient_limit parameter
13491 value, where transport is the master.cf name of the message delivery
13492 transport.
13493
13494 Note: some transport_recipient_limit parameters will not show up in
13495 "postconf" command output before Postfix version 2.9. This limitation
13496 applies to many parameters whose name is a combination of a master.cf
13497 service name and a built-in suffix (in this case: "_recipient_limit").
13498
13500 A transport-specific override for the default_recipient_refill_delay
13501 parameter value, where transport is the master.cf name of the message
13502 delivery transport.
13503
13504 Note: transport_recipient_refill_delay parameters will not show up in
13505 "postconf" command output before Postfix version 2.9. This limitation
13506 applies to many parameters whose name is a combination of a master.cf
13507 service name and a built-in suffix (in this case: "_recipient_re‐
13508 fill_delay").
13509
13510 This feature is available in Postfix 2.4 and later.
13511
13513 A transport-specific override for the default_recipient_refill_limit
13514 parameter value, where transport is the master.cf name of the message
13515 delivery transport.
13516
13517 Note: transport_recipient_refill_limit parameters will not show up in
13518 "postconf" command output before Postfix version 2.9. This limitation
13519 applies to many parameters whose name is a combination of a master.cf
13520 service name and a built-in suffix (in this case: "_recipient_re‐
13521 fill_limit").
13522
13523 This feature is available in Postfix 2.4 and later.
13524
13526 The time between attempts by the Postfix queue manager to contact a
13527 malfunctioning message delivery transport.
13528
13529 Specify a non-zero time value (an integral value plus an optional
13530 one-letter suffix that specifies the time unit). Time units: s (sec‐
13531 onds), m (minutes), h (hours), d (days), w (weeks). The default time
13532 unit is s (seconds).
13533
13535 A transport-specific override for the command_time_limit parameter
13536 value, where transport is the master.cf name of the message delivery
13537 transport.
13538
13539 Specify a non-zero time value (an integral value plus an optional
13540 one-letter suffix that specifies the time unit). Time units: s (sec‐
13541 onds), m (minutes), h (hours), d (days), w (weeks). The default time
13542 unit is s (seconds).
13543
13544 Note: transport_time_limit parameters will not show up in "postconf"
13545 command output before Postfix version 2.9. This limitation applies to
13546 many parameters whose name is a combination of a master.cf service name
13547 and a built-in suffix (in this case: "_time_limit").
13548
13550 A transport-specific override for the default_transport_rate_delay pa‐
13551 rameter value, where the initial transport in the parameter name is the
13552 master.cf name of the message delivery transport.
13553
13554 Specify a non-negative time value (an integral value plus an optional
13555 one-letter suffix that specifies the time unit). Time units: s (sec‐
13556 onds), m (minutes), h (hours), d (days), w (weeks). The default time
13557 unit is s (seconds).
13558
13559 Note: transport_transport_rate_delay parameters will not show up in
13560 "postconf" command output before Postfix version 2.9. This limitation
13561 applies to many parameters whose name is a combination of a master.cf
13562 service name and a built-in suffix (in this case: "_transport_rate_de‐
13563 lay").
13564
13566 The time limit for sending a trigger to a Postfix daemon (for example,
13567 the pickup(8) or qmgr(8) daemon). This time limit prevents programs
13568 from getting stuck when the mail system is under heavy load.
13569
13570 Specify a non-zero time value (an integral value plus an optional
13571 one-letter suffix that specifies the time unit). Time units: s (sec‐
13572 onds), m (minutes), h (hours), d (days), w (weeks). The default time
13573 unit is s (seconds).
13574
13576 Message header that the Postfix cleanup(8) server inserts when a mes‐
13577 sage contains no To: or Cc: message header. With Postfix 2.8 and later,
13578 the default value is empty. With Postfix 2.4-2.7, specify an empty
13579 value to disable this feature.
13580
13581 Example:
13582
13583 # Default value before Postfix 2.8.
13584 # Note: the ":" and ";" are both required.
13585 undisclosed_recipients_header = To: undisclosed-recipients:;
13586
13588 The numerical response code when the Postfix SMTP server rejects a
13589 sender or recipient address because its domain is unknown. This is one
13590 of the possible replies from the restrictions reject_unknown_sender_do‐
13591 main and reject_unknown_recipient_domain.
13592
13593 Do not change this unless you have a complete understanding of RFC
13594 5321.
13595
13597 The Postfix SMTP server's action when reject_unknown_sender_domain or
13598 reject_unknown_recipient_domain fail due to a temporary error condi‐
13599 tion. Specify "defer" to defer the remote SMTP client request immedi‐
13600 ately. With the default "defer_if_permit" action, the Postfix SMTP
13601 server continues to look for opportunities to reject mail, and defers
13602 the client request only if it would otherwise be accepted.
13603
13604 This feature is available in Postfix 2.6 and later.
13605
13607 The numerical Postfix SMTP server response code when a client without
13608 valid address <=> name mapping is rejected by the reject_un‐
13609 known_client_hostname restriction. The SMTP server always replies with
13610 450 when the mapping failed due to a temporary error condition.
13611
13612 Do not change this unless you have a complete understanding of RFC
13613 5321.
13614
13616 The Postfix SMTP server's action when reject_unknown_helo_hostname
13617 fails due to a temporary error condition. Specify "defer" to defer the
13618 remote SMTP client request immediately. With the default "defer_if_per‐
13619 mit" action, the Postfix SMTP server continues to look for opportuni‐
13620 ties to reject mail, and defers the client request only if it would
13621 otherwise be accepted.
13622
13623 This feature is available in Postfix 2.6 and later.
13624
13626 The numerical Postfix SMTP server response code when the hostname spec‐
13627 ified with the HELO or EHLO command is rejected by the reject_un‐
13628 known_helo_hostname restriction.
13629
13630 Do not change this unless you have a complete understanding of RFC
13631 5321.
13632
13634 The numerical Postfix SMTP server response code when a recipient ad‐
13635 dress is local, and $local_recipient_maps specifies a list of lookup
13636 tables that does not match the recipient. A recipient address is local
13637 when its domain matches $mydestination, $proxy_interfaces or $inet_in‐
13638 terfaces.
13639
13640 The default setting is 550 (reject mail) but it is safer to initially
13641 use 450 (try again later) so you have time to find out if your lo‐
13642 cal_recipient_maps settings are OK.
13643
13644 Example:
13645
13646 unknown_local_recipient_reject_code = 450
13647
13648 This feature is available in Postfix 2.0 and later.
13649
13651 The numerical Postfix SMTP server reply code when a recipient address
13652 matches $relay_domains, and relay_recipient_maps specifies a list of
13653 lookup tables that does not match the recipient address.
13654
13655 This feature is available in Postfix 2.0 and later.
13656
13658 The Postfix SMTP server reply code when a recipient address matches
13659 $virtual_alias_domains, and $virtual_alias_maps specifies a list of
13660 lookup tables that does not match the recipient address.
13661
13662 This feature is available in Postfix 2.0 and later.
13663
13665 The Postfix SMTP server reply code when a recipient address matches
13666 $virtual_mailbox_domains, and $virtual_mailbox_maps specifies a list of
13667 lookup tables that does not match the recipient address.
13668
13669 This feature is available in Postfix 2.0 and later.
13670
13672 The numerical Postfix SMTP server response when a recipient address
13673 probe fails due to a temporary error condition.
13674
13675 Unlike elsewhere in Postfix, you can specify 250 in order to accept the
13676 address anyway.
13677
13678 Do not change this unless you have a complete understanding of RFC
13679 5321.
13680
13681 This feature is available in Postfix 2.6 and later.
13682
13684 The numerical Postfix SMTP server response when a recipient address is
13685 rejected by the reject_unverified_recipient restriction.
13686
13687 Unlike elsewhere in Postfix, you can specify 250 in order to accept the
13688 address anyway.
13689
13690 Do not change this unless you have a complete understanding of RFC
13691 5321.
13692
13693 This feature is available in Postfix 2.1 and later.
13694
13696 The Postfix SMTP server's reply when rejecting mail with reject_unveri‐
13697 fied_recipient. Do not include the numeric SMTP reply code or the en‐
13698 hanced status code. By default, the response includes actual address
13699 verification details.
13700
13701 Example:
13702
13703 unverified_recipient_reject_reason = Recipient address lookup failed
13704
13705 This feature is available in Postfix 2.6 and later.
13706
13708 The Postfix SMTP server's action when reject_unverified_recipient fails
13709 due to a temporary error condition. Specify "defer" to defer the remote
13710 SMTP client request immediately. With the default "defer_if_permit" ac‐
13711 tion, the Postfix SMTP server continues to look for opportunities to
13712 reject mail, and defers the client request only if it would otherwise
13713 be accepted.
13714
13715 This feature is available in Postfix 2.6 and later.
13716
13718 The numerical Postfix SMTP server response code when a sender address
13719 probe fails due to a temporary error condition.
13720
13721 Unlike elsewhere in Postfix, you can specify 250 in order to accept the
13722 address anyway.
13723
13724 Do not change this unless you have a complete understanding of RFC
13725 5321.
13726
13727 This feature is available in Postfix 2.6 and later.
13728
13730 The numerical Postfix SMTP server response code when a recipient ad‐
13731 dress is rejected by the reject_unverified_sender restriction.
13732
13733 Unlike elsewhere in Postfix, you can specify 250 in order to accept the
13734 address anyway.
13735
13736 Do not change this unless you have a complete understanding of RFC
13737 5321.
13738
13739 This feature is available in Postfix 2.1 and later.
13740
13742 The Postfix SMTP server's reply when rejecting mail with reject_unveri‐
13743 fied_sender. Do not include the numeric SMTP reply code or the enhanced
13744 status code. By default, the response includes actual address verifica‐
13745 tion details.
13746
13747 Example:
13748
13749 unverified_sender_reject_reason = Sender address lookup failed
13750
13751 This feature is available in Postfix 2.6 and later.
13752
13754 The Postfix SMTP server's action when reject_unverified_sender fails
13755 due to a temporary error condition. Specify "defer" to defer the remote
13756 SMTP client request immediately. With the default "defer_if_permit" ac‐
13757 tion, the Postfix SMTP server continues to look for opportunities to
13758 reject mail, and defers the client request only if it would otherwise
13759 be accepted.
13760
13761 This feature is available in Postfix 2.6 and later.
13762
13764 The characters Postfix accepts as VERP delimiter characters on the
13765 Postfix sendmail(1) command line and in SMTP commands.
13766
13767 This feature is available in Postfix 1.1 and later.
13768
13770 The maximal length of an email address after virtual alias expansion.
13771 This stops virtual aliasing loops that increase the address length ex‐
13772 ponentially.
13773
13774 This feature is available in Postfix 3.0 and later.
13775
13777 Postfix is the final destination for the specified list of virtual
13778 alias domains, that is, domains for which all addresses are aliased to
13779 addresses in other local or remote domains. The SMTP server validates
13780 recipient addresses with $virtual_alias_maps and rejects non-existent
13781 recipients. See also the virtual alias domain class in the AD‐
13782 DRESS_CLASS_README file
13783
13784 This feature is available in Postfix 2.0 and later. The default value
13785 is backwards compatible with Postfix version 1.1.
13786
13787 The default value is $virtual_alias_maps so that you can keep all in‐
13788 formation about virtual alias domains in one place. If you have many
13789 users, it is better to separate information that changes more fre‐
13790 quently (virtual address -> local or remote address mapping) from in‐
13791 formation that changes less frequently (the list of virtual domain
13792 names).
13793
13794 Specify a list of host or domain names, "/file/name" or "type:table"
13795 patterns, separated by commas and/or whitespace. A "/file/name" pattern
13796 is replaced by its contents; a "type:table" lookup table is matched
13797 when a table entry matches a host or domain name (the lookup result is
13798 ignored). Continue long lines by starting the next line with white‐
13799 space. Specify "!pattern" to exclude a host or domain name from the
13800 list. The form "!/file/name" is supported only in Postfix version 2.4
13801 and later.
13802
13803 See also the VIRTUAL_README and ADDRESS_CLASS_README documents for fur‐
13804 ther information.
13805
13806 Example:
13807
13808 virtual_alias_domains = virtual1.tld virtual2.tld
13809
13811 The maximal number of addresses that virtual alias expansion produces
13812 from each original recipient.
13813
13814 This feature is available in Postfix 2.1 and later.
13815
13817 Optional lookup tables that alias specific mail addresses or domains to
13818 other local or remote addresses. The table format and lookups are doc‐
13819 umented in virtual(5). For an overview of Postfix address manipulations
13820 see the ADDRESS_REWRITING_README document.
13821
13822 This feature is available in Postfix 2.0 and later. The default value
13823 is backwards compatible with Postfix version 1.1.
13824
13825 Specify zero or more "type:name" lookup tables, separated by whitespace
13826 or comma. Tables will be searched in the specified order until a match
13827 is found. Note: these lookups are recursive.
13828
13829 If you use this feature with indexed files, run "postmap /etc/post‐
13830 fix/virtual" after changing the file.
13831
13832 Examples:
13833
13834 virtual_alias_maps = dbm:/etc/postfix/virtual
13835 virtual_alias_maps = hash:/etc/postfix/virtual
13836
13838 The maximal nesting depth of virtual alias expansion. Currently the
13839 recursion limit is applied only to the left branch of the expansion
13840 graph, so the depth of the tree can in the worst case reach the sum of
13841 the expansion and recursion limits. This may change in the future.
13842
13843 This feature is available in Postfix 2.1 and later.
13844
13846 Optional filter for the virtual(8) delivery agent to change the deliv‐
13847 ery status code or explanatory text of successful or unsuccessful de‐
13848 liveries. See default_delivery_status_filter for details.
13849
13850 This feature is available in Postfix 3.0 and later.
13851
13853 rency_limit)
13854 The maximal number of parallel deliveries to the same destination via
13855 the virtual message delivery transport. This limit is enforced by the
13856 queue manager. The message delivery transport name is the first field
13857 in the entry in the master.cf file.
13858
13860 ent_limit)
13861 The maximal number of recipients per message for the virtual message
13862 delivery transport. This limit is enforced by the queue manager. The
13863 message delivery transport name is the first field in the entry in the
13864 master.cf file.
13865
13866 Setting this parameter to a value of 1 changes the meaning of vir‐
13867 tual_destination_concurrency_limit from concurrency per domain into
13868 concurrency per recipient.
13869
13871 Lookup tables with the per-recipient group ID for virtual(8) mailbox
13872 delivery.
13873
13874 This parameter is specific to the virtual(8) delivery agent. It does
13875 not apply when mail is delivered with a different mail delivery pro‐
13876 gram.
13877
13878 Specify zero or more "type:name" lookup tables, separated by whitespace
13879 or comma. Tables will be searched in the specified order until a match
13880 is found.
13881
13882 In a lookup table, specify a left-hand side of "@domain.tld" to match
13883 any user in the specified domain that does not have a specific
13884 "user@domain.tld" entry.
13885
13886 When a recipient address has an optional address extension
13887 (user+foo@domain.tld), the virtual(8) delivery agent looks up the full
13888 address first, and when the lookup fails, it looks up the unextended
13889 address (user@domain.tld).
13890
13891 Note 1: for security reasons, the virtual(8) delivery agent disallows
13892 regular expression substitution of $1 etc. in regular expression lookup
13893 tables, because that would open a security hole.
13894
13895 Note 2: for security reasons, the virtual(8) delivery agent will
13896 silently ignore requests to use the proxymap(8) server. Instead it will
13897 open the table directly. Before Postfix version 2.2, the virtual(8) de‐
13898 livery agent will terminate with a fatal error.
13899
13901 A prefix that the virtual(8) delivery agent prepends to all pathname
13902 results from $virtual_mailbox_maps table lookups. This is a safety
13903 measure to ensure that an out of control map doesn't litter the file
13904 system with mailboxes. While virtual_mailbox_base could be set to "/",
13905 this setting isn't recommended.
13906
13907 This parameter is specific to the virtual(8) delivery agent. It does
13908 not apply when mail is delivered with a different mail delivery pro‐
13909 gram.
13910
13911 Example:
13912
13913 virtual_mailbox_base = /var/mail
13914
13916 Postfix is the final destination for the specified list of domains;
13917 mail is delivered via the $virtual_transport mail delivery transport.
13918 By default this is the Postfix virtual(8) delivery agent. The SMTP
13919 server validates recipient addresses with $virtual_mailbox_maps and re‐
13920 jects mail for non-existent recipients. See also the virtual mailbox
13921 domain class in the ADDRESS_CLASS_README file.
13922
13923 This parameter expects the same syntax as the mydestination configura‐
13924 tion parameter.
13925
13926 This feature is available in Postfix 2.0 and later. The default value
13927 is backwards compatible with Postfix version 1.1.
13928
13930 The maximal size in bytes of an individual virtual(8) mailbox or
13931 maildir file, or zero (no limit).
13932
13933 This parameter is specific to the virtual(8) delivery agent. It does
13934 not apply when mail is delivered with a different mail delivery pro‐
13935 gram.
13936
13938 How to lock a UNIX-style virtual(8) mailbox before attempting delivery.
13939 For a list of available file locking methods, use the "postconf -l"
13940 command.
13941
13942 This parameter is specific to the virtual(8) delivery agent. It does
13943 not apply when mail is delivered with a different mail delivery pro‐
13944 gram.
13945
13946 This setting is ignored with maildir style delivery, because such de‐
13947 liveries are safe without application-level locks.
13948
13949 Note 1: the dotlock method requires that the recipient UID or GID has
13950 write access to the parent directory of the recipient's mailbox file.
13951
13952 Note 2: the default setting of this parameter is system dependent.
13953
13955 Optional lookup tables with all valid addresses in the domains that
13956 match $virtual_mailbox_domains.
13957
13958 Specify zero or more "type:name" lookup tables, separated by whitespace
13959 or comma. Tables will be searched in the specified order until a match
13960 is found.
13961
13962 In a lookup table, specify a left-hand side of "@domain.tld" to match
13963 any user in the specified domain that does not have a specific
13964 "user@domain.tld" entry.
13965
13966 With the default "virtual_mailbox_domains = $virtual_mailbox_maps",
13967 lookup tables also need entries with a left-hand side of "domain.tld"
13968 to satisfy virtual_mailbox_domain lookups (the right-hand side is re‐
13969 quired but will not be used).
13970
13971 The remainder of this text is specific to the virtual(8) delivery
13972 agent. It does not apply when mail is delivered with a different mail
13973 delivery program.
13974
13975 The virtual(8) delivery agent uses this table to look up the per-recip‐
13976 ient mailbox or maildir pathname. If the lookup result ends in a slash
13977 ("/"), maildir-style delivery is carried out, otherwise the path is as‐
13978 sumed to specify a UNIX-style mailbox file. Note that $virtual_mail‐
13979 box_base is unconditionally prepended to this path.
13980
13981 When a recipient address has an optional address extension
13982 (user+foo@domain.tld), the virtual(8) delivery agent looks up the full
13983 address first, and when the lookup fails, it looks up the unextended
13984 address (user@domain.tld).
13985
13986 Note 1: for security reasons, the virtual(8) delivery agent disallows
13987 regular expression substitution of $1 etc. in regular expression lookup
13988 tables, because that would open a security hole.
13989
13990 Note 2: for security reasons, the virtual(8) delivery agent will
13991 silently ignore requests to use the proxymap(8) server. Instead it will
13992 open the table directly. Before Postfix version 2.2, the virtual(8) de‐
13993 livery agent will terminate with a fatal error.
13994
13996 Optional lookup tables with a) names of domains for which all addresses
13997 are aliased to addresses in other local or remote domains, and b) ad‐
13998 dresses that are aliased to addresses in other local or remote domains.
13999 Available before Postfix version 2.0. With Postfix version 2.0 and
14000 later, this is replaced by separate controls: virtual_alias_domains and
14001 virtual_alias_maps.
14002
14004 The minimum user ID value that the virtual(8) delivery agent accepts as
14005 a result from $virtual_uid_maps table lookup. Returned values less
14006 than this will be rejected, and the message will be deferred.
14007
14008 This parameter is specific to the virtual(8) delivery agent. It does
14009 not apply when mail is delivered with a different mail delivery pro‐
14010 gram.
14011
14013 The default mail delivery transport and next-hop destination for final
14014 delivery to domains listed with $virtual_mailbox_domains. This infor‐
14015 mation can be overruled with the transport(5) table.
14016
14017 Specify a string of the form transport:nexthop, where transport is the
14018 name of a mail delivery transport defined in master.cf. The :nexthop
14019 destination is optional; its syntax is documented in the manual page of
14020 the corresponding delivery agent.
14021
14022 This feature is available in Postfix 2.0 and later.
14023
14025 Lookup tables with the per-recipient user ID that the virtual(8) deliv‐
14026 ery agent uses while writing to the recipient's mailbox.
14027
14028 This parameter is specific to the virtual(8) delivery agent. It does
14029 not apply when mail is delivered with a different mail delivery pro‐
14030 gram.
14031
14032 Specify zero or more "type:name" lookup tables, separated by whitespace
14033 or comma. Tables will be searched in the specified order until a match
14034 is found.
14035
14036 In a lookup table, specify a left-hand side of "@domain.tld" to match
14037 any user in the specified domain that does not have a specific
14038 "user@domain.tld" entry.
14039
14040 When a recipient address has an optional address extension
14041 (user+foo@domain.tld), the virtual(8) delivery agent looks up the full
14042 address first, and when the lookup fails, it looks up the unextended
14043 address (user@domain.tld).
14044
14045 Note 1: for security reasons, the virtual(8) delivery agent disallows
14046 regular expression substitution of $1 etc. in regular expression lookup
14047 tables, because that would open a security hole.
14048
14049 Note 2: for security reasons, the virtual(8) delivery agent will
14050 silently ignore requests to use the proxymap(8) server. Instead it will
14051 open the table directly. Before Postfix version 2.2, the virtual(8) de‐
14052 livery agent will terminate with a fatal error.
14053
14055 postconf(1), Postfix configuration parameter maintenance
14056 master(5), Postfix daemon configuration maintenance
14057
14059 The Secure Mailer license must be distributed with this software.
14060
14062 Wietse Venema
14063 IBM T.J. Watson Research
14064 P.O. Box 704
14065 Yorktown Heights, NY 10598, USA
14066
14067 Wietse Venema
14068 Google, Inc.
14069 111 8th Avenue
14070 New York, NY 10011, USA
14071
14072 Viktor Dukhovni
14073
14074
14075
14076 POSTCONF(5)