1 .\" $NetBSD: postconf.5,v 1.1.1.2 2009/08/31 17:53:48 tron Exp $
7 Postfix configuration parameters
11 \fBpostconf\fR \fIparameter\fR ...
13 \fBpostconf -e\fR "\fIparameter=value\fR" ...
17 The Postfix main.cf configuration file specifies a small subset
18 of all the parameters that control the operation of the Postfix
19 mail system. Parameters not specified in main.cf are left at their
22 The general format of the main.cf file is as follows:
24 Each logical line has the form "parameter = value".
25 Whitespace around the "=" is ignored, as is whitespace at the
26 end of a logical line.
28 Empty lines and whitespace-only lines are ignored, as are lines
29 whose first non-whitespace character is a `#'.
31 A logical line starts with non-whitespace text. A line that starts
32 with whitespace continues a logical line.
34 A parameter value may refer to other parameters.
37 The expressions "$name", "${name}" or "$(name)" are
38 recursively replaced by the value of the named parameter.
40 The expression "${name?value}" expands to "value" when
41 "$name" is non-empty. This form is supported with Postfix
42 version 2.2 and later.
44 The expression "${name:value}" expands to "value" when
45 "$name" is empty. This form is supported with Postfix
46 version 2.2 and later.
48 Specify "$$" to produce a single "$" character.
51 When the same parameter is defined multiple times, only the last
52 instance is remembered.
54 Otherwise, the order of main.cf parameter definitions does not matter.
56 The remainder of this document is a description of all Postfix
57 configuration parameters. Default values are shown after the
58 parameter name in parentheses, and can be looked up with the
59 "\fBpostconf -d\fR" command.
61 Note: this is not an invitation to make changes to Postfix
62 configuration parameters. Unnecessary changes can impair the
63 operation of the mail system.
64 .SH 2bounce_notice_recipient (default: postmaster)
65 The recipient of undeliverable mail that cannot be returned to
66 the sender. This feature is enabled with the notify_classes
68 .SH access_map_defer_code (default: 450)
69 The numerical Postfix SMTP server response code for
70 an \fBaccess\fR(5) map "defer" action, including "defer_if_permit"
71 or "defer_if_reject". Prior to Postfix 2.6, the response
72 is hard-coded as "450".
74 Do not change this unless you have a complete understanding of RFC 2821.
76 This feature is available in Postfix 2.6 and later.
77 .SH access_map_reject_code (default: 554)
78 The numerical Postfix SMTP server response code for
79 an \fBaccess\fR(5) map "reject" action.
81 Do not change this unless you have a complete understanding of RFC 2821.
82 .SH address_verify_default_transport (default: $default_transport)
83 Overrides the default_transport parameter setting for address
86 This feature is available in Postfix 2.1 and later.
87 .SH address_verify_local_transport (default: $local_transport)
88 Overrides the local_transport parameter setting for address
91 This feature is available in Postfix 2.1 and later.
92 .SH address_verify_map (default: empty)
93 Optional lookup table for persistent address verification status
94 storage. The table is maintained by the \fBverify\fR(8) service, and
95 is opened before the process releases privileges.
97 By default, the information is kept in volatile memory, and is lost
98 after "\fBpostfix reload\fR" or "\fBpostfix stop\fR".
100 Specify a location in a file system that will not fill up. If the
101 database becomes corrupted, the world comes to an end. To recover
102 delete the file and do "\fBpostfix reload\fR".
104 As of version 2.5, Postfix no longer uses root privileges when
105 opening this file. The file should now be stored under the Postfix-owned
106 data_directory. As a migration aid, an attempt to open the file
107 under a non-Postfix directory is redirected to the Postfix-owned
108 data_directory, and a warning is logged.
115 address_verify_map = hash:/var/db/postfix/verify
116 address_verify_map = btree:/var/db/postfix/verify
121 This feature is available in Postfix 2.1 and later.
122 .SH address_verify_negative_cache (default: yes)
123 Enable caching of failed address verification probe results. When
124 this feature is enabled, the cache may pollute quickly with garbage.
125 When this feature is disabled, Postfix will generate an address
126 probe for every lookup.
128 This feature is available in Postfix 2.1 and later.
129 .SH address_verify_negative_expire_time (default: 3d)
130 The time after which a failed probe expires from the address
133 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
135 This feature is available in Postfix 2.1 and later.
136 .SH address_verify_negative_refresh_time (default: 3h)
137 The time after which a failed address verification probe needs to
140 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
142 This feature is available in Postfix 2.1 and later.
143 .SH address_verify_poll_count (default: 3)
144 How many times to query the \fBverify\fR(8) service for the completion
145 of an address verification request in progress.
147 The default poll count is 3.
149 Specify 1 to implement a crude form of greylisting, that is, always
150 defer the first delivery request for a never seen before address.
157 address_verify_poll_count = 1
162 This feature is available in Postfix 2.1 and later.
163 .SH address_verify_poll_delay (default: 3s)
164 The delay between queries for the completion of an address
165 verification request in progress.
167 The default polling delay is 3 seconds.
169 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
171 This feature is available in Postfix 2.1 and later.
172 .SH address_verify_positive_expire_time (default: 31d)
173 The time after which a successful probe expires from the address
176 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
178 This feature is available in Postfix 2.1 and later.
179 .SH address_verify_positive_refresh_time (default: 7d)
180 The time after which a successful address verification probe needs
181 to be refreshed. The address verification status is not updated
182 when the probe fails (optimistic caching).
184 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
186 This feature is available in Postfix 2.1 and later.
187 .SH address_verify_relay_transport (default: $relay_transport)
188 Overrides the relay_transport parameter setting for address
191 This feature is available in Postfix 2.1 and later.
192 .SH address_verify_relayhost (default: $relayhost)
193 Overrides the relayhost parameter setting for address verification
194 probes. This information can be overruled with the \fBtransport\fR(5) table.
196 This feature is available in Postfix 2.1 and later.
197 .SH address_verify_sender (default: $double_bounce_sender)
198 The sender address to use in address verification probes; prior
199 to Postfix 2.5 the default was "postmaster". To
200 avoid problems with address probes that are sent in response to
201 address probes, the Postfix SMTP server excludes the probe sender
202 address from all SMTPD access blocks.
204 Specify an empty value (address_verify_sender =) or <> if you want
205 to use the null sender address. Beware, some sites reject mail from
206 <>, even though RFCs require that such addresses be accepted.
213 address_verify_sender = <>
214 address_verify_sender = postmaster@my.domain
219 This feature is available in Postfix 2.1 and later.
220 .SH address_verify_sender_dependent_relayhost_maps (default: $sender_dependent_relayhost_maps)
221 Overrides the sender_dependent_relayhost_maps parameter setting for address
224 This feature is available in Postfix 2.3 and later.
225 .SH address_verify_service_name (default: verify)
226 The name of the \fBverify\fR(8) address verification service. This service
227 maintains the status of sender and/or recipient address verification
228 probes, and generates probes on request by other Postfix processes.
229 .SH address_verify_transport_maps (default: $transport_maps)
230 Overrides the transport_maps parameter setting for address verification
233 This feature is available in Postfix 2.1 and later.
234 .SH address_verify_virtual_transport (default: $virtual_transport)
235 Overrides the virtual_transport parameter setting for address
238 This feature is available in Postfix 2.1 and later.
239 .SH alias_database (default: see "postconf -d" output)
240 The alias databases for \fBlocal\fR(8) delivery that are updated with
241 "\fBnewaliases\fR" or with "\fBsendmail -bi\fR".
243 This is a separate configuration parameter because not all the
244 tables specified with $alias_maps have to be local files.
251 alias_database = hash:/etc/aliases
252 alias_database = hash:/etc/mail/aliases
256 .SH alias_maps (default: see "postconf -d" output)
257 The alias databases that are used for \fBlocal\fR(8) delivery. See
258 \fBaliases\fR(5) for syntax details.
260 The default list is system dependent. On systems with NIS, the
261 default is to search the local alias database, then the NIS alias
264 If you change the alias database, run "\fBpostalias /etc/aliases\fR"
265 (or wherever your system stores the mail alias file), or simply
266 run "\fBnewaliases\fR" to build the necessary DBM or DB file.
268 The \fBlocal\fR(8) delivery agent disallows regular expression substitution
269 of $1 etc. in alias_maps, because that would open a security hole.
271 The \fBlocal\fR(8) delivery agent will silently ignore requests to use
272 the \fBproxymap\fR(8) server within alias_maps. Instead it will open the
273 table directly. Before Postfix version 2.2, the \fBlocal\fR(8) delivery
274 agent will terminate with a fatal error.
281 alias_maps = hash:/etc/aliases, nis:mail.aliases
282 alias_maps = hash:/etc/aliases
286 .SH allow_mail_to_commands (default: alias, forward)
287 Restrict \fBlocal\fR(8) mail delivery to external commands. The default
288 is to disallow delivery to "|command" in :include: files (see
289 \fBaliases\fR(5) for the text that defines this terminology).
291 Specify zero or more of: \fBalias\fR, \fBforward\fR or \fBinclude\fR,
292 in order to allow commands in \fBaliases\fR(5), .forward files or in
293 :include: files, respectively.
300 allow_mail_to_commands = alias,forward,include
304 .SH allow_mail_to_files (default: alias, forward)
305 Restrict \fBlocal\fR(8) mail delivery to external files. The default is
306 to disallow "/file/name" destinations in :include: files (see
307 \fBaliases\fR(5) for the text that defines this terminology).
309 Specify zero or more of: \fBalias\fR, \fBforward\fR or \fBinclude\fR,
310 in order to allow "/file/name" destinations in \fBaliases\fR(5), .forward
311 files and in :include: files, respectively.
318 allow_mail_to_files = alias,forward,include
322 .SH allow_min_user (default: no)
323 Allow a sender or recipient address to have `-' as the first
325 default, this is not allowed, to avoid accidents with software that
326 passes email addresses via the command line. Such software
327 would not be able to distinguish a malicious address from a
328 bona fide command-line option. Although this can be prevented by
329 inserting a "--" option terminator into the command line, this is
330 difficult to enforce consistently and globally.
332 As of Postfix version 2.5, this feature is implemented by
333 \fBtrivial-rewrite\fR(8). With earlier versions this feature was implemented
334 by \fBqmgr\fR(8) and was limited to recipient addresses only.
335 .SH allow_percent_hack (default: yes)
336 Enable the rewriting of the form "user%domain" to "user@domain".
337 This is enabled by default.
339 Note: with Postfix version 2.2, message header address rewriting
340 happens only when one of the following conditions is true:
342 The message is received with the Postfix \fBsendmail\fR(1) command,
344 The message is received from a network client that matches
345 $local_header_rewrite_clients,
347 The message is received from the network, and the
348 remote_header_rewrite_domain parameter specifies a non-empty value.
350 To get the behavior before Postfix version 2.2, specify
351 "local_header_rewrite_clients = static:all".
358 allow_percent_hack = no
362 .SH allow_untrusted_routing (default: no)
363 Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
364 from untrusted clients to destinations matching $relay_domains.
366 By default, this feature is turned off. This closes a nasty open
367 relay loophole where a backup MX host can be tricked into forwarding
368 junk mail to a primary MX host which then spams it out to the world.
370 This parameter also controls if non-local addresses with sender-specified
371 routing can match Postfix access tables. By default, such addresses
372 cannot match Postfix access tables, because the address is ambiguous.
373 .SH alternate_config_directories (default: empty)
374 A list of non-default Postfix configuration directories that may
375 be specified with "-c config_directory" on the command line, or
376 via the MAIL_CONFIG environment parameter.
378 This list must be specified in the default Postfix configuration
379 directory, and is used by set-gid Postfix commands such as \fBpostqueue\fR(1)
380 and \fBpostdrop\fR(1).
381 .SH always_add_missing_headers (default: no)
382 Always add (Resent-) From:, To:, Date: or Message-ID: headers
383 when not present. Postfix 2.6 and later add these headers only
384 when clients match the local_header_rewrite_clients parameter
385 setting. Earlier Postfix versions always add these headers; this
386 may break DKIM signatures that cover non-existent headers.
387 .SH always_bcc (default: empty)
388 Optional address that receives a "blind carbon copy" of each message
389 that is received by the Postfix mail system.
391 Note: if mail to the BCC address bounces it will be returned to
394 Note: automatic BCC recipients are produced only for new mail.
395 To avoid mailer loops, automatic BCC recipients are not generated
396 for mail that Postfix forwards internally, nor for mail that Postfix
398 .SH anvil_rate_time_unit (default: 60s)
399 The time unit over which client connection rates and other rates
402 This feature is implemented by the \fBanvil\fR(8) service which is available
403 in Postfix version 2.2 and later.
405 The default interval is relatively short. Because of the high
406 frequency of updates, the \fBanvil\fR(8) server uses volatile memory
407 only. Thus, information is lost whenever the process terminates.
409 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
410 The default time unit is s (seconds).
411 .SH anvil_status_update_time (default: 600s)
412 How frequently the \fBanvil\fR(8) connection and rate limiting server
413 logs peak usage information.
415 This feature is available in Postfix 2.2 and later.
417 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
418 The default time unit is s (seconds).
419 .SH append_at_myorigin (default: yes)
420 With locally submitted mail, append the string "@$myorigin" to mail
421 addresses without domain information. With remotely submitted mail,
422 append the string "@$remote_header_rewrite_domain" instead.
424 Note 1: this feature is enabled by default and must not be turned off.
425 Postfix does not support domain-less addresses.
427 Note 2: with Postfix version 2.2, message header address rewriting
428 happens only when one of the following conditions is true:
430 The message is received with the Postfix \fBsendmail\fR(1) command,
432 The message is received from a network client that matches
433 $local_header_rewrite_clients,
435 The message is received from the network, and the
436 remote_header_rewrite_domain parameter specifies a non-empty value.
438 To get the behavior before Postfix version 2.2, specify
439 "local_header_rewrite_clients = static:all".
440 .SH append_dot_mydomain (default: yes)
441 With locally submitted mail, append the string ".$mydomain" to
442 addresses that have no ".domain" information. With remotely submitted
443 mail, append the string ".$remote_header_rewrite_domain"
446 Note 1: this feature is enabled by default. If disabled, users will not be
447 able to send mail to "user@partialdomainname" but will have to
448 specify full domain names instead.
450 Note 2: with Postfix version 2.2, message header address rewriting
451 happens only when one of the following conditions is true:
453 The message is received with the Postfix \fBsendmail\fR(1) command,
455 The message is received from a network client that matches
456 $local_header_rewrite_clients,
458 The message is received from the network, and the
459 remote_header_rewrite_domain parameter specifies a non-empty value.
461 To get the behavior before Postfix version 2.2, specify
462 "local_header_rewrite_clients = static:all".
463 .SH application_event_drain_time (default: 100s)
464 How long the \fBpostkick\fR(1) command waits for a request to enter the
465 server's input buffer before giving up.
467 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
468 The default time unit is s (seconds).
470 This feature is available in Postfix 2.1 and later.
471 .SH authorized_flush_users (default: static:anyone)
472 List of users who are authorized to flush the queue.
474 By default, all users are allowed to flush the queue. Access is
475 always granted if the invoking user is the super-user or the
476 $mail_owner user. Otherwise, the real UID of the process is looked
477 up in the system password file, and access is granted only if the
478 corresponding login name is on the access list. The username
479 "unknown" is used for processes whose real UID is not found in the
482 Specify a list of user names, "/file/name" or "type:table" patterns,
483 separated by commas and/or whitespace. The list is matched left to
484 right, and the search stops on the first match. A "/file/name"
486 by its contents; a "type:table" lookup table is matched when a name
487 matches a lookup key (the lookup result is ignored). Continue long
488 lines by starting the next line with whitespace. Specify "!pattern"
489 to exclude a name from the list. The form "!/file/name" is supported
490 only in Postfix version 2.4 and later.
492 This feature is available in Postfix 2.2 and later.
493 .SH authorized_mailq_users (default: static:anyone)
494 List of users who are authorized to view the queue.
496 By default, all users are allowed to view the queue. Access is
497 always granted if the invoking user is the super-user or the
498 $mail_owner user. Otherwise, the real UID of the process is looked
499 up in the system password file, and access is granted only if the
500 corresponding login name is on the access list. The username
501 "unknown" is used for processes whose real UID is not found in the
504 Specify a list of user names, "/file/name" or "type:table" patterns,
505 separated by commas and/or whitespace. The list is matched left to
506 right, and the search stops on the first match. A "/file/name"
508 by its contents; a "type:table" lookup table is matched when a name
509 matches a lookup key (the lookup result is ignored). Continue long
510 lines by starting the next line with whitespace. Specify "!pattern"
511 to exclude a user name from the list. The form "!/file/name" is
512 supported only in Postfix version 2.4 and later.
514 This feature is available in Postfix 2.2 and later.
515 .SH authorized_submit_users (default: static:anyone)
516 List of users who are authorized to submit mail with the \fBsendmail\fR(1)
517 command (and with the privileged \fBpostdrop\fR(1) helper command).
519 By default, all users are allowed to submit mail. Otherwise, the
520 real UID of the process is looked up in the system password file,
521 and access is granted only if the corresponding login name is on
522 the access list. The username "unknown" is used for processes
523 whose real UID is not found in the password file. To deny mail
524 submission access to all users specify an empty list.
526 Specify a list of user names, "/file/name" or "type:table" patterns,
527 separated by commas and/or whitespace. The list is matched left to right,
528 and the search stops on the first match. A "/file/name" pattern is
529 replaced by its contents;
530 a "type:table" lookup table is matched when a name matches a lookup key
531 (the lookup result is ignored). Continue long lines by starting the
532 next line with whitespace. Specify "!pattern" to exclude a user
533 name from the list. The form "!/file/name" is supported only in
534 Postfix version 2.4 and later.
541 authorized_submit_users = !www, static:all
546 This feature is available in Postfix 2.2 and later.
547 .SH authorized_verp_clients (default: $mynetworks)
548 What SMTP clients are allowed to specify the XVERP command.
549 This command requests that mail be delivered one recipient at a
550 time with a per recipient return address.
552 By default, only trusted clients are allowed to specify XVERP.
554 This parameter was introduced with Postfix version 1.1. Postfix
555 version 2.1 renamed this parameter to smtpd_authorized_verp_clients
556 and changed the default to none.
558 Specify a list of network/netmask patterns, separated by commas
559 and/or whitespace. The mask specifies the number of bits in the
560 network part of a host address. You can also specify hostnames or
561 \&.domain names (the initial dot causes the domain to match any name
562 below it), "/file/name" or "type:table" patterns. A "/file/name"
563 pattern is replaced by its contents; a "type:table" lookup table
564 is matched when a table entry matches a lookup string (the lookup
565 result is ignored). Continue long lines by starting the next line
566 with whitespace. Specify "!pattern" to exclude an address or network
567 block from the list. The form "!/file/name" is supported only in
568 Postfix version 2.4 and later.
570 Note: IP version 6 address information must be specified inside
571 [] in the authorized_verp_clients value, and in files
572 specified with "/file/name". IP version 6 addresses contain the
573 ":" character, and would otherwise be confused with a "type:table"
575 .SH backwards_bounce_logfile_compatibility (default: yes)
576 Produce additional \fBbounce\fR(8) logfile records that can be read by
577 Postfix versions before 2.0. The current and more extensible "name =
578 value" format is needed in order to implement more sophisticated
581 This feature is available in Postfix 2.1 and later.
582 .SH berkeley_db_create_buffer_size (default: 16777216)
583 The per-table I/O buffer size for programs that create Berkeley DB
584 hash or btree tables. Specify a byte count.
586 This feature is available in Postfix 2.0 and later.
587 .SH berkeley_db_read_buffer_size (default: 131072)
588 The per-table I/O buffer size for programs that read Berkeley DB
589 hash or btree tables. Specify a byte count.
591 This feature is available in Postfix 2.0 and later.
592 .SH best_mx_transport (default: empty)
593 Where the Postfix SMTP client should deliver mail when it detects
594 a "mail loops back to myself" error condition. This happens when
595 the local MTA is the best SMTP mail exchanger for a destination
596 not listed in $mydestination, $inet_interfaces, $proxy_interfaces,
597 $virtual_alias_domains, or $virtual_mailbox_domains. By default,
598 the Postfix SMTP client returns such mail as undeliverable.
600 Specify, for example, "best_mx_transport = local" to pass the mail
601 from the Postfix SMTP client to the \fBlocal\fR(8) delivery agent. You
603 any message delivery "transport" or "transport:nexthop" that is
604 defined in the master.cf file. See the \fBtransport\fR(5) manual page
605 for the syntax and meaning of "transport" or "transport:nexthop".
607 However, this feature is expensive because it ties up a Postfix
608 SMTP client process while the \fBlocal\fR(8) delivery agent is doing its
609 work. It is more efficient (for Postfix) to list all hosted domains
610 in a table or database.
611 .SH biff (default: yes)
612 Whether or not to use the local biff service. This service sends
613 "new mail" notifications to users who have requested new mail
614 notification with the UNIX command "biff y".
616 For compatibility reasons this feature is on by default. On systems
617 with lots of interactive users, the biff service can be a performance
618 drain. Specify "biff = no" in main.cf to disable.
619 .SH body_checks (default: empty)
620 Optional lookup tables for content inspection as specified in
621 the \fBbody_checks\fR(5) manual page.
623 Note: with Postfix versions before 2.0, these rules inspect
624 all content after the primary message headers.
625 .SH body_checks_size_limit (default: 51200)
626 How much text in a message body segment (or attachment, if you
627 prefer to use that term) is subjected to body_checks inspection.
628 The amount of text is limited to avoid scanning huge attachments.
630 This feature is available in Postfix 2.0 and later.
631 .SH bounce_notice_recipient (default: postmaster)
632 The recipient of postmaster notifications with the message headers
633 of mail that Postfix did not deliver and of SMTP conversation
634 transcripts of mail that Postfix did not receive. This feature is
635 enabled with the notify_classes parameter.
636 .SH bounce_queue_lifetime (default: 5d)
637 The maximal time a bounce message is queued before it is considered
638 undeliverable. By default, this is the same as the queue life time
641 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
642 The default time unit is d (days).
644 Specify 0 when mail delivery should be tried only once.
646 This feature is available in Postfix 2.1 and later.
647 .SH bounce_service_name (default: bounce)
648 The name of the \fBbounce\fR(8) service. This service maintains a record
649 of failed delivery attempts and generates non-delivery notifications.
651 This feature is available in Postfix 2.0 and later.
652 .SH bounce_size_limit (default: 50000)
653 The maximal amount of original message text that is sent in a
654 non-delivery notification. Specify a byte count. With Postfix 2.4
655 and later, a message is returned as either message/rfc822 (the
656 complete original) or as text/rfc822-headers (the headers only).
657 With earlier Postfix versions, a message is always returned as
658 message/rfc822 and is truncated when it exceeds the size limit.
662 If you increase this limit, then you should increase the
663 mime_nesting_limit value proportionally.
665 Be careful when making changes. Excessively large values
666 will result in the loss of non-delivery notifications, when a bounce
667 message size exceeds a local or remote MTA's message size limit.
668 .SH bounce_template_file (default: empty)
669 Pathname of a configuration file with bounce message templates.
670 These override the built-in templates of delivery status notification
671 (DSN) messages for undeliverable mail, for delayed mail, successful
672 delivery, or delivery verification. The \fBbounce\fR(5) manual page
673 describes how to edit and test template files.
675 Template message body text may contain $name references to
676 Postfix configuration parameters. The result of $name expansion can
677 be previewed with "\fBpostconf -b \fIfile_name\fR\fR" before the file
678 is placed into the Postfix configuration directory.
680 This feature is available in Postfix 2.3 and later.
681 .SH broken_sasl_auth_clients (default: no)
682 Enable inter-operability with SMTP clients that implement an obsolete
683 version of the AUTH command (RFC 4954). Examples of such clients
684 are MicroSoft Outlook Express version 4 and MicroSoft Exchange
687 Specify "broken_sasl_auth_clients = yes" to have Postfix advertise
688 AUTH support in a non-standard way.
689 .SH canonical_classes (default: envelope_sender, envelope_recipient, header_sender, header_recipient)
690 What addresses are subject to canonical_maps address mapping.
691 By default, canonical_maps address mapping is applied to envelope
692 sender and recipient addresses, and to header sender and header
695 Specify one or more of: envelope_sender, envelope_recipient,
696 header_sender, header_recipient
698 This feature is available in Postfix 2.2 and later.
699 .SH canonical_maps (default: empty)
700 Optional address mapping lookup tables for message headers and
701 envelopes. The mapping is applied to both sender and recipient
702 addresses, in both envelopes and in headers, as controlled
703 with the canonical_classes parameter. This is typically used
704 to clean up dirty addresses from legacy mail systems, or to replace
705 login names by Firstname.Lastname. The table format and lookups
706 are documented in \fBcanonical\fR(5). For an overview of Postfix address
707 manipulations see the ADDRESS_REWRITING_README document.
709 If you use this feature, run "\fBpostmap /etc/postfix/canonical\fR" to
710 build the necessary DBM or DB file after every change. The changes
711 will become visible after a minute or so. Use "\fBpostfix reload\fR"
712 to eliminate the delay.
714 Note: with Postfix version 2.2, message header address mapping
715 happens only when message header address rewriting is enabled:
717 The message is received with the Postfix \fBsendmail\fR(1) command,
719 The message is received from a network client that matches
720 $local_header_rewrite_clients,
722 The message is received from the network, and the
723 remote_header_rewrite_domain parameter specifies a non-empty value.
725 To get the behavior before Postfix version 2.2, specify
726 "local_header_rewrite_clients = static:all".
733 canonical_maps = dbm:/etc/postfix/canonical
734 canonical_maps = hash:/etc/postfix/canonical
738 .SH cleanup_service_name (default: cleanup)
739 The name of the \fBcleanup\fR(8) service. This service rewrites addresses
740 into the standard form, and performs \fBcanonical\fR(5) address mapping
741 and \fBvirtual\fR(5) aliasing.
743 This feature is available in Postfix 2.0 and later.
744 .SH command_directory (default: see "postconf -d" output)
745 The location of all postfix administrative commands.
746 .SH command_execution_directory (default: empty)
747 The \fBlocal\fR(8) delivery agent working directory for delivery to
748 external command. Failure to change directory causes the delivery
751 The following $name expansions are done on command_execution_directory
752 before the directory is changed. Expansion happens in the context
753 of the delivery request. The result of $name expansion is filtered
754 with the character set that is specified with the
755 execution_directory_expansion_filter parameter.
757 The recipient's username.
759 The recipient's login shell pathname.
761 The recipient's home directory.
762 .IP "\fB$recipient\fR"
763 The full recipient address.
764 .IP "\fB$extension\fR"
765 The optional recipient address extension.
767 The recipient domain.
769 The entire recipient localpart.
770 .IP "\fB$recipient_delimiter\fR"
771 The system-wide recipient address extension delimiter.
772 .IP "\fB${name?value}\fR"
773 Expands to \fIvalue\fR when \fI$name\fR is non-empty.
774 .IP "\fB${name:value}\fR"
775 Expands to \fIvalue\fR when \fI$name\fR is empty.
777 Instead of $name you can also specify ${name} or $(name).
779 This feature is available in Postfix 2.2 and later.
780 .SH command_expansion_filter (default: see "postconf -d" output)
781 Restrict the characters that the \fBlocal\fR(8) delivery agent allows in
782 $name expansions of $mailbox_command and $command_execution_directory.
783 Characters outside the
784 allowed set are replaced by underscores.
785 .SH command_time_limit (default: 1000s)
786 Time limit for delivery to external commands. This limit is used
787 by the \fBlocal\fR(8) delivery agent, and is the default time limit for
788 delivery by the \fBpipe\fR(8) delivery agent.
790 Note: if you set this time limit to a large value you must update the
791 global ipc_timeout parameter as well.
792 .SH config_directory (default: see "postconf -d" output)
793 The default location of the Postfix main.cf and master.cf
794 configuration files. This can be overruled via the following
797 The MAIL_CONFIG environment variable (daemon processes
800 The "-c" command-line option (commands only).
802 With Postfix command that run with set-gid privileges, a
803 config_directory override requires either root privileges, or it
804 requires that the directory is listed with the alternate_config_directories
805 parameter in the default main.cf file.
806 .SH connection_cache_protocol_timeout (default: 5s)
807 Time limit for connection cache connect, send or receive
808 operations. The time limit is enforced in the client.
810 This feature is available in Postfix 2.3 and later.
811 .SH connection_cache_service_name (default: scache)
812 The name of the \fBscache\fR(8) connection cache service. This service
813 maintains a limited pool of cached sessions.
815 This feature is available in Postfix 2.2 and later.
816 .SH connection_cache_status_update_time (default: 600s)
817 How frequently the \fBscache\fR(8) server logs usage statistics with
818 connection cache hit and miss rates for logical destinations and for
820 .SH connection_cache_ttl_limit (default: 2s)
821 The maximal time-to-live value that the \fBscache\fR(8) connection
823 allows. Requests that specify a larger TTL will be stored with the
824 maximum allowed TTL. The purpose of this additional control is to
825 protect the infrastructure against careless people. The cache TTL
826 is already bounded by $max_idle.
827 .SH content_filter (default: empty)
828 The name of a mail delivery transport that filters mail after
831 This parameter uses the same syntax as the right-hand side of a
832 Postfix \fBtransport\fR(5) table. This setting has a lower precedence
833 than a content filter that is specified with an \fBaccess\fR(5) table or
834 in a \fBheader_checks\fR(5) or \fBbody_checks\fR(5) table.
835 .SH cyrus_sasl_config_path (default: empty)
836 Search path for Cyrus SASL application configuration files,
837 currently used only to locate the $smtpd_sasl_path.conf file.
838 Specify zero or more directories separated by a colon character,
839 or an empty value to use Cyrus SASL's built-in search path.
841 This feature is available in Postfix 2.5 and later when compiled
842 with Cyrus SASL 2.1.22 or later.
843 .SH daemon_directory (default: see "postconf -d" output)
844 The directory with Postfix support programs and daemon programs.
845 These should not be invoked directly by humans. The directory must
847 .SH daemon_timeout (default: 18000s)
848 How much time a Postfix daemon process may take to handle a
849 request before it is terminated by a built-in watchdog timer.
851 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
852 The default time unit is s (seconds).
853 .SH data_directory (default: see "postconf -d" output)
854 The directory with Postfix-writable data files (for example:
855 caches, pseudo-random numbers). This directory must be owned by
856 the mail_owner account, and must not be shared with non-Postfix
859 This feature is available in Postfix 2.5 and later.
860 .SH debug_peer_level (default: 2)
861 The increment in verbose logging level when a remote client or
862 server matches a pattern in the debug_peer_list parameter.
863 .SH debug_peer_list (default: empty)
864 Optional list of remote client or server hostname or network
865 address patterns that cause the verbose logging level to increase
866 by the amount specified in $debug_peer_level.
868 Specify domain names, network/netmask patterns, "/file/name"
869 patterns or "type:table" lookup tables. The right-hand side result
870 from "type:table" lookups is ignored.
872 Pattern matching of domain names is controlled by the
873 parent_domain_matches_subdomains parameter.
880 debug_peer_list = 127.0.0.1
881 debug_peer_list = example.com
885 .SH debugger_command (default: empty)
886 The external command to execute when a Postfix daemon program is
887 invoked with the -D option.
889 Use "command .. & sleep 5" so that the debugger can attach before
890 the process marches on. If you use an X-based debugger, be sure to
891 set up your XAUTHORITY environment variable before starting Postfix.
899 PATH=/usr/bin:/usr/X11R6/bin
900 ddd $daemon_directory/$process_name $process_id & sleep 5
904 .SH default_database_type (default: see "postconf -d" output)
905 The default database type for use in \fBnewaliases\fR(1), \fBpostalias\fR(1)
906 and \fBpostmap\fR(1) commands. On many UNIX systems the default type is
907 either \fBdbm\fR or \fBhash\fR. The default setting is frozen
908 when the Postfix system is built.
915 default_database_type = hash
916 default_database_type = dbm
920 .SH default_delivery_slot_cost (default: 5)
921 How often the Postfix queue manager's scheduler is allowed to
922 preempt delivery of one message with another.
924 Each transport maintains a so-called "available delivery slot counter"
925 for each message. One message can be preempted by another one when
926 the other message can be delivered using no more delivery slots
927 (i.e., invocations of delivery agents) than the current message
928 counter has accumulated (or will eventually accumulate - see about
929 slot loans below). This parameter controls how often is the counter
930 incremented - it happens after each default_delivery_slot_cost
931 recipients have been delivered.
933 The cost of 0 is used to disable the preempting scheduling completely.
934 The minimum value the scheduling algorithm can use is 2 - use it
935 if you want to maximize the message throughput rate. Although there
936 is no maximum, it doesn't make much sense to use values above say
939 The only reason why the value of 2 is not the default is the way
940 this parameter affects the delivery of mailing-list mail. In the
941 worst case, their delivery can take somewhere between (cost+1/cost)
942 and (cost/cost-1) times more than if the preemptive scheduler was
943 disabled. The default value of 5 turns out to provide reasonable
944 message response times while making sure the mailing-list deliveries
945 are not extended by more than 20-25 percent even in the worst case.
947 Use \fItransport\fR_delivery_slot_cost to specify a
948 transport-specific override, where \fItransport\fR is the master.cf
949 name of the message delivery transport.
956 default_delivery_slot_cost = 0
957 default_delivery_slot_cost = 2
961 .SH default_delivery_slot_discount (default: 50)
962 The default value for transport-specific _delivery_slot_discount
965 This parameter speeds up the moment when a message preemption can
966 happen. Instead of waiting until the full amount of delivery slots
967 required is available, the preemption can happen when
968 transport_delivery_slot_discount percent of the required amount
969 plus transport_delivery_slot_loan still remains to be accumulated.
970 Note that the full amount will still have to be accumulated before
971 another preemption can take place later.
973 Use \fItransport\fR_delivery_slot_discount to specify a
974 transport-specific override, where \fItransport\fR is the master.cf
975 name of the message delivery transport.
976 .SH default_delivery_slot_loan (default: 3)
977 The default value for transport-specific _delivery_slot_loan
980 This parameter speeds up the moment when a message preemption can
981 happen. Instead of waiting until the full amount of delivery slots
982 required is available, the preemption can happen when
983 transport_delivery_slot_discount percent of the required amount
984 plus transport_delivery_slot_loan still remains to be accumulated.
985 Note that the full amount will still have to be accumulated before
986 another preemption can take place later.
988 Use \fItransport\fR_delivery_slot_loan to specify a
989 transport-specific override, where \fItransport\fR is the master.cf
990 name of the message delivery transport.
991 .SH default_destination_concurrency_failed_cohort_limit (default: 1)
992 How many pseudo-cohorts must suffer connection or handshake
993 failure before a specific destination is considered unavailable
994 (and further delivery is suspended). Specify zero to disable this
995 feature. A destination's pseudo-cohort failure count is reset each
996 time a delivery completes without connection or handshake failure
997 for that specific destination.
999 A pseudo-cohort is the number of deliveries equal to a destination's
1000 delivery concurrency.
1002 Use \fItransport\fR_destination_concurrency_failed_cohort_limit to specify
1003 a transport-specific override, where \fItransport\fR is the master.cf
1004 name of the message delivery transport.
1006 This feature is available in Postfix 2.5. The default setting
1007 is compatible with earlier Postfix versions.
1008 .SH default_destination_concurrency_limit (default: 20)
1009 The default maximal number of parallel deliveries to the same
1010 destination. This is the default limit for delivery via the \fBlmtp\fR(8),
1011 \fBpipe\fR(8), \fBsmtp\fR(8) and \fBvirtual\fR(8) delivery agents.
1012 With per-destination recipient limit > 1, a destination is a domain,
1013 otherwise it is a recipient.
1015 Use \fItransport\fR_destination_concurrency_limit to specify a
1016 transport-specific override, where \fItransport\fR is the master.cf
1017 name of the message delivery transport.
1018 .SH default_destination_concurrency_negative_feedback (default: 1)
1019 The per-destination amount of delivery concurrency negative
1020 feedback, after a delivery completes with a connection or handshake
1021 failure. Feedback values are in the range 0..1 inclusive. With
1022 negative feedback, concurrency is decremented at the beginning of
1023 a sequence of length 1/feedback. This is unlike positive feedback,
1024 where concurrency is incremented at the end of a sequence of length
1027 As of Postfix version 2.5, negative feedback cannot reduce
1028 delivery concurrency to zero. Instead, a destination is marked
1029 dead (further delivery suspended) after the failed pseudo-cohort
1030 count reaches $default_destination_concurrency_failed_cohort_limit
1031 (or $\fItransport\fR_destination_concurrency_failed_cohort_limit).
1032 To make the scheduler completely immune to connection or handshake
1033 failures, specify a zero feedback value and a zero failed pseudo-cohort
1036 Specify one of the following forms:
1037 .IP "\fB\fInumber\fR \fR"
1038 .IP "\fB\fInumber\fR / \fInumber\fR \fR"
1039 Constant feedback. The value must be in the range 0..1 inclusive.
1040 The default setting of "1" is compatible with Postfix versions
1041 before 2.5, where a destination's delivery concurrency is throttled
1042 down to zero (and further delivery suspended) after a single failed
1044 .IP "\fB\fInumber\fR / concurrency \fR"
1045 Variable feedback of "\fInumber\fR / (delivery concurrency)".
1046 The \fInumber\fR must be in the range 0..1 inclusive. With
1047 \fInumber\fR equal to "1", a destination's delivery concurrency
1048 is decremented by 1 after each failed pseudo-cohort.
1050 A pseudo-cohort is the number of deliveries equal to a destination's
1051 delivery concurrency.
1053 Use \fItransport\fR_destination_concurrency_negative_feedback
1054 to specify a transport-specific override, where \fItransport\fR
1056 name of the message delivery transport.
1058 This feature is available in Postfix 2.5. The default setting
1059 is compatible with earlier Postfix versions.
1060 .SH default_destination_concurrency_positive_feedback (default: 1)
1061 The per-destination amount of delivery concurrency positive
1062 feedback, after a delivery completes without connection or handshake
1063 failure. Feedback values are in the range 0..1 inclusive. The
1064 concurrency increases until it reaches the per-destination maximal
1065 concurrency limit. With positive feedback, concurrency is incremented
1066 at the end of a sequence with length 1/feedback. This is unlike
1067 negative feedback, where concurrency is decremented at the start
1068 of a sequence of length 1/feedback.
1070 Specify one of the following forms:
1071 .IP "\fB\fInumber\fR \fR"
1072 .IP "\fB\fInumber\fR / \fInumber\fR \fR"
1073 Constant feedback. The value must be in the range 0..1
1074 inclusive. The default setting of "1" is compatible with Postfix
1075 versions before 2.5, where a destination's delivery concurrency
1076 doubles after each successful pseudo-cohort.
1077 .IP "\fB\fInumber\fR / concurrency \fR"
1078 Variable feedback of "\fInumber\fR / (delivery concurrency)".
1079 The \fInumber\fR must be in the range 0..1 inclusive. With
1080 \fInumber\fR equal to "1", a destination's delivery concurrency
1081 is incremented by 1 after each successful pseudo-cohort.
1083 A pseudo-cohort is the number of deliveries equal to a destination's
1084 delivery concurrency.
1086 Use \fItransport\fR_destination_concurrency_positive_feedback
1087 to specify a transport-specific override, where \fItransport\fR
1088 is the master.cf name of the message delivery transport.
1090 This feature is available in Postfix 2.5 and later.
1091 .SH default_destination_rate_delay (default: 0s)
1092 The default amount of delay that is inserted between individual
1093 deliveries to the same destination; with per-destination recipient
1094 limit > 1, a destination is a domain, otherwise it is a recipient.
1096 To enable the delay, specify a non-zero time value (an integral
1097 value plus an optional one-letter suffix that specifies the time
1100 Time units: s (seconds), m (minutes), h (hours), d (days), w
1101 (weeks). The default time unit is s (seconds).
1103 NOTE: the delay is enforced by the queue manager. The delay
1104 timer state does not survive "postfix reload" or "postfix stop".
1106 Use \fItransport\fR_destination_rate_delay to specify a
1107 transport-specific override, where \fItransport\fR is the master.cf
1108 name of the message delivery transport.
1110 This feature is available in Postfix 2.5 and later.
1111 .SH default_destination_recipient_limit (default: 50)
1112 The default maximal number of recipients per message delivery.
1113 This is the default limit for delivery via the \fBlmtp\fR(8), \fBpipe\fR(8),
1114 \fBsmtp\fR(8) and \fBvirtual\fR(8) delivery agents.
1116 Setting this parameter to a value of 1 changes the meaning of
1117 the corresponding per-destination concurrency limit from concurrency
1118 per domain into concurrency per recipient.
1120 Use \fItransport\fR_destination_recipient_limit to specify a
1121 transport-specific override, where \fItransport\fR is the master.cf
1122 name of the message delivery transport.
1123 .SH default_extra_recipient_limit (default: 1000)
1124 The default value for the extra per-transport limit imposed on the
1125 number of in-memory recipients. This extra recipient space is
1126 reserved for the cases when the Postfix queue manager's scheduler
1127 preempts one message with another and suddenly needs some extra
1128 recipients slots for the chosen message in order to avoid performance
1131 Use \fItransport\fR_extra_recipient_limit to specify a
1132 transport-specific override, where \fItransport\fR is the master.cf
1133 name of the message delivery transport.
1134 .SH default_minimum_delivery_slots (default: 3)
1135 How many recipients a message must have in order to invoke the
1136 Postfix queue manager's scheduling algorithm at all. Messages
1137 which would never accumulate at least this many delivery slots
1138 (subject to slot cost parameter as well) are never preempted.
1140 Use \fItransport\fR_minimum_delivery_slots to specify a
1141 transport-specific override, where \fItransport\fR is the master.cf
1142 name of the message delivery transport.
1143 .SH default_privs (default: nobody)
1144 The default rights used by the \fBlocal\fR(8) delivery agent for delivery
1145 to external file or command. These rights are used when delivery
1146 is requested from an \fBaliases\fR(5) file that is owned by \fBroot\fR, or
1147 when delivery is done on behalf of \fBroot\fR. \fBDO NOT SPECIFY A
1148 PRIVILEGED USER OR THE POSTFIX OWNER\fR.
1149 .SH default_process_limit (default: 100)
1150 The default maximal number of Postfix child processes that provide
1151 a given service. This limit can be overruled for specific services
1152 in the master.cf file.
1153 .SH default_rbl_reply (default: see "postconf -d" output)
1154 The default SMTP server response template for a request that is
1155 rejected by an RBL-based restriction. This template can be overruled
1156 by specific entries in the optional rbl_reply_maps lookup table.
1158 This feature is available in Postfix 2.0 and later.
1160 The template is subject to exactly one level of $name substitution:
1162 The client hostname and IP address, formatted as name[address].
1163 .IP "\fB$client_address\fR"
1164 The client IP address.
1165 .IP "\fB$client_name\fR"
1166 The client hostname or "unknown". See reject_unknown_client_hostname
1168 .IP "\fB$reverse_client_name\fR"
1169 The client hostname from address->name lookup, or "unknown".
1170 See reject_unknown_reverse_client_hostname for more details.
1171 .IP "\fB$helo_name\fR"
1172 The hostname given in HELO or EHLO command or empty string.
1173 .IP "\fB$rbl_class\fR"
1174 The blacklisted entity type: Client host, Helo command, Sender
1175 address, or Recipient address.
1176 .IP "\fB$rbl_code\fR"
1177 The numerical SMTP response code, as specified with the
1178 maps_rbl_reject_code configuration parameter. Note: The numerical
1179 SMTP response code is required, and must appear at the start of the
1180 reply. With Postfix version 2.3 and later this information may be followed
1181 by an RFC 3463 enhanced status code.
1182 .IP "\fB$rbl_domain\fR"
1183 The RBL domain where $rbl_what is blacklisted.
1184 .IP "\fB$rbl_reason\fR"
1185 The reason why $rbl_what is blacklisted, or an empty string.
1186 .IP "\fB$rbl_what\fR"
1187 The entity that is blacklisted (an IP address, a hostname, a domain
1188 name, or an email address whose domain was blacklisted).
1189 .IP "\fB$recipient\fR"
1190 The recipient address or <> in case of the null address.
1191 .IP "\fB$recipient_domain\fR"
1192 The recipient domain or empty string.
1193 .IP "\fB$recipient_name\fR"
1194 The recipient address localpart or <> in case of null address.
1196 The sender address or <> in case of the null address.
1197 .IP "\fB$sender_domain\fR"
1198 The sender domain or empty string.
1199 .IP "\fB$sender_name\fR"
1200 The sender address localpart or <> in case of the null address.
1201 .IP "\fB${name?text}\fR"
1202 Expands to `text' if $name is not empty.
1203 .IP "\fB${name:text}\fR"
1204 Expands to `text' if $name is empty.
1206 Instead of $name you can also specify ${name} or $(name).
1208 Note: when an enhanced status code is specified in an RBL reply
1209 template, it is subject to modification. The following transformations
1210 are needed when the same RBL reply template is used for client,
1211 helo, sender, or recipient access restrictions.
1213 When rejecting a sender address, the Postfix SMTP server
1214 will transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the
1215 corresponding sender DSN status, and vice versa.
1217 When rejecting non-address information (such as the HELO
1218 command argument or the client hostname/address), the Postfix SMTP
1219 server will transform a sender or recipient DSN status into a generic
1220 non-address DSN status (e.g., 4.0.0).
1221 .SH default_recipient_limit (default: 20000)
1222 The default per-transport upper limit on the number of in-memory
1223 recipients. These limits take priority over the global
1224 qmgr_message_recipient_limit after the message has been assigned
1225 to the respective transports. See also default_extra_recipient_limit
1226 and qmgr_message_recipient_minimum.
1228 Use \fItransport\fR_recipient_limit to specify a
1229 transport-specific override, where \fItransport\fR is the master.cf
1230 name of the message delivery transport.
1231 .SH default_recipient_refill_delay (default: 5s)
1232 The default per-transport maximum delay between recipients refills.
1233 When not all message recipients fit into the memory at once, keep loading
1234 more of them at least once every this many seconds. This is used to
1235 make sure the recipients are refilled in timely manner even when
1236 $default_recipient_refill_limit is too high for too slow deliveries.
1238 Use \fItransport\fR_recipient_refill_delay to specify a
1239 transport-specific override, where \fItransport\fR is the master.cf
1240 name of the message delivery transport.
1242 This feature is available in Postfix 2.4 and later.
1243 .SH default_recipient_refill_limit (default: 100)
1244 The default per-transport limit on the number of recipients refilled at
1245 once. When not all message recipients fit into the memory at once, keep
1246 loading more of them in batches of at least this many at a time. See also
1247 $default_recipient_refill_delay, which may result in recipient batches
1248 lower than this when this limit is too high for too slow deliveries.
1250 Use \fItransport\fR_recipient_refill_limit to specify a
1251 transport-specific override, where \fItransport\fR is the master.cf
1252 name of the message delivery transport.
1254 This feature is available in Postfix 2.4 and later.
1255 .SH default_transport (default: smtp)
1256 The default mail delivery transport and next-hop destination for
1257 destinations that do not match $mydestination, $inet_interfaces,
1258 $proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains,
1259 or $relay_domains. In order of decreasing precedence, the nexthop
1260 destination is taken from $default_transport,
1261 $sender_dependent_relayhost_maps, $relayhost, or from the recipient
1262 domain. This information can be overruled with the \fBtransport\fR(5)
1265 Specify a string of the form \fItransport:nexthop\fR, where \fItransport\fR
1266 is the name of a mail delivery transport defined in master.cf.
1267 The \fI:nexthop\fR part is optional. For more details see the
1268 \fBtransport\fR(5) manual page.
1275 default_transport = uucp:relayhostname
1279 .SH default_verp_delimiters (default: +=)
1280 The two default VERP delimiter characters. These are used when
1281 no explicit delimiters are specified with the SMTP XVERP command
1282 or with the "\fBsendmail -V\fR" command-line option. Specify
1283 characters that are allowed by the verp_delimiter_filter setting.
1285 This feature is available in Postfix 1.1 and later.
1286 .SH defer_code (default: 450)
1287 The numerical Postfix SMTP server response code when a remote SMTP
1288 client request is rejected by the "defer" restriction.
1290 Do not change this unless you have a complete understanding of RFC 2821.
1291 .SH defer_service_name (default: defer)
1292 The name of the defer service. This service is implemented by the
1293 \fBbounce\fR(8) daemon and maintains a record
1294 of failed delivery attempts and generates non-delivery notifications.
1296 This feature is available in Postfix 2.0 and later.
1297 .SH defer_transports (default: empty)
1298 The names of message delivery transports that should not deliver mail
1299 unless someone issues "\fBsendmail -q\fR" or equivalent. Specify zero
1300 or more names of mail delivery transports names that appear in the
1301 first field of master.cf.
1308 defer_transports = smtp
1312 .SH delay_logging_resolution_limit (default: 2)
1313 The maximal number of digits after the decimal point when logging
1314 sub-second delay values. Specify a number in the range 0..6.
1316 Large delay values are rounded off to an integral number seconds;
1317 delay values below the delay_logging_resolution_limit are logged
1318 as "0", and small delay values are logged with at most two-digit
1321 The format of the "delays=a/b/c/d" logging is as follows:
1323 a = time from message arrival to last active queue entry
1325 b = time from last active queue entry to connection setup
1327 c = time in connection setup, including DNS, EHLO and TLS
1329 d = time in message transmission
1331 This feature is available in Postfix 2.3 and later.
1332 .SH delay_notice_recipient (default: postmaster)
1333 The recipient of postmaster notifications with the message headers
1334 of mail that cannot be delivered within $delay_warning_time time
1337 This feature is enabled with the delay_warning_time parameter.
1338 .SH delay_warning_time (default: 0h)
1339 The time after which the sender receives the message headers of
1340 mail that is still queued.
1342 To enable this feature, specify a non-zero time value (an integral
1343 value plus an optional one-letter suffix that specifies the time
1346 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1347 The default time unit is h (hours).
1348 .SH deliver_lock_attempts (default: 20)
1349 The maximal number of attempts to acquire an exclusive lock on a
1350 mailbox file or \fBbounce\fR(8) logfile.
1351 .SH deliver_lock_delay (default: 1s)
1352 The time between attempts to acquire an exclusive lock on a mailbox
1353 file or \fBbounce\fR(8) logfile.
1355 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1356 The default time unit is s (seconds).
1357 .SH destination_concurrency_feedback_debug (default: no)
1358 Make the queue manager's feedback algorithm verbose for performance
1361 This feature is available in Postfix 2.5 and later.
1362 .SH detect_8bit_encoding_header (default: yes)
1363 Automatically detect 8BITMIME body content by looking at
1364 Content-Transfer-Encoding: message headers; historically, this
1365 behavior was hard-coded to be "always on".
1367 This feature is available in Postfix 2.5 and later.
1368 .SH disable_dns_lookups (default: no)
1369 Disable DNS lookups in the Postfix SMTP and LMTP clients. When
1370 disabled, hosts are looked up with the getaddrinfo() system
1371 library routine which normally also looks in /etc/hosts.
1373 DNS lookups are enabled by default.
1374 .SH disable_mime_input_processing (default: no)
1375 Turn off MIME processing while receiving mail. This means that no
1376 special treatment is given to Content-Type: message headers, and
1377 that all text after the initial message headers is considered to
1378 be part of the message body.
1380 This feature is available in Postfix 2.0 and later.
1382 Mime input processing is enabled by default, and is needed in order
1383 to recognize MIME headers in message content.
1384 .SH disable_mime_output_conversion (default: no)
1385 Disable the conversion of 8BITMIME format to 7BIT format. Mime
1386 output conversion is needed when the destination does not advertise
1389 This feature is available in Postfix 2.0 and later.
1390 .SH disable_verp_bounces (default: no)
1391 Disable sending one bounce report per recipient.
1393 The default, one per recipient, is what ezmlm needs.
1395 This feature is available in Postfix 1.1 and later.
1396 .SH disable_vrfy_command (default: no)
1397 Disable the SMTP VRFY command. This stops some techniques used to
1398 harvest email addresses.
1405 disable_vrfy_command = no
1409 .SH dont_remove (default: 0)
1410 Don't remove queue files and save them to the "saved" mail queue.
1411 This is a debugging aid. To inspect the envelope information and
1412 content of a Postfix queue file, use the \fBpostcat\fR(1) command.
1413 .SH double_bounce_sender (default: double-bounce)
1414 The sender address of postmaster notifications that are generated
1415 by the mail system. All mail to this address is silently discarded,
1416 in order to terminate mail bounce loops.
1417 .SH duplicate_filter_limit (default: 1000)
1418 The maximal number of addresses remembered by the address
1419 duplicate filter for \fBaliases\fR(5) or \fBvirtual\fR(5) alias expansion, or
1420 for \fBshowq\fR(8) queue displays.
1421 .SH empty_address_recipient (default: MAILER-DAEMON)
1422 The recipient of mail addressed to the null address. Postfix does
1423 not accept such addresses in SMTP commands, but they may still be
1424 created locally as the result of configuration or software error.
1425 .SH empty_address_relayhost_maps_lookup_key (default: <>)
1426 The sender_dependent_relayhost_maps search string that will be
1427 used instead of the null sender address.
1429 This feature is available in Postfix 2.5 and later. With
1430 earlier versions, sender_dependent_relayhost_maps lookups were
1431 skipped for the null sender address.
1432 .SH enable_errors_to (default: no)
1433 Report mail delivery errors to the address specified with the
1434 non-standard Errors-To: message header, instead of the envelope
1435 sender address (this feature is removed with Postfix version 2.2, is
1436 turned off by default with Postfix version 2.1, and is always turned on
1437 with older Postfix versions).
1438 .SH enable_original_recipient (default: yes)
1439 Enable support for the X-Original-To message header. This header
1440 is needed for multi-recipient mailboxes.
1442 When this parameter is set to yes, the \fBcleanup\fR(8) daemon performs
1443 duplicate elimination on distinct pairs of (original recipient,
1444 rewritten recipient), and generates non-empty original recipient
1447 When this parameter is set to no, the \fBcleanup\fR(8) daemon performs
1448 duplicate elimination on the rewritten recipient address only, and
1449 generates empty original recipient queue file records.
1451 This feature is available in Postfix 2.1 and later. With Postfix
1452 version 2.0, support for the X-Original-To message header is always turned
1453 on. Postfix versions before 2.0 have no support for the X-Original-To
1455 .SH error_notice_recipient (default: postmaster)
1456 The recipient of postmaster notifications about mail delivery
1457 problems that are caused by policy, resource, software or protocol
1458 errors. These notifications are enabled with the notify_classes
1460 .SH error_service_name (default: error)
1461 The name of the \fBerror\fR(8) pseudo delivery agent. This service always
1462 returns mail as undeliverable.
1464 This feature is available in Postfix 2.0 and later.
1465 .SH execution_directory_expansion_filter (default: see "postconf -d" output)
1466 Restrict the characters that the \fBlocal\fR(8) delivery agent allows
1467 in $name expansions of $command_execution_directory. Characters
1468 outside the allowed set are replaced by underscores.
1470 This feature is available in Postfix 2.2 and later.
1471 .SH expand_owner_alias (default: no)
1472 When delivering to an alias "aliasname" that has an "owner-aliasname"
1473 companion alias, set the envelope sender address to the expansion
1474 of the "owner-aliasname" alias. Normally, Postfix sets the envelope
1475 sender address to the name of the "owner-aliasname" alias.
1476 .SH export_environment (default: see "postconf -d" output)
1477 The list of environment variables that a Postfix process will export
1478 to non-Postfix processes. The TZ variable is needed for sane
1479 time keeping on System-V-ish systems.
1481 Specify a list of names and/or name=value pairs, separated by
1482 whitespace or comma. The name=value form is supported with
1483 Postfix version 2.1 and later.
1490 export_environment = TZ PATH=/bin:/usr/bin
1494 .SH extract_recipient_limit (default: 10240)
1495 The maximal number of recipient addresses that Postfix will extract
1496 from message headers when mail is submitted with "\fBsendmail -t\fR".
1498 This feature was removed in Postfix version 2.1.
1499 .SH fallback_relay (default: empty)
1500 Optional list of relay hosts for SMTP destinations that can't be
1501 found or that are unreachable. With Postfix 2.3 this parameter
1502 is renamed to smtp_fallback_relay.
1504 By default, mail is returned to the sender when a destination is
1505 not found, and delivery is deferred when a destination is unreachable.
1507 The fallback relays must be SMTP destinations. Specify a domain,
1508 host, host:port, [host]:port, [address] or [address]:port; the form
1509 [host] turns off MX lookups. If you specify multiple SMTP
1510 destinations, Postfix will try them in the specified order.
1512 Note: before Postfix 2.2, do not use the fallback_relay feature
1514 for a backup or primary MX domain. Mail would loop between the
1515 Postfix MX host and the fallback_relay host when the final destination
1518 In main.cf specify "relay_transport = relay",
1520 In master.cf specify "-o fallback_relay =" (i.e., empty) at
1521 the end of the relay entry.
1523 In transport maps, specify "relay:\fInexthop...\fR"
1524 as the right-hand side for backup or primary MX domain entries.
1526 Postfix version 2.2 and later will not use the fallback_relay feature
1527 for destinations that it is MX host for.
1528 .SH fallback_transport (default: empty)
1529 Optional message delivery transport that the \fBlocal\fR(8) delivery
1530 agent should use for names that are not found in the \fBaliases\fR(5)
1531 or UNIX password database.
1533 The precedence of \fBlocal\fR(8) delivery features from high to low
1534 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
1535 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
1536 fallback_transport_maps, fallback_transport and luser_relay.
1537 .SH fallback_transport_maps (default: empty)
1538 Optional lookup tables with per-recipient message delivery
1539 transports for recipients that the \fBlocal\fR(8) delivery agent could
1540 not find in the \fBaliases\fR(5) or UNIX password database.
1542 The precedence of \fBlocal\fR(8) delivery features from high to low
1543 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
1544 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
1545 fallback_transport_maps, fallback_transport and luser_relay.
1547 For safety reasons, this feature does not allow $number
1548 substitutions in regular expression maps.
1550 This feature is available in Postfix 2.3 and later.
1551 .SH fast_flush_domains (default: $relay_domains)
1552 Optional list of destinations that are eligible for per-destination
1553 logfiles with mail that is queued to those destinations.
1555 By default, Postfix maintains "fast flush" logfiles only for
1556 destinations that the Postfix SMTP server is willing to relay to
1557 (i.e. the default is: "fast_flush_domains = $relay_domains"; see
1558 the relay_domains parameter in the \fBpostconf\fR(5) manual).
1560 Specify a list of hosts or domains, "/file/name" patterns or
1561 "type:table" lookup tables, separated by commas and/or whitespace.
1562 Continue long lines by starting the next line with whitespace. A
1563 "/file/name" pattern is replaced by its contents; a "type:table"
1564 lookup table is matched when the domain or its parent domain appears
1567 Specify "fast_flush_domains =" (i.e., empty) to disable the feature
1569 .SH fast_flush_purge_time (default: 7d)
1570 The time after which an empty per-destination "fast flush" logfile
1573 You can specify the time as a number, or as a number followed by
1574 a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
1575 d=days, w=weeks. The default time unit is days.
1576 .SH fast_flush_refresh_time (default: 12h)
1577 The time after which a non-empty but unread per-destination "fast
1578 flush" logfile needs to be refreshed. The contents of a logfile
1579 are refreshed by requesting delivery of all messages listed in the
1582 You can specify the time as a number, or as a number followed by
1583 a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
1584 d=days, w=weeks. The default time unit is hours.
1585 .SH fault_injection_code (default: 0)
1586 Force specific internal tests to fail, to test the handling of
1587 errors that are difficult to reproduce otherwise.
1588 .SH flush_service_name (default: flush)
1589 The name of the \fBflush\fR(8) service. This service maintains per-destination
1590 logfiles with the queue file names of mail that is queued for those
1593 This feature is available in Postfix 2.0 and later.
1594 .SH fork_attempts (default: 5)
1595 The maximal number of attempts to fork() a child process.
1596 .SH fork_delay (default: 1s)
1597 The delay between attempts to fork() a child process.
1599 Time units: s (seconds), m (minutes), h (hours), d (days), w
1600 (weeks). The default time unit is s (seconds).
1601 .SH forward_expansion_filter (default: see "postconf -d" output)
1602 Restrict the characters that the \fBlocal\fR(8) delivery agent allows in
1603 $name expansions of $forward_path. Characters outside the
1604 allowed set are replaced by underscores.
1605 .SH forward_path (default: see "postconf -d" output)
1606 The \fBlocal\fR(8) delivery agent search list for finding a .forward
1607 file with user-specified delivery methods. The first file that is
1610 The following $name expansions are done on forward_path before
1611 the search actually happens. The result of $name expansion is
1612 filtered with the character set that is specified with the
1613 forward_expansion_filter parameter.
1615 The recipient's username.
1617 The recipient's login shell pathname.
1619 The recipient's home directory.
1620 .IP "\fB$recipient\fR"
1621 The full recipient address.
1622 .IP "\fB$extension\fR"
1623 The optional recipient address extension.
1625 The recipient domain.
1627 The entire recipient localpart.
1628 .IP "\fB$recipient_delimiter\fR"
1629 The system-wide recipient address extension delimiter.
1630 .IP "\fB${name?value}\fR"
1631 Expands to \fIvalue\fR when \fI$name\fR is non-empty.
1632 .IP "\fB${name:value}\fR"
1633 Expands to \fIvalue\fR when \fI$name\fR is empty.
1635 Instead of $name you can also specify ${name} or $(name).
1642 forward_path = /var/forward/$user
1644 /var/forward/$user/.forward$recipient_delimiter$extension,
1645 /var/forward/$user/.forward
1649 .SH frozen_delivered_to (default: yes)
1650 Update the \fBlocal\fR(8) delivery agent's idea of the Delivered-To:
1651 address (see prepend_delivered_header) only once, at the start of
1652 a delivery attempt; do not update the Delivered-To: address while
1653 expanding aliases or .forward files.
1655 This feature is available in Postfix 2.3 and later. With older
1656 Postfix releases, the behavior is as if this parameter is set to
1657 "no". The old setting can be expensive with deeply nested aliases
1658 or .forward files. When an alias or .forward file changes the
1659 Delivered-To: address, it ties up one queue file and one cleanup
1660 process instance while mail is being forwarded.
1661 .SH hash_queue_depth (default: 1)
1662 The number of subdirectory levels for queue directories listed with
1663 the hash_queue_names parameter.
1665 After changing the hash_queue_names or hash_queue_depth parameter,
1666 execute the command "\fBpostfix reload\fR".
1667 .SH hash_queue_names (default: deferred, defer)
1668 The names of queue directories that are split across multiple
1669 subdirectory levels.
1671 Before Postfix version 2.2, the default list of hashed queues
1672 was significantly larger. Claims about improvements in file system
1673 technology suggest that hashing of the incoming and active queues
1674 is no longer needed. Fewer hashed directories speed up the time
1675 needed to restart Postfix.
1677 After changing the hash_queue_names or hash_queue_depth parameter,
1678 execute the command "\fBpostfix reload\fR".
1679 .SH header_address_token_limit (default: 10240)
1680 The maximal number of address tokens are allowed in an address
1681 message header. Information that exceeds the limit is discarded.
1682 The limit is enforced by the \fBcleanup\fR(8) server.
1683 .SH header_checks (default: empty)
1684 Optional lookup tables for content inspection of primary non-MIME
1685 message headers, as specified in the \fBheader_checks\fR(5) manual page.
1686 .SH header_size_limit (default: 102400)
1687 The maximal amount of memory in bytes for storing a message header.
1688 If a header is larger, the excess is discarded. The limit is
1689 enforced by the \fBcleanup\fR(8) server.
1690 .SH helpful_warnings (default: yes)
1691 Log warnings about problematic configuration settings, and provide
1692 helpful suggestions.
1694 This feature is available in Postfix 2.0 and later.
1695 .SH home_mailbox (default: empty)
1696 Optional pathname of a mailbox file relative to a \fBlocal\fR(8) user's
1699 Specify a pathname ending in "/" for qmail-style delivery.
1701 The precedence of \fBlocal\fR(8) delivery features from high to low
1702 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
1703 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
1704 fallback_transport_maps, fallback_transport and luser_relay.
1711 home_mailbox = Mailbox
1712 home_mailbox = Maildir/
1716 .SH hopcount_limit (default: 50)
1717 The maximal number of Received: message headers that is allowed
1718 in the primary message headers. A message that exceeds the limit
1719 is bounced, in order to stop a mailer loop.
1720 .SH html_directory (default: see "postconf -d" output)
1721 The location of Postfix HTML files that describe how to build,
1722 configure or operate a specific Postfix subsystem or feature.
1723 .SH ignore_mx_lookup_error (default: no)
1724 Ignore DNS MX lookups that produce no response. By default,
1725 the Postfix SMTP client defers delivery and tries again after some
1726 delay. This behavior is required by the SMTP standard.
1728 Specify "ignore_mx_lookup_error = yes" to force a DNS A record
1729 lookup instead. This violates the SMTP standard and can result in
1730 mis-delivery of mail.
1731 .SH import_environment (default: see "postconf -d" output)
1732 The list of environment parameters that a Postfix process will
1733 import from a non-Postfix parent process. Examples of relevant
1736 Needed for sane time keeping on most System-V-ish systems.
1738 Needed for debugging Postfix daemons with an X-windows debugger.
1739 .IP "\fBXAUTHORITY\fR"
1740 Needed for debugging Postfix daemons with an X-windows debugger.
1741 .IP "\fBMAIL_CONFIG\fR"
1742 Needed to make "\fBpostfix -c\fR" work.
1744 Specify a list of names and/or name=value pairs, separated by
1745 whitespace or comma. The name=value form is supported with
1746 Postfix version 2.1 and later.
1747 .SH in_flow_delay (default: 1s)
1748 Time to pause before accepting a new message, when the message
1749 arrival rate exceeds the message delivery rate. This feature is
1750 turned on by default (it's disabled on SCO UNIX due to an SCO bug).
1752 With the default 100 SMTP server process limit, "in_flow_delay
1753 = 1s" limits the mail inflow to 100 messages per second above the
1754 number of messages delivered per second.
1756 Specify 0 to disable the feature. Valid delays are 0..10.
1757 .SH inet_interfaces (default: all)
1758 The network interface addresses that this mail system receives
1759 mail on. Specify "all" to receive mail on all network
1760 interfaces (default), and "loopback-only" to receive mail
1761 on loopback network interfaces only (Postfix version 2.2 and later). The
1762 parameter also controls delivery of mail to user@[ip.address].
1764 Note 1: you need to stop and start Postfix when this parameter changes.
1766 Note 2: address information may be enclosed inside [],
1767 but this form is not required here.
1769 When inet_interfaces specifies just one IPv4 and/or IPv6 address
1770 that is not a loopback address, the Postfix SMTP client will use
1771 this address as the IP source address for outbound mail. Support
1772 for IPv6 is available in Postfix version 2.2 and later.
1774 On a multi-homed firewall with separate Postfix instances listening on the
1775 "inside" and "outside" interfaces, this can prevent each instance from
1776 being able to reach servers on the "other side" of the firewall. Setting
1777 smtp_bind_address to 0.0.0.0 avoids the potential problem for
1778 IPv4, and setting smtp_bind_address6 to :: solves the problem
1781 A better solution for multi-homed firewalls is to leave inet_interfaces
1782 at the default value and instead use explicit IP addresses in
1783 the master.cf SMTP server definitions. This preserves the Postfix
1785 loop detection, by ensuring that each side of the firewall knows that the
1786 other IP address is still the same host. Setting $inet_interfaces to a
1787 single IPv4 and/or IPV6 address is primarily useful with virtual
1788 hosting of domains on
1789 secondary IP addresses, when each IP address serves a different domain
1790 (and has a different $myhostname setting).
1792 See also the proxy_interfaces parameter, for network addresses that
1793 are forwarded to Postfix by way of a proxy or address translator.
1800 inet_interfaces = all (DEFAULT)
1801 inet_interfaces = loopback-only (Postfix version 2.2 and later)
1802 inet_interfaces = 127.0.0.1
1803 inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later)
1804 inet_interfaces = 192.168.1.2, 127.0.0.1
1808 .SH inet_protocols (default: ipv4)
1809 The Internet protocols Postfix will attempt to use when making
1810 or accepting connections. Specify one or more of "ipv4"
1811 or "ipv6", separated by whitespace or commas. The form
1812 "all" is equivalent to "ipv4, ipv6" or "ipv4", depending
1813 on whether the operating system implements IPv6.
1815 This feature is available in Postfix 2.2 and later.
1817 Note: you MUST stop and start Postfix after changing this
1820 On systems that pre-date IPV6_V6ONLY support (RFC 3493), an
1821 IPv6 server will also accept IPv4 connections, even when IPv4 is
1822 turned off with the inet_protocols parameter. On systems with
1823 IPV6_V6ONLY support, Postfix will use separate server sockets for
1824 IPv6 and IPv4, and each will accept only connections for the
1825 corresponding protocol.
1827 When IPv4 support is enabled via the inet_protocols parameter,
1828 Postfix will to DNS type A record lookups, and will convert
1829 IPv4-in-IPv6 client IP addresses (::ffff:1.2.3.4) to their original
1830 IPv4 form (1.2.3.4). The latter is needed on hosts that pre-date
1831 IPV6_V6ONLY support (RFC 3493).
1833 When IPv6 support is enabled via the inet_protocols parameter,
1834 Postfix will do DNS type AAAA record lookups.
1836 When both IPv4 and IPv6 support are enabled, the Postfix SMTP
1837 client will attempt to connect via IPv6 before attempting to use
1845 inet_protocols = ipv4 (DEFAULT)
1846 inet_protocols = all
1847 inet_protocols = ipv6
1848 inet_protocols = ipv4, ipv6
1852 .SH initial_destination_concurrency (default: 5)
1853 The initial per-destination concurrency level for parallel delivery
1854 to the same destination.
1855 With per-destination recipient limit > 1, a destination is a domain,
1856 otherwise it is a recipient.
1858 Use \fItransport\fR_initial_destination_concurrency to specify
1859 a transport-specific override, where \fItransport\fR is the master.cf
1860 name of the message delivery transport (Postfix 2.5 and later).
1862 Warning: with concurrency of 1, one bad message can be enough to
1863 block all mail to a site.
1864 .SH internal_mail_filter_classes (default: empty)
1865 What categories of Postfix-generated mail are subject to
1866 before-queue content inspection by non_smtpd_milters, header_checks
1867 and body_checks. Specify zero or more of the following, separated
1868 by whitespace or comma.
1870 Inspect the content of delivery
1871 status notifications.
1873 Inspect the content of postmaster
1874 notifications by the \fBsmtp\fR(8) and \fBsmtpd\fR(8) processes.
1876 NOTE: It's generally not safe to enable content inspection of
1877 Postfix-generated email messages. The user is warned.
1879 This feature is available in Postfix 2.3 and later.
1880 .SH invalid_hostname_reject_code (default: 501)
1881 The numerical Postfix SMTP server response code when the client
1882 HELO or EHLO command parameter is rejected by the reject_invalid_helo_hostname
1885 Do not change this unless you have a complete understanding of RFC 2821.
1886 .SH ipc_idle (default: version dependent)
1887 The time after which a client closes an idle internal communication
1888 channel. The purpose is to allow servers to terminate voluntarily
1889 after they become idle. This is used, for example, by the address
1890 resolving and rewriting clients.
1892 With Postfix 2.4 the default value was reduced from 100s to 5s.
1894 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1895 The default time unit is s (seconds).
1896 .SH ipc_timeout (default: 3600s)
1897 The time limit for sending or receiving information over an internal
1898 communication channel. The purpose is to break out of deadlock
1899 situations. If the time limit is exceeded the software aborts with a
1902 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1903 The default time unit is s (seconds).
1904 .SH ipc_ttl (default: 1000s)
1905 The time after which a client closes an active internal communication
1906 channel. The purpose is to allow servers to terminate voluntarily
1907 after reaching their client limit. This is used, for example, by
1908 the address resolving and rewriting clients.
1910 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1911 The default time unit is s (seconds).
1913 This feature is available in Postfix 2.1 and later.
1914 .SH line_length_limit (default: 2048)
1915 Upon input, long lines are chopped up into pieces of at most
1916 this length; upon delivery, long lines are reconstructed.
1917 .SH lmtp_assume_final (default: no)
1918 When an LMTP server announces no DSN support, assume that the
1919 server performs final delivery, and send "delivered" delivery status
1920 notifications instead of "relayed". The default setting is backwards
1921 compatible to avoid the infinetisimal possibility of breaking
1922 existing LMTP-based content filters.
1923 .SH lmtp_bind_address (default: empty)
1924 The LMTP-specific version of the smtp_bind_address configuration
1925 parameter. See there for details.
1927 This feature is available in Postfix 2.3 and later.
1928 .SH lmtp_bind_address6 (default: empty)
1929 The LMTP-specific version of the smtp_bind_address6 configuration
1930 parameter. See there for details.
1932 This feature is available in Postfix 2.3 and later.
1933 .SH lmtp_cache_connection (default: yes)
1934 Keep Postfix LMTP client connections open for up to $max_idle
1935 seconds. When the LMTP client receives a request for the same
1936 connection the connection is reused.
1938 This parameter is available in Postfix version 2.2 and earlier.
1939 With Postfix version 2.3 and later, see lmtp_connection_cache_on_demand,
1940 lmtp_connection_cache_destinations, or lmtp_connection_reuse_time_limit.
1942 The effectiveness of cached connections will be determined by the
1943 number of LMTP servers in use, and the concurrency limit specified
1944 for the LMTP client. Cached connections are closed under any of
1945 the following conditions:
1947 The LMTP client idle time limit is reached. This limit is
1948 specified with the Postfix max_idle configuration parameter.
1950 A delivery request specifies a different destination than the
1951 one currently cached.
1953 The per-process limit on the number of delivery requests is
1954 reached. This limit is specified with the Postfix max_use
1955 configuration parameter.
1957 Upon the onset of another delivery request, the LMTP server
1958 associated with the current session does not respond to the RSET
1961 Most of these limitations will be removed after Postfix implements
1962 a connection cache that is shared among multiple LMTP client
1964 .SH lmtp_cname_overrides_servername (default: yes)
1965 The LMTP-specific version of the smtp_cname_overrides_servername
1966 configuration parameter. See there for details.
1968 This feature is available in Postfix 2.3 and later.
1969 .SH lmtp_connect_timeout (default: 0s)
1970 The LMTP client time limit for completing a TCP connection, or
1971 zero (use the operating system built-in time limit). When no
1972 connection can be made within the deadline, the LMTP client tries
1973 the next address on the mail exchanger list.
1975 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1976 The default time unit is s (seconds).
1983 lmtp_connect_timeout = 30s
1987 .SH lmtp_connection_cache_destinations (default: empty)
1988 The LMTP-specific version of the smtp_connection_cache_destinations
1989 configuration parameter. See there for details.
1991 This feature is available in Postfix 2.3 and later.
1992 .SH lmtp_connection_cache_on_demand (default: yes)
1993 The LMTP-specific version of the smtp_connection_cache_on_demand
1994 configuration parameter. See there for details.
1996 This feature is available in Postfix 2.3 and later.
1997 .SH lmtp_connection_cache_time_limit (default: 2s)
1998 The LMTP-specific version of the
1999 smtp_connection_cache_time_limit configuration parameter.
2000 See there for details.
2002 This feature is available in Postfix 2.3 and later.
2003 .SH lmtp_connection_reuse_time_limit (default: 300s)
2004 The LMTP-specific version of the smtp_connection_reuse_time_limit
2005 configuration parameter. See there for details.
2007 This feature is available in Postfix 2.3 and later.
2008 .SH lmtp_data_done_timeout (default: 600s)
2009 The LMTP client time limit for sending the LMTP ".", and for
2010 receiving the server response. When no response is received within
2011 the deadline, a warning is logged that the mail may be delivered
2014 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2015 The default time unit is s (seconds).
2016 .SH lmtp_data_init_timeout (default: 120s)
2017 The LMTP client time limit for sending the LMTP DATA command, and
2018 for receiving the server response.
2020 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2021 The default time unit is s (seconds).
2022 .SH lmtp_data_xfer_timeout (default: 180s)
2023 The LMTP client time limit for sending the LMTP message content.
2024 When the connection stalls for more than $lmtp_data_xfer_timeout
2025 the LMTP client terminates the transfer.
2027 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2028 The default time unit is s (seconds).
2029 .SH lmtp_defer_if_no_mx_address_found (default: no)
2030 The LMTP-specific version of the smtp_defer_if_no_mx_address_found
2031 configuration parameter. See there for details.
2033 This feature is available in Postfix 2.3 and later.
2034 .SH lmtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
2035 The maximal number of parallel deliveries to the same destination
2036 via the lmtp message delivery transport. This limit is enforced by
2037 the queue manager. The message delivery transport name is the first
2038 field in the entry in the master.cf file.
2039 .SH lmtp_destination_recipient_limit (default: $default_destination_recipient_limit)
2040 The maximal number of recipients per message for the lmtp
2041 message delivery transport. This limit is enforced by the queue
2042 manager. The message delivery transport name is the first field in
2043 the entry in the master.cf file.
2045 Setting this parameter to a value of 1 changes the meaning of
2046 lmtp_destination_concurrency_limit from concurrency per domain into
2047 concurrency per recipient.
2048 .SH lmtp_discard_lhlo_keyword_address_maps (default: empty)
2049 Lookup tables, indexed by the remote LMTP server address, with
2050 case insensitive lists of LHLO keywords (pipelining, starttls,
2051 auth, etc.) that the LMTP client will ignore in the LHLO response
2052 from a remote LMTP server. See lmtp_discard_lhlo_keywords for
2053 details. The table is not indexed by hostname for consistency with
2054 smtpd_discard_ehlo_keyword_address_maps.
2056 This feature is available in Postfix 2.3 and later.
2057 .SH lmtp_discard_lhlo_keywords (default: empty)
2058 A case insensitive list of LHLO keywords (pipelining, starttls,
2059 auth, etc.) that the LMTP client will ignore in the LHLO response
2060 from a remote LMTP server.
2062 This feature is available in Postfix 2.3 and later.
2066 Specify the \fBsilent-discard\fR pseudo keyword to prevent
2067 this action from being logged.
2069 Use the lmtp_discard_lhlo_keyword_address_maps feature to
2070 discard LHLO keywords selectively.
2071 .SH lmtp_enforce_tls (default: no)
2072 The LMTP-specific version of the smtp_enforce_tls configuration
2073 parameter. See there for details.
2075 This feature is available in Postfix 2.3 and later.
2076 .SH lmtp_generic_maps (default: empty)
2077 The LMTP-specific version of the smtp_generic_maps configuration
2078 parameter. See there for details.
2080 This feature is available in Postfix 2.3 and later.
2081 .SH lmtp_host_lookup (default: dns)
2082 The LMTP-specific version of the smtp_host_lookup configuration
2083 parameter. See there for details.
2085 This feature is available in Postfix 2.3 and later.
2086 .SH lmtp_lhlo_name (default: $myhostname)
2087 The hostname to send in the LMTP LHLO command.
2089 The default value is the machine hostname. Specify a hostname or
2092 This information can be specified in the main.cf file for all LMTP
2093 clients, or it can be specified in the master.cf file for a specific
2094 client, for example:
2100 /etc/postfix/master.cf:
2101 mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com
2107 This feature is available in Postfix 2.3 and later.
2108 .SH lmtp_lhlo_timeout (default: 300s)
2109 The LMTP client time limit for sending the LHLO command, and
2110 for receiving the initial server response.
2112 Time units: s (seconds), m (minutes), h (hours), d (days), w
2113 (weeks). The default time unit is s (seconds).
2114 .SH lmtp_line_length_limit (default: 990)
2115 The LMTP-specific version of the smtp_line_length_limit
2116 configuration parameter. See there for details.
2118 This feature is available in Postfix 2.3 and later.
2119 .SH lmtp_mail_timeout (default: 300s)
2120 The LMTP client time limit for sending the MAIL FROM command, and
2121 for receiving the server response.
2123 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2124 The default time unit is s (seconds).
2125 .SH lmtp_mx_address_limit (default: 5)
2126 The LMTP-specific version of the smtp_mx_address_limit configuration
2127 parameter. See there for details.
2129 This feature is available in Postfix 2.3 and later.
2130 .SH lmtp_mx_session_limit (default: 2)
2131 The LMTP-specific version of the smtp_mx_session_limit configuration
2132 parameter. See there for details.
2134 This feature is available in Postfix 2.3 and later.
2135 .SH lmtp_pix_workaround_delay_time (default: 10s)
2136 The LMTP-specific version of the smtp_pix_workaround_delay_time
2137 configuration parameter. See there for details.
2139 This feature is available in Postfix 2.3 and later.
2140 .SH lmtp_pix_workaround_maps (default: empty)
2141 The LMTP-specific version of the smtp_pix_workaround_maps
2142 configuration parameter. See there for details.
2144 This feature is available in Postfix 2.4 and later.
2145 .SH lmtp_pix_workaround_threshold_time (default: 500s)
2146 The LMTP-specific version of the smtp_pix_workaround_threshold_time
2147 configuration parameter. See there for details.
2149 This feature is available in Postfix 2.3 and later.
2150 .SH lmtp_pix_workarounds (default: empty)
2151 The LMTP-specific version of the smtp_pix_workaround
2152 configuration parameter. See there for details.
2154 This feature is available in Postfix 2.4 and later.
2155 .SH lmtp_quit_timeout (default: 300s)
2156 The LMTP client time limit for sending the QUIT command, and for
2157 receiving the server response.
2159 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2160 The default time unit is s (seconds).
2161 .SH lmtp_quote_rfc821_envelope (default: yes)
2162 The LMTP-specific version of the smtp_quote_rfc821_envelope
2163 configuration parameter. See there for details.
2165 This feature is available in Postfix 2.3 and later.
2166 .SH lmtp_randomize_addresses (default: yes)
2167 The LMTP-specific version of the smtp_randomize_addresses
2168 configuration parameter. See there for details.
2170 This feature is available in Postfix 2.3 and later.
2171 .SH lmtp_rcpt_timeout (default: 300s)
2172 The LMTP client time limit for sending the RCPT TO command, and
2173 for receiving the server response.
2175 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2176 The default time unit is s (seconds).
2177 .SH lmtp_rset_timeout (default: 20s)
2178 The LMTP client time limit for sending the RSET command, and
2179 for receiving the server response. The LMTP client sends RSET in
2180 order to finish a recipient address probe, or to verify that a
2181 cached connection is still alive.
2183 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2184 The default time unit is s (seconds).
2185 .SH lmtp_sasl_auth_cache_name (default: empty)
2186 The LMTP-specific version of the smtp_sasl_auth_cache_name
2187 configuration parameter. See there for details.
2189 This feature is available in Postfix 2.5 and later.
2190 .SH lmtp_sasl_auth_cache_time (default: 90d)
2191 The LMTP-specific version of the smtp_sasl_auth_cache_time
2192 configuration parameter. See there for details.
2194 This feature is available in Postfix 2.5 and later.
2195 .SH lmtp_sasl_auth_enable (default: no)
2196 Enable SASL authentication in the Postfix LMTP client.
2197 .SH lmtp_sasl_auth_soft_bounce (default: yes)
2198 The LMTP-specific version of the smtp_sasl_auth_soft_bounce
2199 configuration parameter. See there for details.
2201 This feature is available in Postfix 2.5 and later.
2202 .SH lmtp_sasl_mechanism_filter (default: empty)
2203 The LMTP-specific version of the smtp_sasl_mechanism_filter
2204 configuration parameter. See there for details.
2206 This feature is available in Postfix 2.3 and later.
2207 .SH lmtp_sasl_password_maps (default: empty)
2208 Optional LMTP client lookup tables with one username:password entry
2209 per host or domain. If a remote host or domain has no username:password
2210 entry, then the Postfix LMTP client will not attempt to authenticate
2212 .SH lmtp_sasl_path (default: empty)
2213 Implementation-specific information that is passed through to
2214 the SASL plug-in implementation that is selected with
2215 \fBlmtp_sasl_type\fR. Typically this specifies the name of a
2216 configuration file or rendezvous point.
2218 This feature is available in Postfix 2.3 and later.
2219 .SH lmtp_sasl_security_options (default: noplaintext, noanonymous)
2220 SASL security options; as of Postfix 2.3 the list of available
2221 features depends on the SASL client implementation that is selected
2222 with \fBlmtp_sasl_type\fR.
2224 The following security features are defined for the \fBcyrus\fR
2225 client SASL implementation:
2226 .IP "\fBnoplaintext\fR"
2227 Disallow authentication methods that use plaintext passwords.
2228 .IP "\fBnoactive\fR"
2229 Disallow authentication methods that are vulnerable to non-dictionary
2231 .IP "\fBnodictionary\fR"
2232 Disallow authentication methods that are vulnerable to passive
2234 .IP "\fBnoanonymous\fR"
2235 Disallow anonymous logins.
2242 lmtp_sasl_security_options = noplaintext
2246 .SH lmtp_sasl_tls_security_options (default: $lmtp_sasl_security_options)
2247 The LMTP-specific version of the smtp_sasl_tls_security_options
2248 configuration parameter. See there for details.
2250 This feature is available in Postfix 2.3 and later.
2251 .SH lmtp_sasl_tls_verified_security_options (default: $lmtp_sasl_tls_security_options)
2252 The LMTP-specific version of the
2253 smtp_sasl_tls_verified_security_options configuration parameter.
2254 See there for details.
2256 This feature is available in Postfix 2.3 and later.
2257 .SH lmtp_sasl_type (default: cyrus)
2258 The SASL plug-in type that the Postfix LMTP client should use
2259 for authentication. The available types are listed with the
2260 "\fBpostconf -A\fR" command.
2262 This feature is available in Postfix 2.3 and later.
2263 .SH lmtp_send_xforward_command (default: no)
2264 Send an XFORWARD command to the LMTP server when the LMTP LHLO
2265 server response announces XFORWARD support. This allows an \fBlmtp\fR(8)
2266 delivery agent, used for content filter message injection, to
2267 forward the name, address, protocol and HELO name of the original
2268 client to the content filter and downstream queuing LMTP server.
2269 Before you change the value to yes, it is best to make sure that
2270 your content filter supports this command.
2272 This feature is available in Postfix 2.1 and later.
2273 .SH lmtp_sender_dependent_authentication (default: no)
2274 The LMTP-specific version of the smtp_sender_dependent_authentication
2275 configuration parameter. See there for details.
2277 This feature is available in Postfix 2.3 and later.
2278 .SH lmtp_skip_5xx_greeting (default: yes)
2279 The LMTP-specific version of the smtp_skip_5xx_greeting
2280 configuration parameter. See there for details.
2282 This feature is available in Postfix 2.3 and later.
2283 .SH lmtp_skip_quit_response (default: no)
2284 Wait for the response to the LMTP QUIT command.
2285 .SH lmtp_starttls_timeout (default: 300s)
2286 The LMTP-specific version of the smtp_starttls_timeout configuration
2287 parameter. See there for details.
2289 This feature is available in Postfix 2.3 and later.
2290 .SH lmtp_tcp_port (default: 24)
2291 The default TCP port that the Postfix LMTP client connects to.
2292 .SH lmtp_tls_CAfile (default: empty)
2293 The LMTP-specific version of the smtp_tls_CAfile
2294 configuration parameter. See there for details.
2296 This feature is available in Postfix 2.3 and later.
2297 .SH lmtp_tls_CApath (default: empty)
2298 The LMTP-specific version of the smtp_tls_CApath
2299 configuration parameter. See there for details.
2301 This feature is available in Postfix 2.3 and later.
2302 .SH lmtp_tls_cert_file (default: empty)
2303 The LMTP-specific version of the smtp_tls_cert_file
2304 configuration parameter. See there for details.
2306 This feature is available in Postfix 2.3 and later.
2307 .SH lmtp_tls_ciphers (default: export)
2308 The LMTP-specific version of the smtp_tls_ciphers configuration
2309 parameter. See there for details.
2311 This feature is available in Postfix 2.6 and later.
2312 .SH lmtp_tls_dcert_file (default: empty)
2313 The LMTP-specific version of the smtp_tls_dcert_file
2314 configuration parameter. See there for details.
2316 This feature is available in Postfix 2.3 and later.
2317 .SH lmtp_tls_dkey_file (default: $lmtp_tls_dcert_file)
2318 The LMTP-specific version of the smtp_tls_dkey_file
2319 configuration parameter. See there for details.
2321 This feature is available in Postfix 2.3 and later.
2322 .SH lmtp_tls_eccert_file (default: empty)
2323 The LMTP-specific version of the smtp_tls_eccert_file configuration
2324 parameter. See there for details.
2326 This feature is available in Postfix 2.6 and later, when Postfix is
2327 compiled and linked with OpenSSL 0.9.9 or later.
2328 .SH lmtp_tls_eckey_file (default: empty)
2329 The LMTP-specific version of the smtp_tls_eckey_file configuration
2330 parameter. See there for details.
2332 This feature is available in Postfix 2.6 and later, when Postfix is
2333 compiled and linked with OpenSSL 0.9.9 or later.
2334 .SH lmtp_tls_enforce_peername (default: yes)
2335 The LMTP-specific version of the smtp_tls_enforce_peername
2336 configuration parameter. See there for details.
2338 This feature is available in Postfix 2.3 and later.
2339 .SH lmtp_tls_exclude_ciphers (default: empty)
2340 The LMTP-specific version of the smtp_tls_exclude_ciphers
2341 configuration parameter. See there for details.
2343 This feature is available in Postfix 2.3 and later.
2344 .SH lmtp_tls_fingerprint_cert_match (default: empty)
2345 The LMTP-specific version of the smtp_tls_fingerprint_cert_match
2346 configuration parameter. See there for details.
2348 This feature is available in Postfix 2.5 and later.
2349 .SH lmtp_tls_fingerprint_digest (default: md5)
2350 The LMTP-specific version of the smtp_tls_fingerprint_digest
2351 configuration parameter. See there for details.
2353 This feature is available in Postfix 2.5 and later.
2354 .SH lmtp_tls_key_file (default: $lmtp_tls_cert_file)
2355 The LMTP-specific version of the smtp_tls_key_file
2356 configuration parameter. See there for details.
2358 This feature is available in Postfix 2.3 and later.
2359 .SH lmtp_tls_loglevel (default: 0)
2360 The LMTP-specific version of the smtp_tls_loglevel
2361 configuration parameter. See there for details.
2363 This feature is available in Postfix 2.3 and later.
2364 .SH lmtp_tls_mandatory_ciphers (default: empty)
2365 The LMTP-specific version of the smtp_tls_mandatory_ciphers
2366 configuration parameter. See there for details.
2368 This feature is available in Postfix 2.3 and later.
2369 .SH lmtp_tls_mandatory_exclude_ciphers (default: empty)
2370 The LMTP-specific version of the smtp_tls_mandatory_exclude_ciphers
2371 configuration parameter. See there for details.
2373 This feature is available in Postfix 2.3 and later.
2374 .SH lmtp_tls_mandatory_protocols (default: SSLv3, TLSv1)
2375 The LMTP-specific version of the smtp_tls_mandatory_protocols
2376 configuration parameter. See there for details.
2378 This feature is available in Postfix 2.3 and later.
2379 .SH lmtp_tls_note_starttls_offer (default: no)
2380 The LMTP-specific version of the smtp_tls_note_starttls_offer
2381 configuration parameter. See there for details.
2383 This feature is available in Postfix 2.3 and later.
2384 .SH lmtp_tls_per_site (default: empty)
2385 The LMTP-specific version of the smtp_tls_per_site configuration
2386 parameter. See there for details.
2388 This feature is available in Postfix 2.3 and later.
2389 .SH lmtp_tls_policy_maps (default: empty)
2390 The LMTP-specific version of the smtp_tls_policy_maps
2391 configuration parameter. See there for details.
2393 This feature is available in Postfix 2.3 and later.
2394 .SH lmtp_tls_protocols (default: empty)
2395 The LMTP-specific version of the smtp_tls_protocols configuration
2396 parameter. See there for details.
2398 This feature is available in Postfix 2.6 and later.
2399 .SH lmtp_tls_scert_verifydepth (default: 9)
2400 The LMTP-specific version of the smtp_tls_scert_verifydepth
2401 configuration parameter. See there for details.
2403 This feature is available in Postfix 2.3 and later.
2404 .SH lmtp_tls_secure_cert_match (default: nexthop)
2405 The LMTP-specific version of the smtp_tls_secure_cert_match
2406 configuration parameter. See there for details.
2408 This feature is available in Postfix 2.3 and later.
2409 .SH lmtp_tls_security_level (default: empty)
2410 The LMTP-specific version of the smtp_tls_security_level configuration
2411 parameter. See there for details.
2413 This feature is available in Postfix 2.3 and later.
2414 .SH lmtp_tls_session_cache_database (default: empty)
2415 The LMTP-specific version of the smtp_tls_session_cache_database
2416 configuration parameter. See there for details.
2418 This feature is available in Postfix 2.3 and later.
2419 .SH lmtp_tls_session_cache_timeout (default: 3600s)
2420 The LMTP-specific version of the smtp_tls_session_cache_timeout
2421 configuration parameter. See there for details.
2423 This feature is available in Postfix 2.3 and later.
2424 .SH lmtp_tls_verify_cert_match (default: hostname)
2425 The LMTP-specific version of the smtp_tls_verify_cert_match
2426 configuration parameter. See there for details.
2428 This feature is available in Postfix 2.3 and later.
2429 .SH lmtp_use_tls (default: no)
2430 The LMTP-specific version of the smtp_use_tls configuration
2431 parameter. See there for details.
2433 This feature is available in Postfix 2.3 and later.
2434 .SH lmtp_xforward_timeout (default: 300s)
2435 The LMTP client time limit for sending the XFORWARD command, and
2436 for receiving the server response.
2438 In case of problems the client does NOT try the next address on
2439 the mail exchanger list.
2441 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2442 The default time unit is s (seconds).
2444 This feature is available in Postfix 2.1 and later.
2445 .SH local_command_shell (default: empty)
2446 Optional shell program for \fBlocal\fR(8) delivery to non-Postfix command.
2447 By default, non-Postfix commands are executed directly; commands
2448 are given to given to /bin/sh only when they contain shell meta
2449 characters or shell built-in commands.
2451 "sendmail's restricted shell" (smrsh) is what most people will
2452 use in order to restrict what programs can be run from e.g. .forward
2453 files (smrsh is part of the Sendmail distribution).
2455 Note: when a shell program is specified, it is invoked even
2456 when the command contains no shell built-in commands or meta
2464 local_command_shell = /some/where/smrsh -c
2468 .SH local_destination_concurrency_limit (default: 2)
2469 The maximal number of parallel deliveries via the local mail
2470 delivery transport to the same recipient (when
2471 "local_destination_recipient_limit = 1") or the maximal number of
2472 parallel deliveries to the same local domain (when
2473 "local_destination_recipient_limit > 1"). This limit is enforced by
2474 the queue manager. The message delivery transport name is the first
2475 field in the entry in the master.cf file.
2477 A low limit of 2 is recommended, just in case someone has an
2478 expensive shell command in a .forward file or in an alias (e.g.,
2479 a mailing list manager). You don't want to run lots of those at
2481 .SH local_destination_recipient_limit (default: 1)
2482 The maximal number of recipients per message delivery via the
2483 local mail delivery transport. This limit is enforced by the queue
2484 manager. The message delivery transport name is the first field in
2485 the entry in the master.cf file.
2487 Setting this parameter to a value > 1 changes the meaning of
2488 local_destination_concurrency_limit from concurrency per recipient
2489 into concurrency per domain.
2490 .SH local_header_rewrite_clients (default: permit_inet_interfaces)
2491 Rewrite message header addresses in mail from these clients and
2492 update incomplete addresses with the domain name in $myorigin or
2493 $mydomain; either don't rewrite message headers from other clients
2494 at all, or rewrite message headers and update incomplete addresses
2495 with the domain specified in the remote_header_rewrite_domain
2498 See the append_at_myorigin and append_dot_mydomain parameters
2499 for details of how domain names are appended to incomplete addresses.
2501 Specify a list of zero or more of the following:
2502 .IP "\fBpermit_inet_interfaces\fR"
2503 Append the domain name in $myorigin or $mydomain when the
2504 client IP address matches $inet_interfaces. This is enabled by
2506 .IP "\fBpermit_mynetworks\fR"
2507 Append the domain name in $myorigin or $mydomain when the
2508 client IP address matches any network or network address listed in
2509 $mynetworks. This setting will not prevent remote mail header
2510 address rewriting when mail from a remote client is forwarded by
2511 a neighboring system.
2512 .IP "\fBpermit_sasl_authenticated \fR"
2513 Append the domain name in $myorigin or $mydomain when the
2514 client is successfully authenticated via the RFC 4954 (AUTH)
2516 .IP "\fBpermit_tls_clientcerts \fR"
2517 Append the domain name in $myorigin or $mydomain when the
2518 client TLS certificate fingerprint is listed in $relay_clientcerts.
2519 The fingerprint digest algorithm is configurable via the
2520 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
2521 Postfix version 2.5).
2522 .IP "\fBpermit_tls_all_clientcerts \fR"
2523 Append the domain name in $myorigin or $mydomain when the
2524 client TLS certificate is successfully verified, regardless of
2525 whether it is listed on the server, and regardless of the certifying
2527 .IP "\fBcheck_address_map \fItype:table\fR \fR"
2528 .IP "\fB\fItype:table\fR \fR"
2529 Append the domain name in $myorigin or $mydomain when the
2530 client IP address matches the specified lookup table.
2531 The lookup result is ignored, and no subnet lookup is done. This
2532 is suitable for, e.g., pop-before-smtp lookup tables.
2536 The Postfix < 2.2 backwards compatible setting: always rewrite
2537 message headers, and always append my own domain to incomplete
2544 local_header_rewrite_clients = static:all
2550 The purist (and default) setting: rewrite headers only in mail
2551 from Postfix sendmail and in SMTP mail from this machine.
2557 local_header_rewrite_clients = permit_inet_interfaces
2563 The intermediate setting: rewrite header addresses and append
2564 $myorigin or $mydomain information only with mail from Postfix
2565 sendmail, from local clients, or from authorized SMTP clients.
2567 Note: this setting will not prevent remote mail header address
2568 rewriting when mail from a remote client is forwarded by a neighboring
2575 local_header_rewrite_clients = permit_mynetworks,
2576 permit_sasl_authenticated permit_tls_clientcerts
2577 check_address_map hash:/etc/postfix/pop-before-smtp
2582 .SH local_recipient_maps (default: proxy:unix:passwd.byname $alias_maps)
2583 Lookup tables with all names or addresses of local recipients:
2584 a recipient address is local when its domain matches $mydestination,
2585 $inet_interfaces or $proxy_interfaces. Specify @domain as a
2586 wild-card for domains that do not have a valid recipient list.
2587 Technically, tables listed with $local_recipient_maps are used as
2588 lists: Postfix needs to know only if a lookup string is found or
2589 not, but it does not use the result from table lookup.
2591 If this parameter is non-empty (the default), then the Postfix SMTP
2592 server will reject mail for unknown local users.
2594 To turn off local recipient checking in the Postfix SMTP server,
2595 specify "local_recipient_maps =" (i.e. empty).
2597 The default setting assumes that you use the default Postfix local
2598 delivery agent for local delivery. You need to update the
2599 local_recipient_maps setting if:
2601 You redefine the local delivery agent in master.cf.
2603 You redefine the "local_transport" setting in main.cf.
2605 You use the "luser_relay", "mailbox_transport", or "fallback_transport"
2606 feature of the Postfix \fBlocal\fR(8) delivery agent.
2608 Details are described in the LOCAL_RECIPIENT_README file.
2610 Beware: if the Postfix SMTP server runs chrooted, you need to access
2611 the passwd file via the \fBproxymap\fR(8) service, in order to overcome
2612 chroot access restrictions. The alternative, maintaining a copy of
2613 the system password file in the chroot jail is not practical.
2620 local_recipient_maps =
2624 .SH local_transport (default: local:$myhostname)
2625 The default mail delivery transport and next-hop destination
2626 for final delivery to domains listed with mydestination, and for
2627 [ipaddress] destinations that match $inet_interfaces or $proxy_interfaces.
2628 This information can be overruled with the \fBtransport\fR(5) table.
2630 By default, local mail is delivered to the transport called "local",
2631 which is just the name of a service that is defined the master.cf file.
2633 Specify a string of the form \fItransport:nexthop\fR, where \fItransport\fR
2634 is the name of a mail delivery transport defined in master.cf.
2635 The \fI:nexthop\fR part is optional. For more details see the
2636 \fBtransport\fR(5) manual page.
2638 Beware: if you override the default local delivery agent then you
2639 need to review the LOCAL_RECIPIENT_README document, otherwise the
2640 SMTP server may reject mail for local recipients.
2641 .SH luser_relay (default: empty)
2642 Optional catch-all destination for unknown \fBlocal\fR(8) recipients.
2643 By default, mail for unknown recipients in domains that match
2644 $mydestination, $inet_interfaces or $proxy_interfaces is returned
2647 The following $name expansions are done on luser_relay:
2649 The recipient domain.
2650 .IP "\fB$extension\fR"
2651 The recipient address extension.
2653 The recipient's home directory.
2655 The entire recipient address localpart.
2656 .IP "\fB$recipient\fR"
2657 The full recipient address.
2658 .IP "\fB$recipient_delimiter\fR"
2659 The system-wide recipient address extension delimiter.
2661 The recipient's login shell.
2663 The recipient username.
2664 .IP "\fB${name?value}\fR"
2665 Expands to \fIvalue\fR when \fI$name\fR has a non-empty value.
2666 .IP "\fB${name:value}\fR"
2667 Expands to \fIvalue\fR when \fI$name\fR has an empty value.
2669 Instead of $name you can also specify ${name} or $(name).
2671 Note: luser_relay works only for the Postfix \fBlocal\fR(8) delivery agent.
2673 Note: if you use this feature for accounts not in the UNIX password
2674 file, then you must specify "local_recipient_maps =" (i.e. empty)
2675 in the main.cf file, otherwise the Postfix SMTP server will reject mail
2676 for non-UNIX accounts with "User unknown in local recipient table".
2683 luser_relay = $user@other.host
2684 luser_relay = $local@other.host
2685 luser_relay = admin+$local
2689 .SH mail_name (default: Postfix)
2690 The mail system name that is displayed in Received: headers, in
2691 the SMTP greeting banner, and in bounced mail.
2692 .SH mail_owner (default: postfix)
2693 The UNIX system account that owns the Postfix queue and most Postfix
2694 daemon processes. Specify the name of a user account that does
2695 not share a group with other accounts and that owns no other files
2696 or processes on the system. In particular, don't specify nobody
2697 or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID.
2699 When this parameter value is changed you need to re-run "\fBpostfix
2700 set-permissions\fR" (with Postfix version 2.0 and earlier:
2701 "\fB/etc/postfix/post-install set-permissions\fR".
2702 .SH mail_release_date (default: see "postconf -d" output)
2703 The Postfix release date, in "YYYYMMDD" format.
2704 .SH mail_spool_directory (default: see "postconf -d" output)
2705 The directory where \fBlocal\fR(8) UNIX-style mailboxes are kept. The
2706 default setting depends on the system type. Specify a name ending
2707 in / for maildir-style delivery.
2709 Note: maildir delivery is done with the privileges of the recipient.
2710 If you use the mail_spool_directory setting for maildir style
2711 delivery, then you must create the top-level maildir directory in
2712 advance. Postfix will not create it.
2719 mail_spool_directory = /var/mail
2720 mail_spool_directory = /var/spool/mail
2724 .SH mail_version (default: see "postconf -d" output)
2725 The version of the mail system. Stable releases are named
2726 \fImajor\fR.\fIminor\fR.\fIpatchlevel\fR. Experimental releases
2727 also include the release date. The version string can be used in,
2728 for example, the SMTP greeting banner.
2729 .SH mailbox_command (default: empty)
2730 Optional external command that the \fBlocal\fR(8) delivery agent should
2731 use for mailbox delivery. The command is run with the user ID and
2732 the primary group ID privileges of the recipient. Exception:
2733 command delivery for root executes with $default_privs privileges.
2734 This is not a problem, because 1) mail for root should always be
2735 aliased to a real user and 2) don't log in as root, use "su" instead.
2737 The following environment variables are exported to the command:
2738 .IP "\fBCLIENT_ADDRESS\fR"
2739 Remote client network address. Available in Postfix version 2.2 and
2741 .IP "\fBCLIENT_HELO\fR"
2742 Remote client EHLO command parameter. Available in Postfix version 2.2
2744 .IP "\fBCLIENT_HOSTNAME\fR"
2745 Remote client hostname. Available in Postfix version 2.2 and later.
2746 .IP "\fBCLIENT_PROTOCOL\fR"
2747 Remote client protocol. Available in Postfix version 2.2 and later.
2749 The domain part of the recipient address.
2750 .IP "\fBEXTENSION\fR"
2751 The optional address extension.
2753 The recipient home directory.
2755 The recipient address localpart.
2757 The recipient's username.
2758 .IP "\fBORIGINAL_RECIPIENT\fR"
2759 The entire recipient address, before any address rewriting or
2761 .IP "\fBRECIPIENT\fR"
2762 The full recipient address.
2763 .IP "\fBSASL_METHOD\fR"
2764 SASL authentication method specified in the remote client AUTH
2765 command. Available in Postfix version 2.2 and later.
2766 .IP "\fBSASL_SENDER\fR"
2767 SASL sender address specified in the remote client MAIL FROM
2768 command. Available in Postfix version 2.2 and later.
2769 .IP "\fBSASL_USER\fR"
2770 SASL username specified in the remote client AUTH command.
2771 Available in Postfix version 2.2 and later.
2773 The full sender address.
2775 The recipient's login shell.
2777 The recipient username.
2779 Unlike other Postfix configuration parameters, the mailbox_command
2780 parameter is not subjected to $name substitutions. This is to make
2781 it easier to specify shell syntax (see example below).
2783 If you can, avoid shell meta characters because they will force
2784 Postfix to run an expensive shell process. If you're delivering
2785 via Procmail then running a shell won't make a noticeable difference
2788 Note: if you use the mailbox_command feature to deliver mail
2789 system-wide, you must set up an alias that forwards mail for root
2792 The precedence of \fBlocal\fR(8) delivery features from high to low
2793 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2794 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
2795 fallback_transport_maps, fallback_transport and luser_relay.
2802 mailbox_command = /some/where/procmail
2803 mailbox_command = /some/where/procmail -a "$EXTENSION"
2804 mailbox_command = /some/where/maildrop -d "$USER"
2805 -f "$SENDER" "$EXTENSION"
2809 .SH mailbox_command_maps (default: empty)
2810 Optional lookup tables with per-recipient external commands to use
2811 for \fBlocal\fR(8) mailbox delivery. Behavior is as with mailbox_command.
2813 The precedence of \fBlocal\fR(8) delivery features from high to low
2814 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2815 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
2816 fallback_transport_maps, fallback_transport and luser_relay.
2817 .SH mailbox_delivery_lock (default: see "postconf -d" output)
2818 How to lock a UNIX-style \fBlocal\fR(8) mailbox before attempting delivery.
2819 For a list of available file locking methods, use the "\fBpostconf
2822 This setting is ignored with \fBmaildir\fR style delivery,
2823 because such deliveries are safe without explicit locks.
2825 Note: The \fBdotlock\fR method requires that the recipient UID or
2826 GID has write access to the parent directory of the mailbox file.
2828 Note: the default setting of this parameter is system dependent.
2829 .SH mailbox_size_limit (default: 51200000)
2830 The maximal size of any \fBlocal\fR(8) individual mailbox or maildir
2831 file, or zero (no limit). In fact, this limits the size of any
2832 file that is written to upon local delivery, including files written
2833 by external commands that are executed by the \fBlocal\fR(8) delivery
2836 This limit must not be smaller than the message size limit.
2837 .SH mailbox_transport (default: empty)
2838 Optional message delivery transport that the \fBlocal\fR(8) delivery
2839 agent should use for mailbox delivery to all local recipients,
2840 whether or not they are found in the UNIX passwd database.
2842 The precedence of \fBlocal\fR(8) delivery features from high to low
2843 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2844 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
2845 fallback_transport_maps, fallback_transport and luser_relay.
2846 .SH mailbox_transport_maps (default: empty)
2847 Optional lookup tables with per-recipient message delivery
2848 transports to use for \fBlocal\fR(8) mailbox delivery, whether or not the
2849 recipients are found in the UNIX passwd database.
2851 The precedence of \fBlocal\fR(8) delivery features from high to low
2852 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2853 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
2854 fallback_transport_maps, fallback_transport and luser_relay.
2856 For safety reasons, this feature does not allow $number
2857 substitutions in regular expression maps.
2859 This feature is available in Postfix 2.3 and later.
2860 .SH mailq_path (default: see "postconf -d" output)
2861 Sendmail compatibility feature that specifies where the Postfix
2862 \fBmailq\fR(1) command is installed. This command can be used to
2863 list the Postfix mail queue.
2864 .SH manpage_directory (default: see "postconf -d" output)
2865 Where the Postfix manual pages are installed.
2866 .SH maps_rbl_domains (default: empty)
2867 Obsolete feature: use the reject_rbl_client feature instead.
2868 .SH maps_rbl_reject_code (default: 554)
2869 The numerical Postfix SMTP server response code when a remote SMTP
2870 client request is blocked by the reject_rbl_client, reject_rhsbl_client,
2871 reject_rhsbl_sender or reject_rhsbl_recipient restriction.
2873 Do not change this unless you have a complete understanding of RFC 2821.
2874 .SH masquerade_classes (default: envelope_sender, header_sender, header_recipient)
2875 What addresses are subject to address masquerading.
2877 By default, address masquerading is limited to envelope sender
2878 addresses, and to header sender and header recipient addresses.
2879 This allows you to use address masquerading on a mail gateway while
2880 still being able to forward mail to users on individual machines.
2882 Specify zero or more of: envelope_sender, envelope_recipient,
2883 header_sender, header_recipient
2884 .SH masquerade_domains (default: empty)
2885 Optional list of domains whose subdomain structure will be stripped
2886 off in email addresses.
2888 The list is processed left to right, and processing stops at the
2895 masquerade_domains = foo.example.com example.com
2901 strips "user@any.thing.foo.example.com" to "user@foo.example.com",
2902 but strips "user@any.thing.else.example.com" to "user@example.com".
2904 A domain name prefixed with ! means do not masquerade this domain
2905 or its subdomains. Thus,
2911 masquerade_domains = !foo.example.com example.com
2917 does not change "user@any.thing.foo.example.com" or "user@foo.example.com",
2918 but strips "user@any.thing.else.example.com" to "user@example.com".
2920 Note: with Postfix version 2.2, message header address masquerading
2921 happens only when message header address rewriting is enabled:
2923 The message is received with the Postfix \fBsendmail\fR(1) command,
2925 The message is received from a network client that matches
2926 $local_header_rewrite_clients,
2928 The message is received from the network, and the
2929 remote_header_rewrite_domain parameter specifies a non-empty value.
2931 To get the behavior before Postfix version 2.2, specify
2932 "local_header_rewrite_clients = static:all".
2939 masquerade_domains = $mydomain
2943 .SH masquerade_exceptions (default: empty)
2944 Optional list of user names that are not subjected to address
2945 masquerading, even when their address matches $masquerade_domains.
2947 By default, address masquerading makes no exceptions.
2949 Specify a list of user names, "/file/name" or "type:table" patterns,
2950 separated by commas and/or whitespace. The list is matched left to
2951 right, and the search stops on the first match. A "/file/name"
2953 by its contents; a "type:table" lookup table is matched when a name
2954 matches a lookup key (the lookup result is ignored). Continue long
2955 lines by starting the next line with whitespace. Specify "!pattern"
2956 to exclude a name from the list. The form "!/file/name" is supported
2957 only in Postfix version 2.4 and later.
2964 masquerade_exceptions = root, mailer-daemon
2965 masquerade_exceptions = root
2969 .SH master_service_disable (default: empty)
2970 Selectively disable \fBmaster\fR(8) listener ports by service type
2971 or by service name and type. Specify a list of service types
2972 ("inet", "unix", "fifo", or "pass") or "name.type" tuples, where
2973 "name" is the first field of a master.cf entry and "type" is a
2974 service type. As with other Postfix matchlists, a search stops at
2975 the first match. Specify "!pattern" to exclude a service from the
2976 list. By default, all \fBmaster\fR(8) listener ports are enabled.
2978 Note: this feature does not support "/file/name" or "type:table"
2979 patterns, nor does it support wildcards such as "*" or "all". This
2987 # Turn on all \fBmaster\fR(8) listener ports (the default).
2988 master_service_disable =
2989 # Turn off only the main SMTP listener port.
2990 master_service_disable = smtp.inet
2991 # Turn off all TCP/IP listener ports.
2992 master_service_disable = inet
2993 # Turn off all TCP/IP listener ports except "foo".
2994 master_service_disable = !foo.inet, inet
2999 This feature is available in Postfix 2.6 and later.
3000 .SH max_idle (default: 100s)
3001 The maximum amount of time that an idle Postfix daemon process waits
3002 for an incoming connection before terminating voluntarily. This
3004 is ignored by the Postfix queue manager and by other long-lived
3005 Postfix daemon processes.
3007 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3008 The default time unit is s (seconds).
3009 .SH max_use (default: 100)
3010 The maximal number of incoming connections that a Postfix daemon
3011 process will service before terminating voluntarily. This parameter
3012 is ignored by the Postfix queue
3013 manager and by other long-lived Postfix daemon processes.
3014 .SH maximal_backoff_time (default: 4000s)
3015 The maximal time between attempts to deliver a deferred message.
3017 This parameter should be set to a value greater than or equal
3018 to $minimal_backoff_time. See also $queue_run_delay.
3020 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3021 The default time unit is s (seconds).
3022 .SH maximal_queue_lifetime (default: 5d)
3023 The maximal time a message is queued before it is sent back as
3026 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3027 The default time unit is d (days).
3029 Specify 0 when mail delivery should be tried only once.
3030 .SH message_reject_characters (default: empty)
3031 The set of characters that Postfix will reject in message
3032 content. The usual C-like escape sequences are recognized: \ea
3033 \eb \ef \en \er \et \ev \e\fIddd\fR (up to three octal digits) and
3041 message_reject_characters = \e0
3046 This feature is available in Postfix 2.3 and later.
3047 .SH message_size_limit (default: 10240000)
3048 The maximal size in bytes of a message, including envelope information.
3050 Note: be careful when making changes. Excessively small values
3051 will result in the loss of non-delivery notifications, when a bounce
3052 message size exceeds the local or remote MTA's message size limit.
3053 .SH message_strip_characters (default: empty)
3054 The set of characters that Postfix will remove from message
3055 content. The usual C-like escape sequences are recognized: \ea
3056 \eb \ef \en \er \et \ev \e\fIddd\fR (up to three octal digits) and
3064 message_strip_characters = \e0
3069 This feature is available in Postfix 2.3 and later.
3070 .SH milter_command_timeout (default: 30s)
3071 The time limit for sending an SMTP command to a Milter (mail
3072 filter) application, and for receiving the response.
3074 Specify a non-zero time value (an integral value plus an optional
3075 one-letter suffix that specifies the time unit).
3077 Time units: s (seconds), m (minutes), h (hours), d (days), w
3078 (weeks). The default time unit is s (seconds).
3080 This feature is available in Postfix 2.3 and later.
3081 .SH milter_connect_macros (default: see "postconf -d" output)
3082 The macros that are sent to Milter (mail filter) applications
3083 after completion of an SMTP connection. See MILTER_README
3084 for a list of available macro names and their meanings.
3086 This feature is available in Postfix 2.3 and later.
3087 .SH milter_connect_timeout (default: 30s)
3088 The time limit for connecting to a Milter (mail filter)
3089 application, and for negotiating protocol options.
3091 Specify a non-zero time value (an integral value plus an optional
3092 one-letter suffix that specifies the time unit).
3094 Time units: s (seconds), m (minutes), h (hours), d (days), w
3095 (weeks). The default time unit is s (seconds).
3097 This feature is available in Postfix 2.3 and later.
3098 .SH milter_content_timeout (default: 300s)
3099 The time limit for sending message content to a Milter (mail
3100 filter) application, and for receiving the response.
3102 Specify a non-zero time value (an integral value plus an optional
3103 one-letter suffix that specifies the time unit).
3105 Time units: s (seconds), m (minutes), h (hours), d (days), w
3106 (weeks). The default time unit is s (seconds).
3108 This feature is available in Postfix 2.3 and later.
3109 .SH milter_data_macros (default: see "postconf -d" output)
3110 The macros that are sent to version 4 or higher Milter (mail
3111 filter) applications after the SMTP DATA command. See MILTER_README
3112 for a list of available macro names and their meanings.
3114 This feature is available in Postfix 2.3 and later.
3115 .SH milter_default_action (default: tempfail)
3116 The default action when a Milter (mail filter) application is
3117 unavailable or mis-configured. Specify one of the following:
3119 Proceed as if the mail filter was not present.
3121 Reject all further commands in this session
3122 with a permanent status code.
3124 Reject all further commands in this session
3125 with a temporary status code.
3127 Like "accept", but freeze the message in
3128 the "hold" queue. Available with Postfix 2.6 and later.
3130 This feature is available in Postfix 2.3 and later.
3131 .SH milter_end_of_data_macros (default: see "postconf -d" output)
3132 The macros that are sent to Milter (mail filter) applications
3133 after the message end-of-data. See MILTER_README for a list of
3134 available macro names and their meanings.
3136 This feature is available in Postfix 2.3 and later.
3137 .SH milter_end_of_header_macros (default: see "postconf -d" output)
3138 The macros that are sent to Milter (mail filter) applications
3139 after the end of the message header. See MILTER_README for a list
3140 of available macro names and their meanings.
3142 This feature is available in Postfix 2.5 and later.
3143 .SH milter_helo_macros (default: see "postconf -d" output)
3144 The macros that are sent to Milter (mail filter) applications
3145 after the SMTP HELO or EHLO command. See
3146 MILTER_README for a list of available macro names and their meanings.
3148 This feature is available in Postfix 2.3 and later.
3149 .SH milter_macro_daemon_name (default: $myhostname)
3150 The {daemon_name} macro value for Milter (mail filter) applications.
3151 See MILTER_README for a list of available macro names and their
3154 This feature is available in Postfix 2.3 and later.
3155 .SH milter_macro_v (default: $mail_name $mail_version)
3156 The {v} macro value for Milter (mail filter) applications.
3157 See MILTER_README for a list of available macro names and their
3160 This feature is available in Postfix 2.3 and later.
3161 .SH milter_mail_macros (default: see "postconf -d" output)
3162 The macros that are sent to Milter (mail filter) applications
3163 after the SMTP MAIL FROM command. See MILTER_README
3164 for a list of available macro names and their meanings.
3166 This feature is available in Postfix 2.3 and later.
3167 .SH milter_protocol (default: 6)
3168 The mail filter protocol version and optional protocol extensions
3169 for communication with a Milter application; prior to Postfix 2.6
3170 the default protocol is 2. Postfix
3171 sends this version number during the initial protocol handshake.
3172 It should match the version number that is expected by the mail
3173 filter application (or by its Milter library).
3177 Use Sendmail 8 mail filter protocol version 2 (default
3178 with Sendmail version 8.11 .. 8.13 and Postfix version 2.3 ..
3181 Use Sendmail 8 mail filter protocol version 3.
3183 Use Sendmail 8 mail filter protocol version 4.
3185 Use Sendmail 8 mail filter protocol version 6 (default
3186 with Sendmail version 8.14 and Postfix version 2.6).
3188 Protocol extensions:
3189 .IP "no_header_reply"
3190 Specify this when the Milter application
3191 will not reply for each individual message header.
3193 This feature is available in Postfix 2.3 and later.
3194 .SH milter_rcpt_macros (default: see "postconf -d" output)
3195 The macros that are sent to Milter (mail filter) applications
3196 after the SMTP RCPT TO command. See MILTER_README
3197 for a list of available macro names and their meanings.
3199 This feature is available in Postfix 2.3 and later.
3200 .SH milter_unknown_command_macros (default: see "postconf -d" output)
3201 The macros that are sent to version 3 or higher Milter (mail
3202 filter) applications after an unknown SMTP command. See MILTER_README
3203 for a list of available macro names and their meanings.
3205 This feature is available in Postfix 2.3 and later.
3206 .SH mime_boundary_length_limit (default: 2048)
3207 The maximal length of MIME multipart boundary strings. The MIME
3208 processor is unable to distinguish between boundary strings that
3209 do not differ in the first $mime_boundary_length_limit characters.
3211 This feature is available in Postfix 2.0 and later.
3212 .SH mime_header_checks (default: $header_checks)
3213 Optional lookup tables for content inspection of MIME related
3214 message headers, as described in the \fBheader_checks\fR(5) manual page.
3216 This feature is available in Postfix 2.0 and later.
3217 .SH mime_nesting_limit (default: 100)
3218 The maximal recursion level that the MIME processor will handle.
3219 Postfix refuses mail that is nested deeper than the specified limit.
3221 This feature is available in Postfix 2.0 and later.
3222 .SH minimal_backoff_time (default: 300s)
3223 The minimal time between attempts to deliver a deferred message;
3224 prior to Postfix 2.4 the default value was 1000s.
3226 This parameter also limits the time an unreachable destination is
3227 kept in the short-term, in-memory, destination status cache.
3229 This parameter should be set greater than or equal to
3230 $queue_run_delay. See also $maximal_backoff_time.
3232 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3233 The default time unit is s (seconds).
3234 .SH multi_instance_directories (default: empty)
3235 An optional list of non-default Postfix configuration directories;
3236 these directories belong to additional Postfix instances that share
3237 the Postfix executable files and documentation with the default
3238 Postfix instance, and that are started, stopped, etc., together
3239 with the default Postfix instance. Specify a list of pathnames
3240 separated by comma or whitespace.
3242 When $multi_instance_directories is empty, the \fBpostfix\fR(1) command
3243 runs in single-instance mode and operates on a single Postfix
3244 instance only. Otherwise, the \fBpostfix\fR(1) command runs in multi-instance
3245 mode and invokes the multi-instance manager specified with the
3246 multi_instance_wrapper parameter. The multi-instance manager in
3247 turn executes \fBpostfix\fR(1) commands for the default instance and for
3248 all Postfix instances in $multi_instance_directories.
3250 Currently, this parameter setting is ignored except for the
3251 default main.cf file.
3253 This feature is available in Postfix 2.6 and later.
3254 .SH multi_instance_enable (default: no)
3255 Allow this Postfix instance to be started, stopped, etc., by a
3256 multi-instance manager. By default, new instances are created in
3257 a safe state that prevents them from being started inadvertently.
3258 This parameter is reserved for the multi-instance manager.
3260 This feature is available in Postfix 2.6 and later.
3261 .SH multi_instance_group (default: empty)
3262 The optional instance group name of this Postfix instance. A
3263 group identifies closely-related Postfix instances that the
3264 multi-instance manager can start, stop, etc., as a unit. This
3265 parameter is reserved for the multi-instance manager.
3267 This feature is available in Postfix 2.6 and later.
3268 .SH multi_instance_name (default: empty)
3269 The optional instance name of this Postfix instance. This name
3270 becomes also the default value for the syslog_name parameter.
3272 This feature is available in Postfix 2.6 and later.
3273 .SH multi_instance_wrapper (default: empty)
3274 The pathname of a multi-instance manager command that the
3275 \fBpostfix\fR(1) command invokes when the multi_instance_directories
3276 parameter value is non-empty. The pathname may be followed by
3277 initial command arguments separated by whitespace; shell
3278 metacharacters such as quotes are not supported in this context.
3280 The \fBpostfix\fR(1) command invokes the manager command with the
3281 \fBpostfix\fR(1) non-option command arguments on the manager command line,
3282 and with all installation configuration parameters exported into
3283 the manager command process environment. The manager command in
3284 turn invokes the \fBpostfix\fR(1) command for individual Postfix instances
3285 as "postfix -c \fIconfig_directory\fR \fIcommand\fR".
3287 This feature is available in Postfix 2.6 and later.
3288 .SH multi_recipient_bounce_reject_code (default: 550)
3289 The numerical Postfix SMTP server response code when a remote SMTP
3290 client request is blocked by the reject_multi_recipient_bounce
3293 Do not change this unless you have a complete understanding of RFC 2821.
3295 This feature is available in Postfix 2.1 and later.
3296 .SH mydestination (default: $myhostname, localhost.$mydomain, localhost)
3297 The list of domains that are delivered via the $local_transport
3298 mail delivery transport. By default this is the Postfix \fBlocal\fR(8)
3299 delivery agent which looks up all recipients in /etc/passwd and
3300 /etc/aliases. The SMTP server validates recipient addresses with
3301 $local_recipient_maps and rejects non-existent recipients. See also
3302 the local domain class in the ADDRESS_CLASS_README file.
3304 The default mydestination value specifies names for the local
3305 machine only. On a mail domain gateway, you should also include
3308 The $local_transport delivery method is also selected for mail
3309 addressed to user@[the.net.work.address] of the mail system (the
3310 IP addresses specified with the inet_interfaces and proxy_interfaces
3315 Do not specify the names of virtual domains - those domains
3316 are specified elsewhere. See VIRTUAL_README for more information.
3318 Do not specify the names of domains that this machine is
3319 backup MX host for. See STANDARD_CONFIGURATION_README for how to
3320 set up backup MX hosts.
3322 By default, the Postfix SMTP server rejects mail for recipients
3323 not listed with the local_recipient_maps parameter. See the
3324 \fBpostconf\fR(5) manual for a description of the local_recipient_maps
3325 and unknown_local_recipient_reject_code parameters.
3327 Specify a list of host or domain names, "/file/name" or "type:table"
3328 patterns, separated by commas and/or whitespace. A "/file/name"
3329 pattern is replaced by its contents; a "type:table" lookup table
3330 is matched when a name matches a lookup key (the lookup result is
3331 ignored). Continue long lines by starting the next line with
3339 mydestination = $myhostname, localhost.$mydomain $mydomain
3340 mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain
3344 .SH mydomain (default: see "postconf -d" output)
3345 The internet domain name of this mail system. The default is to
3346 use $myhostname minus the first component. $mydomain is used as
3347 a default value for many other configuration parameters.
3354 mydomain = domain.tld
3358 .SH myhostname (default: see "postconf -d" output)
3359 The internet hostname of this mail system. The default is to use
3360 the fully-qualified domain name from gethostname(). $myhostname is
3361 used as a default value for many other configuration parameters.
3368 myhostname = host.example.com
3372 .SH mynetworks (default: see "postconf -d" output)
3373 The list of "trusted" SMTP clients that have more privileges than
3376 In particular, "trusted" SMTP clients are allowed to relay mail
3377 through Postfix. See the smtpd_recipient_restrictions parameter
3378 description in the \fBpostconf\fR(5) manual.
3380 You can specify the list of "trusted" network addresses by hand
3381 or you can let Postfix do it for you (which is the default).
3382 See the description of the mynetworks_style parameter for more
3385 If you specify the mynetworks list by hand,
3386 Postfix ignores the mynetworks_style setting.
3388 Specify a list of network addresses or network/netmask patterns,
3389 separated by commas and/or whitespace. Continue long lines by
3390 starting the next line with whitespace.
3392 The netmask specifies the number of bits in the network part
3393 of a host address. You can also specify "/file/name" or "type:table"
3394 patterns. A "/file/name" pattern is replaced by its contents; a
3395 "type:table" lookup table is matched when a table entry matches a
3396 lookup string (the lookup result is ignored).
3398 The list is matched left to right, and the search stops on the
3399 first match. Specify "!pattern" to exclude an address or network
3400 block from the list. The form "!/file/name" is supported only
3401 in Postfix version 2.4 and later.
3403 Note: IP version 6 address information must be specified inside
3404 [] in the mynetworks value, and in files specified with
3405 "/file/name". IP version 6 addresses contain the ":" character,
3406 and would otherwise be confused with a "type:table" pattern.
3413 mynetworks = 127.0.0.0/8 168.100.189.0/28
3414 mynetworks = !192.168.0.1, 192.168.0.0/28
3415 mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64
3416 mynetworks = $config_directory/mynetworks
3417 mynetworks = hash:/etc/postfix/network_table
3421 .SH mynetworks_style (default: subnet)
3422 The method to generate the default value for the mynetworks parameter.
3423 This is the list of trusted networks for relay access control etc.
3425 Specify "mynetworks_style = host" when Postfix should
3426 "trust" only the local machine.
3428 Specify "mynetworks_style = subnet" when Postfix
3429 should "trust" SMTP clients in the same IP subnetworks as the local
3430 machine. On Linux, this works correctly only with interfaces
3431 specified with the "ifconfig" command.
3433 Specify "mynetworks_style = class" when Postfix should
3434 "trust" SMTP clients in the same IP class A/B/C networks as the
3435 local machine. Don't do this with a dialup site - it would cause
3436 Postfix to "trust" your entire provider's network. Instead, specify
3437 an explicit mynetworks list by hand, as described with the mynetworks
3438 configuration parameter.
3439 .SH myorigin (default: $myhostname)
3440 The domain name that locally-posted mail appears to come
3441 from, and that locally posted mail is delivered to. The default,
3442 $myhostname, is adequate for small sites. If you run a domain with
3443 multiple machines, you should (1) change this to $mydomain and (2)
3444 set up a domain-wide alias database that aliases each user to
3445 user@that.users.mailhost.
3452 myorigin = $mydomain
3456 .SH nested_header_checks (default: $header_checks)
3457 Optional lookup tables for content inspection of non-MIME message
3458 headers in attached messages, as described in the \fBheader_checks\fR(5)
3461 This feature is available in Postfix 2.0 and later.
3462 .SH newaliases_path (default: see "postconf -d" output)
3463 Sendmail compatibility feature that specifies the location of the
3464 \fBnewaliases\fR(1) command. This command can be used to rebuild the
3465 \fBlocal\fR(8) \fBaliases\fR(5) database.
3466 .SH non_fqdn_reject_code (default: 504)
3467 The numerical Postfix SMTP server reply code when a client request
3468 is rejected by the reject_non_fqdn_helo_hostname, reject_non_fqdn_sender
3469 or reject_non_fqdn_recipient restriction.
3470 .SH non_smtpd_milters (default: empty)
3471 A list of Milter (mail filter) applications for new mail that
3472 does not arrive via the Postfix \fBsmtpd\fR(8) server. This includes local
3473 submission via the \fBsendmail\fR(1) command line, new mail that arrives
3474 via the Postfix \fBqmqpd\fR(8) server, and old mail that is re-injected
3475 into the queue with "postsuper -r". See the MILTER_README document
3478 This feature is available in Postfix 2.3 and later.
3479 .SH notify_classes (default: resource, software)
3480 The list of error classes that are reported to the postmaster. The
3481 default is to report only the most serious problems. The paranoid
3482 may wish to turn on the policy (UCE and mail relaying) and protocol
3483 error (broken mail software) reports.
3485 NOTE: postmaster notifications may contain confidential information
3486 such as SASL passwords or message content. It is the system
3487 administrator's responsibility to treat such information with care.
3489 The error classes are:
3490 .IP "\fBbounce\fR (also implies \fB2bounce\fR)"
3491 Send the postmaster copies of the headers of bounced mail, and
3492 send transcripts of SMTP sessions when Postfix rejects mail. The
3493 notification is sent to the address specified with the
3494 bounce_notice_recipient configuration parameter (default: postmaster).
3496 Send undeliverable bounced mail to the postmaster. The notification
3497 is sent to the address specified with the 2bounce_notice_recipient
3498 configuration parameter (default: postmaster).
3500 Send the postmaster copies of the headers of delayed mail. The
3501 notification is sent to the address specified with the
3502 delay_notice_recipient configuration parameter (default: postmaster).
3504 Send the postmaster a transcript of the SMTP session when a
3505 client request was rejected because of (UCE) policy. The notification
3506 is sent to the address specified with the error_notice_recipient
3507 configuration parameter (default: postmaster).
3508 .IP "\fBprotocol\fR"
3509 Send the postmaster a transcript of the SMTP session in case
3510 of client or server protocol errors. The notification is sent to
3511 the address specified with the error_notice_recipient configuration
3512 parameter (default: postmaster).
3513 .IP "\fBresource\fR"
3514 Inform the postmaster of mail not delivered due to resource
3515 problems. The notification is sent to the address specified with
3516 the error_notice_recipient configuration parameter (default:
3518 .IP "\fBsoftware\fR"
3519 Inform the postmaster of mail not delivered due to software
3520 problems. The notification is sent to the address specified with
3521 the error_notice_recipient configuration parameter (default:
3529 notify_classes = bounce, delay, policy, protocol, resource, software
3530 notify_classes = 2bounce, resource, software
3534 .SH owner_request_special (default: yes)
3535 Give special treatment to owner-listname and listname-request
3536 address localparts: don't split such addresses when the
3537 recipient_delimiter is set to "-". This feature is useful for
3539 .SH parent_domain_matches_subdomains (default: see "postconf -d" output)
3540 What Postfix features match subdomains of "domain.tld" automatically,
3541 instead of requiring an explicit ".domain.tld" pattern. This is
3542 planned backwards compatibility: eventually, all Postfix features
3543 are expected to require explicit ".domain.tld" style patterns when
3544 you really want to match subdomains.
3545 .SH permit_mx_backup_networks (default: empty)
3546 Restrict the use of the permit_mx_backup SMTP access feature to
3547 only domains whose primary MX hosts match the listed networks.
3548 The parameter value syntax is the same as with the mynetworks
3549 parameter; note, however, that the default value is empty.
3550 .SH pickup_service_name (default: pickup)
3551 The name of the \fBpickup\fR(8) service. This service picks up local mail
3552 submissions from the Postfix maildrop queue.
3554 This feature is available in Postfix 2.0 and later.
3555 .SH plaintext_reject_code (default: 450)
3556 The numerical Postfix SMTP server response code when a request
3557 is rejected by the \fBreject_plaintext_session\fR restriction.
3559 This feature is available in Postfix 2.3 and later.
3560 .SH postmulti_control_commands (default: reload flush)
3561 The \fBpostfix\fR(1) commands that the \fBpostmulti\fR(1) instance manager
3562 treats as "control" commands, that operate on running instances. For
3563 these commands, disabled instances are skipped.
3565 This feature is available in Postfix 2.6 and later.
3566 .SH postmulti_start_commands (default: start)
3567 The \fBpostfix\fR(1) commands that the \fBpostmulti\fR(1) instance manager treats
3568 as "start" commands. For these commands, disabled instances are "checked"
3569 rather than "started", and failure to "start" a member instance of an
3570 instance group will abort the start-up of later instances.
3572 This feature is available in Postfix 2.6 and later.
3573 .SH postmulti_stop_commands (default: see "postconf -d" output)
3574 The \fBpostfix\fR(1) commands that the \fBpostmulti\fR(1) instance manager treats
3575 as "stop" commands. For these commands, disabled instances are skipped,
3576 and enabled instances are processed in reverse order.
3578 This feature is available in Postfix 2.6 and later.
3579 .SH prepend_delivered_header (default: command, file, forward)
3580 The message delivery contexts where the Postfix \fBlocal\fR(8) delivery
3581 agent prepends a Delivered-To: message header with the address
3582 that the mail was delivered to. This information is used for mail
3583 delivery loop detection.
3585 By default, the Postfix local delivery agent prepends a Delivered-To:
3586 header when forwarding mail and when delivering to file (mailbox)
3587 and command. Turning off the Delivered-To: header when forwarding
3588 mail is not recommended.
3590 Specify zero or more of \fBforward\fR, \fBfile\fR, or \fBcommand\fR.
3597 prepend_delivered_header = forward
3601 .SH process_id (read-only)
3602 The process ID of a Postfix command or daemon process.
3603 .SH process_id_directory (default: pid)
3604 The location of Postfix PID files relative to $queue_directory.
3605 This is a read-only parameter.
3606 .SH process_name (read-only)
3607 The process name of a Postfix command or daemon process.
3608 .SH propagate_unmatched_extensions (default: canonical, virtual)
3609 What address lookup tables copy an address extension from the lookup
3610 key to the lookup result.
3612 For example, with a \fBvirtual\fR(5) mapping of "\fIjoe@example.com =>
3613 joe.user@example.net\fR", the address "\fIjoe+foo@example.com\fR"
3614 would rewrite to "\fIjoe.user+foo@example.net\fR".
3616 Specify zero or more of \fBcanonical\fR, \fBvirtual\fR, \fBalias\fR,
3617 \fBforward\fR, \fBinclude\fR or \fBgeneric\fR. These cause
3619 propagation with \fBcanonical\fR(5), \fBvirtual\fR(5), and \fBaliases\fR(5) maps,
3620 with \fBlocal\fR(8) .forward and :include: file lookups, and with \fBsmtp\fR(8)
3621 generic maps, respectively.
3623 Note: enabling this feature for types other than \fBcanonical\fR
3624 and \fBvirtual\fR is likely to cause problems when mail is forwarded
3625 to other sites, especially with mail that is sent to a mailing list
3633 propagate_unmatched_extensions = canonical, virtual, alias,
3635 propagate_unmatched_extensions = canonical, virtual
3639 .SH proxy_interfaces (default: empty)
3640 The network interface addresses that this mail system receives mail
3641 on by way of a proxy or network address translation unit.
3643 This feature is available in Postfix 2.0 and later.
3645 You must specify your "outside" proxy/NAT addresses when your
3646 system is a backup MX host for other domains, otherwise mail delivery
3647 loops will happen when the primary MX host is down.
3654 proxy_interfaces = 1.2.3.4
3658 .SH proxy_read_maps (default: see "postconf -d" output)
3659 The lookup tables that the \fBproxymap\fR(8) server is allowed to
3660 access for the read-only service.
3661 Table references that don't begin with proxy: are ignored.
3663 This feature is available in Postfix 2.0 and later.
3664 .SH proxy_write_maps (default: see "postconf -d" output)
3665 The lookup tables that the \fBproxymap\fR(8) server is allowed to
3666 access for the read-write service. Postfix-owned local database
3667 files should be stored under the Postfix-owned data_directory.
3668 Table references that don't begin with proxy: are ignored.
3670 This feature is available in Postfix 2.5 and later.
3671 .SH proxymap_service_name (default: proxymap)
3672 The name of the proxymap read-only table lookup service. This
3673 service is normally implemented by the \fBproxymap\fR(8) daemon.
3675 This feature is available in Postfix 2.6 and later.
3676 .SH proxywrite_service_name (default: proxywrite)
3677 The name of the proxywrite read-write table lookup service.
3678 This service is normally implemented by the \fBproxymap\fR(8) daemon.
3680 This feature is available in Postfix 2.6 and later.
3681 .SH qmgr_clog_warn_time (default: 300s)
3682 The minimal delay between warnings that a specific destination is
3683 clogging up the Postfix active queue. Specify 0 to disable.
3685 This feature is enabled with the helpful_warnings parameter.
3687 This feature is available in Postfix 2.0 and later.
3688 .SH qmgr_fudge_factor (default: 100)
3689 Obsolete feature: the percentage of delivery resources that a busy
3690 mail system will use up for delivery of a large mailing list
3693 This feature exists only in the \fBoqmgr\fR(8) old queue manager. The
3694 current queue manager solves the problem in a better way.
3695 .SH qmgr_message_active_limit (default: 20000)
3696 The maximal number of messages in the active queue.
3697 .SH qmgr_message_recipient_limit (default: 20000)
3698 The maximal number of recipients held in memory by the Postfix
3699 queue manager, and the maximal size of the size of the short-term,
3700 in-memory "dead" destination status cache.
3701 .SH qmgr_message_recipient_minimum (default: 10)
3702 The minimal number of in-memory recipients for any message. This
3703 takes priority over any other in-memory recipient limits (i.e.,
3704 the global qmgr_message_recipient_limit and the per transport
3705 _recipient_limit) if necessary. The minimum value allowed for this
3707 .SH qmqpd_authorized_clients (default: empty)
3708 What clients are allowed to connect to the QMQP server port.
3710 By default, no client is allowed to use the service. This is
3711 because the QMQP server will relay mail to any destination.
3713 Specify a list of client patterns. A list pattern specifies a host
3714 name, a domain name, an internet address, or a network/mask pattern,
3715 where the mask specifies the number of bits in the network part.
3716 When a pattern specifies a file name, its contents are substituted
3717 for the file name; when a pattern is a "type:table" table specification,
3718 table lookup is used instead.
3720 Patterns are separated by whitespace and/or commas. In order to
3721 reverse the result, precede a pattern with an
3722 exclamation point (!). The form "!/file/name" is supported only
3723 in Postfix version 2.4 and later.
3730 qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24
3734 .SH qmqpd_client_port_logging (default: no)
3735 Enable logging of the remote QMQP client port in addition to
3736 the hostname and IP address. The logging format is "host[address]:port".
3738 This feature is available in Postfix 2.5 and later.
3739 .SH qmqpd_error_delay (default: 1s)
3740 How long the QMQP server will pause before sending a negative reply
3741 to the client. The purpose is to slow down confused or malicious
3744 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3745 The default time unit is s (seconds).
3746 .SH qmqpd_timeout (default: 300s)
3747 The time limit for sending or receiving information over the network.
3748 If a read or write operation blocks for more than $qmqpd_timeout
3749 seconds the QMQP server gives up and disconnects.
3751 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3752 The default time unit is s (seconds).
3753 .SH queue_directory (default: see "postconf -d" output)
3754 The location of the Postfix top-level queue directory. This is the
3755 root directory of Postfix daemon processes that run chrooted.
3756 .SH queue_file_attribute_count_limit (default: 100)
3757 The maximal number of (name=value) attributes that may be stored
3758 in a Postfix queue file. The limit is enforced by the \fBcleanup\fR(8)
3761 This feature is available in Postfix 2.0 and later.
3762 .SH queue_minfree (default: 0)
3763 The minimal amount of free space in bytes in the queue file system
3764 that is needed to receive mail. This is currently used by the SMTP
3765 server to decide if it will accept any mail at all.
3767 By default, the Postfix version 2.1 SMTP server rejects MAIL FROM commands
3768 when the amount of free space is less than 1.5*$message_size_limit.
3769 To specify a higher minimum free space limit, specify a queue_minfree
3770 value that is at least 1.5*$message_size_limit.
3772 With Postfix versions 2.0 and earlier, a queue_minfree value of
3773 zero means there is no minimum required amount of free space.
3774 .SH queue_run_delay (default: 300s)
3775 The time between deferred queue scans by the queue manager;
3776 prior to Postfix 2.4 the default value was 1000s.
3778 This parameter should be set less than or equal to
3779 $minimal_backoff_time. See also $maximal_backoff_time.
3781 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3782 The default time unit is s (seconds).
3783 .SH queue_service_name (default: qmgr)
3784 The name of the \fBqmgr\fR(8) service. This service manages the Postfix
3785 queue and schedules delivery requests.
3787 This feature is available in Postfix 2.0 and later.
3788 .SH rbl_reply_maps (default: empty)
3789 Optional lookup tables with RBL response templates. The tables are
3790 indexed by the RBL domain name. By default, Postfix uses the default
3791 template as specified with the default_rbl_reply configuration
3792 parameter. See there for a discussion of the syntax of RBL reply
3795 This feature is available in Postfix 2.0 and later.
3796 .SH readme_directory (default: see "postconf -d" output)
3797 The location of Postfix README files that describe how to build,
3798 configure or operate a specific Postfix subsystem or feature.
3799 .SH receive_override_options (default: empty)
3800 Enable or disable recipient validation, built-in content
3801 filtering, or address mapping. Typically, these are specified in
3802 master.cf as command-line arguments for the \fBsmtpd\fR(8), \fBqmqpd\fR(8) or
3803 \fBpickup\fR(8) daemons.
3805 Specify zero or more of the following options. The options
3806 override main.cf settings and are either implemented by \fBsmtpd\fR(8),
3807 \fBqmqpd\fR(8), or \fBpickup\fR(8) themselves, or they are forwarded to the
3809 .IP "\fBno_unknown_recipient_checks\fR"
3810 Do not try to reject unknown recipients (SMTP server only).
3811 This is typically specified AFTER an external content filter.
3812 .IP "\fBno_address_mappings\fR"
3813 Disable canonical address mapping, virtual alias map expansion,
3814 address masquerading, and automatic BCC (blind carbon-copy)
3815 recipients. This is typically specified BEFORE an external content
3817 .IP "\fBno_header_body_checks\fR"
3818 Disable header/body_checks. This is typically specified AFTER
3819 an external content filter.
3820 .IP "\fBno_milters\fR"
3821 Disable Milter (mail filter) applications. This is typically
3822 specified AFTER an external content filter.
3824 Note: when the "BEFORE content filter" receive_override_options
3825 setting is specified in the main.cf file, specify the "AFTER content
3826 filter" receive_override_options setting in master.cf (and vice
3834 receive_override_options =
3835 no_unknown_recipient_checks, no_header_body_checks
3836 receive_override_options = no_address_mappings
3841 This feature is available in Postfix 2.1 and later.
3842 .SH recipient_bcc_maps (default: empty)
3843 Optional BCC (blind carbon-copy) address lookup tables, indexed by
3844 recipient address. The BCC address (multiple results are not
3845 supported) is added when mail enters from outside of Postfix.
3847 This feature is available in Postfix 2.1 and later.
3849 The table search order is as follows:
3851 Look up the "user+extension@domain.tld" address including the
3852 optional address extension.
3854 Look up the "user@domain.tld" address without the optional
3857 Look up the "user+extension" address local part when the
3858 recipient domain equals $myorigin, $mydestination, $inet_interfaces
3859 or $proxy_interfaces.
3861 Look up the "user" address local part when the recipient domain
3862 equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces.
3864 Look up the "@domain.tld" part.
3866 Specify the types and names of databases to use. After change,
3867 run "\fBpostmap /etc/postfix/recipient_bcc\fR".
3869 Note: if mail to the BCC address bounces it will be returned to
3872 Note: automatic BCC recipients are produced only for new mail.
3873 To avoid mailer loops, automatic BCC recipients are not generated
3874 for mail that Postfix forwards internally, nor for mail that Postfix
3882 recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
3886 .SH recipient_canonical_classes (default: envelope_recipient, header_recipient)
3887 What addresses are subject to recipient_canonical_maps address
3888 mapping. By default, recipient_canonical_maps address mapping is
3889 applied to envelope recipient addresses, and to header recipient
3892 Specify one or more of: envelope_recipient, header_recipient
3894 This feature is available in Postfix 2.2 and later.
3895 .SH recipient_canonical_maps (default: empty)
3896 Optional address mapping lookup tables for envelope and header
3897 recipient addresses.
3898 The table format and lookups are documented in \fBcanonical\fR(5).
3900 Note: $recipient_canonical_maps is processed before $canonical_maps.
3907 recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
3911 .SH recipient_delimiter (default: empty)
3912 The separator between user names and address extensions (user+foo).
3913 See \fBcanonical\fR(5), \fBlocal\fR(8), \fBrelocated\fR(5) and \fBvirtual\fR(5) for the
3914 effects this has on aliases, canonical, virtual, relocated and
3915 on .forward file lookups. Basically, the software tries user+foo
3916 and .forward+foo before trying user and .forward.
3923 recipient_delimiter = +
3927 .SH reject_code (default: 554)
3928 The numerical Postfix SMTP server response code when a remote SMTP
3929 client request is rejected by the "reject" restriction.
3931 Do not change this unless you have a complete understanding of RFC 2821.
3932 .SH reject_tempfail_action (default: defer_if_permit)
3933 The Postfix SMTP server's action when a reject-type restriction
3934 fails due to a temporary error condition. Specify "defer" to defer
3935 the remote SMTP client request immediately. With the default
3936 "defer_if_permit" action, the Postfix SMTP server continues to look
3937 for opportunities to reject mail, and defers the client request
3938 only if it would otherwise be accepted.
3940 For finer control, see: unverified_recipient_tempfail_action,
3941 unverified_sender_tempfail_action, unknown_address_tempfail_action,
3942 and unknown_helo_hostname_tempfail_action.
3944 This feature is available in Postfix 2.6 and later.
3945 .SH relay_clientcerts (default: empty)
3946 List of tables with remote SMTP client-certificate fingerprints
3947 for which the Postfix SMTP server will allow access with the
3948 permit_tls_clientcerts feature.
3949 The fingerprint digest algorithm is configurable via the
3950 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
3951 Postfix version 2.5).
3953 Postfix lookup tables are in the form of (key, value) pairs.
3954 Since we only need the key, the value can be chosen freely, e.g.
3955 the name of the user or host:
3956 D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home
3963 relay_clientcerts = hash:/etc/postfix/relay_clientcerts
3968 For more fine-grained control, use check_ccert_access to select
3969 an appropriate \fBaccess\fR(5) policy for each client.
3970 See RESTRICTION_CLASS_README.
3972 This feature is available with Postfix version 2.2.
3973 .SH relay_destination_concurrency_limit (default: $default_destination_concurrency_limit)
3974 The maximal number of parallel deliveries to the same destination
3975 via the relay message delivery transport. This limit is enforced
3976 by the queue manager. The message delivery transport name is the
3977 first field in the entry in the master.cf file.
3979 This feature is available in Postfix 2.0 and later.
3980 .SH relay_destination_recipient_limit (default: $default_destination_recipient_limit)
3981 The maximal number of recipients per message for the relay
3982 message delivery transport. This limit is enforced by the queue
3983 manager. The message delivery transport name is the first field in
3984 the entry in the master.cf file.
3986 Setting this parameter to a value of 1 changes the meaning of
3987 relay_destination_concurrency_limit from concurrency per domain
3988 into concurrency per recipient.
3990 This feature is available in Postfix 2.0 and later.
3991 .SH relay_domains (default: $mydestination)
3992 What destination domains (and subdomains thereof) this system
3993 will relay mail to. Subdomain matching is controlled with the
3994 parent_domain_matches_subdomains parameter. For details about how
3995 the relay_domains value is used, see the description of the
3996 permit_auth_destination and reject_unauth_destination SMTP recipient
3999 Domains that match $relay_domains are delivered with the
4000 $relay_transport mail delivery transport. The SMTP server validates
4001 recipient addresses with $relay_recipient_maps and rejects non-existent
4002 recipients. See also the relay domains address class in the
4003 ADDRESS_CLASS_README file.
4005 Note: Postfix will not automatically forward mail for domains
4006 that list this system as their primary or backup MX host. See the
4007 permit_mx_backup restriction in the \fBpostconf\fR(5) manual page.
4009 Specify a list of host or domain names, "/file/name" patterns
4010 or "type:table" lookup tables, separated by commas and/or whitespace.
4011 Continue long lines by starting the next line with whitespace. A
4012 "/file/name" pattern is replaced by its contents; a "type:table"
4013 lookup table is matched when a (parent) domain appears as lookup
4014 key. Specify "!pattern" to exclude a domain from the list. The form
4015 "!/file/name" is supported only in Postfix version 2.4 and later.
4016 .SH relay_domains_reject_code (default: 554)
4017 The numerical Postfix SMTP server response code when a client
4018 request is rejected by the reject_unauth_destination recipient
4021 Do not change this unless you have a complete understanding of RFC 2821.
4022 .SH relay_recipient_maps (default: empty)
4023 Optional lookup tables with all valid addresses in the domains
4024 that match $relay_domains. Specify @domain as a wild-card for
4025 domains that have no valid recipient list, and become a source of
4026 backscatter mail: Postfix accepts spam for non-existent recipients
4027 and then floods innocent people with undeliverable mail. Technically,
4029 listed with $relay_recipient_maps are used as lists: Postfix needs
4030 to know only if a lookup string is found or not, but it does not
4031 use the result from table lookup.
4033 If this parameter is non-empty, then the Postfix SMTP server will reject
4034 mail to unknown relay users. This feature is off by default.
4036 See also the relay domains address class in the ADDRESS_CLASS_README
4044 relay_recipient_maps = hash:/etc/postfix/relay_recipients
4049 This feature is available in Postfix 2.0 and later.
4050 .SH relay_transport (default: relay)
4051 The default mail delivery transport and next-hop destination for
4052 remote delivery to domains listed with $relay_domains. In order of
4053 decreasing precedence, the nexthop destination is taken from
4054 $relay_transport, $sender_dependent_relayhost_maps, $relayhost, or
4055 from the recipient domain. This information can be overruled with
4056 the \fBtransport\fR(5) table.
4058 Specify a string of the form \fItransport:nexthop\fR, where \fItransport\fR
4059 is the name of a mail delivery transport defined in master.cf.
4060 The \fI:nexthop\fR part is optional. For more details see the
4061 \fBtransport\fR(5) manual page.
4063 See also the relay domains address class in the ADDRESS_CLASS_README
4066 This feature is available in Postfix 2.0 and later.
4067 .SH relayhost (default: empty)
4068 The next-hop destination of non-local mail; overrides non-local
4069 domains in recipient addresses. This information is overruled with
4070 relay_transport, default_transport, sender_dependent_relayhost_maps
4071 and with the \fBtransport\fR(5) table.
4073 On an intranet, specify the organizational domain name. If your
4074 internal DNS uses no MX records, specify the name of the intranet
4075 gateway host instead.
4077 In the case of SMTP, specify a domain name, hostname, hostname:port,
4078 [hostname]:port, [hostaddress] or [hostaddress]:port. The form
4079 [hostname] turns off MX lookups.
4081 If you're connected via UUCP, see the UUCP_README file for useful
4089 relayhost = $mydomain
4090 relayhost = [gateway.example.com]
4091 relayhost = uucphost
4092 relayhost = [an.ip.add.ress]
4096 .SH relocated_maps (default: empty)
4097 Optional lookup tables with new contact information for users or
4098 domains that no longer exist. The table format and lookups are
4099 documented in \fBrelocated\fR(5).
4101 If you use this feature, run "\fBpostmap /etc/postfix/relocated\fR" to
4102 build the necessary DBM or DB file after change, then "\fBpostfix
4103 reload\fR" to make the changes visible.
4110 relocated_maps = dbm:/etc/postfix/relocated
4111 relocated_maps = hash:/etc/postfix/relocated
4115 .SH remote_header_rewrite_domain (default: empty)
4116 Don't rewrite message headers from remote clients at all when
4117 this parameter is empty; otherwise, rewrite message headers and
4118 append the specified domain name to incomplete addresses. The
4119 local_header_rewrite_clients parameter controls what clients Postfix
4124 The safe setting: append "domain.invalid" to incomplete header
4125 addresses from remote SMTP clients, so that those addresses cannot
4126 be confused with local addresses.
4132 remote_header_rewrite_domain = domain.invalid
4138 The default, purist, setting: don't rewrite headers from remote
4145 remote_header_rewrite_domain =
4150 .SH require_home_directory (default: no)
4151 Whether or not a \fBlocal\fR(8) recipient's home directory must exist
4152 before mail delivery is attempted. By default this test is disabled.
4153 It can be useful for environments that import home directories to
4154 the mail server (NOT RECOMMENDED).
4155 .SH resolve_dequoted_address (default: yes)
4156 Resolve a recipient address safely instead of correctly, by
4157 looking inside quotes.
4159 By default, the Postfix address resolver does not quote the
4160 address localpart as per RFC 822, so that additional @ or % or !
4161 operators remain visible. This behavior is safe but it is also
4162 technically incorrect.
4164 If you specify "resolve_dequoted_address = no", then
4166 resolver will not know about additional @ etc. operators in the
4167 address localpart. This opens opportunities for obscure mail relay
4168 attacks with user@domain@domain addresses when Postfix provides
4169 backup MX service for Sendmail systems.
4170 .SH resolve_null_domain (default: no)
4171 Resolve an address that ends in the "@" null domain as if the
4172 local hostname were specified, instead of rejecting the address as
4175 This feature is available in Postfix 2.1 and later.
4176 Earlier versions always resolve the null domain as the local
4179 The Postfix SMTP server uses this feature to reject mail from
4180 or to addresses that end in the "@" null domain, and from addresses
4181 that rewrite into a form that ends in the "@" null domain.
4182 .SH resolve_numeric_domain (default: no)
4183 Resolve "user@ipaddress" as "user@[ipaddress]", instead of
4184 rejecting the address as invalid.
4186 This feature is available in Postfix 2.3 and later.
4187 .SH rewrite_service_name (default: rewrite)
4188 The name of the address rewriting service. This service rewrites
4189 addresses to standard form and resolves them to a (delivery method,
4190 next-hop host, recipient) triple.
4192 This feature is available in Postfix 2.0 and later.
4193 .SH sample_directory (default: /etc/postfix)
4194 The name of the directory with example Postfix configuration files.
4195 .SH send_cyrus_sasl_authzid (default: no)
4196 When authenticating to a remote SMTP or LMTP server with the
4197 default setting "no", send no SASL authoriZation ID (authzid); send
4198 only the SASL authentiCation ID (authcid) plus the authcid's password.
4200 The non-default setting "yes" enables the behavior of older
4201 Postfix versions. These always send a SASL authzid that is equal
4202 to the SASL authcid, but this causes inter-operability problems
4203 with some SMTP servers.
4205 This feature is available in Postfix 2.4.4 and later.
4206 .SH sender_based_routing (default: no)
4207 This parameter should not be used. It was replaced by sender_dependent_relayhost_maps
4208 in Postfix version 2.3.
4209 .SH sender_bcc_maps (default: empty)
4210 Optional BCC (blind carbon-copy) address lookup tables, indexed
4211 by sender address. The BCC address (multiple results are not
4212 supported) is added when mail enters from outside of Postfix.
4214 This feature is available in Postfix 2.1 and later.
4216 The table search order is as follows:
4218 Look up the "user+extension@domain.tld" address including the
4219 optional address extension.
4221 Look up the "user@domain.tld" address without the optional
4224 Look up the "user+extension" address local part when the
4225 sender domain equals $myorigin, $mydestination, $inet_interfaces
4226 or $proxy_interfaces.
4228 Look up the "user" address local part when the sender domain
4229 equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces.
4231 Look up the "@domain.tld" part.
4233 Specify the types and names of databases to use. After change,
4234 run "\fBpostmap /etc/postfix/sender_bcc\fR".
4236 Note: if mail to the BCC address bounces it will be returned to
4239 Note: automatic BCC recipients are produced only for new mail.
4240 To avoid mailer loops, automatic BCC recipients are not generated
4241 for mail that Postfix forwards internally, nor for mail that Postfix
4249 sender_bcc_maps = hash:/etc/postfix/sender_bcc
4253 .SH sender_canonical_classes (default: envelope_sender, header_sender)
4254 What addresses are subject to sender_canonical_maps address
4255 mapping. By default, sender_canonical_maps address mapping is
4256 applied to envelope sender addresses, and to header sender addresses.
4258 Specify one or more of: envelope_sender, header_sender
4260 This feature is available in Postfix 2.2 and later.
4261 .SH sender_canonical_maps (default: empty)
4262 Optional address mapping lookup tables for envelope and header
4264 The table format and lookups are documented in \fBcanonical\fR(5).
4266 Example: you want to rewrite the SENDER address "user@ugly.domain"
4267 to "user@pretty.domain", while still being able to send mail to
4268 the RECIPIENT address "user@ugly.domain".
4270 Note: $sender_canonical_maps is processed before $canonical_maps.
4277 sender_canonical_maps = hash:/etc/postfix/sender_canonical
4281 .SH sender_dependent_relayhost_maps (default: empty)
4282 A sender-dependent override for the global relayhost parameter
4283 setting. The tables are searched by the envelope sender address and
4284 @domain. A lookup result of DUNNO terminates the search without
4285 overriding the global relayhost parameter setting (Postfix 2.6 and
4286 later). This information is overruled with relay_transport,
4287 default_transport and with the \fBtransport\fR(5) table.
4289 For safety reasons, this feature does not allow $number
4290 substitutions in regular expression maps.
4292 This feature is available in Postfix 2.3 and later.
4293 .SH sendmail_path (default: see "postconf -d" output)
4294 A Sendmail compatibility feature that specifies the location of
4295 the Postfix \fBsendmail\fR(1) command. This command can be used to
4296 submit mail into the Postfix queue.
4297 .SH service_throttle_time (default: 60s)
4298 How long the Postfix \fBmaster\fR(8) waits before forking a server that
4299 appears to be malfunctioning.
4301 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4302 The default time unit is s (seconds).
4303 .SH setgid_group (default: postdrop)
4304 The group ownership of set-gid Postfix commands and of group-writable
4305 Postfix directories. When this parameter value is changed you need
4306 to re-run "\fBpostfix set-permissions\fR" (with Postfix version 2.0 and
4307 earlier: "\fB/etc/postfix/post-install set-permissions\fR".
4308 .SH show_user_unknown_table_name (default: yes)
4309 Display the name of the recipient table in the "User unknown"
4310 responses. The extra detail makes trouble shooting easier but also
4311 reveals information that is nobody elses business.
4313 This feature is available in Postfix 2.0 and later.
4314 .SH showq_service_name (default: showq)
4315 The name of the \fBshowq\fR(8) service. This service produces mail queue
4318 This feature is available in Postfix 2.0 and later.
4319 .SH smtp_always_send_ehlo (default: yes)
4320 Always send EHLO at the start of an SMTP session.
4322 With "smtp_always_send_ehlo = no", Postfix sends EHLO only when
4323 the word "ESMTP" appears in the server greeting banner (example:
4324 220 spike.porcupine.org ESMTP Postfix).
4325 .SH smtp_bind_address (default: empty)
4326 An optional numerical network address that the Postfix SMTP client
4327 should bind to when making an IPv4 connection.
4329 This can be specified in the main.cf file for all SMTP clients, or
4330 it can be specified in the master.cf file for a specific client,
4337 /etc/postfix/master.cf:
4338 smtp ... smtp -o smtp_bind_address=11.22.33.44
4344 Note 1: when inet_interfaces specifies no more than one IPv4
4345 address, and that address is a non-loopback address, it is
4346 automatically used as the smtp_bind_address. This supports virtual
4347 IP hosting, but can be a problem on multi-homed firewalls. See the
4348 inet_interfaces documentation for more detail.
4350 Note 2: address information may be enclosed inside [],
4351 but this form is not required here.
4352 .SH smtp_bind_address6 (default: empty)
4353 An optional numerical network address that the Postfix SMTP client
4354 should bind to when making an IPv6 connection.
4356 This feature is available in Postfix 2.2 and later.
4358 This can be specified in the main.cf file for all SMTP clients, or
4359 it can be specified in the master.cf file for a specific client,
4366 /etc/postfix/master.cf:
4367 smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8
4373 Note 1: when inet_interfaces specifies no more than one IPv6
4374 address, and that address is a non-loopback address, it is
4375 automatically used as the smtp_bind_address6. This supports virtual
4376 IP hosting, but can be a problem on multi-homed firewalls. See the
4377 inet_interfaces documentation for more detail.
4379 Note 2: address information may be enclosed inside [],
4380 but this form is not recommended here.
4381 .SH smtp_body_checks (default: empty)
4382 Restricted \fBbody_checks\fR(5) tables for the Postfix SMTP client.
4383 These tables are searched while mail is being delivered. Actions
4384 that change the delivery time or destination are not available.
4386 This feature is available in Postfix 2.5 and later.
4387 .SH smtp_cname_overrides_servername (default: version dependent)
4388 Allow DNS CNAME records to override the servername that the
4389 Postfix SMTP client uses for logging, SASL password lookup, TLS
4390 policy decisions, or TLS certificate verification. The value "no"
4391 hardens Postfix smtp_tls_per_site hostname-based policies against
4392 false hostname information in DNS CNAME records, and makes SASL
4393 password file lookups more predictable. This is the default setting
4396 This feature is available in Postfix 2.2.9 and later.
4397 .SH smtp_connect_timeout (default: 30s)
4398 The SMTP client time limit for completing a TCP connection, or
4399 zero (use the operating system built-in time limit).
4401 When no connection can be made within the deadline, the Postfix
4403 tries the next address on the mail exchanger list. Specify 0 to
4404 disable the time limit (i.e. use whatever timeout is implemented by
4405 the operating system).
4407 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4408 The default time unit is s (seconds).
4409 .SH smtp_connection_cache_destinations (default: empty)
4410 Permanently enable SMTP connection caching for the specified
4411 destinations. With SMTP connection caching, a connection is not
4412 closed immediately after completion of a mail transaction. Instead,
4413 the connection is kept open for up to $smtp_connection_cache_time_limit
4414 seconds. This allows connections to be reused for other deliveries,
4415 and can improve mail delivery performance.
4417 Specify a comma or white space separated list of destinations
4418 or pseudo-destinations:
4420 if mail is sent without a relay host: a domain name (the
4421 right-hand side of an email address, without the [] around a numeric
4424 if mail is sent via a relay host: a relay host name (without
4425 [] or non-default TCP port), as specified in main.cf or in the
4428 if mail is sent via a UNIX-domain socket: a pathname (without
4431 a /file/name with domain names and/or relay host names as
4434 a "type:table" with domain names and/or relay host names on
4435 the left-hand side. The right-hand side result from "type:table"
4438 This feature is available in Postfix 2.2 and later.
4439 .SH smtp_connection_cache_on_demand (default: yes)
4440 Temporarily enable SMTP connection caching while a destination
4441 has a high volume of mail in the active queue. With SMTP connection
4442 caching, a connection is not closed immediately after completion
4443 of a mail transaction. Instead, the connection is kept open for
4444 up to $smtp_connection_cache_time_limit seconds. This allows
4445 connections to be reused for other deliveries, and can improve mail
4446 delivery performance.
4448 This feature is available in Postfix 2.2 and later.
4449 .SH smtp_connection_cache_reuse_limit (default: 10)
4450 When SMTP connection caching is enabled, the number of times that
4451 an SMTP session may be reused before it is closed.
4453 This feature is available in Postfix 2.2. In Postfix 2.3 it is
4454 replaced by $smtp_connection_reuse_time_limit.
4455 .SH smtp_connection_cache_time_limit (default: 2s)
4456 When SMTP connection caching is enabled, the amount of time that
4457 an unused SMTP client socket is kept open before it is closed. Do
4458 not specify larger values without permission from the remote sites.
4460 This feature is available in Postfix 2.2 and later.
4461 .SH smtp_connection_reuse_time_limit (default: 300s)
4462 The amount of time during which Postfix will use an SMTP
4463 connection repeatedly. The timer starts when the connection is
4464 initiated (i.e. it includes the connect, greeting and helo latency,
4465 in addition to the latencies of subsequent mail delivery transactions).
4467 This feature addresses a performance stability problem with
4468 remote SMTP servers. This problem is not specific to Postfix: it
4469 can happen when any MTA sends large amounts of SMTP email to a site
4470 that has multiple MX hosts.
4472 The problem starts when one of a set of MX hosts becomes slower
4473 than the rest. Even though SMTP clients connect to fast and slow
4474 MX hosts with equal probability, the slow MX host ends up with more
4475 simultaneous inbound connections than the faster MX hosts, because
4476 the slow MX host needs more time to serve each client request.
4478 The slow MX host becomes a connection attractor. If one MX
4479 host becomes N times slower than the rest, it dominates mail delivery
4480 latency unless there are more than N fast MX hosts to counter the
4481 effect. And if the number of MX hosts is smaller than N, the mail
4482 delivery latency becomes effectively that of the slowest MX host
4483 divided by the total number of MX hosts.
4485 The solution uses connection caching in a way that differs from
4486 Postfix version 2.2. By limiting the amount of time during which a connection
4487 can be used repeatedly (instead of limiting the number of deliveries
4488 over that connection), Postfix not only restores fairness in the
4489 distribution of simultaneous connections across a set of MX hosts,
4490 it also favors deliveries over connections that perform well, which
4491 is exactly what we want.
4493 The default reuse time limit, 300s, is comparable to the various
4494 smtp transaction timeouts which are fair estimates of maximum excess
4495 latency for a slow delivery. Note that hosts may accept thousands
4496 of messages over a single connection within the default connection
4497 reuse time limit. This number is much larger than the default Postfix
4498 version 2.2 limit of 10 messages per cached connection. It may prove necessary
4499 to lower the limit to avoid interoperability issues with MTAs that
4500 exhibit bugs when many messages are delivered via a single connection.
4501 A lower reuse time limit risks losing the benefit of connection
4502 reuse when the average connection and mail delivery latency exceeds
4503 the reuse time limit.
4505 This feature is available in Postfix 2.3 and later.
4506 .SH smtp_data_done_timeout (default: 600s)
4507 The SMTP client time limit for sending the SMTP ".", and for receiving
4508 the server response.
4510 When no response is received within the deadline, a warning is
4511 logged that the mail may be delivered multiple times.
4513 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4514 The default time unit is s (seconds).
4515 .SH smtp_data_init_timeout (default: 120s)
4516 The SMTP client time limit for sending the SMTP DATA command, and for
4517 receiving the server response.
4519 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4520 The default time unit is s (seconds).
4521 .SH smtp_data_xfer_timeout (default: 180s)
4522 The SMTP client time limit for sending the SMTP message content.
4523 When the connection makes no progress for more than $smtp_data_xfer_timeout
4524 seconds the Postfix SMTP client terminates the transfer.
4526 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4527 The default time unit is s (seconds).
4528 .SH smtp_defer_if_no_mx_address_found (default: no)
4529 Defer mail delivery when no MX record resolves to an IP address.
4531 The default (no) is to return the mail as undeliverable. With older
4532 Postfix versions the default was to keep trying to deliver the mail
4533 until someone fixed the MX record or until the mail was too old.
4535 Note: Postfix always ignores MX records with equal or worse preference
4536 than the local MTA itself.
4538 This feature is available in Postfix 2.1 and later.
4539 .SH smtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
4540 The maximal number of parallel deliveries to the same destination
4541 via the smtp message delivery transport. This limit is enforced by
4542 the queue manager. The message delivery transport name is the first
4543 field in the entry in the master.cf file.
4544 .SH smtp_destination_recipient_limit (default: $default_destination_recipient_limit)
4545 The maximal number of recipients per message for the smtp
4546 message delivery transport. This limit is enforced by the queue
4547 manager. The message delivery transport name is the first field in
4548 the entry in the master.cf file.
4550 Setting this parameter to a value of 1 changes the meaning of
4551 smtp_destination_concurrency_limit from concurrency per domain
4552 into concurrency per recipient.
4553 .SH smtp_discard_ehlo_keyword_address_maps (default: empty)
4554 Lookup tables, indexed by the remote SMTP server address, with
4555 case insensitive lists of EHLO keywords (pipelining, starttls, auth,
4556 etc.) that the Postfix SMTP client will ignore in the EHLO response from a
4557 remote SMTP server. See smtp_discard_ehlo_keywords for details. The
4558 table is not indexed by hostname for consistency with
4559 smtpd_discard_ehlo_keyword_address_maps.
4561 This feature is available in Postfix 2.2 and later.
4562 .SH smtp_discard_ehlo_keywords (default: empty)
4563 A case insensitive list of EHLO keywords (pipelining, starttls,
4564 auth, etc.) that the Postfix SMTP client will ignore in the EHLO
4565 response from a remote SMTP server.
4567 This feature is available in Postfix 2.2 and later.
4571 Specify the \fBsilent-discard\fR pseudo keyword to prevent
4572 this action from being logged.
4574 Use the smtp_discard_ehlo_keyword_address_maps feature to
4575 discard EHLO keywords selectively.
4576 .SH smtp_enforce_tls (default: no)
4577 Enforcement mode: require that remote SMTP servers use TLS
4578 encryption, and never send mail in the clear. This also requires
4579 that the remote SMTP server hostname matches the information in
4580 the remote server certificate, and that the remote SMTP server
4581 certificate was issued by a CA that is trusted by the Postfix SMTP
4582 client. If the certificate doesn't verify or the hostname doesn't
4583 match, delivery is deferred and mail stays in the queue.
4585 The server hostname is matched against all names provided as
4586 dNSNames in the SubjectAlternativeName. If no dNSNames are specified,
4587 the CommonName is checked. The behavior may be changed with the
4588 smtp_tls_enforce_peername option.
4590 This option is useful only if you are definitely sure that you
4591 will only connect to servers that support RFC 2487 _and_ that
4592 provide valid server certificates. Typical use is for clients that
4593 send all their email to a dedicated mailhub.
4595 This feature is available in Postfix 2.2 and later. With
4596 Postfix 2.3 and later use smtp_tls_security_level instead.
4597 .SH smtp_fallback_relay (default: $fallback_relay)
4598 Optional list of relay hosts for SMTP destinations that can't be
4599 found or that are unreachable. With Postfix 2.2 and earlier this
4600 parameter is called fallback_relay.
4602 By default, mail is returned to the sender when a destination is
4603 not found, and delivery is deferred when a destination is unreachable.
4605 The fallback relays must be SMTP destinations. Specify a domain,
4606 host, host:port, [host]:port, [address] or [address]:port; the form
4607 [host] turns off MX lookups. If you specify multiple SMTP
4608 destinations, Postfix will try them in the specified order.
4610 To prevent mailer loops between MX hosts and fall-back hosts,
4611 Postfix version 2.2 and later will not use the fallback relays for
4612 destinations that it is MX host for (assuming DNS lookup is turned on).
4613 .SH smtp_generic_maps (default: empty)
4614 Optional lookup tables that perform address rewriting in the
4615 SMTP client, typically to transform a locally valid address into
4616 a globally valid address when sending mail across the Internet.
4617 This is needed when the local machine does not have its own Internet
4618 domain name, but uses something like \fIlocaldomain.local\fR
4621 The table format and lookups are documented in \fBgeneric\fR(5);
4622 examples are shown in the ADDRESS_REWRITING_README and
4623 STANDARD_CONFIGURATION_README documents.
4625 This feature is available in Postfix 2.2 and later.
4626 .SH smtp_header_checks (default: empty)
4627 Restricted \fBheader_checks\fR(5) tables for the Postfix SMTP client.
4628 These tables are searched while mail is being delivered. Actions
4629 that change the delivery time or destination are not available.
4631 This feature is available in Postfix 2.5 and later.
4632 .SH smtp_helo_name (default: $myhostname)
4633 The hostname to send in the SMTP EHLO or HELO command.
4635 The default value is the machine hostname. Specify a hostname or
4638 This information can be specified in the main.cf file for all SMTP
4639 clients, or it can be specified in the master.cf file for a specific
4640 client, for example:
4646 /etc/postfix/master.cf:
4647 mysmtp ... smtp -o smtp_helo_name=foo.bar.com
4653 This feature is available in Postfix 2.0 and later.
4654 .SH smtp_helo_timeout (default: 300s)
4655 The SMTP client time limit for sending the HELO or EHLO command,
4656 and for receiving the initial server response.
4658 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4659 The default time unit is s (seconds).
4660 .SH smtp_host_lookup (default: dns)
4661 What mechanisms when the Postfix SMTP client uses to look up a host's IP
4662 address. This parameter is ignored when DNS lookups are disabled.
4664 Specify one of the following:
4666 Hosts can be found in the DNS (preferred).
4668 Use the native naming service only (nsswitch.conf, or equivalent
4670 .IP "\fBdns, native\fR"
4671 Use the native service for hosts not found in the DNS.
4673 This feature is available in Postfix 2.1 and later.
4674 .SH smtp_line_length_limit (default: 990)
4675 The maximal length of message header and body lines that Postfix
4676 will send via SMTP. Longer lines are broken by inserting
4677 "<CR><LF><SPACE>". This minimizes the damage to
4678 MIME formatted mail.
4680 By default, the line length is limited to 990 characters, because
4681 some server implementations cannot receive mail with long lines.
4682 .SH smtp_mail_timeout (default: 300s)
4683 The SMTP client time limit for sending the MAIL FROM command, and
4684 for receiving the server response.
4686 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4687 The default time unit is s (seconds).
4688 .SH smtp_mime_header_checks (default: empty)
4689 Restricted \fBmime_header_checks\fR(5) tables for the Postfix SMTP
4690 client. These tables are searched while mail is being delivered.
4691 Actions that change the delivery time or destination are not
4694 This feature is available in Postfix 2.5 and later.
4695 .SH smtp_mx_address_limit (default: 5)
4696 The maximal number of MX (mail exchanger) IP addresses that can
4697 result from mail exchanger lookups, or zero (no limit). Prior to
4698 Postfix version 2.3, this limit was disabled by default.
4700 This feature is available in Postfix 2.1 and later.
4701 .SH smtp_mx_session_limit (default: 2)
4702 The maximal number of SMTP sessions per delivery request before
4703 giving up or delivering to a fall-back relay host, or zero (no
4704 limit). This restriction ignores sessions that fail to complete the
4705 SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to
4706 complete the EHLO and TLS handshake (Postfix version 2.3 and later).
4708 This feature is available in Postfix 2.1 and later.
4709 .SH smtp_nested_header_checks (default: empty)
4710 Restricted \fBnested_header_checks\fR(5) tables for the Postfix SMTP
4711 client. These tables are searched while mail is being delivered.
4712 Actions that change the delivery time or destination are not
4715 This feature is available in Postfix 2.5 and later.
4716 .SH smtp_never_send_ehlo (default: no)
4717 Never send EHLO at the start of an SMTP session. See also the
4718 smtp_always_send_ehlo parameter.
4719 .SH smtp_pix_workaround_delay_time (default: 10s)
4720 How long the Postfix SMTP client pauses before sending
4721 ".<CR><LF>" in order to work around the PIX firewall
4722 "<CR><LF>.<CR><LF>" bug.
4724 Choosing a too short time makes this workaround ineffective when
4725 sending large messages over slow network connections.
4726 .SH smtp_pix_workaround_maps (default: empty)
4727 Lookup tables, indexed by the remote SMTP server address, with
4728 per-destination workarounds for CISCO PIX firewall bugs. The table
4729 is not indexed by hostname for consistency with
4730 smtp_discard_ehlo_keyword_address_maps.
4732 This feature is available in Postfix 2.4 and later.
4733 .SH smtp_pix_workaround_threshold_time (default: 500s)
4734 How long a message must be queued before the Postfix SMTP client
4735 turns on the PIX firewall "<CR><LF>.<CR><LF>"
4736 bug workaround for delivery through firewalls with "smtp fixup"
4739 By default, the workaround is turned off for mail that is queued
4740 for less than 500 seconds. In other words, the workaround is normally
4741 turned off for the first delivery attempt.
4743 Specify 0 to enable the PIX firewall
4744 "<CR><LF>.<CR><LF>" bug workaround upon the
4745 first delivery attempt.
4746 .SH smtp_pix_workarounds (default: disable_esmtp, delay_dotcrlf)
4747 A list that specifies zero or more workarounds for CISCO PIX
4748 firewall bugs. These workarounds are implemented by the Postfix
4749 SMTP client. Workaround names are separated by comma or space, and
4750 are case insensitive. This parameter setting can be overruled with
4751 per-destination smtp_pix_workaround_maps settings.
4752 .IP "\fBdelay_dotcrlf\fR
4753 Insert a delay before sending
4754 ".<CR><LF>" after the end of the message content. The
4755 delay is subject to the smtp_pix_workaround_delay_time and
4756 smtp_pix_workaround_threshold_time parameter settings.
4757 .IP "\fBdisable_esmtp\fR
4758 Disable all extended SMTP commands:
4759 send HELO instead of EHLO.
4761 This feature is available in Postfix 2.4 and later. The default
4762 settings are backwards compatible with earlier Postfix versions.
4763 .SH smtp_quit_timeout (default: 300s)
4764 The SMTP client time limit for sending the QUIT command, and for
4765 receiving the server response.
4767 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4768 The default time unit is s (seconds).
4769 .SH smtp_quote_rfc821_envelope (default: yes)
4770 Quote addresses in SMTP MAIL FROM and RCPT TO commands as required
4771 by RFC 2821. This includes putting quotes around an address localpart
4774 The default is to comply with RFC 2821. If you have to send mail to
4775 a broken SMTP server, configure a special SMTP client in master.cf:
4781 /etc/postfix/master.cf:
4782 broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no
4788 and route mail for the destination in question to the "broken-smtp"
4789 message delivery with a \fBtransport\fR(5) table.
4791 This feature is available in Postfix 2.1 and later.
4792 .SH smtp_randomize_addresses (default: yes)
4793 Randomize the order of equal-preference MX host addresses. This
4794 is a performance feature of the Postfix SMTP client.
4795 .SH smtp_rcpt_timeout (default: 300s)
4796 The SMTP client time limit for sending the SMTP RCPT TO command, and
4797 for receiving the server response.
4799 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4800 The default time unit is s (seconds).
4801 .SH smtp_rset_timeout (default: 20s)
4802 The SMTP client time limit for sending the RSET command, and
4803 for receiving the server response. The SMTP client sends RSET in
4804 order to finish a recipient address probe, or to verify that a
4805 cached session is still usable.
4807 This feature is available in Postfix 2.1 and later.
4808 .SH smtp_sasl_auth_cache_name (default: empty)
4809 An optional table to prevent repeated SASL authentication
4810 failures with the same remote SMTP server hostname, username and
4811 password. Each table (key, value) pair contains a server name, a
4812 username and password, and the full server response. This information
4813 is stored when a remote SMTP server rejects an authentication attempt
4814 with a 535 reply code. As long as the smtp_sasl_password_maps
4815 information does no change, and as long as the smtp_sasl_auth_cache_name
4816 information does not expire (see smtp_sasl_auth_cache_time) the
4817 Postfix SMTP client avoids SASL authentication attempts with the
4818 same server, username and password, and instead bounces or defers
4819 mail as controlled with the smtp_sasl_auth_soft_bounce configuration
4822 Use a per-destination delivery concurrency of 1 (for example,
4823 "smtp_destination_concurrency_limit = 1",
4824 "relay_destination_concurrency_limit = 1", etc.), otherwise multiple
4825 delivery agents may experience a login failure at the same time.
4827 The table must be accessed via the proxywrite service, i.e. the
4828 map name must start with "proxy:". The table should be stored under
4829 the directory specified with the data_directory parameter.
4831 This feature uses cryptographic hashing to protect plain-text
4832 passwords, and requires that Postfix is compiled with TLS support.
4839 smtp_sasl_auth_cache_name = proxy:btree:/var/db/postfix/sasl_auth_cache
4844 This feature is available in Postfix 2.5 and later.
4845 .SH smtp_sasl_auth_cache_time (default: 90d)
4846 The maximal age of an smtp_sasl_auth_cache_name entry before it
4849 This feature is available in Postfix 2.5 and later.
4850 .SH smtp_sasl_auth_enable (default: no)
4851 Enable SASL authentication in the Postfix SMTP client. By default,
4852 the Postfix SMTP client uses no authentication.
4859 smtp_sasl_auth_enable = yes
4863 .SH smtp_sasl_auth_soft_bounce (default: yes)
4864 When a remote SMTP server rejects a SASL authentication request
4865 with a 535 reply code, defer mail delivery instead of returning
4866 mail as undeliverable. The latter behavior was hard-coded prior to
4867 Postfix version 2.5.
4869 Note: the setting "yes" overrides the global soft_bounce
4870 parameter, but the setting "no" does not.
4877 # Default as of Postfix 2.5
4878 smtp_sasl_auth_soft_bounce = yes
4879 # The old hard-coded default
4880 smtp_sasl_auth_soft_bounce = no
4885 This feature is available in Postfix 2.5 and later.
4886 .SH smtp_sasl_mechanism_filter (default: empty)
4887 If non-empty, a Postfix SMTP client filter for the remote SMTP
4888 server's list of offered SASL mechanisms. Different client and
4889 server implementations may support different mechanism lists. By
4890 default, the Postfix SMTP client will use the intersection of the
4891 two. smtp_sasl_mechanism_filter further restricts what server
4892 mechanisms the client will take into consideration.
4894 Specify mechanism names, "/file/name" patterns or "type:table"
4895 lookup tables. The right-hand side result from "type:table" lookups
4896 is ignored. Specify "!pattern" to exclude a mechanism name from the
4897 list. The form "!/file/name" is supported only in Postfix version
4900 This feature is available in Postfix 2.2 and later.
4907 smtp_sasl_mechanism_filter = plain, login
4908 smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs
4909 smtp_sasl_mechanism_filter = !gssapi, !login, static:rest
4913 .SH smtp_sasl_password_maps (default: empty)
4914 Optional SMTP client lookup tables with one username:password entry
4915 per remote hostname or domain, or sender address when sender-dependent
4916 authentication is enabled. If no username:password entry is found,
4917 then the Postfix SMTP client will not
4918 attempt to authenticate to the remote host.
4920 The Postfix SMTP client opens the lookup table before going to
4921 chroot jail, so you can leave the password file in /etc/postfix.
4922 .SH smtp_sasl_path (default: empty)
4923 Implementation-specific information that the Postfix SMTP client
4925 the SASL plug-in implementation that is selected with
4926 \fBsmtp_sasl_type\fR. Typically this specifies the name of a
4927 configuration file or rendezvous point.
4929 This feature is available in Postfix 2.3 and later.
4930 .SH smtp_sasl_security_options (default: noplaintext, noanonymous)
4931 Postfix SMTP client SASL security options; as of Postfix 2.3
4932 the list of available
4933 features depends on the SASL client implementation that is selected
4934 with \fBsmtp_sasl_type\fR.
4936 The following security features are defined for the \fBcyrus\fR
4937 client SASL implementation:
4939 Specify zero or more of the following:
4940 .IP "\fBnoplaintext\fR"
4941 Disallow methods that use plaintext passwords.
4942 .IP "\fBnoactive\fR"
4943 Disallow methods subject to active (non-dictionary) attack.
4944 .IP "\fBnodictionary\fR"
4945 Disallow methods subject to passive (dictionary) attack.
4946 .IP "\fBnoanonymous\fR"
4947 Disallow methods that allow anonymous authentication.
4948 .IP "\fBmutual_auth\fR"
4949 Only allow methods that provide mutual authentication (not
4950 available with SASL version 1).
4957 smtp_sasl_security_options = noplaintext
4961 .SH smtp_sasl_tls_security_options (default: $smtp_sasl_security_options)
4962 The SASL authentication security options that the Postfix SMTP
4963 client uses for TLS encrypted SMTP sessions.
4965 This feature is available in Postfix 2.2 and later.
4966 .SH smtp_sasl_tls_verified_security_options (default: $smtp_sasl_tls_security_options)
4967 The SASL authentication security options that the Postfix SMTP
4968 client uses for TLS encrypted SMTP sessions with a verified server
4971 When mail is sent to the public MX host for the recipient's
4972 domain, server certificates are by default optional, and delivery
4973 proceeds even if certificate verification fails. For delivery via
4974 a submission service that requires SASL authentication, it may be
4975 appropriate to send plaintext passwords only when the connection
4976 to the server is strongly encrypted \fBand\fR the server identity
4979 The smtp_sasl_tls_verified_security_options parameter makes it
4980 possible to only enable plaintext mechanisms when a secure connection
4981 to the server is available. Submission servers subject to this
4982 policy must either have verifiable certificates or offer suitable
4983 non-plaintext SASL mechanisms.
4985 This feature is available in Postfix 2.6 and later.
4986 .SH smtp_sasl_type (default: cyrus)
4987 The SASL plug-in type that the Postfix SMTP client should use
4988 for authentication. The available types are listed with the
4989 "\fBpostconf -A\fR" command.
4991 This feature is available in Postfix 2.3 and later.
4992 .SH smtp_send_xforward_command (default: no)
4993 Send the non-standard XFORWARD command when the Postfix SMTP server
4994 EHLO response announces XFORWARD support.
4996 This allows an "smtp" delivery agent, used for injecting mail into
4997 a content filter, to forward the name, address, protocol and HELO
4998 name of the original client to the content filter and downstream
4999 queuing SMTP server. This can produce more useful logging than
5000 localhost[127.0.0.1] etc.
5002 This feature is available in Postfix 2.1 and later.
5003 .SH smtp_sender_dependent_authentication (default: no)
5004 Enable sender-dependent authentication in the Postfix SMTP client; this is
5005 available only with SASL authentication, and disables SMTP connection
5006 caching to ensure that mail from different senders will use the
5007 appropriate credentials.
5009 This feature is available in Postfix 2.3 and later.
5010 .SH smtp_skip_4xx_greeting (default: yes)
5011 Skip SMTP servers that greet with a 4XX status code (go away, try
5014 By default, Postfix moves on the next mail exchanger. Specify
5015 "smtp_skip_4xx_greeting = no" if Postfix should defer delivery
5018 This feature is available in Postfix 2.0 and earlier.
5019 Later Postfix versions always skip SMTP servers that greet with a
5021 .SH smtp_skip_5xx_greeting (default: yes)
5022 Skip SMTP servers that greet with a 5XX status code (go away, do
5023 not try again later).
5025 By default, the Postfix SMTP client moves on the next mail
5026 exchanger. Specify "smtp_skip_5xx_greeting = no" if Postfix should
5027 bounce the mail immediately. The default setting is incorrect, but
5028 it is what a lot of people expect to happen.
5029 .SH smtp_skip_quit_response (default: yes)
5030 Do not wait for the response to the SMTP QUIT command.
5031 .SH smtp_starttls_timeout (default: 300s)
5032 Time limit for Postfix SMTP client write and read operations
5033 during TLS startup and shutdown handshake procedures.
5035 This feature is available in Postfix 2.2 and later.
5036 .SH smtp_tls_CAfile (default: empty)
5037 A file containing CA certificates of root CAs trusted to sign
5038 either remote SMTP server certificates or intermediate CA certificates.
5039 These are loaded into memory before the \fBsmtp\fR(8) client enters the
5040 chroot jail. If the number of trusted roots is large, consider using
5041 smtp_tls_CApath instead, but note that the latter directory must be
5042 present in the chroot jail if the \fBsmtp\fR(8) client is chrooted. This
5043 file may also be used to augment the client certificate trust chain,
5044 but it is best to include all the required certificates directly in
5045 $smtp_tls_cert_file.
5052 smtp_tls_CAfile = /etc/postfix/CAcert.pem
5057 This feature is available in Postfix 2.2 and later.
5058 .SH smtp_tls_CApath (default: empty)
5059 Directory with PEM format certificate authority certificates
5060 that the Postfix SMTP client uses to verify a remote SMTP server
5061 certificate. Don't forget to create the necessary "hash" links
5062 with, for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs".
5064 To use this option in chroot mode, this directory (or a copy)
5065 must be inside the chroot jail.
5072 smtp_tls_CApath = /etc/postfix/certs
5077 This feature is available in Postfix 2.2 and later.
5078 .SH smtp_tls_cert_file (default: empty)
5079 File with the Postfix SMTP client RSA certificate in PEM format.
5080 This file may also contain the Postfix SMTP client private RSA key,
5081 and these may be the same as the Postfix SMTP server RSA certificate and key
5084 Do not configure client certificates unless you \fBmust\fR present
5085 client TLS certificates to one or more servers. Client certificates are
5086 not usually needed, and can cause problems in configurations that work
5087 well without them. The recommended setting is to let the defaults stand:
5093 smtp_tls_cert_file =
5095 smtp_tls_dcert_file =
5096 smtp_tls_dkey_file =
5097 smtp_tls_eccert_file =
5098 smtp_tls_eckey_file =
5104 The best way to use the default settings is to comment out the above
5105 parameters in main.cf if present.
5107 To enable remote SMTP servers to verify the Postfix SMTP client
5108 certificate, the issuing CA certificates must be made available to the
5109 server. You should include the required certificates in the client
5110 certificate file, the client certificate first, then the issuing
5111 CA(s) (bottom-up order).
5113 Example: the certificate for "client.example.com" was issued by
5114 "intermediate CA" which itself has a certificate issued by "root CA".
5115 Create the client.pem file with "cat client_cert.pem intermediate_CA.pem
5116 root_CA.pem > client.pem".
5118 If you also want to verify remote SMTP server certificates issued by
5119 these CAs, you can add the CA certificates to the smtp_tls_CAfile, in
5120 which case it is not necessary to have them in the smtp_tls_cert_file,
5121 smtp_tls_dcert_file or smtp_tls_eccert_file.
5123 A certificate supplied here must be usable as an SSL client certificate
5124 and hence pass the "openssl verify -purpose sslclient ..." test.
5131 smtp_tls_cert_file = /etc/postfix/client.pem
5136 This feature is available in Postfix 2.2 and later.
5137 .SH smtp_tls_cipherlist (default: empty)
5138 Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
5139 cipher list. As this feature applies to all TLS security levels, it is easy
5140 to create inter-operability problems by choosing a non-default cipher
5141 list. Do not use a non-default TLS cipher list on hosts that deliver email
5142 to the public Internet: you will be unable to send email to servers that
5143 only support the ciphers you exclude. Using a restricted cipher list
5144 may be more appropriate for an internal MTA, where one can exert some
5145 control over the TLS software and settings of the peer servers.
5147 \fBNote:\fR do not use "" quotes around the parameter value.
5149 This feature is available in Postfix version 2.2. It is not used with
5150 Postfix 2.3 and later; use smtp_tls_mandatory_ciphers instead.
5151 .SH smtp_tls_ciphers (default: export)
5152 The minimum TLS cipher grade that the Postfix SMTP client
5153 will use with opportunistic TLS encryption. Cipher types listed in
5154 smtp_tls_exclude_ciphers are excluded from the base definition of
5155 the selected cipher grade. The default value "export" ensures maximum
5156 inter-operability. Because encryption is optional, stronger controls
5157 are not appropriate, and this setting SHOULD NOT be changed unless the
5158 change is essential.
5160 When TLS is mandatory the cipher grade is chosen via the
5161 smtp_tls_mandatory_ciphers configuration parameter, see there for syntax
5162 details. See smtp_tls_policy_maps for information on how to configure
5163 ciphers on a per-destination basis.
5169 smtp_tls_ciphers = export
5174 This feature is available in Postfix 2.6 and later. With earlier Postfix
5175 releases only the smtp_tls_mandatory_ciphers parameter is implemented,
5176 and opportunistic TLS always uses "export" or better (i.e. all) ciphers.
5177 .SH smtp_tls_dcert_file (default: empty)
5178 File with the Postfix SMTP client DSA certificate in PEM format.
5179 This file may also contain the Postfix SMTP client private DSA key.
5181 See the discussion under smtp_tls_cert_file for more details.
5188 smtp_tls_dcert_file = /etc/postfix/client-dsa.pem
5193 This feature is available in Postfix 2.2 and later.
5194 .SH smtp_tls_dkey_file (default: $smtp_tls_dcert_file)
5195 File with the Postfix SMTP client DSA private key in PEM format.
5196 This file may be combined with the Postfix SMTP client DSA certificate
5197 file specified with $smtp_tls_dcert_file.
5199 The private key must be accessible without a pass-phrase, i.e. it
5200 must not be encrypted. File permissions should grant read-only
5201 access to the system superuser account ("root"), and no access
5204 This feature is available in Postfix 2.2 and later.
5205 .SH smtp_tls_eccert_file (default: empty)
5206 File with the Postfix SMTP client ECDSA certificate in PEM format.
5207 This file may also contain the Postfix SMTP client ECDSA private key.
5209 See the discussion under smtp_tls_cert_file for more details.
5216 smtp_tls_eccert_file = /etc/postfix/ecdsa-ccert.pem
5221 This feature is available in Postfix 2.6 and later, when Postfix is
5222 compiled and linked with OpenSSL 0.9.9 or later.
5223 .SH smtp_tls_eckey_file (default: $smtp_tls_eccert_file)
5224 File with the Postfix SMTP client ECDSA private key in PEM format.
5225 This file may be combined with the Postfix SMTP client ECDSA
5226 certificate file specified with $smtp_tls_eccert_file.
5228 The private key must be accessible without a pass-phrase, i.e. it
5229 must not be encrypted. File permissions should grant read-only
5230 access to the system superuser account ("root"), and no access
5233 This feature is available in Postfix 2.6 and later, when Postfix is
5234 compiled and linked with OpenSSL 0.9.9 or later.
5235 .SH smtp_tls_enforce_peername (default: yes)
5236 With mandatory TLS encryption, require that the remote SMTP
5237 server hostname matches the information in the remote SMTP server
5238 certificate. As of RFC 2487 the requirements for hostname checking
5239 for MTA clients are not specified.
5241 This option can be set to "no" to disable strict peer name
5242 checking. This setting has no effect on sessions that are controlled
5243 via the smtp_tls_per_site table.
5245 Disabling the hostname verification can make sense in closed
5246 environment where special CAs are created. If not used carefully,
5247 this option opens the danger of a "man-in-the-middle" attack (the
5248 CommonName of this attacker will be logged).
5250 This feature is available in Postfix 2.2 and later. With
5251 Postfix 2.3 and later use smtp_tls_security_level instead.
5252 .SH smtp_tls_exclude_ciphers (default: empty)
5253 List of ciphers or cipher types to exclude from the Postfix
5255 list at all TLS security levels. This is not an OpenSSL cipherlist, it is
5256 a simple list separated by whitespace and/or commas. The elements are a
5257 single cipher, or one or more "+" separated cipher properties, in which
5258 case only ciphers matching \fBall\fR the properties are excluded.
5260 Examples (some of these will cause problems):
5266 smtp_tls_exclude_ciphers = aNULL
5267 smtp_tls_exclude_ciphers = MD5, DES
5268 smtp_tls_exclude_ciphers = DES+MD5
5269 smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
5270 smtp_tls_exclude_ciphers = kEDH+aRSA
5276 The first setting, disables anonymous ciphers. The next setting
5277 disables ciphers that use the MD5 digest algorithm or the (single) DES
5278 encryption algorithm. The next setting disables ciphers that use MD5 and
5279 DES together. The next setting disables the two ciphers "AES256-SHA"
5280 and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
5281 key exchange with RSA authentication.
5283 This feature is available in Postfix 2.3 and later.
5284 .SH smtp_tls_fingerprint_cert_match (default: empty)
5285 List of acceptable remote SMTP server certificate fingerprints
5286 for the "fingerprint" TLS security level (\fBsmtp_tls_security_level\fR =
5287 fingerprint). At this security level, certificate authorities are
5288 not used, and certificate expiration times are ignored. Instead,
5289 server certificates are verified directly via their "fingerprint". The
5290 fingerprint is a message digest of the server certificate. The digest
5291 algorithm is selected via the \fBsmtp_tls_fingerprint_digest\fR
5294 When an \fBsmtp_tls_policy_maps\fR table entry specifies the
5295 "fingerprint" security level, any "match" attributes in that entry specify
5296 the list of valid fingerprints for the corresponding destination. Multiple
5297 fingerprints can be combined with a "|" delimiter in a single match
5298 attribute, or multiple match attributes can be employed.
5300 Example: Certificate fingerprint verification with internal mailhub.
5301 Two matching fingerprints are listed. The relayhost may be multiple
5302 physical hosts behind a load-balancer, each with its own private/public
5303 key and self-signed certificate. Alternatively, a single relayhost may
5304 be in the process of switching from one set of private/public keys to
5305 another, and both keys are trusted just prior to the transition.
5311 relayhost = [mailhub.example.com]
5312 smtp_tls_security_level = fingerprint
5313 smtp_tls_fingerprint_digest = md5
5314 smtp_tls_fingerprint_cert_match =
5315 3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
5316 EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
5322 Example: Certificate fingerprint verification with selected destinations.
5323 As in the example above, we show two matching fingerprints:
5329 /etc/postfix/main.cf:
5330 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
5331 smtp_tls_fingerprint_digest = md5
5341 /etc/postfix/tls_policy:
5342 example.com fingerprint
5343 match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
5344 match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
5350 This feature is available in Postfix 2.5 and later.
5351 .SH smtp_tls_fingerprint_digest (default: md5)
5352 The message digest algorithm used to construct remote SMTP server
5353 certificate fingerprints. At the "fingerprint" TLS security level
5354 (\fBsmtp_tls_security_level\fR = fingerprint), the server certificate is
5355 verified by directly matching its \fIfingerprint\fR. The fingerprint
5356 is the message digest of the server certificate using the selected
5357 algorithm. With a digest algorithm resistant to "second pre-image"
5358 attacks, it is not feasible to create a new public key and a matching
5359 certificate that has the same fingerprint.
5361 The default algorithm is \fBmd5\fR; this is consistent with
5362 the backwards compatible setting of the digest used to verify client
5363 certificates in the SMTP server.
5365 The best practice algorithm is now \fBsha1\fR. Recent advances in hash
5366 function cryptanalysis have led to md5 being deprecated in favor of sha1.
5367 However, as long as there are no known "second pre-image" attacks
5368 against md5, its use in this context can still be considered safe.
5370 While additional digest algorithms are often available with OpenSSL's
5371 libcrypto, only those used by libssl in SSL cipher suites are available to
5372 Postfix. For now this means just md5 or sha1.
5374 To find the fingerprint of a specific certificate file, with a
5375 specific digest algorithm, run:
5381 $ openssl x509 -noout -fingerprint -\fIdigest\fR -in \fIcertfile\fR.pem
5387 The text to the right of "=" sign is the desired fingerprint.
5394 $ openssl x509 -noout -fingerprint -sha1 -in cert.pem
5395 SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
5401 This feature is available in Postfix 2.5 and later.
5402 .SH smtp_tls_key_file (default: $smtp_tls_cert_file)
5403 File with the Postfix SMTP client RSA private key in PEM format.
5404 This file may be combined with the Postfix SMTP client RSA certificate
5405 file specified with $smtp_tls_cert_file.
5407 The private key must be accessible without a pass-phrase, i.e. it
5408 must not be encrypted. File permissions should grant read-only
5409 access to the system superuser account ("root"), and no access
5417 smtp_tls_key_file = $smtp_tls_cert_file
5422 This feature is available in Postfix 2.2 and later.
5423 .SH smtp_tls_loglevel (default: 0)
5424 Enable additional Postfix SMTP client logging of TLS activity.
5425 Each logging level also includes the information that is logged at
5426 a lower logging level.
5428 0 Disable logging of TLS activity.
5430 1 Log TLS handshake and certificate information.
5432 2 Log levels during TLS negotiation.
5434 3 Log hexadecimal and ASCII dump of TLS negotiation
5437 4 Log hexadecimal and ASCII dump of complete
5438 transmission after STARTTLS.
5440 Use "smtp_tls_loglevel = 3" only in case of problems. Use of
5441 loglevel 4 is strongly discouraged.
5443 This feature is available in Postfix 2.2 and later.
5444 .SH smtp_tls_mandatory_ciphers (default: medium)
5445 The minimum TLS cipher grade that the Postfix SMTP client will
5447 mandatory TLS encryption. The default value "medium" is suitable
5448 for most destinations with which you may want to enforce TLS, and
5449 is beyond the reach of today's crypt-analytic methods. See
5450 smtp_tls_policy_maps for information on how to configure ciphers
5451 on a per-destination basis.
5453 The following cipher grades are supported:
5455 Enable the mainstream "EXPORT" grade or better OpenSSL
5456 ciphers. This is always used for opportunistic encryption. It is
5457 not recommended for mandatory encryption unless you must enforce TLS
5458 with "crippled" peers. The underlying cipherlist is specified via the
5459 tls_export_cipherlist configuration parameter, which you are strongly
5460 encouraged to not change. The default value of tls_export_cipherlist
5461 includes anonymous ciphers, but these are automatically filtered out if
5462 the client is configured to verify server certificates. If you must
5463 exclude anonymous ciphers also at the "encrypt" security level, set
5464 "smtp_tls_mandatory_exclude_ciphers = aNULL".
5466 Enable the mainstream "LOW" grade or better OpenSSL ciphers. This
5467 setting is only appropriate for internal mail servers. The underlying
5468 cipherlist is specified via the tls_low_cipherlist configuration
5469 parameter, which you are strongly encouraged to not change. The default
5470 value of tls_low_cipherlist includes anonymous ciphers, but these are
5471 automatically filtered out if the client is configured to verify server
5472 certificates. If you must exclude anonymous ciphers also at the "encrypt"
5473 security level, set "smtp_tls_mandatory_exclude_ciphers = aNULL".
5475 Enable the mainstream "MEDIUM" grade or better OpenSSL ciphers.
5476 The underlying cipherlist is specified via the tls_medium_cipherlist
5477 configuration parameter, which you are strongly encouraged to not change.
5478 The default value of tls_medium_cipherlist includes anonymous ciphers,
5479 but these are automatically filtered out if the client is configured to
5480 verify server certificates. If you must exclude anonymous ciphers also
5481 at the "encrypt" security level, set "smtp_tls_mandatory_exclude_ciphers
5484 Enable only the mainstream "HIGH" grade OpenSSL ciphers. This
5485 setting is appropriate when all mandatory TLS destinations support
5486 some of "HIGH" grade ciphers, this is not uncommon. The underlying
5487 cipherlist is specified via the tls_high_cipherlist configuration
5488 parameter, which you are strongly encouraged to not change. The default
5489 value of tls_high_cipherlist includes anonymous ciphers, but these are
5490 automatically filtered out if the client is configured to verify server
5491 certificates. If you must exclude anonymous ciphers also at the "encrypt"
5492 security level, set "smtp_tls_mandatory_exclude_ciphers = aNULL".
5494 Enable only the "NULL" OpenSSL ciphers, these provide authentication
5495 without encryption. This setting is only appropriate in the rare case
5496 that all servers are prepared to use NULL ciphers (not normally enabled
5497 in TLS servers). A plausible use-case is an LMTP server listening on a
5498 UNIX-domain socket that is configured to support "NULL" ciphers. The
5499 underlying cipherlist is specified via the tls_null_cipherlist
5500 configuration parameter, which you are strongly encouraged to not
5501 change. The default value of tls_null_cipherlist excludes anonymous
5502 ciphers (OpenSSL 0.9.8 has NULL ciphers that offer data integrity without
5503 encryption or authentication).
5505 This feature is available in Postfix 2.3 and later.
5506 .SH smtp_tls_mandatory_exclude_ciphers (default: empty)
5507 Additional list of ciphers or cipher types to exclude from the
5508 SMTP client cipher list at mandatory TLS security levels. This list
5509 works in addition to the exclusions listed with smtp_tls_exclude_ciphers
5510 (see there for syntax details).
5512 Starting with Postfix 2.6, the mandatory cipher exclusions can be
5513 specified on a per-destination basis via the TLS policy "exclude"
5514 attribute. See smtp_tls_policy_maps for notes and examples.
5516 This feature is available in Postfix 2.3 and later.
5517 .SH smtp_tls_mandatory_protocols (default: SSLv3, TLSv1)
5518 List of SSL/TLS protocols that the Postfix SMTP client will use with
5519 mandatory TLS encryption. In main.cf the values are separated by
5520 whitespace, commas or colons. In the policy table "protocols" attribute
5521 (see smtp_tls_policy_maps) the only valid separator is colon. An
5522 empty value means allow all protocols. The valid protocol names, (see
5523 \\fBfBSSL_get_version\fR(3)\fR), are "SSLv2", "SSLv3" and "TLSv1".
5525 With Postfix >= 2.5 the parameter syntax is expanded to support
5526 protocol exclusions. One can now explicitly exclude SSLv2 by setting
5527 "smtp_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and
5528 SSLv3 set "smtp_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing
5529 the protocols to include, rather than protocols to exclude, is still
5530 supported; use the form you find more intuitive.
5532 Since SSL version 2 has known protocol weaknesses and is now
5533 deprecated, the default setting excludes "SSLv2". This means that by
5534 default, SSL version 2 will not be used at the "encrypt" security level
5537 See the documentation of the smtp_tls_policy_maps parameter and
5538 TLS_README for more information about security levels.
5545 smtp_tls_mandatory_protocols = TLSv1
5546 # Alternative form with Postfix >= 2.5:
5547 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
5552 This feature is available in Postfix 2.3 and later.
5553 .SH smtp_tls_note_starttls_offer (default: no)
5554 Log the hostname of a remote SMTP server that offers STARTTLS,
5555 when TLS is not already enabled for that server.
5557 The logfile record looks like:
5562 postfix/smtp[pid]: Host offered STARTTLS: [name.of.host]
5567 This feature is available in Postfix 2.2 and later.
5568 .SH smtp_tls_per_site (default: empty)
5569 Optional lookup tables with the Postfix SMTP client TLS usage
5570 policy by next-hop destination and by remote SMTP server hostname.
5571 When both lookups succeed, the more specific per-site policy (NONE,
5572 MUST, etc) overrides the less specific one (MAY), and the more secure
5573 per-site policy (MUST, etc) overrides the less secure one (NONE).
5574 With Postfix 2.3 and later smtp_tls_per_site is strongly discouraged:
5575 use smtp_tls_policy_maps instead.
5577 Use of the bare hostname as the per-site table lookup key is
5578 discouraged. Always use the full destination nexthop (enclosed in
5579 [] with a possible ":port" suffix). A recipient domain or MX-enabled
5580 transport next-hop with no port suffix may look like a bare hostname,
5581 but is still a suitable \fIdestination\fR.
5583 Specify a next-hop destination or server hostname on the left-hand
5584 side; no wildcards are allowed. The next-hop destination is either
5585 the recipient domain, or the destination specified with a \fBtransport\fR(5)
5586 table, the relayhost parameter, or the relay_transport parameter.
5587 On the right hand side specify one of the following keywords:
5589 Don't use TLS at all. This overrides a less
5590 specific \fBMAY\fR lookup result from the alternate host or next-hop
5591 lookup key, and overrides the global smtp_use_tls, smtp_enforce_tls,
5592 and smtp_tls_enforce_peername settings.
5594 Try to use TLS if the server announces support,
5595 otherwise use the unencrypted connection. This has less precedence
5596 than a more specific result (including \fBNONE\fR) from the alternate
5597 host or next-hop lookup key, and has less precedence than the more
5598 specific global "smtp_enforce_tls = yes" or "smtp_tls_enforce_peername
5600 .IP "MUST_NOPEERMATCH"
5601 Require TLS encryption, but do not
5602 require that the remote SMTP server hostname matches the information
5603 in the remote SMTP server certificate, or that the server certificate
5604 was issued by a trusted CA. This overrides a less secure \fBNONE\fR
5605 or a less specific \fBMAY\fR lookup result from the alternate host
5606 or next-hop lookup key, and overrides the global smtp_use_tls,
5607 smtp_enforce_tls and smtp_tls_enforce_peername settings.
5609 Require TLS encryption, require that the remote
5610 SMTP server hostname matches the information in the remote SMTP
5611 server certificate, and require that the remote SMTP server certificate
5612 was issued by a trusted CA. This overrides a less secure \fBNONE\fR
5613 and \fBMUST_NOPEERMATCH\fR or a less specific \fBMAY\fR lookup
5614 result from the alternate host or next-hop lookup key, and overrides
5615 the global smtp_use_tls, smtp_enforce_tls and smtp_tls_enforce_peername
5618 The above keywords correspond to the "none", "may", "encrypt" and
5619 "verify" security levels for the new smtp_tls_security_level parameter
5620 introduced in Postfix 2.3. Starting with Postfix 2.3, and independently
5621 of how the policy is specified, the smtp_tls_mandatory_ciphers and
5622 smtp_tls_mandatory_protocols parameters apply when TLS encryption
5623 is mandatory. Connections for which encryption is optional typically
5624 enable all "export" grade and better ciphers (see smtp_tls_ciphers
5625 and smtp_tls_protocols).
5627 As long as no secure DNS lookup mechanism is available, false
5628 hostnames in MX or CNAME responses can change the server hostname
5629 that Postfix uses for TLS policy lookup and server certificate
5630 verification. Even with a perfect match between the server hostname and
5631 the server certificate, there is no guarantee that Postfix is connected
5632 to the right server. See TLS_README (Closing a DNS loophole with obsolete
5633 per-site TLS policies) for a possible work-around.
5635 This feature is available in Postfix 2.2 and later. With
5636 Postfix 2.3 and later use smtp_tls_policy_maps instead.
5637 .SH smtp_tls_policy_maps (default: empty)
5638 Optional lookup tables with the Postfix SMTP client TLS security
5639 policy by next-hop destination; when a non-empty value is specified,
5640 this overrides the obsolete smtp_tls_per_site parameter. See
5641 TLS_README for a more detailed discussion of TLS security levels.
5643 The TLS policy table is indexed by the full next-hop destination,
5644 which is either the recipient domain, or the verbatim next-hop
5645 specified in the transport table, $local_transport, $virtual_transport,
5646 $relay_transport or $default_transport. This includes any enclosing
5647 square brackets and any non-default destination server port suffix. The
5648 LMTP socket type prefix (inet: or unix:) is not included in the lookup
5651 Only the next-hop domain, or $myhostname with LMTP over UNIX-domain
5652 sockets, is used as the nexthop name for certificate verification. The
5653 port and any enclosing square brackets are used in the table lookup key,
5654 but are not used for server name verification.
5656 When the lookup key is a domain name without enclosing square brackets
5657 or any \fI:port\fR suffix (typically the recipient domain), and the full
5658 domain is not found in the table, just as with the \fBtransport\fR(5) table,
5659 the parent domain starting with a leading "." is matched recursively. This
5660 allows one to specify a security policy for a recipient domain and all
5663 The lookup result is a security level, followed by an optional list
5664 of whitespace and/or comma separated name=value attributes that override
5665 related main.cf settings. The TLS security levels in order of increasing
5668 No TLS. No additional attributes are supported at this level.
5670 Opportunistic TLS. Since sending in the clear is acceptable,
5671 demanding stronger than default TLS security merely reduces
5672 inter-operability. The optional "ciphers", "exclude" and "protocols"
5673 attributes (available for opportunistic TLS with Postfix >= 2.6)
5674 override the "smtp_tls_ciphers", "smtp_tls_exclude_ciphers" and
5675 "smtp_tls_protocols" configuration parameters. When opportunistic TLS
5676 handshakes fail, Postfix retries the connection with TLS disabled.
5677 This allows mail delivery to sites with non-interoperable TLS
5680 Mandatory TLS encryption. At this level
5681 and higher, the optional "protocols" attribute overrides the main.cf
5682 smtp_tls_mandatory_protocols parameter, the optional "ciphers" attribute
5683 overrides the main.cf smtp_tls_mandatory_ciphers parameter, and the
5684 optional "exclude" attribute (Postfix >= 2.6) overrides the main.cf
5685 smtp_tls_mandatory_exclude_ciphers parameter. In the policy table,
5686 multiple protocols or excluded ciphers must be separated by colons,
5687 as attribute values may not contain whitespace or commas.
5688 .IP "\fBfingerprint\fR"
5689 Certificate fingerprint
5690 verification. Available with Postfix 2.5 and later. At this security
5691 level, there are no trusted certificate authorities. The certificate
5692 trust chain, expiration date, ... are not checked. Instead,
5693 the optional \fBmatch\fR attribute, or else the main.cf
5694 \fBsmtp_tls_fingerprint_cert_match\fR parameter, lists the
5695 valid "fingerprints" of the server certificate. The digest
5696 algorithm used to calculate the fingerprint is selected by the
5697 \fBsmtp_tls_fingerprint_digest\fR parameter. Multiple fingerprints can
5698 be combined with a "|" delimiter in a single match attribute, or multiple
5699 match attributes can be employed. The ":" character is not used as a
5700 delimiter as it occurs between each pair of fingerprint (hexadecimal)
5703 Mandatory TLS verification. At this security
5704 level, DNS MX lookups are trusted to be secure enough, and the name
5705 verified in the server certificate is usually obtained indirectly via
5706 unauthenticated DNS MX lookups. The optional "match" attribute overrides
5707 the main.cf smtp_tls_verify_cert_match parameter. In the policy table,
5708 multiple match patterns and strategies must be separated by colons.
5709 In practice explicit control over matching is more common with the
5710 "secure" policy, described below.
5712 Secure-channel TLS. At this security level, DNS
5713 MX lookups, though potentially used to determine the candidate next-hop
5714 gateway IP addresses, are \fBnot\fR trusted to be secure enough for TLS
5715 peername verification. Instead, the default name verified in the server
5716 certificate is obtained directly from the next-hop, or is explicitly
5717 specified via the optional \fBmatch\fR attribute which overrides the
5718 main.cf smtp_tls_secure_cert_match parameter. In the policy table,
5719 multiple match patterns and strategies must be separated by colons.
5720 The match attribute is most useful when multiple domains are supported by
5721 common server, the policy entries for additional domains specify matching
5722 rules for the primary domain certificate. While transport table overrides
5723 routing the secondary domains to the primary nexthop also allow secure
5724 verification, they risk delivery to the wrong destination when domains
5725 change hands or are re-assigned to new gateways. With the "match"
5726 attribute approach, routing is not perturbed, and mail is deferred if
5727 verification of a new MX host fails.
5734 /etc/postfix/main.cf:
5735 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
5736 # Postfix 2.5 and later
5737 smtp_tls_fingerprint_digest = md5
5745 /etc/postfix/tls_policy:
5748 example.gov encrypt protocols=TLSv1
5749 example.com verify ciphers=high
5751 .example.net secure match=.example.net:example.net
5752 [mail.example.org]:587 secure match=nexthop
5753 # Postfix 2.5 and later
5754 [thumb.example.org] fingerprint
5755 match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
5756 match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
5761 \fBNote:\fR The \fBhostname\fR strategy if listed in a non-default
5762 setting of smtp_tls_secure_cert_match or in the \fBmatch\fR attribute
5763 in the policy table can render the \fBsecure\fR level vulnerable to
5764 DNS forgery. Do not use the \fBhostname\fR strategy for secure-channel
5765 configurations in environments where DNS security is not assured.
5767 This feature is available in Postfix 2.3 and later.
5768 .SH smtp_tls_protocols (default: !SSLv2)
5769 List of TLS protocols that the Postfix SMTP client will exclude or
5770 include with opportunistic TLS encryption. Starting with Postfix 2.6,
5771 the Postfix SMTP client will by default not use the obsolete SSLv2
5774 In main.cf the values are separated by whitespace, commas or
5775 colons. In the policy table (see smtp_tls_policy_maps) the only valid
5776 separator is colon. An empty value means allow all protocols. The valid
5777 protocol names, (see \\fBfBSSL_get_version\fR(3)\fR), are "SSLv2", "SSLv3"
5780 To include a protocol list its name, to exclude it, prefix the name
5781 with a "!" character. To exclude SSLv2 even for opportunistic TLS set
5782 "smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set
5783 "smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to
5784 include, is supported, but not recommended. OpenSSL provides no mechanisms
5785 for excluding protocols not known at compile-time. If Postfix is linked
5786 against an OpenSSL library that supports additional protocol versions,
5787 they cannot be excluded using either syntax.
5794 smtp_tls_protocols = !SSLv2, !SSLv3
5799 This feature is available in Postfix 2.6 and later.
5800 .SH smtp_tls_scert_verifydepth (default: 9)
5801 The verification depth for remote SMTP server certificates. A depth
5802 of 1 is sufficient if the issuing CA is listed in a local CA file.
5804 The default verification depth is 9 (the OpenSSL default) for
5805 compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
5806 the default value was 5, but the limit was not actually enforced. If
5807 you have set this to a lower non-default value, certificates with longer
5808 trust chains may now fail to verify. Certificate chains with 1 or 2
5809 CAs are common, deeper chains are more rare and any number between 5
5810 and 9 should suffice in practice. You can choose a lower number if,
5811 for example, you trust certificates directly signed by an issuing CA
5812 but not any CAs it delegates to.
5814 This feature is available in Postfix 2.2 and later.
5815 .SH smtp_tls_secure_cert_match (default: nexthop, dot-nexthop)
5816 The server certificate peername verification method for the
5817 "secure" TLS security level. In a "secure" TLS policy table
5818 ($smtp_tls_policy_maps) entry the optional "match" attribute
5819 overrides this main.cf setting.
5821 This parameter specifies one or more patterns or strategies separated
5822 by commas, whitespace or colons. In the policy table the only valid
5823 separator is the colon character.
5825 For a description of the pattern and strategy syntax see the
5826 smtp_tls_verify_cert_match parameter. The "hostname" strategy should
5827 be avoided in this context, as in the absence of a secure global DNS, using
5828 the results of MX lookups in certificate verification is not immune to active
5829 (man-in-the-middle) attacks on DNS.
5831 Sample main.cf setting:
5837 smtp_tls_secure_cert_match = nexthop
5843 Sample policy table override:
5849 example.net secure match=example.com:.example.com
5850 \&.example.net secure match=example.com:.example.com
5856 This feature is available in Postfix 2.3 and later.
5857 .SH smtp_tls_security_level (default: empty)
5858 The default SMTP TLS security level for the Postfix SMTP client;
5859 when a non-empty value is specified, this overrides the obsolete
5860 parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername.
5862 Specify one of the following security levels:
5864 TLS will not be used unless enabled for specific
5865 destinations via smtp_tls_policy_maps.
5867 Opportunistic TLS. Use TLS if this is supported by the remote
5868 SMTP server, otherwise use plaintext. Since
5869 sending in the clear is acceptable, demanding stronger than default TLS
5870 security merely reduces inter-operability.
5871 The "smtp_tls_ciphers" and "smtp_tls_protocols" (Postfix >= 2.6)
5872 configuration parameters provide control over the protocols and
5873 cipher grade used with opportunistic TLS. With earlier releases the
5874 opportunistic TLS cipher grade is always "export" and no protocols
5876 When TLS handshakes fail, the connection is retried with TLS disabled.
5877 This allows mail delivery to sites with non-interoperable TLS
5880 Mandatory TLS encryption. Since a minimum
5881 level of security is intended, it is reasonable to be specific about
5882 sufficiently secure protocol versions and ciphers. At this security level
5883 and higher, the main.cf parameters smtp_tls_mandatory_protocols and
5884 smtp_tls_mandatory_ciphers specify the TLS protocols and minimum
5885 cipher grade which the administrator considers secure enough for
5886 mandatory encrypted sessions. This security level is not an appropriate
5887 default for systems delivering mail to the Internet.
5888 .IP "\fBfingerprint\fR"
5889 Certificate fingerprint
5890 verification. Available with Postfix 2.5 and later. At this security
5891 level, there are no trusted certificate authorities. The certificate
5892 trust chain, expiration date, ... are not checked. Instead,
5893 the \fBsmtp_tls_fingerprint_cert_match\fR parameter lists
5894 the valid "fingerprints" of the server certificate. The digest
5895 algorithm used to calculate the fingerprint is selected by the
5896 \fBsmtp_tls_fingerprint_digest\fR parameter.
5898 Mandatory TLS verification. At this security
5899 level, DNS MX lookups are trusted to be secure enough, and the name
5900 verified in the server certificate is usually obtained indirectly
5901 via unauthenticated DNS MX lookups. The smtp_tls_verify_cert_match
5902 parameter controls how the server name is verified. In practice explicit
5903 control over matching is more common at the "secure" level, described
5904 below. This security level is not an appropriate default for systems
5905 delivering mail to the Internet.
5907 Secure-channel TLS. At this security level,
5908 DNS MX lookups, though potentially used to determine the candidate
5909 next-hop gateway IP addresses, are \fBnot\fR trusted to be secure enough
5910 for TLS peername verification. Instead, the default name verified in
5911 the server certificate is obtained from the next-hop domain as specified
5912 in the smtp_tls_secure_cert_match configuration parameter. The default
5913 matching rule is that a server certificate matches when its name is equal
5914 to or is a sub-domain of the nexthop domain. This security level is not
5915 an appropriate default for systems delivering mail to the Internet.
5922 # No TLS. Formerly: smtp_use_tls=no and smtp_enforce_tls=no.
5923 smtp_tls_security_level = none
5931 # Opportunistic TLS.
5932 smtp_tls_security_level = may
5934 # Do not tweak opportunistic ciphers unless it is essential
5935 # to do so (if a security vulnerability is found in the SSL library that
5936 # can be mitigated by disabling a particular protocol or raising the
5937 # cipher grade from "export" to "low" or "medium").
5938 smtp_tls_ciphers = export
5939 smtp_tls_protocols = !SSLv2
5947 # Mandatory (high-grade) TLS encryption.
5948 smtp_tls_security_level = encrypt
5949 smtp_tls_mandatory_ciphers = high
5957 # Mandatory TLS verification of hostname or nexthop domain.
5958 smtp_tls_security_level = verify
5959 smtp_tls_mandatory_ciphers = high
5960 smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
5968 # Secure channel TLS with exact nexthop name match.
5969 smtp_tls_security_level = secure
5970 smtp_tls_mandatory_protocols = TLSv1
5971 smtp_tls_mandatory_ciphers = high
5972 smtp_tls_secure_cert_match = nexthop
5980 # Certificate fingerprint verification (Postfix >= 2.5).
5981 # The CA-less "fingerprint" security level only scales to a limited
5982 # number of destinations. As a global default rather than a per-site
5983 # setting, this is practical when mail for all recipients is sent
5984 # to a central mail hub.
5985 relayhost = [mailhub.example.com]
5986 smtp_tls_security_level = fingerprint
5987 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
5988 smtp_tls_mandatory_ciphers = high
5989 smtp_tls_fingerprint_cert_match =
5990 3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
5991 EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
5996 This feature is available in Postfix 2.3 and later.
5997 .SH smtp_tls_session_cache_database (default: empty)
5998 Name of the file containing the optional Postfix SMTP client
5999 TLS session cache. Specify a database type that supports enumeration,
6000 such as \fBbtree\fR or \fBsdbm\fR; there is no need to support
6001 concurrent access. The file is created if it does not exist. The \fBsmtp\fR(8)
6002 daemon does not use this parameter directly, rather the cache is
6003 implemented indirectly in the \fBtlsmgr\fR(8) daemon. This means that
6004 per-smtp-instance master.cf overrides of this parameter are not effective.
6005 Note, that each of the cache databases supported by \fBtlsmgr\fR(8) daemon:
6006 $smtpd_tls_session_cache_database, $smtp_tls_session_cache_database
6007 (and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to
6008 be stored separately. It is not at this time possible to store multiple
6009 caches in a single database.
6011 Note: \fBdbm\fR databases are not suitable. TLS
6012 session objects are too large.
6014 As of version 2.5, Postfix no longer uses root privileges when
6015 opening this file. The file should now be stored under the Postfix-owned
6016 data_directory. As a migration aid, an attempt to open the file
6017 under a non-Postfix directory is redirected to the Postfix-owned
6018 data_directory, and a warning is logged.
6025 smtp_tls_session_cache_database = btree:/var/db/postfix/smtp_scache
6030 This feature is available in Postfix 2.2 and later.
6031 .SH smtp_tls_session_cache_timeout (default: 3600s)
6032 The expiration time of Postfix SMTP client TLS session cache
6033 information. A cache cleanup is performed periodically
6034 every $smtp_tls_session_cache_timeout seconds. As with
6035 $smtp_tls_session_cache_database, this parameter is implemented in the
6036 \fBtlsmgr\fR(8) daemon and therefore per-smtp-instance master.cf overrides
6039 This feature is available in Postfix 2.2 and later.
6040 .SH smtp_tls_verify_cert_match (default: hostname)
6041 The server certificate peername verification method for the
6042 "verify" TLS security level. In a "verify" TLS policy table
6043 ($smtp_tls_policy_maps) entry the optional "match" attribute
6044 overrides this main.cf setting.
6046 This parameter specifies one or more patterns or strategies separated
6047 by commas, whitespace or colons. In the policy table the only valid
6048 separator is the colon character.
6050 Patterns specify domain names, or domain name suffixes:
6051 .IP "\fIexample.com\fR"
6052 Match the \fIexample.com\fR domain,
6053 i.e. one of the names the server certificate must be \fIexample.com\fR,
6054 upper and lower case distinctions are ignored.
6055 .IP "\fI.example.com\fR"
6056 Match subdomains of the \fIexample.com\fR domain, i.e. match
6057 a name in the server certificate that consists of a non-zero number of
6058 labels followed by a \fI.example.com\fR suffix. Case distinctions are
6061 Strategies specify a transformation from the next-hop domain
6062 to the expected name in the server certificate:
6064 Match against the next-hop domain, which is either the recipient
6065 domain, or the transport next-hop configured for the domain stripped of
6066 any optional socket type prefix, enclosing square brackets and trailing
6067 port. When MX lookups are not suppressed, this is the original nexthop
6068 domain prior to the MX lookup, not the result of the MX lookup. For
6069 LMTP delivery via UNIX-domain sockets, the verified next-hop name is
6070 $myhostname. This strategy is suitable for use with the "secure"
6071 policy. Case is ignored.
6073 As above, but match server certificate names that are subdomains
6074 of the next-hop domain. Case is ignored.
6076 Match against the hostname of the server, often
6077 obtained via an unauthenticated DNS MX lookup. For LMTP delivery via
6078 UNIX-domain sockets, the verified name is $myhostname. This matches
6079 the verification strategy of the "MUST" keyword in the obsolete
6080 smtp_tls_per_site table, and is suitable for use with the "verify"
6081 security level. When the next-hop name is enclosed in square brackets
6082 to suppress MX lookups, the "hostname" strategy is the same as the
6083 "nexthop" strategy. Case is ignored.
6085 Sample main.cf setting:
6090 smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
6095 Sample policy table override:
6100 example.com verify match=hostname:nexthop
6101 \&.example.com verify match=example.com:.example.com:hostname
6106 This feature is available in Postfix 2.3 and later.
6107 .SH smtp_use_tls (default: no)
6108 Opportunistic mode: use TLS when a remote SMTP server announces
6109 STARTTLS support, otherwise send the mail in the clear. Beware:
6110 some SMTP servers offer STARTTLS even if it is not configured. With
6111 Postfix < 2.3, if the TLS handshake fails, and no other server is
6112 available, delivery is deferred and mail stays in the queue. If this
6113 is a concern for you, use the smtp_tls_per_site feature instead.
6115 This feature is available in Postfix 2.2 and later. With
6116 Postfix 2.3 and later use smtp_tls_security_level instead.
6117 .SH smtp_xforward_timeout (default: 300s)
6118 The SMTP client time limit for sending the XFORWARD command, and
6119 for receiving the server response.
6121 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6122 The default time unit is s (seconds).
6124 This feature is available in Postfix 2.1 and later.
6125 .SH smtpd_authorized_verp_clients (default: $authorized_verp_clients)
6126 What SMTP clients are allowed to specify the XVERP command.
6127 This command requests that mail be delivered one recipient at a
6128 time with a per recipient return address.
6130 By default, no clients are allowed to specify XVERP.
6132 This parameter was renamed with Postfix version 2.1. The default value
6133 is backwards compatible with Postfix version 2.0.
6135 Specify a list of network/netmask patterns, separated by commas
6136 and/or whitespace. The mask specifies the number of bits in the
6137 network part of a host address. You can also specify hostnames or
6138 \&.domain names (the initial dot causes the domain to match any name
6139 below it), "/file/name" or "type:table" patterns. A "/file/name"
6140 pattern is replaced by its contents; a "type:table" lookup table
6141 is matched when a table entry matches a lookup string (the lookup
6142 result is ignored). Continue long lines by starting the next line
6143 with whitespace. Specify "!pattern" to exclude an address or network
6144 block from the list. The form "!/file/name" is supported only in
6145 Postfix version 2.4 and later.
6147 Note: IP version 6 address information must be specified inside
6148 [] in the smtpd_authorized_verp_clients value, and in
6149 files specified with "/file/name". IP version 6 addresses contain
6150 the ":" character, and would otherwise be confused with a "type:table"
6152 .SH smtpd_authorized_xclient_hosts (default: empty)
6153 What SMTP clients are allowed to use the XCLIENT feature. This
6154 command overrides SMTP client information that is used for access
6155 control. Typical use is for SMTP-based content filters, fetchmail-like
6156 programs, or SMTP server access rule testing. See the XCLIENT_README
6157 document for details.
6159 This feature is available in Postfix 2.1 and later.
6161 By default, no clients are allowed to specify XCLIENT.
6163 Specify a list of network/netmask patterns, separated by commas
6164 and/or whitespace. The mask specifies the number of bits in the
6165 network part of a host address. You can also specify hostnames or
6166 \&.domain names (the initial dot causes the domain to match any name
6167 below it), "/file/name" or "type:table" patterns. A "/file/name"
6168 pattern is replaced by its contents; a "type:table" lookup table
6169 is matched when a table entry matches a lookup string (the lookup
6170 result is ignored). Continue long lines by starting the next line
6171 with whitespace. Specify "!pattern" to exclude an address or network
6172 block from the list. The form "!/file/name" is supported only in
6173 Postfix version 2.4 and later.
6175 Note: IP version 6 address information must be specified inside
6176 [] in the smtpd_authorized_xclient_hosts value, and in
6177 files specified with "/file/name". IP version 6 addresses contain
6178 the ":" character, and would otherwise be confused with a "type:table"
6180 .SH smtpd_authorized_xforward_hosts (default: empty)
6181 What SMTP clients are allowed to use the XFORWARD feature. This
6182 command forwards information that is used to improve logging after
6183 SMTP-based content filters. See the XFORWARD_README document for
6186 This feature is available in Postfix 2.1 and later.
6188 By default, no clients are allowed to specify XFORWARD.
6190 Specify a list of network/netmask patterns, separated by commas
6191 and/or whitespace. The mask specifies the number of bits in the
6192 network part of a host address. You can also specify hostnames or
6193 \&.domain names (the initial dot causes the domain to match any name
6194 below it), "/file/name" or "type:table" patterns. A "/file/name"
6195 pattern is replaced by its contents; a "type:table" lookup table
6196 is matched when a table entry matches a lookup string (the lookup
6197 result is ignored). Continue long lines by starting the next line
6198 with whitespace. Specify "!pattern" to exclude an address or network
6199 block from the list. The form "!/file/name" is supported only in
6200 Postfix version 2.4 and later.
6202 Note: IP version 6 address information must be specified inside
6203 [] in the smtpd_authorized_xforward_hosts value, and in
6204 files specified with "/file/name". IP version 6 addresses contain
6205 the ":" character, and would otherwise be confused with a "type:table"
6207 .SH smtpd_banner (default: $myhostname ESMTP $mail_name)
6208 The text that follows the 220 status code in the SMTP greeting
6209 banner. Some people like to see the mail version advertised. By
6210 default, Postfix shows no version.
6212 You MUST specify $myhostname at the start of the text. This is
6213 required by the SMTP protocol.
6220 smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
6224 .SH smtpd_client_connection_count_limit (default: 50)
6225 How many simultaneous connections any client is allowed to
6226 make to this service. By default, the limit is set to half
6227 the default process limit value.
6229 To disable this feature, specify a limit of 0.
6231 WARNING: The purpose of this feature is to limit abuse. It must
6232 not be used to regulate legitimate mail traffic.
6234 This feature is available in Postfix 2.2 and later.
6235 .SH smtpd_client_connection_rate_limit (default: 0)
6236 The maximal number of connection attempts any client is allowed to
6237 make to this service per time unit. The time unit is specified
6238 with the anvil_rate_time_unit configuration parameter.
6240 By default, a client can make as many connections per time unit as
6243 To disable this feature, specify a limit of 0.
6245 WARNING: The purpose of this feature is to limit abuse. It must
6246 not be used to regulate legitimate mail traffic.
6248 This feature is available in Postfix 2.2 and later.
6255 smtpd_client_connection_rate_limit = 1000
6259 .SH smtpd_client_event_limit_exceptions (default: $mynetworks)
6260 Clients that are excluded from connection count, connection rate,
6261 or SMTP request rate restrictions. See the mynetworks parameter
6262 description for the parameter value syntax.
6264 By default, clients in trusted networks are excluded. Specify a
6265 list of network blocks, hostnames or .domain names (the initial
6266 dot causes the domain to match any name below it).
6268 Note: IP version 6 address information must be specified inside
6269 [] in the smtpd_client_event_limit_exceptions value, and
6270 in files specified with "/file/name". IP version 6 addresses
6271 contain the ":" character, and would otherwise be confused with a
6272 "type:table" pattern.
6274 This feature is available in Postfix 2.2 and later.
6275 .SH smtpd_client_message_rate_limit (default: 0)
6276 The maximal number of message delivery requests that any client is
6277 allowed to make to this service per time unit, regardless of whether
6278 or not Postfix actually accepts those messages. The time unit is
6279 specified with the anvil_rate_time_unit configuration parameter.
6281 By default, a client can send as many message delivery requests
6282 per time unit as Postfix can accept.
6284 To disable this feature, specify a limit of 0.
6286 WARNING: The purpose of this feature is to limit abuse. It must
6287 not be used to regulate legitimate mail traffic.
6289 This feature is available in Postfix 2.2 and later.
6296 smtpd_client_message_rate_limit = 1000
6300 .SH smtpd_client_new_tls_session_rate_limit (default: 0)
6301 The maximal number of new (i.e., uncached) TLS sessions that a
6302 remote SMTP client is allowed to negotiate with this service per
6303 time unit. The time unit is specified with the anvil_rate_time_unit
6304 configuration parameter.
6306 By default, a remote SMTP client can negotiate as many new TLS
6307 sessions per time unit as Postfix can accept.
6309 To disable this feature, specify a limit of 0. Otherwise, specify
6310 a limit that is at least the per-client concurrent session limit,
6311 or else legitimate client sessions may be rejected.
6313 WARNING: The purpose of this feature is to limit abuse. It must
6314 not be used to regulate legitimate mail traffic.
6316 This feature is available in Postfix 2.3 and later.
6323 smtpd_client_new_tls_session_rate_limit = 100
6327 .SH smtpd_client_port_logging (default: no)
6328 Enable logging of the remote SMTP client port in addition to
6329 the hostname and IP address. The logging format is "host[address]:port".
6331 This feature is available in Postfix 2.5 and later.
6332 .SH smtpd_client_recipient_rate_limit (default: 0)
6333 The maximal number of recipient addresses that any client is allowed
6334 to send to this service per time unit, regardless of whether or not
6335 Postfix actually accepts those recipients. The time unit is specified
6336 with the anvil_rate_time_unit configuration parameter.
6338 By default, a client can make as many recipient addresses per time
6339 unit as Postfix can accept.
6341 To disable this feature, specify a limit of 0.
6343 WARNING: The purpose of this feature is to limit abuse. It must
6344 not be used to regulate legitimate mail traffic.
6346 This feature is available in Postfix 2.2 and later.
6353 smtpd_client_recipient_rate_limit = 1000
6357 .SH smtpd_client_restrictions (default: empty)
6358 Optional SMTP server access restrictions in the context of a client
6359 SMTP connection request.
6360 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6361 restriction lists" for a discussion of evaluation context and time.
6363 The default is to allow all connection requests.
6365 Specify a list of restrictions, separated by commas and/or whitespace.
6366 Continue long lines by starting the next line with whitespace.
6367 Restrictions are applied in the order as specified; the first
6368 restriction that matches wins.
6370 The following restrictions are specific to client hostname or
6371 client network address information.
6372 .IP "\fBcheck_ccert_access \fItype:table\fR\fR"
6373 Use the client certificate fingerprint as lookup key for the
6374 specified \fBaccess\fR(5) database; with Postfix version 2.2, also require that
6375 the SMTP client certificate is verified successfully.
6376 The fingerprint digest algorithm is configurable via the
6377 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
6378 Postfix version 2.5). This feature is available with Postfix version
6380 .IP "\fBcheck_client_access \fItype:table\fR\fR"
6381 Search the specified access database for the client hostname,
6382 parent domains, client IP address, or networks obtained by stripping
6383 least significant octets. See the \fBaccess\fR(5) manual page for details.
6384 .IP "\fBcheck_reverse_client_hostname_access \fItype:table\fR\fR"
6385 Search the specified access database for the unverified reverse
6386 client hostname, parent domains, client IP address, or networks
6387 obtained by stripping least significant octets. See the \fBaccess\fR(5)
6388 manual page for details. Note: a result of "OK" is not allowed for
6389 safety reasons. Instead, use DUNNO in order to exclude specific
6390 hosts from blacklists. This feature is available in Postfix 2.6
6392 .IP "\fBpermit_inet_interfaces\fR"
6393 Permit the request when the client IP address matches
6395 .IP "\fBpermit_mynetworks\fR"
6396 Permit the request when the client IP address matches any
6397 network or network address listed in $mynetworks.
6398 .IP "\fBpermit_sasl_authenticated\fR"
6399 Permit the request when the client is successfully
6400 authenticated via the RFC 4954 (AUTH) protocol.
6401 .IP "\fBpermit_tls_all_clientcerts\fR"
6402 Permit the request when the remote SMTP client certificate is
6403 verified successfully. This option must be used only if a special
6404 CA issues the certificates and only this CA is listed as trusted
6405 CA, otherwise all clients with a recognized certificate would be
6406 allowed to relay. This feature is available with Postfix version 2.2.
6407 .IP "\fBpermit_tls_clientcerts\fR"
6408 Permit the request when the remote SMTP client certificate
6409 fingerprint is listed in $relay_clientcerts.
6410 The fingerprint digest algorithm is configurable via the
6411 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
6412 Postfix version 2.5). This feature is available with Postfix version
6414 .IP "\fBreject_rbl_client \fIrbl_domain=d.d.d.d\fR\fR"
6415 Reject the request when the reversed client network address is
6416 listed with the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR
6417 (Postfix version 2.1 and later only). If no "\fI=d.d.d.d\fR" is
6418 specified, reject the request when the reversed client network
6419 address is listed with any A record under \fIrbl_domain\fR.
6421 The maps_rbl_reject_code parameter specifies the response code for
6422 rejected requests (default: 554), the default_rbl_reply parameter
6423 specifies the default server reply, and the rbl_reply_maps parameter
6424 specifies tables with server replies indexed by \fIrbl_domain\fR.
6425 This feature is available in Postfix 2.0 and later.
6426 .IP "\fBreject_rhsbl_client \fIrbl_domain=d.d.d.d\fR\fR"
6427 Reject the request when the client hostname is listed with the
6428 A record "\fId.d.d.d\fR" under \fIrbl_domain\fR (Postfix version
6429 2.1 and later only). If no "\fI=d.d.d.d\fR" is specified, reject
6430 the request when the client hostname is listed with
6431 any A record under \fIrbl_domain\fR. See the reject_rbl_client
6432 description above for additional RBL related configuration parameters.
6433 This feature is available in Postfix 2.0 and later.
6434 .IP "\fBreject_unknown_client_hostname\fR (with Postfix < 2.3: reject_unknown_client)"
6435 Reject the request when 1) the client IP address->name mapping
6436 fails, 2) the name->address mapping fails, or 3) the name->address
6437 mapping does not match the client IP address.
6440 stronger restriction than the reject_unknown_reverse_client_hostname
6441 feature, which triggers only under condition 1) above.
6444 unknown_client_reject_code parameter specifies the response code
6445 for rejected requests (default: 450). The reply is always 450 in
6446 case the address->name or name->address lookup failed due to
6447 a temporary problem.
6448 .IP "\fBreject_unknown_reverse_client_hostname\fR"
6449 Reject the request when the client IP address has no address->name
6452 This is a weaker restriction than the
6453 reject_unknown_client_hostname feature, which requires not only
6454 that the address->name and name->address mappings exist, but
6455 also that the two mappings reproduce the client IP address.
6457 The unknown_client_reject_code parameter specifies the response
6458 code for rejected requests (default: 450). The reply is always 450
6459 in case the address->name lookup failed due to a temporary
6462 This feature is available in Postfix 2.3 and
6465 In addition, you can use any of the following
6466 generic restrictions. These restrictions are applicable in
6467 any SMTP command context.
6468 .IP "\fBcheck_policy_service \fIservername\fR\fR"
6469 Query the specified policy server. See the SMTPD_POLICY_README
6470 document for details. This feature is available in Postfix 2.1
6473 Defer the request. The client is told to try again later. This
6474 restriction is useful at the end of a restriction list, to make
6475 the default policy explicit.
6477 The defer_code parameter specifies
6478 the SMTP server reply code (default: 450).
6479 .IP "\fBdefer_if_permit\fR"
6480 Defer the request if some later restriction would result in an
6481 explicit or implicit PERMIT action. This is useful when a blacklisting
6482 feature fails due to a temporary problem. This feature is available
6483 in Postfix version 2.1 and later.
6484 .IP "\fBdefer_if_reject\fR"
6485 Defer the request if some later restriction would result in a
6486 REJECT action. This is useful when a whitelisting feature fails
6487 due to a temporary problem. This feature is available in Postfix
6488 version 2.1 and later.
6490 Permit the request. This restriction is useful at the end of
6491 a restriction list, to make the default policy explicit.
6492 .IP "\fBreject_multi_recipient_bounce\fR"
6493 Reject the request when the envelope sender is the null address,
6494 and the message has multiple envelope recipients. This usage has
6495 rare but legitimate applications: under certain conditions,
6496 multi-recipient mail that was posted with the DSN option NOTIFY=NEVER
6497 may be forwarded with the null sender address.
6499 Note: this restriction can only work reliably
6500 when used in smtpd_data_restrictions or
6501 smtpd_end_of_data_restrictions, because the total number of
6502 recipients is not known at an earlier stage of the SMTP conversation.
6503 Use at the RCPT stage will only reject the second etc. recipient.
6505 The multi_recipient_bounce_reject_code parameter specifies the
6506 response code for rejected requests (default: 550). This feature
6507 is available in Postfix 2.1 and later.
6508 .IP "\fBreject_plaintext_session\fR"
6509 Reject the request when the connection is not encrypted. This
6510 restriction should not be used before the client has had a chance
6511 to negotiate encryption with the AUTH or STARTTLS commands.
6513 The plaintext_reject_code parameter specifies the response
6514 code for rejected requests (default: 450). This feature is available
6515 in Postfix 2.3 and later.
6516 .IP "\fBreject_unauth_pipelining\fR"
6517 Reject the request when the client sends SMTP commands ahead
6518 of time where it is not allowed, or when the client sends SMTP
6519 commands ahead of time without knowing that Postfix actually supports
6520 ESMTP command pipelining. This stops mail from bulk mail software
6521 that improperly uses ESMTP command pipelining in order to speed up
6524 With Postfix 2.6 and later, the SMTP server sets a per-session
6525 flag whenever it detects illegal pipelining, including pipelined
6526 EHLO or HELO commands. The reject_unauth_pipelining feature simply
6527 tests whether the flag was set at any point in time during the
6530 With older Postfix versions, reject_unauth_pipelining checks
6531 the current status of the input read queue, and its usage is not
6532 recommended in contexts other than smtpd_data_restrictions.
6534 Reject the request. This restriction is useful at the end of
6535 a restriction list, to make the default policy explicit. The
6536 reject_code configuration parameter specifies the response code for
6537 rejected requests (default: 554).
6538 .IP "\fBsleep \fIseconds\fR\fR"
6539 Pause for the specified number of seconds and proceed with
6540 the next restriction in the list, if any. This may stop zombie
6545 /etc/postfix/main.cf:
6546 smtpd_client_restrictions =
6547 sleep 1, reject_unauth_pipelining
6548 smtpd_delay_reject = no
6552 This feature is available in Postfix 2.3.
6553 .IP "\fBwarn_if_reject\fR"
6554 Change the meaning of the next restriction, so that it logs
6555 a warning instead of rejecting a request (look for logfile records
6556 that contain "reject_warning"). This is useful for testing new
6557 restrictions in a "live" environment without risking unnecessary
6560 Other restrictions that are valid in this context:
6562 SMTP command specific restrictions that are described under
6563 the smtpd_helo_restrictions, smtpd_sender_restrictions or
6564 smtpd_recipient_restrictions parameters. When helo, sender or
6565 recipient restrictions are listed under smtpd_client_restrictions,
6566 they have effect only with "smtpd_delay_reject = yes", so that
6567 $smtpd_client_restrictions is evaluated at the time of the RCPT TO
6575 smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname
6579 .SH smtpd_data_restrictions (default: empty)
6580 Optional access restrictions that the Postfix SMTP server applies
6581 in the context of the SMTP DATA command.
6582 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6583 restriction lists" for a discussion of evaluation context and time.
6585 This feature is available in Postfix 2.0 and later.
6587 Specify a list of restrictions, separated by commas and/or whitespace.
6588 Continue long lines by starting the next line with whitespace.
6589 Restrictions are applied in the order as specified; the first
6590 restriction that matches wins.
6592 The following restrictions are valid in this context:
6594 Generic restrictions that can be used
6595 in any SMTP command context, described under smtpd_client_restrictions.
6597 SMTP command specific restrictions described under
6598 smtpd_client_restrictions, smtpd_helo_restrictions,
6599 smtpd_sender_restrictions or smtpd_recipient_restrictions.
6606 smtpd_data_restrictions = reject_unauth_pipelining
6607 smtpd_data_restrictions = reject_multi_recipient_bounce
6611 .SH smtpd_delay_open_until_valid_rcpt (default: yes)
6612 Postpone the start of an SMTP mail transaction until a valid
6613 RCPT TO command is received. Specify "no" to create a mail transaction
6614 as soon as the SMTP server receives a valid MAIL FROM command.
6616 With sites that reject lots of mail, the default setting reduces
6618 disk, CPU and memory resources. The downside is that rejected
6619 recipients are logged with NOQUEUE instead of a mail transaction
6620 ID. This complicates the logfile analysis of multi-recipient mail.
6622 This feature is available in Postfix 2.3 and later.
6623 .SH smtpd_delay_reject (default: yes)
6624 Wait until the RCPT TO command before evaluating
6625 $smtpd_client_restrictions, $smtpd_helo_restrictions and
6626 $smtpd_sender_restrictions, or wait until the ETRN command before
6627 evaluating $smtpd_client_restrictions and $smtpd_helo_restrictions.
6629 This feature is turned on by default because some clients apparently
6630 mis-behave when the Postfix SMTP server rejects commands before
6633 The default setting has one major benefit: it allows Postfix to log
6634 recipient address information when rejecting a client name/address
6635 or sender address, so that it is possible to find out whose mail
6637 .SH smtpd_discard_ehlo_keyword_address_maps (default: empty)
6638 Lookup tables, indexed by the remote SMTP client address, with
6639 case insensitive lists of EHLO keywords (pipelining, starttls, auth,
6640 etc.) that the SMTP server will not send in the EHLO response to a
6641 remote SMTP client. See smtpd_discard_ehlo_keywords for details.
6642 The table is not searched by hostname for robustness reasons.
6644 This feature is available in Postfix 2.2 and later.
6645 .SH smtpd_discard_ehlo_keywords (default: empty)
6646 A case insensitive list of EHLO keywords (pipelining, starttls,
6647 auth, etc.) that the SMTP server will not send in the EHLO response
6648 to a remote SMTP client.
6650 This feature is available in Postfix 2.2 and later.
6654 Specify the \fBsilent-discard\fR pseudo keyword to prevent
6655 this action from being logged.
6657 Use the smtpd_discard_ehlo_keyword_address_maps feature
6658 to discard EHLO keywords selectively.
6659 .SH smtpd_end_of_data_restrictions (default: empty)
6660 Optional access restrictions that the Postfix SMTP server
6661 applies in the context of the SMTP END-OF-DATA command.
6662 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6663 restriction lists" for a discussion of evaluation context and time.
6665 This feature is available in Postfix 2.2 and later.
6667 See smtpd_data_restrictions for syntax details.
6668 .SH smtpd_enforce_tls (default: no)
6669 Mandatory TLS: announce STARTTLS support to SMTP clients,
6670 and require that clients use TLS encryption. According to RFC 2487
6671 this MUST NOT be applied in case of a publicly-referenced SMTP
6672 server. This option is off by default and should be used only on
6675 Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes".
6677 Note 2: when invoked via "\fBsendmail -bs\fR", Postfix will never offer
6678 STARTTLS due to insufficient privileges to access the server private
6679 key. This is intended behavior.
6681 This feature is available in Postfix 2.2 and later. With
6682 Postfix 2.3 and later use smtpd_tls_security_level instead.
6683 .SH smtpd_error_sleep_time (default: 1s)
6684 With Postfix version 2.1 and later: the SMTP server response delay after
6685 a client has made more than $smtpd_soft_error_limit errors, and
6686 fewer than $smtpd_hard_error_limit errors, without delivering mail.
6688 With Postfix version 2.0 and earlier: the SMTP server delay before
6689 sending a reject (4xx or 5xx) response, when the client has made
6690 fewer than $smtpd_soft_error_limit errors without delivering
6692 .SH smtpd_etrn_restrictions (default: empty)
6693 Optional SMTP server access restrictions in the context of a client
6695 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6696 restriction lists" for a discussion of evaluation context and time.
6698 The Postfix ETRN implementation accepts only destinations that are
6699 eligible for the Postfix "fast flush" service. See the ETRN_README
6702 Specify a list of restrictions, separated by commas and/or whitespace.
6703 Continue long lines by starting the next line with whitespace.
6704 Restrictions are applied in the order as specified; the first
6705 restriction that matches wins.
6707 The following restrictions are specific to the domain name information
6708 received with the ETRN command.
6709 .IP "\fBcheck_etrn_access \fItype:table\fR\fR"
6710 Search the specified access database for the ETRN domain name
6711 or its parent domains. See the \fBaccess\fR(5) manual page for details.
6713 Other restrictions that are valid in this context:
6715 Generic restrictions that can be used
6716 in any SMTP command context, described under smtpd_client_restrictions.
6718 SMTP command specific restrictions described under
6719 smtpd_client_restrictions and smtpd_helo_restrictions.
6726 smtpd_etrn_restrictions = permit_mynetworks, reject
6730 .SH smtpd_expansion_filter (default: see "postconf -d" output)
6731 What characters are allowed in $name expansions of RBL reply
6732 templates. Characters not in the allowed set are replaced by "_".
6733 Use C like escapes to specify special characters such as whitespace.
6735 This parameter is not subjected to $parameter expansion.
6737 This feature is available in Postfix 2.0 and later.
6738 .SH smtpd_forbidden_commands (default: CONNECT, GET, POST)
6739 List of commands that causes the Postfix SMTP server to immediately
6740 terminate the session with a 221 code. This can be used to disconnect
6741 clients that obviously attempt to abuse the system. In addition to the
6742 commands listed in this parameter, commands that follow the "Label:"
6743 format of message headers will also cause a disconnect.
6745 This feature is available in Postfix 2.2 and later.
6746 .SH smtpd_hard_error_limit (default: normal: 20, stress: 1)
6747 The maximal number of errors a remote SMTP client is allowed to
6748 make without delivering mail. The Postfix SMTP server disconnects
6749 when the limit is exceeded. Normally the default limit is 20, but
6750 it changes under overload to just 1 with Postfix 2.6 and later.
6751 .SH smtpd_helo_required (default: no)
6752 Require that a remote SMTP client introduces itself at the beginning
6753 of an SMTP session with the HELO or EHLO command.
6760 smtpd_helo_required = yes
6764 .SH smtpd_helo_restrictions (default: empty)
6765 Optional restrictions that the Postfix SMTP server applies in the
6766 context of the SMTP HELO command.
6767 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6768 restriction lists" for a discussion of evaluation context and time.
6770 The default is to permit everything.
6772 Specify a list of restrictions, separated by commas and/or whitespace.
6773 Continue long lines by starting the next line with whitespace.
6774 Restrictions are applied in the order as specified; the first
6775 restriction that matches wins.
6777 The following restrictions are specific to the hostname information
6778 received with the HELO or EHLO command.
6779 .IP "\fBcheck_helo_access \fItype:table\fR\fR"
6780 Search the specified \fBaccess\fR(5) database for the HELO or EHLO
6781 hostname or parent domains, and execute the corresponding action.
6782 .IP "\fBcheck_helo_mx_access \fItype:table\fR\fR"
6783 Search the specified \fBaccess\fR(5) database for the MX hosts for
6784 the HELO or EHLO hostname, and execute the corresponding action.
6785 Note: a result of "OK" is not allowed for safety reasons. Instead,
6786 use DUNNO in order to exclude specific hosts from blacklists. This
6787 feature is available in Postfix 2.1 and later.
6788 .IP "\fBcheck_helo_ns_access \fItype:table\fR\fR"
6789 Search the specified \fBaccess\fR(5) database for the DNS servers
6790 for the HELO or EHLO hostname, and execute the corresponding action.
6791 Note: a result of "OK" is not allowed for safety reasons. Instead,
6792 use DUNNO in order to exclude specific hosts from blacklists. This
6793 feature is available in Postfix 2.1 and later.
6794 .IP "\fBreject_invalid_helo_hostname\fR (with Postfix < 2.3: reject_invalid_hostname)"
6795 Reject the request when the HELO or EHLO hostname syntax is
6798 The invalid_hostname_reject_code specifies the response
6799 code for rejected requests (default: 501).
6800 .IP "\fBreject_non_fqdn_helo_hostname\fR (with Postfix < 2.3: reject_non_fqdn_hostname)"
6801 Reject the request when the HELO or EHLO hostname is not in
6802 fully-qualified domain form, as required by the RFC.
6805 non_fqdn_reject_code parameter specifies the response code for
6806 rejected requests (default: 504).
6807 .IP "\fBreject_rhsbl_helo \fIrbl_domain=d.d.d.d\fR\fR"
6808 Reject the request when the HELO or EHLO hostname hostname is
6809 listed with the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR
6810 (Postfix version 2.1 and later only). If no "\fI=d.d.d.d\fR" is
6811 specified, reject the request when the HELO or EHLO hostname is
6812 listed with any A record under \fIrbl_domain\fR. See the
6813 reject_rbl_client description for additional RBL related configuration
6814 parameters. This feature is available in Postfix 2.0 and later.
6815 .IP "\fBreject_unknown_helo_hostname\fR (with Postfix < 2.3: reject_unknown_hostname)"
6816 Reject the request when the HELO or EHLO hostname has no DNS A
6819 The unknown_hostname_reject_code parameter
6820 specifies the numerical response code for rejected requests (default:
6823 The unknown_helo_hostname_tempfail_action parameter
6824 specifies the action after a temporary DNS error (default:
6827 Other restrictions that are valid in this context:
6829 Generic restrictions that can be used
6830 in any SMTP command context, described under smtpd_client_restrictions.
6832 Client hostname or network address specific restrictions
6833 described under smtpd_client_restrictions.
6835 SMTP command specific restrictions described under
6836 smtpd_sender_restrictions or smtpd_recipient_restrictions. When
6837 sender or recipient restrictions are listed under smtpd_helo_restrictions,
6838 they have effect only with "smtpd_delay_reject = yes", so that
6839 $smtpd_helo_restrictions is evaluated at the time of the RCPT TO
6847 smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname
6848 smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname
6852 .SH smtpd_history_flush_threshold (default: 100)
6853 The maximal number of lines in the Postfix SMTP server command history
6854 before it is flushed upon receipt of EHLO, RSET, or end of DATA.
6855 .SH smtpd_junk_command_limit (default: normal: 100, stress: 1)
6856 The number of junk commands (NOOP, VRFY, ETRN or RSET) that a remote
6857 SMTP client can send before the Postfix SMTP server starts to
6858 increment the error counter with each junk command. The junk
6859 command count is reset after mail is delivered. See also the
6860 smtpd_error_sleep_time and smtpd_soft_error_limit configuration
6861 parameters. Normally the default limit is 100, but it changes under
6862 overload to just 1 with Postfix 2.6 and later.
6863 .SH smtpd_milters (default: empty)
6864 A list of Milter (mail filter) applications for new mail that
6865 arrives via the Postfix \fBsmtpd\fR(8) server. See the MILTER_README
6866 document for details.
6868 This feature is available in Postfix 2.3 and later.
6869 .SH smtpd_noop_commands (default: empty)
6870 List of commands that the Postfix SMTP server replies to with "250
6871 Ok", without doing any syntax checks and without changing state.
6872 This list overrides any commands built into the Postfix SMTP server.
6873 .SH smtpd_null_access_lookup_key (default: <>)
6874 The lookup key to be used in SMTP \fBaccess\fR(5) tables instead of the
6875 null sender address.
6876 .SH smtpd_peername_lookup (default: yes)
6877 Attempt to look up the remote SMTP client hostname, and verify that
6878 the name matches the client IP address. A client name is set to
6879 "unknown" when it cannot be looked up or verified, or when name
6880 lookup is disabled. Turning off name lookup reduces delays due to
6881 DNS lookup and increases the maximal inbound delivery rate.
6883 This feature is available in Postfix 2.3 and later.
6884 .SH smtpd_policy_service_max_idle (default: 300s)
6885 The time after which an idle SMTPD policy service connection is
6888 This feature is available in Postfix 2.1 and later.
6889 .SH smtpd_policy_service_max_ttl (default: 1000s)
6890 The time after which an active SMTPD policy service connection is
6893 This feature is available in Postfix 2.1 and later.
6894 .SH smtpd_policy_service_timeout (default: 100s)
6895 The time limit for connecting to, writing to or receiving from a
6896 delegated SMTPD policy server.
6898 This feature is available in Postfix 2.1 and later.
6899 .SH smtpd_proxy_ehlo (default: $myhostname)
6900 How the Postfix SMTP server announces itself to the proxy filter.
6901 By default, the Postfix hostname is used.
6903 This feature is available in Postfix 2.1 and later.
6904 .SH smtpd_proxy_filter (default: empty)
6905 The hostname and TCP port of the mail filtering proxy server.
6906 The proxy receives all mail from the Postfix SMTP server, and is
6907 supposed to give the result to another Postfix SMTP server process.
6909 Specify "host:port" or "inet:host:port" for a TCP endpoint, or
6910 "unix:pathname" for a UNIX-domain endpoint. The host can be specified
6911 as an IP address or as a symbolic name; no MX lookups are done.
6912 When no "host" or "host:" are specified, the local machine is
6913 assumed. Pathname interpretation is relative to the Postfix queue
6916 This feature is available in Postfix 2.1 and later.
6918 The "inet:" and "unix:" prefixes are available in Postfix 2.3
6920 .SH smtpd_proxy_timeout (default: 100s)
6921 The time limit for connecting to a proxy filter and for sending or
6922 receiving information. When a connection fails the client gets a
6923 generic error message while more detailed information is logged to
6926 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6927 The default time unit is s (seconds).
6929 This feature is available in Postfix 2.1 and later.
6930 .SH smtpd_recipient_limit (default: 1000)
6931 The maximal number of recipients that the Postfix SMTP server
6932 accepts per message delivery request.
6933 .SH smtpd_recipient_overshoot_limit (default: 1000)
6934 The number of recipients that a remote SMTP client can send in
6935 excess of the limit specified with $smtpd_recipient_limit, before
6936 the Postfix SMTP server increments the per-session error count
6937 for each excess recipient.
6938 .SH smtpd_recipient_restrictions (default: permit_mynetworks, reject_unauth_destination)
6939 The access restrictions that the Postfix SMTP server applies in
6940 the context of the RCPT TO command.
6941 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
6942 restriction lists" for a discussion of evaluation context and time.
6944 By default, the Postfix SMTP server accepts:
6946 Mail from clients whose IP address matches $mynetworks, or:
6948 Mail to remote destinations that match $relay_domains, except
6949 for addresses that contain sender-specified routing
6950 (user@elsewhere@domain), or:
6952 Mail to local destinations that match $inet_interfaces
6953 or $proxy_interfaces, $mydestination, $virtual_alias_domains, or
6954 $virtual_mailbox_domains.
6956 IMPORTANT: If you change this parameter setting, you must specify
6957 at least one of the following restrictions. Otherwise Postfix will
6958 refuse to receive mail:
6964 reject, defer, defer_if_permit, reject_unauth_destination
6970 Specify a list of restrictions, separated by commas and/or whitespace.
6971 Continue long lines by starting the next line with whitespace.
6972 Restrictions are applied in the order as specified; the first
6973 restriction that matches wins.
6975 The following restrictions are specific to the recipient address
6976 that is received with the RCPT TO command.
6977 .IP "\fBcheck_recipient_access \fItype:table\fR\fR"
6978 Search the specified \fBaccess\fR(5) database for the resolved RCPT
6979 TO address, domain, parent domains, or localpart@, and execute the
6980 corresponding action.
6981 .IP "\fBcheck_recipient_mx_access \fItype:table\fR\fR"
6982 Search the specified \fBaccess\fR(5) database for the MX hosts for
6983 the RCPT TO domain, and execute the corresponding action. Note:
6984 a result of "OK" is not allowed for safety reasons. Instead, use
6985 DUNNO in order to exclude specific hosts from blacklists. This
6986 feature is available in Postfix 2.1 and later.
6987 .IP "\fBcheck_recipient_ns_access \fItype:table\fR\fR"
6988 Search the specified \fBaccess\fR(5) database for the DNS servers
6989 for the RCPT TO domain, and execute the corresponding action.
6990 Note: a result of "OK" is not allowed for safety reasons. Instead,
6991 use DUNNO in order to exclude specific hosts from blacklists. This
6992 feature is available in Postfix 2.1 and later.
6993 .IP "\fBpermit_auth_destination\fR"
6994 Permit the request when one of the following is true:
6996 Postfix is mail forwarder: the resolved RCPT TO domain matches
6997 $relay_domains or a subdomain thereof, and the address contains no
6998 sender-specified routing (user@elsewhere@domain),
7000 Postfix is the final destination: the resolved RCPT TO domain
7001 matches $mydestination, $inet_interfaces, $proxy_interfaces,
7002 $virtual_alias_domains, or $virtual_mailbox_domains, and the address
7003 contains no sender-specified routing (user@elsewhere@domain).
7004 .IP "\fBpermit_mx_backup\fR"
7005 Permit the request when the local mail system is backup MX for
7006 the RCPT TO domain, or when the domain is an authorized destination
7007 (see permit_auth_destination for definition).
7009 Safety: permit_mx_backup does not accept addresses that have
7010 sender-specified routing information (example: user@elsewhere@domain).
7012 Safety: permit_mx_backup can be vulnerable to mis-use when
7013 access is not restricted with permit_mx_backup_networks.
7015 Safety: as of Postfix version 2.3, permit_mx_backup no longer
7016 accepts the address when the local mail system is primary MX for
7017 the recipient domain. Exception: permit_mx_backup accepts the address
7018 when it specifies an authorized destination (see permit_auth_destination
7021 Limitation: mail may be rejected in case of a temporary DNS
7022 lookup problem with Postfix prior to version 2.0.
7023 .IP "\fBreject_non_fqdn_recipient\fR"
7024 Reject the request when the RCPT TO address is not in
7025 fully-qualified domain form, as required by the RFC.
7028 non_fqdn_reject_code parameter specifies the response code for
7029 rejected requests (default: 504).
7030 .IP "\fBreject_rhsbl_recipient \fIrbl_domain=d.d.d.d\fR\fR"
7031 Reject the request when the RCPT TO domain is listed with the
7032 A record "\fId.d.d.d\fR" under \fIrbl_domain\fR (Postfix version
7033 2.1 and later only). If no "\fI=d.d.d.d\fR" is specified, reject
7034 the request when the RCPT TO domain is listed with
7035 any A record under \fIrbl_domain\fR.
7037 The maps_rbl_reject_code
7038 parameter specifies the response code for rejected requests (default:
7039 554); the default_rbl_reply parameter specifies the default server
7040 reply; and the rbl_reply_maps parameter specifies tables with server
7041 replies indexed by \fIrbl_domain\fR. This feature is available
7042 in Postfix version 2.0 and later.
7043 .IP "\fBreject_unauth_destination\fR"
7044 Reject the request unless one of the following is true:
7046 Postfix is mail forwarder: the resolved RCPT TO domain matches
7047 $relay_domains or a subdomain thereof, and contains no sender-specified
7048 routing (user@elsewhere@domain),
7050 Postfix is the final destination: the resolved RCPT TO domain
7051 matches $mydestination, $inet_interfaces, $proxy_interfaces,
7052 $virtual_alias_domains, or $virtual_mailbox_domains, and contains
7053 no sender-specified routing (user@elsewhere@domain).
7054 The relay_domains_reject_code parameter specifies the response
7055 code for rejected requests (default: 554).
7056 .IP "\fBreject_unknown_recipient_domain\fR"
7057 Reject the request when Postfix is not final destination for
7058 the recipient domain, and the RCPT TO domain has no DNS A or MX
7059 record, or when it has a malformed MX record such as a record with
7060 a zero-length MX hostname (Postfix version 2.3 and later).
7063 unknown_address_reject_code parameter specifies the numerical
7064 response code for rejected requests (default: 450). The response
7065 is always 450 in case of a temporary DNS error.
7068 unknown_address_tempfail_action parameter specifies the action
7069 after a temporary DNS error (default: defer_if_permit).
7070 .IP "\fBreject_unlisted_recipient\fR (with Postfix version 2.0: check_recipient_maps)"
7071 Reject the request when the RCPT TO address is not listed in
7072 the list of valid recipients for its domain class. See the
7073 smtpd_reject_unlisted_recipient parameter description for details.
7074 This feature is available in Postfix 2.1 and later.
7075 .IP "\fBreject_unverified_recipient\fR"
7076 Reject the request when mail to the RCPT TO address is known
7077 to bounce, or when the recipient address destination is not reachable.
7078 Address verification information is managed by the \fBverify\fR(8) server;
7079 see the ADDRESS_VERIFICATION_README file for details.
7082 unverified_recipient_reject_code parameter specifies the numerical
7083 response code when an address is known to bounce (default: 450,
7084 change into 550 when you are confident that it is safe to do so).
7086 The unverified_recipient_defer_code parameter specifies the
7087 numerical response code when an address probe failed due to a
7088 temporary problem (default: 450).
7091 unverified_recipient_tempfail_action parameter specifies the action
7092 after addres probe failure due to a temporary problem (default:
7095 This feature is available in Postfix 2.1
7098 Other restrictions that are valid in this context:
7100 Generic restrictions that can be used
7101 in any SMTP command context, described under smtpd_client_restrictions.
7103 SMTP command specific restrictions described under
7104 smtpd_client_restrictions, smtpd_helo_restrictions and
7105 smtpd_sender_restrictions.
7112 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
7116 .SH smtpd_reject_unlisted_recipient (default: yes)
7117 Request that the Postfix SMTP server rejects mail for unknown
7118 recipient addresses, even when no explicit reject_unlisted_recipient
7119 access restriction is specified. This prevents the Postfix queue
7120 from filling up with undeliverable MAILER-DAEMON messages.
7122 The recipient domain matches $mydestination, $inet_interfaces
7123 or $proxy_interfaces, but the recipient is not listed in
7124 $local_recipient_maps, and $local_recipient_maps is not null.
7126 The recipient domain matches $virtual_alias_domains but the
7127 recipient is not listed in $virtual_alias_maps.
7129 The recipient domain matches $virtual_mailbox_domains but the
7130 recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps
7133 The recipient domain matches $relay_domains but the recipient
7134 is not listed in $relay_recipient_maps, and $relay_recipient_maps
7137 This feature is available in Postfix 2.1 and later.
7138 .SH smtpd_reject_unlisted_sender (default: no)
7139 Request that the Postfix SMTP server rejects mail from unknown
7140 sender addresses, even when no explicit reject_unlisted_sender
7141 access restriction is specified. This can slow down an explosion
7142 of forged mail from worms or viruses.
7144 The sender domain matches $mydestination, $inet_interfaces or
7145 $proxy_interfaces, but the sender is not listed in
7146 $local_recipient_maps, and $local_recipient_maps is not null.
7148 The sender domain matches $virtual_alias_domains but the sender
7149 is not listed in $virtual_alias_maps.
7151 The sender domain matches $virtual_mailbox_domains but the
7152 sender is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps
7155 The sender domain matches $relay_domains but the sender is
7156 not listed in $relay_recipient_maps, and $relay_recipient_maps is
7159 This feature is available in Postfix 2.1 and later.
7160 .SH smtpd_restriction_classes (default: empty)
7161 User-defined aliases for groups of access restrictions. The aliases
7162 can be specified in smtpd_recipient_restrictions etc., and on the
7163 right-hand side of a Postfix \fBaccess\fR(5) table.
7165 One major application is for implementing per-recipient UCE control.
7166 See the RESTRICTION_CLASS_README document for other examples.
7167 .SH smtpd_sasl_application_name (default: smtpd)
7168 The application name that the Postfix SMTP server uses for SASL
7169 server initialization. This
7170 controls the name of the SASL configuration file. The default value
7171 is \fBsmtpd\fR, corresponding to a SASL configuration file named
7174 This feature is available in Postfix 2.1 and 2.2. With Postfix 2.3
7175 it was renamed to smtpd_sasl_path.
7176 .SH smtpd_sasl_auth_enable (default: no)
7177 Enable SASL authentication in the Postfix SMTP server. By default,
7178 the Postfix SMTP server does not use authentication.
7180 If a remote SMTP client is authenticated, the permit_sasl_authenticated
7181 access restriction can be used to permit relay access, like this:
7187 smtpd_recipient_restrictions =
7188 permit_mynetworks, permit_sasl_authenticated, ...
7194 To reject all SMTP connections from unauthenticated clients,
7195 specify "smtpd_delay_reject = yes" (which is the default) and use:
7201 smtpd_client_restrictions = permit_sasl_authenticated, reject
7207 See the SASL_README file for SASL configuration and operation details.
7208 .SH smtpd_sasl_authenticated_header (default: no)
7209 Report the SASL authenticated user name in the \fBsmtpd\fR(8) Received
7212 This feature is available in Postfix 2.3 and later.
7213 .SH smtpd_sasl_exceptions_networks (default: empty)
7214 What remote SMTP clients the Postfix SMTP server will not offer
7217 Some clients (Netscape 4 at least) have a bug that causes them to
7218 require a login and password whenever AUTH is offered, whether it's
7219 necessary or not. To work around this, specify, for example,
7220 $mynetworks to prevent Postfix from offering AUTH to local clients.
7222 Specify a list of network/netmask patterns, separated by commas
7223 and/or whitespace. The mask specifies the number of bits in the
7224 network part of a host address. You can also "/file/name" or
7225 "type:table" patterns. A "/file/name" pattern is replaced by its
7226 contents; a "type:table" lookup table is matched when a table entry
7227 matches a lookup string (the lookup result is ignored). Continue
7228 long lines by starting the next line with whitespace. Specify
7229 "!pattern" to exclude an address or network block from the list.
7230 The form "!/file/name" is supported only in Postfix version 2.4 and
7233 Note: IP version 6 address information must be specified inside
7234 [] in the smtpd_sasl_exceptions_networks value, and in
7235 files specified with "/file/name". IP version 6 addresses contain
7236 the ":" character, and would otherwise be confused with a "type:table"
7244 smtpd_sasl_exceptions_networks = $mynetworks
7249 This feature is available in Postfix 2.1 and later.
7250 .SH smtpd_sasl_local_domain (default: empty)
7251 The name of the Postfix SMTP server's local SASL authentication
7254 By default, the local authentication realm name is the null string.
7261 smtpd_sasl_local_domain = $mydomain
7262 smtpd_sasl_local_domain = $myhostname
7266 .SH smtpd_sasl_path (default: smtpd)
7267 Implementation-specific information that the Postfix SMTP server
7269 the SASL plug-in implementation that is selected with
7270 \fBsmtpd_sasl_type\fR. Typically this specifies the name of a
7271 configuration file or rendezvous point.
7273 This feature is available in Postfix 2.3 and later. In earlier
7274 releases it was called \fBsmtpd_sasl_application_name\fR.
7275 .SH smtpd_sasl_security_options (default: noanonymous)
7276 Postfix SMTP server SASL security options; as of Postfix 2.3
7277 the list of available
7278 features depends on the SASL server implementation that is selected
7279 with \fBsmtpd_sasl_type\fR.
7281 The following security features are defined for the \fBcyrus\fR
7282 server SASL implementation:
7284 Restrict what authentication mechanisms the Postfix SMTP server
7285 will offer to the client. The list of available authentication
7286 mechanisms is system dependent.
7288 Specify zero or more of the following:
7289 .IP "\fBnoplaintext\fR"
7290 Disallow methods that use plaintext passwords.
7291 .IP "\fBnoactive\fR"
7292 Disallow methods subject to active (non-dictionary) attack.
7293 .IP "\fBnodictionary\fR"
7294 Disallow methods subject to passive (dictionary) attack.
7295 .IP "\fBnoanonymous\fR"
7296 Disallow methods that allow anonymous authentication.
7297 .IP "\fBforward_secrecy\fR"
7298 Only allow methods that support forward secrecy (Dovecot only).
7299 .IP "\fBmutual_auth\fR"
7300 Only allow methods that provide mutual authentication (not available
7301 with Cyrus SASL version 1).
7303 By default, the Postfix SMTP server accepts plaintext passwords but
7304 not anonymous logins.
7306 Warning: it appears that clients try authentication methods in the
7307 order as advertised by the server (e.g., PLAIN ANONYMOUS CRAM-MD5)
7308 which means that if you disable plaintext passwords, clients will
7309 log in anonymously, even when they should be able to use CRAM-MD5.
7310 So, if you disable plaintext logins, disable anonymous logins too.
7311 Postfix treats anonymous login as no authentication.
7318 smtpd_sasl_security_options = noanonymous, noplaintext
7322 .SH smtpd_sasl_tls_security_options (default: $smtpd_sasl_security_options)
7323 The SASL authentication security options that the Postfix SMTP
7324 server uses for TLS encrypted SMTP sessions.
7326 This feature is available in Postfix 2.2 and later.
7327 .SH smtpd_sasl_type (default: cyrus)
7328 The SASL plug-in type that the Postfix SMTP server should use
7329 for authentication. The available types are listed with the
7330 "\fBpostconf -a\fR" command.
7332 This feature is available in Postfix 2.3 and later.
7333 .SH smtpd_sender_login_maps (default: empty)
7334 Optional lookup table with the SASL login names that own sender
7335 (MAIL FROM) addresses.
7337 Specify zero or more "type:table" lookup tables. With lookups from
7338 indexed files such as DB or DBM, or from networked tables such as
7339 NIS, LDAP or SQL, the following search operations are done with a
7340 sender address of \fIuser@domain\fR:
7341 .IP "1) \fIuser@domain\fR"
7342 This table lookup is always done and has the highest precedence.
7344 This table lookup is done only when the \fIdomain\fR part of the
7345 sender address matches $myorigin, $mydestination, $inet_interfaces
7346 or $proxy_interfaces.
7347 .IP "3) \fI@domain\fR"
7348 This table lookup is done last and has the lowest precedence.
7350 In all cases the result of table lookup must be either "not found"
7351 or a list of SASL login names separated by comma and/or whitespace.
7352 .SH smtpd_sender_restrictions (default: empty)
7353 Optional restrictions that the Postfix SMTP server applies in the
7354 context of the MAIL FROM command.
7355 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
7356 restriction lists" for a discussion of evaluation context and time.
7358 The default is to permit everything.
7360 Specify a list of restrictions, separated by commas and/or whitespace.
7361 Continue long lines by starting the next line with whitespace.
7362 Restrictions are applied in the order as specified; the first
7363 restriction that matches wins.
7365 The following restrictions are specific to the sender address
7366 received with the MAIL FROM command.
7367 .IP "\fBcheck_sender_access \fItype:table\fR\fR"
7368 Search the specified \fBaccess\fR(5) database for the MAIL FROM
7369 address, domain, parent domains, or localpart@, and execute the
7370 corresponding action.
7371 .IP "\fBcheck_sender_mx_access \fItype:table\fR\fR"
7372 Search the specified \fBaccess\fR(5) database for the MX hosts for
7373 the MAIL FROM address, and execute the corresponding action. Note:
7374 a result of "OK" is not allowed for safety reasons. Instead, use
7375 DUNNO in order to exclude specific hosts from blacklists. This
7376 feature is available in Postfix 2.1 and later.
7377 .IP "\fBcheck_sender_ns_access \fItype:table\fR\fR"
7378 Search the specified \fBaccess\fR(5) database for the DNS servers
7379 for the MAIL FROM address, and execute the corresponding action.
7380 Note: a result of "OK" is not allowed for safety reasons. Instead,
7381 use DUNNO in order to exclude specific hosts from blacklists. This
7382 feature is available in Postfix 2.1 and later.
7383 .IP "\fBreject_authenticated_sender_login_mismatch\fR"
7384 Enforces the reject_sender_login_mismatch restriction for
7385 authenticated clients only. This feature is available in
7386 Postfix version 2.1 and later.
7387 .IP "\fBreject_non_fqdn_sender\fR"
7388 Reject the request when the MAIL FROM address is not in
7389 fully-qualified domain form, as required by the RFC.
7392 non_fqdn_reject_code parameter specifies the response code for
7393 rejected requests (default: 504).
7394 .IP "\fBreject_rhsbl_sender \fIrbl_domain=d.d.d.d\fR\fR"
7395 Reject the request when the MAIL FROM domain is listed with
7396 the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR (Postfix
7397 version 2.1 and later only). If no "\fI=d.d.d.d\fR" is specified,
7398 reject the request when the MAIL FROM domain is
7399 listed with any A record under \fIrbl_domain\fR.
7402 maps_rbl_reject_code parameter specifies the response code for
7403 rejected requests (default: 554); the default_rbl_reply parameter
7404 specifies the default server reply; and the rbl_reply_maps parameter
7405 specifies tables with server replies indexed by \fIrbl_domain\fR.
7406 This feature is available in Postfix 2.0 and later.
7407 .IP "\fBreject_sender_login_mismatch\fR"
7408 Reject the request when $smtpd_sender_login_maps specifies an
7409 owner for the MAIL FROM address, but the client is not (SASL) logged
7410 in as that MAIL FROM address owner; or when the client is (SASL)
7411 logged in, but the client login name doesn't own the MAIL FROM
7412 address according to $smtpd_sender_login_maps.
7413 .IP "\fBreject_unauthenticated_sender_login_mismatch\fR"
7414 Enforces the reject_sender_login_mismatch restriction for
7415 unauthenticated clients only. This feature is available in
7416 Postfix version 2.1 and later.
7417 .IP "\fBreject_unknown_sender_domain\fR"
7418 Reject the request when Postfix is not final destination for
7419 the sender address, and the MAIL FROM address has no DNS A or MX
7420 record, or when it has a malformed MX record such as a record with
7421 a zero-length MX hostname (Postfix version 2.3 and later).
7424 unknown_address_reject_code parameter specifies the numerical
7425 response code for rejected requests (default: 450). The response
7426 is always 450 in case of a temporary DNS error.
7429 unknown_address_tempfail_action parameter specifies the action
7430 after a temporary DNS error (default: defer_if_permit).
7431 .IP "\fBreject_unlisted_sender\fR"
7432 Reject the request when the MAIL FROM address is not listed in
7433 the list of valid recipients for its domain class. See the
7434 smtpd_reject_unlisted_sender parameter description for details.
7435 This feature is available in Postfix 2.1 and later.
7436 .IP "\fBreject_unverified_sender\fR"
7437 Reject the request when mail to the MAIL FROM address is known to
7438 bounce, or when the sender address destination is not reachable.
7439 Address verification information is managed by the \fBverify\fR(8) server;
7440 see the ADDRESS_VERIFICATION_README file for details.
7443 unverified_sender_reject_code parameter specifies the numerical
7444 response code when an address is known to bounce (default: 450,
7445 change into 550 when you are confident that it is safe to do so).
7447 The unverified_sender_defer_code specifies the numerical response
7448 code when an address address probe failed due to a temporary problem
7451 The unverified_sender_tempfail_action parameter
7452 specifies the action after address probe failure due to a temporary
7453 problem (default: defer_if_permit).
7455 This feature is available
7456 in Postfix 2.1 and later.
7458 Other restrictions that are valid in this context:
7460 Generic restrictions that can be used
7461 in any SMTP command context, described under smtpd_client_restrictions.
7463 SMTP command specific restrictions described under
7464 smtpd_client_restrictions and smtpd_helo_restrictions.
7466 SMTP command specific restrictions described under
7467 smtpd_recipient_restrictions. When recipient restrictions are listed
7468 under smtpd_sender_restrictions, they have effect only with
7469 "smtpd_delay_reject = yes", so that $smtpd_sender_restrictions is
7470 evaluated at the time of the RCPT TO command.
7477 smtpd_sender_restrictions = reject_unknown_sender_domain
7478 smtpd_sender_restrictions = reject_unknown_sender_domain,
7479 check_sender_access hash:/etc/postfix/access
7483 .SH smtpd_soft_error_limit (default: 10)
7484 The number of errors a remote SMTP client is allowed to make without
7485 delivering mail before the Postfix SMTP server slows down all its
7488 With Postfix version 2.1 and later, the Postfix SMTP server
7489 delays all responses by $smtpd_error_sleep_time seconds.
7491 With Postfix versions 2.0 and earlier, the Postfix SMTP
7492 server delays all responses by (number of errors) seconds.
7493 .SH smtpd_starttls_timeout (default: 300s)
7494 The time limit for Postfix SMTP server write and read operations
7495 during TLS startup and shutdown handshake procedures.
7497 This feature is available in Postfix 2.2 and later.
7498 .SH smtpd_timeout (default: normal: 300s, stress: 10s)
7499 The time limit for sending a Postfix SMTP server response and for
7500 receiving a remote SMTP client request. Normally the default limit
7501 is 300s, but it changes under overload to just 10s with Postfix 2.6
7504 Note: if you set SMTP time limits to very large values you may have
7505 to update the global ipc_timeout parameter.
7507 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
7508 The default time unit is s (seconds).
7509 .SH smtpd_tls_CAfile (default: empty)
7510 A file containing (PEM format) CA certificates of root CAs trusted
7511 to sign either remote SMTP client certificates or intermediate CA
7512 certificates. These are loaded into memory before the \fBsmtpd\fR(8) server
7513 enters the chroot jail. If the number of trusted roots is large, consider
7514 using smtpd_tls_CApath instead, but note that the latter directory must
7515 be present in the chroot jail if the \fBsmtpd\fR(8) server is chrooted. This
7516 file may also be used to augment the server certificate trust chain,
7517 but it is best to include all the required certificates directly in the
7518 server certificate file.
7520 By default (see smtpd_tls_ask_ccert), client certificates are not
7521 requested, and smtpd_tls_CAfile should remain empty. If you do make use
7522 of client certificates, the distinguished names (DNs) of the certificate
7523 authorities listed in smtpd_tls_CAfile are sent to the remote SMTP client
7524 in the client certificate request message. MUAs with multiple client
7525 certificates may use the list of preferred certificate authorities
7526 to select the correct client certificate. You may want to put your
7527 "preferred" CA or CAs in this file, and install other trusted CAs in
7535 smtpd_tls_CAfile = /etc/postfix/CAcert.pem
7540 This feature is available in Postfix 2.2 and later.
7541 .SH smtpd_tls_CApath (default: empty)
7542 A directory containing (PEM format) CA certificates of root CAs
7543 trusted to sign either remote SMTP client certificates or intermediate CA
7544 certificates. Do not forget to create the necessary "hash" links with,
7545 for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". To use
7546 smtpd_tls_CApath in chroot mode, this directory (or a copy) must be
7547 inside the chroot jail.
7549 By default (see smtpd_tls_ask_ccert), client certificates are
7550 not requested, and smtpd_tls_CApath should remain empty. In contrast
7551 to smtp_tls_CAfile, DNs of certificate authorities installed
7552 in $smtpd_tls_CApath are not included in the client certificate
7553 request message. MUAs with multiple client certificates may use the
7554 list of preferred certificate authorities to select the correct
7555 client certificate. You may want to put your "preferred" CA or
7556 CAs in $smtp_tls_CAfile, and install the remaining trusted CAs in
7564 smtpd_tls_CApath = /etc/postfix/certs
7569 This feature is available in Postfix 2.2 and later.
7570 .SH smtpd_tls_always_issue_session_ids (default: yes)
7571 Force the Postfix SMTP server to issue a TLS session id, even
7572 when TLS session caching is turned off (smtpd_tls_session_cache_database
7573 is empty). This behavior is compatible with Postfix < 2.3.
7575 With Postfix 2.3 and later the Postfix SMTP server can disable
7576 session id generation when TLS session caching is turned off. This
7577 keeps clients from caching sessions that almost certainly cannot
7580 By default, the Postfix SMTP server always generates TLS session
7581 ids. This works around a known defect in mail client applications
7582 such as MS Outlook, and may also prevent interoperability issues
7590 smtpd_tls_always_issue_session_ids = no
7595 This feature is available in Postfix 2.3 and later.
7596 .SH smtpd_tls_ask_ccert (default: no)
7597 Ask a remote SMTP client for a client certificate. This
7598 information is needed for certificate based mail relaying with,
7599 for example, the permit_tls_clientcerts feature.
7601 Some clients such as Netscape will either complain if no
7602 certificate is available (for the list of CAs in $smtpd_tls_CAfile)
7603 or will offer multiple client certificates to choose from. This
7604 may be annoying, so this option is "off" by default.
7606 This feature is available in Postfix 2.2 and later.
7607 .SH smtpd_tls_auth_only (default: no)
7608 When TLS encryption is optional in the Postfix SMTP server, do
7609 not announce or accept SASL authentication over unencrypted
7612 This feature is available in Postfix 2.2 and later.
7613 .SH smtpd_tls_ccert_verifydepth (default: 9)
7614 The verification depth for remote SMTP client certificates. A
7615 depth of 1 is sufficient if the issuing CA is listed in a local CA
7618 The default verification depth is 9 (the OpenSSL default) for
7619 compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
7620 the default value was 5, but the limit was not actually enforced. If
7621 you have set this to a lower non-default value, certificates with longer
7622 trust chains may now fail to verify. Certificate chains with 1 or 2
7623 CAs are common, deeper chains are more rare and any number between 5
7624 and 9 should suffice in practice. You can choose a lower number if,
7625 for example, you trust certificates directly signed by an issuing CA
7626 but not any CAs it delegates to.
7628 This feature is available in Postfix 2.2 and later.
7629 .SH smtpd_tls_cert_file (default: empty)
7630 File with the Postfix SMTP server RSA certificate in PEM format.
7631 This file may also contain the Postfix SMTP server private RSA key.
7633 Public Internet MX hosts without certificates signed by a "reputable"
7634 CA must generate, and be prepared to present to most clients, a
7635 self-signed or private-CA signed certificate. The client will not be
7636 able to authenticate the server, but unless it is running Postfix 2.3 or
7637 similar software, it will still insist on a server certificate.
7639 For servers that are \fBnot\fR public Internet MX hosts, Postfix
7640 2.3 supports configurations with no certificates. This entails the
7641 use of just the anonymous TLS ciphers, which are not supported by
7642 typical SMTP clients. Since such clients will not, as a rule, fall
7643 back to plain text after a TLS handshake failure, the server will
7644 be unable to receive email from TLS enabled clients. To avoid
7645 accidental configurations with no certificates, Postfix 2.3 enables
7646 certificate-less operation only when the administrator explicitly
7647 sets "smtpd_tls_cert_file = none". This ensures that new Postfix
7648 configurations will not accidentally run with no certificates.
7650 Both RSA and DSA certificates are supported. When both types
7651 are present, the cipher used determines which certificate will be
7652 presented to the client. For Netscape and OpenSSL clients without
7653 special cipher choices the RSA certificate is preferred.
7655 To enable a remote SMTP client to verify the Postfix SMTP server
7656 certificate, the issuing CA certificates must be made available to the
7657 client. You should include the required certificates in the server
7658 certificate file, the server certificate first, then the issuing
7659 CA(s) (bottom-up order).
7661 Example: the certificate for "server.example.com" was issued by
7662 "intermediate CA" which itself has a certificate of "root CA".
7663 Create the server.pem file with "cat server_cert.pem intermediate_CA.pem
7664 root_CA.pem > server.pem".
7666 If you also want to verify client certificates issued by these
7667 CAs, you can add the CA certificates to the smtpd_tls_CAfile, in which
7668 case it is not necessary to have them in the smtpd_tls_cert_file or
7669 smtpd_tls_dcert_file.
7671 A certificate supplied here must be usable as an SSL server certificate
7672 and hence pass the "openssl verify -purpose sslserver ..." test.
7679 smtpd_tls_cert_file = /etc/postfix/server.pem
7684 This feature is available in Postfix 2.2 and later.
7685 .SH smtpd_tls_cipherlist (default: empty)
7686 Obsolete Postfix < 2.3 control for the Postfix SMTP server TLS
7687 cipher list. It is easy to create inter-operability problems by choosing
7688 a non-default cipher list. Do not use a non-default TLS cipherlist for
7689 MX hosts on the public Internet. Clients that begin the TLS handshake,
7690 but are unable to agree on a common cipher, may not be able to send any
7691 email to the SMTP server. Using a restricted cipher list may be more
7692 appropriate for a dedicated MSA or an internal mailhub, where one can
7693 exert some control over the TLS software and settings of the connecting
7696 \fBNote:\fR do not use "" quotes around the parameter value.
7698 This feature is available with Postfix version 2.2. It is not used with
7699 Postfix 2.3 and later; use smtpd_tls_mandatory_ciphers instead.
7700 .SH smtpd_tls_ciphers (default: export)
7701 The minimum TLS cipher grade that the Postfix SMTP server
7702 will use with opportunistic TLS encryption. Cipher types listed in
7703 smtpd_tls_exclude_ciphers are excluded from the base definition of
7704 the selected cipher grade. The default value "export" ensures maximum
7705 inter-operability. Because encryption is optional, stronger controls
7706 are not appropriate, and this setting SHOULD NOT be changed unless the
7707 change is essential.
7709 When TLS is mandatory the cipher grade is chosen via the
7710 smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax
7717 smtpd_tls_ciphers = export
7722 This feature is available in Postfix 2.6 and later. With earlier Postfix
7723 releases only the smtpd_tls_mandatory_ciphers parameter is implemented,
7724 and opportunistic TLS always uses "export" or better (i.e. all) ciphers.
7725 .SH smtpd_tls_dcert_file (default: empty)
7726 File with the Postfix SMTP server DSA certificate in PEM format.
7727 This file may also contain the Postfix SMTP server private DSA key.
7729 See the discussion under smtpd_tls_cert_file for more details.
7736 smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
7741 This feature is available in Postfix 2.2 and later.
7742 .SH smtpd_tls_dh1024_param_file (default: empty)
7743 File with DH parameters that the Postfix SMTP server should
7744 use with EDH ciphers.
7746 Instead of using the exact same parameter sets as distributed
7747 with other TLS packages, it is more secure to generate your own
7748 set of parameters with something like the following command:
7754 openssl gendh -out /etc/postfix/dh_1024.pem -2 1024
7760 Your actual source for entropy may differ. Some systems have
7761 /dev/random; on other system you may consider using the "Entropy
7762 Gathering Daemon EGD", available at http://egd.sourceforge.net/
7769 smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem
7774 This feature is available with Postfix version 2.2.
7775 .SH smtpd_tls_dh512_param_file (default: empty)
7776 File with DH parameters that the Postfix SMTP server should
7777 use with EDH ciphers.
7779 See also the discussion under the smtpd_tls_dh1024_param_file
7780 configuration parameter.
7787 smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
7792 This feature is available with Postfix version 2.2.
7793 .SH smtpd_tls_dkey_file (default: $smtpd_tls_dcert_file)
7794 File with the Postfix SMTP server DSA private key in PEM format.
7795 This file may be combined with the Postfix SMTP server DSA certificate
7796 file specified with $smtpd_tls_dcert_file.
7798 The private key must be accessible without a pass-phrase, i.e. it
7799 must not be encrypted. File permissions should grant read-only
7800 access to the system superuser account ("root"), and no access
7803 This feature is available in Postfix 2.2 and later.
7804 .SH smtpd_tls_eccert_file (default: empty)
7805 File with the Postfix SMTP server ECDSA certificate in PEM format.
7806 This file may also contain the Postfix SMTP server private ECDSA key.
7808 See the discussion under smtpd_tls_cert_file for more details.
7815 smtpd_tls_eccert_file = /etc/postfix/ecdsa-scert.pem
7820 This feature is available in Postfix 2.6 and later, when Postfix is
7821 compiled and linked with OpenSSL 0.9.9 or later.
7822 .SH smtpd_tls_eckey_file (default: $smtpd_tls_eccert_file)
7823 File with the Postfix SMTP server ECDSA private key in PEM format.
7824 This file may be combined with the Postfix SMTP server ECDSA certificate
7825 file specified with $smtpd_tls_eccert_file.
7827 The private key must be accessible without a pass-phrase, i.e. it
7828 must not be encrypted. File permissions should grant read-only
7829 access to the system superuser account ("root"), and no access
7832 This feature is available in Postfix 2.6 and later, when Postfix is
7833 compiled and linked with OpenSSL 0.9.9 or later.
7834 .SH smtpd_tls_eecdh_grade (default: see "postconf -d" output)
7835 The Postfix SMTP server security grade for ephemeral elliptic-curve
7836 Diffie-Hellman (EECDH) key exchange.
7838 The available choices are:
7840 Don't use EECDH. Ciphers based on EECDH key
7841 exchange will be disabled. This is the default in official Postfix
7842 releases (mail_version = major.minor.patchlevel).
7844 Use EECDH with approximately 128
7845 bits of security at a reasonable computational cost. This is the
7846 current best-practice trade-off between security and computational
7847 efficiency. This is the default in Postfix snapshot releases
7848 (mail_version = major.minor-releasedate).
7850 Use EECDH with approximately 192 bits of
7851 security at computational cost that is approximately twice as high
7852 as 128 bit strength ECC. Barring significant progress in attacks on
7853 elliptic curve crypto-systems, the "strong" curve is sufficient for most
7856 This feature is available in Postfix 2.6 and later, when it is
7857 compiled and linked with OpenSSL 0.9.9 or later.
7858 .SH smtpd_tls_exclude_ciphers (default: empty)
7859 List of ciphers or cipher types to exclude from the SMTP server
7860 cipher list at all TLS security levels. Excluding valid ciphers
7861 can create interoperability problems. DO NOT exclude ciphers unless it
7862 is essential to do so. This is not an OpenSSL cipherlist; it is a simple
7863 list separated by whitespace and/or commas. The elements are a single
7864 cipher, or one or more "+" separated cipher properties, in which case
7865 only ciphers matching \fBall\fR the properties are excluded.
7867 Examples (some of these will cause problems):
7873 smtpd_tls_exclude_ciphers = aNULL
7874 smtpd_tls_exclude_ciphers = MD5, DES
7875 smtpd_tls_exclude_ciphers = DES+MD5
7876 smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
7877 smtpd_tls_exclude_ciphers = kEDH+aRSA
7883 The first setting disables anonymous ciphers. The next setting
7884 disables ciphers that use the MD5 digest algorithm or the (single) DES
7885 encryption algorithm. The next setting disables ciphers that use MD5 and
7886 DES together. The next setting disables the two ciphers "AES256-SHA"
7887 and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
7888 key exchange with RSA authentication.
7890 This feature is available in Postfix 2.3 and later.
7891 .SH smtpd_tls_fingerprint_digest (default: md5)
7892 The message digest algorithm used to construct client-certificate
7893 fingerprints for \fBcheck_ccert_access\fR and
7894 \fBpermit_tls_clientcerts\fR. The default algorithm is \fBmd5\fR,
7895 for backwards compatibility with Postfix releases prior to 2.5.
7897 The best practice algorithm is now \fBsha1\fR. Recent advances in hash
7898 function cryptanalysis have led to md5 being deprecated in favor of sha1.
7899 However, as long as there are no known "second pre-image" attacks
7900 against md5, its use in this context can still be considered safe.
7902 While additional digest algorithms are often available with OpenSSL's
7903 libcrypto, only those used by libssl in SSL cipher suites are available to
7904 Postfix. For now this means just md5 or sha1.
7906 To find the fingerprint of a specific certificate file, with a
7907 specific digest algorithm, run:
7913 $ openssl x509 -noout -fingerprint -\fIdigest\fR -in \fIcertfile\fR.pem
7919 The text to the right of "=" sign is the desired fingerprint.
7926 $ openssl x509 -noout -fingerprint -sha1 -in cert.pem
7927 SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
7933 Example: client-certificate access table, with sha1 fingerprints:
7939 /etc/postfix/main.cf:
7940 smtpd_tls_fingerprint_digest = sha1
7941 smtpd_client_restrictions =
7942 check_ccert_access hash:/etc/postfix/access,
7950 /etc/postfix/access:
7951 # Action folded to next line...
7952 AF:88:7C:AD:51:95:6F:36:96:F6:01:FB:2E:48:CD:AB:49:25:A2:3B
7954 85:16:78:FD:73:6E:CE:70:E0:31:5F:0D:3C:C8:6D:C4:2C:24:59:E1
7955 permit_auth_destination
7961 This feature is available in Postfix 2.5 and later.
7962 .SH smtpd_tls_key_file (default: $smtpd_tls_cert_file)
7963 File with the Postfix SMTP server RSA private key in PEM format.
7964 This file may be combined with the Postfix SMTP server RSA certificate
7965 file specified with $smtpd_tls_cert_file.
7967 The private key must be accessible without a pass-phrase, i.e. it
7968 must not be encrypted. File permissions should grant read-only
7969 access to the system superuser account ("root"), and no access
7971 .SH smtpd_tls_loglevel (default: 0)
7972 Enable additional Postfix SMTP server logging of TLS activity.
7973 Each logging level also includes the information that is logged at
7974 a lower logging level.
7976 0 Disable logging of TLS activity.
7978 1 Log TLS handshake and certificate information.
7980 2 Log levels during TLS negotiation.
7982 3 Log hexadecimal and ASCII dump of TLS negotiation
7985 4 Also log hexadecimal and ASCII dump of complete
7986 transmission after STARTTLS.
7988 Use "smtpd_tls_loglevel = 3" only in case of problems. Use of
7989 loglevel 4 is strongly discouraged.
7991 This feature is available in Postfix 2.2 and later.
7992 .SH smtpd_tls_mandatory_ciphers (default: medium)
7993 The minimum TLS cipher grade that the Postfix SMTP server
7994 will use with mandatory TLS encryption. Cipher types listed in
7995 smtpd_tls_mandatory_exclude_ciphers or smtpd_tls_exclude_ciphers are
7996 excluded from the base definition of the selected cipher grade. See
7997 smtpd_tls_ciphers for cipher controls that apply to opportunistic
8000 The following cipher grades are supported:
8002 Enable the mainstream "EXPORT" grade or better OpenSSL ciphers.
8003 This is the most appropriate setting for public MX hosts, and is always
8004 used with opportunistic TLS encryption. The underlying cipherlist
8005 is specified via the tls_export_cipherlist configuration parameter,
8006 which you are strongly encouraged to not change. The default value
8007 of tls_export_cipherlist includes anonymous ciphers, but these are
8008 automatically filtered out if the server is configured to ask for
8009 client certificates. If you must always exclude anonymous ciphers,
8010 set "smtpd_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers
8011 only when TLS is enforced, set "smtpd_tls_mandatory_exclude_ciphers =
8014 Enable the mainstream "LOW" grade or better OpenSSL ciphers. The
8015 underlying cipherlist is specified via the tls_low_cipherlist
8016 configuration parameter, which you are strongly encouraged to
8017 not change. The default value of tls_low_cipherlist includes
8018 anonymous ciphers, but these are automatically filtered out if the
8019 server is configured to ask for client certificates. If you must
8020 always exclude anonymous ciphers, set "smtpd_tls_exclude_ciphers =
8021 aNULL". To exclude anonymous ciphers only when TLS is enforced, set
8022 "smtpd_tls_mandatory_exclude_ciphers = aNULL".
8024 Enable the mainstream "MEDIUM" grade or better OpenSSL ciphers. These
8025 are essentially the 128-bit or stronger ciphers. This is the default
8026 minimum strength for mandatory TLS encryption. MSAs that enforce
8027 TLS and have clients that do not support any "MEDIUM" or "HIGH"
8028 grade ciphers, may need to configure a weaker ("low" or "export")
8029 minimum cipher grade. The underlying cipherlist is specified via the
8030 tls_medium_cipherlist configuration parameter, which you are strongly
8031 encouraged to not change. The default value of tls_medium_cipherlist
8032 includes anonymous ciphers, but these are automatically filtered out if
8033 the server is configured to ask for client certificates. If you must
8034 always exclude anonymous ciphers, set "smtpd_tls_exclude_ciphers =
8035 aNULL". To exclude anonymous ciphers only when TLS is enforced, set
8036 "smtpd_tls_mandatory_exclude_ciphers = aNULL".
8038 Enable only the mainstream "HIGH" grade OpenSSL ciphers. The
8039 underlying cipherlist is specified via the tls_high_cipherlist
8040 configuration parameter, which you are strongly encouraged to
8041 not change. The default value of tls_high_cipherlist includes
8042 anonymous ciphers, but these are automatically filtered out if the
8043 server is configured to ask for client certificates. If you must
8044 always exclude anonymous ciphers, set "smtpd_tls_exclude_ciphers =
8045 aNULL". To exclude anonymous ciphers only when TLS is enforced, set
8046 "smtpd_tls_mandatory_exclude_ciphers = aNULL".
8048 Enable only the "NULL" OpenSSL ciphers, these provide authentication
8049 without encryption. This setting is only appropriate in the rare
8050 case that all clients are prepared to use NULL ciphers (not normally
8051 enabled in TLS clients). The underlying cipherlist is specified via the
8052 tls_null_cipherlist configuration parameter, which you are strongly
8053 encouraged to not change. The default value of tls_null_cipherlist
8054 excludes anonymous ciphers (OpenSSL 0.9.8 has NULL ciphers that offer
8055 data integrity without encryption or authentication).
8057 This feature is available in Postfix 2.3 and later.
8058 .SH smtpd_tls_mandatory_exclude_ciphers (default: empty)
8059 Additional list of ciphers or cipher types to exclude from the
8060 SMTP server cipher list at mandatory TLS security levels. This list
8061 works in addition to the exclusions listed with smtpd_tls_exclude_ciphers
8062 (see there for syntax details).
8064 This feature is available in Postfix 2.3 and later.
8065 .SH smtpd_tls_mandatory_protocols (default: SSLv3, TLSv1)
8066 The SSL/TLS protocols accepted by the Postfix SMTP server with
8067 mandatory TLS encryption. If the list is empty, the server supports all
8068 available SSL/TLS protocol versions. A non-empty value is a list
8070 names separated by whitespace, commas or colons. The supported protocol
8071 names are "SSLv2", "SSLv3" and "TLSv1", and are not case sensitive.
8073 With Postfix >= 2.5 the parameter syntax is expanded to support
8074 protocol exclusions. One can now explicitly exclude SSLv2 by setting
8075 "smtpd_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and
8076 SSLv3 set "smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing
8077 the protocols to include, rather than protocols to exclude, is still
8078 supported, use the form you find more intuitive.
8080 Since SSL version 2 has known protocol weaknesses and is now
8081 deprecated, the default setting excludes "SSLv2". This means that
8082 by default, SSL version 2 will not be used at the "encrypt" security
8090 smtpd_tls_mandatory_protocols = TLSv1
8091 # Alternative form with Postfix >= 2.5:
8092 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
8097 This feature is available in Postfix 2.3 and later.
8098 .SH smtpd_tls_protocols (default: empty)
8099 List of TLS protocols that the Postfix SMTP server will exclude
8100 or include with opportunistic TLS encryption. This parameter SHOULD be
8101 left at its default empty value, allowing all protocols to be used with
8104 In main.cf the values are separated by whitespace, commas or
8105 colons. An empty value means allow all protocols. The valid protocol
8106 names, (see \\fBfBSSL_get_version\fR(3)\fR), are "SSLv2", "SSLv3" and
8107 "TLSv1". In smtp_tls_policy_maps table entries, "protocols" attribute
8108 values are separated by a colon.
8110 To include a protocol list its name, to exclude it, prefix the name
8111 with a "!" character. To exclude SSLv2 even for opportunistic TLS set
8112 "smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set
8113 "smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to
8114 include, is supported, but not recommended. OpenSSL provides no mechanisms
8115 for excluding protocols not known at compile-time. If Postfix is linked
8116 against an OpenSSL library that supports additional protocol versions,
8117 they cannot be excluded using either syntax.
8123 smtpd_tls_protocols = !SSLv2
8128 This feature is available in Postfix 2.6 and later.
8129 .SH smtpd_tls_received_header (default: no)
8130 Request that the Postfix SMTP server produces Received: message
8131 headers that include information about the protocol and cipher used,
8132 as well as the client CommonName and client certificate issuer
8133 CommonName. This is disabled by default, as the information may
8134 be modified in transit through other mail servers. Only information
8135 that was recorded by the final destination can be trusted.
8137 This feature is available in Postfix 2.2 and later.
8138 .SH smtpd_tls_req_ccert (default: no)
8139 With mandatory TLS encryption, require a trusted remote SMTP client
8140 certificate in order to allow TLS connections to proceed. This
8141 option implies "smtpd_tls_ask_ccert = yes".
8143 When TLS encryption is optional, this setting is ignored with
8144 a warning written to the mail log.
8146 This feature is available in Postfix 2.2 and later.
8147 .SH smtpd_tls_security_level (default: empty)
8148 The SMTP TLS security level for the Postfix SMTP server; when
8149 a non-empty value is specified, this overrides the obsolete parameters
8150 smtpd_use_tls and smtpd_enforce_tls. This parameter is ignored with
8151 "smtpd_tls_wrappermode = yes".
8153 Specify one of the following security levels:
8155 TLS will not be used.
8157 Opportunistic TLS: announce STARTTLS support
8158 to SMTP clients, but do not require that clients use TLS encryption.
8160 Mandatory TLS encryption: announce
8161 STARTTLS support to SMTP clients, and require that clients use TLS
8162 encryption. According to RFC 2487 this MUST NOT be applied in case
8163 of a publicly-referenced SMTP server. Instead, this option should
8164 be used only on dedicated servers.
8166 Note 1: the "fingerprint", "verify" and "secure" levels are not
8168 The Postfix SMTP server logs a warning and uses "encrypt" instead.
8169 To verify SMTP client certificates, see TLS_README for a discussion
8170 of the smtpd_tls_ask_ccert, smtpd_tls_req_ccert, and permit_tls_clientcerts
8173 Note 2: The parameter setting "smtpd_tls_security_level =
8174 encrypt" implies "smtpd_tls_auth_only = yes".
8176 Note 3: when invoked via "sendmail -bs", Postfix will never
8177 offer STARTTLS due to insufficient privileges to access the server
8178 private key. This is intended behavior.
8180 This feature is available in Postfix 2.3 and later.
8181 .SH smtpd_tls_session_cache_database (default: empty)
8182 Name of the file containing the optional Postfix SMTP server
8183 TLS session cache. Specify a database type that supports enumeration,
8184 such as \fBbtree\fR or \fBsdbm\fR; there is no need to support
8185 concurrent access. The file is created if it does not exist. The \fBsmtpd\fR(8)
8186 daemon does not use this parameter directly, rather the cache is
8187 implemented indirectly in the \fBtlsmgr\fR(8) daemon. This means that
8188 per-smtpd-instance master.cf overrides of this parameter are not
8189 effective. Note, that each of the cache databases supported by \fBtlsmgr\fR(8)
8190 daemon: $smtpd_tls_session_cache_database, $smtp_tls_session_cache_database
8191 (and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to be
8192 stored separately. It is not at this time possible to store multiple
8193 caches in a single database.
8195 Note: \fBdbm\fR databases are not suitable. TLS
8196 session objects are too large.
8198 As of version 2.5, Postfix no longer uses root privileges when
8199 opening this file. The file should now be stored under the Postfix-owned
8200 data_directory. As a migration aid, an attempt to open the file
8201 under a non-Postfix directory is redirected to the Postfix-owned
8202 data_directory, and a warning is logged.
8209 smtpd_tls_session_cache_database = btree:/var/db/postfix/smtpd_scache
8214 This feature is available in Postfix 2.2 and later.
8215 .SH smtpd_tls_session_cache_timeout (default: 3600s)
8216 The expiration time of Postfix SMTP server TLS session cache
8217 information. A cache cleanup is performed periodically
8218 every $smtpd_tls_session_cache_timeout seconds. As with
8219 $smtpd_tls_session_cache_database, this parameter is implemented in the
8220 \fBtlsmgr\fR(8) daemon and therefore per-smtpd-instance master.cf overrides
8223 This feature is available in Postfix 2.2 and later.
8224 .SH smtpd_tls_wrappermode (default: no)
8225 Run the Postfix SMTP server in the non-standard "wrapper" mode,
8226 instead of using the STARTTLS command.
8228 If you want to support this service, enable a special port in
8229 master.cf, and specify "-o smtpd_tls_wrappermode=yes" on the SMTP
8230 server's command line. Port 465 (smtps) was once chosen for this
8233 This feature is available in Postfix 2.2 and later.
8234 .SH smtpd_use_tls (default: no)
8235 Opportunistic TLS: announce STARTTLS support to SMTP clients,
8236 but do not require that clients use TLS encryption.
8238 Note: when invoked via "\fBsendmail -bs\fR", Postfix will never offer
8239 STARTTLS due to insufficient privileges to access the server private
8240 key. This is intended behavior.
8242 This feature is available in Postfix 2.2 and later. With
8243 Postfix 2.3 and later use smtpd_tls_security_level instead.
8244 .SH soft_bounce (default: no)
8245 Safety net to keep mail queued that would otherwise be returned to
8246 the sender. This parameter disables locally-generated bounces,
8247 and prevents the Postfix SMTP server from rejecting mail permanently,
8248 by changing 5xx reply codes into 4xx. However, soft_bounce is no
8249 cure for address rewriting mistakes or mail routing mistakes.
8260 .SH stale_lock_time (default: 500s)
8261 The time after which a stale exclusive mailbox lockfile is removed.
8262 This is used for delivery to file or mailbox.
8264 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
8265 The default time unit is s (seconds).
8266 .SH stress (default: empty)
8267 This feature is documented in the STRESS_README document.
8269 This feature is available in Postfix 2.5 and later.
8270 .SH strict_7bit_headers (default: no)
8271 Reject mail with 8-bit text in message headers. This blocks mail
8272 from poorly written applications.
8274 This feature should not be enabled on a general purpose mail server,
8275 because it is likely to reject legitimate email.
8277 This feature is available in Postfix 2.0 and later.
8278 .SH strict_8bitmime (default: no)
8279 Enable both strict_7bit_headers and strict_8bitmime_body.
8281 This feature should not be enabled on a general purpose mail server,
8282 because it is likely to reject legitimate email.
8284 This feature is available in Postfix 2.0 and later.
8285 .SH strict_8bitmime_body (default: no)
8286 Reject 8-bit message body text without 8-bit MIME content encoding
8287 information. This blocks mail from poorly written applications.
8289 Unfortunately, this also rejects majordomo approval requests when
8290 the included request contains valid 8-bit MIME mail, and it rejects
8291 bounces from mailers that do not MIME encapsulate 8-bit content
8292 (for example, bounces from qmail or from old versions of Postfix).
8294 This feature should not be enabled on a general purpose mail server,
8295 because it is likely to reject legitimate email.
8297 This feature is available in Postfix 2.0 and later.
8298 .SH strict_mailbox_ownership (default: yes)
8299 Defer delivery when a mailbox file is not owned by its recipient.
8300 The default setting is not backwards compatible.
8302 This feature is available in Postfix 2.5.3 and later.
8303 .SH strict_mime_encoding_domain (default: no)
8304 Reject mail with invalid Content-Transfer-Encoding: information
8305 for the message/* or multipart/* MIME content types. This blocks
8306 mail from poorly written software.
8308 This feature should not be enabled on a general purpose mail server,
8309 because it will reject mail after a single violation.
8311 This feature is available in Postfix 2.0 and later.
8312 .SH strict_rfc821_envelopes (default: no)
8313 Require that addresses received in SMTP MAIL FROM and RCPT TO
8314 commands are enclosed with <>, and that those addresses do
8315 not contain RFC 822 style comments or phrases. This stops mail
8316 from poorly written software.
8318 By default, the Postfix SMTP server accepts RFC 822 syntax in MAIL
8319 FROM and RCPT TO addresses.
8320 .SH sun_mailtool_compatibility (default: no)
8321 Obsolete SUN mailtool compatibility feature. Instead, use
8322 "mailbox_delivery_lock = dotlock".
8323 .SH swap_bangpath (default: yes)
8324 Enable the rewriting of "site!user" into "user@site". This is
8325 necessary if your machine is connected to UUCP networks. It is
8328 Note: with Postfix version 2.2, message header address rewriting
8329 happens only when one of the following conditions is true:
8331 The message is received with the Postfix \fBsendmail\fR(1) command,
8333 The message is received from a network client that matches
8334 $local_header_rewrite_clients,
8336 The message is received from the network, and the
8337 remote_header_rewrite_domain parameter specifies a non-empty value.
8339 To get the behavior before Postfix version 2.2, specify
8340 "local_header_rewrite_clients = static:all".
8351 .SH syslog_facility (default: mail)
8352 The syslog facility of Postfix logging. Specify a facility as
8353 defined in syslog.\fBconf\fR(5). The default facility is "mail".
8355 Warning: a non-default syslog_facility setting takes effect only
8356 after a Postfix process has completed initialization. Errors during
8357 process initialization will be logged with the default facility.
8358 Examples are errors while parsing the command line arguments, and
8359 errors while accessing the Postfix main.cf configuration file.
8360 .SH syslog_name (default: see "postconf -d" output)
8361 The mail system name that is prepended to the process name in syslog
8362 records, so that "smtpd" becomes, for example, "postfix/smtpd".
8364 Warning: a non-default syslog_name setting takes effect only after
8365 a Postfix process has completed initialization. Errors during
8366 process initialization will be logged with the default name. Examples
8367 are errors while parsing the command line arguments, and errors
8368 while accessing the Postfix main.cf configuration file.
8369 .SH tcp_windowsize (default: 0)
8370 An optional workaround for routers that break TCP window scaling.
8371 Specify a value > 0 and < 65536 to enable this feature. With
8372 Postfix TCP servers (\fBsmtpd\fR(8), \fBqmqpd\fR(8)), this feature is implemented
8373 by the Postfix \fBmaster\fR(8) daemon.
8375 To change this parameter without stopping Postfix, you need to
8376 first terminate all Postfix TCP servers:
8382 # postconf -e master_service_disable=inet
8389 This immediately terminates all processes that accept network
8390 connections. Next, you enable Postfix TCP servers with the updated
8391 tcp_windowsize setting:
8397 # postconf -e tcp_windowsize=65535 master_service_disable=
8404 If you skip these steps with a running Postfix system, then the
8405 tcp_windowsize change will work only for Postfix TCP clients (\fBsmtp\fR(8),
8408 This feature is available in Postfix 2.6 and later.
8409 .SH tls_daemon_random_bytes (default: 32)
8410 The number of pseudo-random bytes that an \fBsmtp\fR(8) or \fBsmtpd\fR(8)
8411 process requests from the \fBtlsmgr\fR(8) server in order to seed its
8412 internal pseudo random number generator (PRNG). The default of 32
8413 bytes (equivalent to 256 bits) is sufficient to generate a 128bit
8414 (or 168bit) session key.
8416 This feature is available in Postfix 2.2 and later.
8417 .SH tls_eecdh_strong_curve (default: prime256v1)
8418 The elliptic curve used by the SMTP server for sensibly strong
8419 ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
8420 server when "smtpd_tls_eecdh_grade = strong". The phrase "sensibly
8421 strong" means approximately 128-bit security based on best known
8422 attacks. The selected curve must be implemented by OpenSSL (as
8423 reported by \fBecparam\fR(1) with the "-list_curves" option) and be one
8424 of the curves listed in Section 5.1.1 of RFC 4492. You should not
8425 generally change this setting.
8427 This default curve is specified in NSA "Suite B" Cryptography
8428 (see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for
8429 information classified as SECRET.
8431 Note: elliptic curve names are poorly standardized; different
8432 standards groups are assigning different names to the same underlying
8433 curves. The curve with the X9.62 name "prime256v1" is also known
8434 under the SECG name "secp256r1", but OpenSSL does not recognize the
8437 This feature is available in Postfix 2.6 and later, when it is
8438 compiled and linked with OpenSSL 0.9.9 or later.
8439 .SH tls_eecdh_ultra_curve (default: secp384r1)
8440 The elliptic curve used by the SMTP server for maximally strong
8441 ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
8442 server when "smtpd_tls_eecdh_grade = ultra". The phrase "maximally
8443 strong" means approximately 192-bit security based on best known attacks.
8444 This additional strength comes at a significant computational cost, most
8445 users should instead set "smtpd_tls_eecdh_grade = strong". The selected
8446 curve must be implemented by OpenSSL (as reported by \fBecparam\fR(1) with the
8447 "-list_curves" option) and be one of the curves listed in Section 5.1.1
8448 of RFC 4492. You should not generally change this setting.
8450 This default "ultra" curve is specified in NSA "Suite B" Cryptography
8451 (see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for information
8452 classified as TOP SECRET.
8454 This feature is available in Postfix 2.6 and later, when it is
8455 compiled and linked with OpenSSL 0.9.9 or later.
8456 .SH tls_export_cipherlist (default: ALL:+RC4:@STRENGTH)
8457 The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This
8458 defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers,
8459 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is
8460 the cipherlist for the opportunistic ("may") TLS client security
8461 level and is the default cipherlist for the SMTP server. You are
8462 strongly encouraged to not change this setting.
8464 This feature is available in Postfix 2.3 and later.
8465 .SH tls_high_cipherlist (default: ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH)
8466 The OpenSSL cipherlist for "HIGH" grade ciphers. This defines
8467 the meaning of the "high" setting in smtpd_tls_mandatory_ciphers,
8468 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are
8469 strongly encouraged to not change this setting.
8471 This feature is available in Postfix 2.3 and later.
8472 .SH tls_low_cipherlist (default: ALL:!EXPORT:+RC4:@STRENGTH)
8473 The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines
8474 the meaning of the "low" setting in smtpd_tls_mandatory_ciphers,
8475 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are
8476 strongly encouraged to not change this setting.
8478 This feature is available in Postfix 2.3 and later.
8479 .SH tls_medium_cipherlist (default: ALL:!EXPORT:!LOW:+RC4:@STRENGTH)
8480 The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This
8481 defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers,
8482 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is
8483 the default cipherlist for mandatory TLS encryption in the TLS
8484 client (with anonymous ciphers disabled when verifying server
8485 certificates). You are strongly encouraged to not change this
8488 This feature is available in Postfix 2.3 and later.
8489 .SH tls_null_cipherlist (default: eNULL:!aNULL)
8490 The OpenSSL cipherlist for "NULL" grade ciphers that provide
8491 authentication without encryption. This defines the meaning of the "null"
8492 setting in smtpd_mandatory_tls_ciphers, smtp_tls_mandatory_ciphers and
8493 lmtp_tls_mandatory_ciphers. You are strongly encouraged to not
8494 change this setting.
8496 This feature is available in Postfix 2.3 and later.
8497 .SH tls_random_bytes (default: 32)
8498 The number of bytes that \fBtlsmgr\fR(8) reads from $tls_random_source
8499 when (re)seeding the in-memory pseudo random number generator (PRNG)
8500 pool. The default of 32 bytes (256 bits) is good enough for 128bit
8501 symmetric keys. If using EGD or a device file, a maximum of 255
8504 This feature is available in Postfix 2.2 and later.
8505 .SH tls_random_exchange_name (default: see "postconf -d" output)
8506 Name of the pseudo random number generator (PRNG) state file
8507 that is maintained by \fBtlsmgr\fR(8). The file is created when it does
8508 not exist, and its length is fixed at 1024 bytes.
8510 As of version 2.5, Postfix no longer uses root privileges when
8511 opening this file, and the default file location was changed from
8512 ${config_directory}/prng_exch to ${data_directory}/prng_exch. As
8513 a migration aid, an attempt to open the file under a non-Postfix
8514 directory is redirected to the Postfix-owned data_directory, and a
8517 This feature is available in Postfix 2.2 and later.
8518 .SH tls_random_prng_update_period (default: 3600s)
8519 The time between attempts by \fBtlsmgr\fR(8) to save the state of
8520 the pseudo random number generator (PRNG) to the file specified
8521 with $tls_random_exchange_name.
8523 This feature is available in Postfix 2.2 and later.
8524 .SH tls_random_reseed_period (default: 3600s)
8525 The maximal time between attempts by \fBtlsmgr\fR(8) to re-seed the
8526 in-memory pseudo random number generator (PRNG) pool from external
8527 sources. The actual time between re-seeding attempts is calculated
8528 using the PRNG, and is between 0 and the time specified.
8530 This feature is available in Postfix 2.2 and later.
8531 .SH tls_random_source (default: see "postconf -d" output)
8532 The external entropy source for the in-memory \fBtlsmgr\fR(8) pseudo
8533 random number generator (PRNG) pool. Be sure to specify a non-blocking
8534 source. If this source is not a regular file, the entropy source
8535 type must be prepended: egd:/path/to/egd_socket for a source with
8536 EGD compatible socket interface, or dev:/path/to/device for a
8539 Note: on OpenBSD systems specify /dev/arandom when /dev/urandom
8540 gives timeout errors.
8542 This feature is available in Postfix 2.2 and later.
8543 .SH trace_service_name (default: trace)
8544 The name of the trace service. This service is implemented by the
8545 \fBbounce\fR(8) daemon and maintains a record
8546 of mail deliveries and produces a mail delivery report when verbose
8547 delivery is requested with "\fBsendmail -v\fR".
8549 This feature is available in Postfix 2.1 and later.
8550 .SH transport_delivery_slot_cost (default: $default_delivery_slot_cost)
8551 A transport-specific override for the default_delivery_slot_cost
8552 parameter value, where \fItransport\fR is the master.cf name of
8553 the message delivery transport.
8554 .SH transport_delivery_slot_discount (default: $default_delivery_slot_discount)
8555 A transport-specific override for the default_delivery_slot_discount
8556 parameter value, where \fItransport\fR is the master.cf name of
8557 the message delivery transport.
8558 .SH transport_delivery_slot_loan (default: $default_delivery_slot_loan)
8559 A transport-specific override for the default_delivery_slot_loan
8560 parameter value, where \fItransport\fR is the master.cf name of
8561 the message delivery transport.
8562 .SH transport_destination_concurrency_failed_cohort_limit (default: $default_destination_concurrency_failed_cohort_limit)
8563 A transport-specific override for the
8564 default_destination_concurrency_failed_cohort_limit parameter value,
8565 where \fItransport\fR is the master.cf name of the message delivery
8568 This feature is available in Postfix 2.5 and later.
8569 .SH transport_destination_concurrency_limit (default: $default_destination_concurrency_limit)
8570 A transport-specific override for the
8571 default_destination_concurrency_limit parameter value, where
8572 \fItransport\fR is the master.cf name of the message delivery
8574 .SH transport_destination_concurrency_negative_feedback (default: $default_destination_concurrency_negative_feedback)
8575 A transport-specific override for the
8576 default_destination_concurrency_negative_feedback parameter value,
8577 where \fItransport\fR is the master.cf name of the message delivery
8580 This feature is available in Postfix 2.5 and later.
8581 .SH transport_destination_concurrency_positive_feedback (default: $default_destination_concurrency_positive_feedback)
8582 A transport-specific override for the
8583 default_destination_concurrency_positive_feedback parameter value,
8584 where \fItransport\fR is the master.cf name of the message delivery
8587 This feature is available in Postfix 2.5 and later.
8588 .SH transport_destination_rate_delay (default: $default_destination_rate_delay)
8589 A transport-specific override for the default_destination_rate_delay
8590 parameter value, where \fItransport\fR is the master.cf name of
8591 the message delivery transport.
8593 This feature is available in Postfix 2.5 and later.
8594 .SH transport_destination_recipient_limit (default: $default_destination_recipient_limit)
8595 A transport-specific override for the
8596 default_destination_recipient_limit parameter value, where
8597 \fItransport\fR is the master.cf name of the message delivery
8599 .SH transport_extra_recipient_limit (default: $default_extra_recipient_limit)
8600 A transport-specific override for the default_extra_recipient_limit
8601 parameter value, where \fItransport\fR is the master.cf name of
8602 the message delivery transport.
8603 .SH transport_initial_destination_concurrency (default: $initial_destination_concurrency)
8604 A transport-specific override for the initial_destination_concurrency
8605 parameter value, where \fItransport\fR is the master.cf name of
8606 the message delivery transport.
8608 This feature is available in Postfix 2.5 and later.
8609 .SH transport_maps (default: empty)
8610 Optional lookup tables with mappings from recipient address to
8611 (message delivery transport, next-hop destination). See \fBtransport\fR(5)
8614 Specify zero or more "type:table" lookup tables. If you use this
8615 feature with local files, run "\fBpostmap /etc/postfix/transport\fR"
8616 after making a change.
8618 For safety reasons, as of Postfix 2.3 this feature does not
8619 allow $number substitutions in regular expression maps.
8626 transport_maps = dbm:/etc/postfix/transport
8627 transport_maps = hash:/etc/postfix/transport
8631 .SH transport_minimum_delivery_slots (default: $default_minimum_delivery_slots)
8632 A transport-specific override for the default_minimum_delivery_slots
8633 parameter value, where \fItransport\fR is the master.cf name of
8634 the message delivery transport.
8635 .SH transport_recipient_limit (default: $default_recipient_limit)
8636 A transport-specific override for the default_recipient_limit
8637 parameter value, where \fItransport\fR is the master.cf name of
8638 the message delivery transport.
8639 .SH transport_recipient_refill_delay (default: $default_recipient_refill_delay)
8640 A transport-specific override for the default_recipient_refill_delay
8641 parameter value, where \fItransport\fR is the master.cf name of
8642 the message delivery transport.
8644 This feature is available in Postfix 2.4 and later.
8645 .SH transport_recipient_refill_limit (default: $default_recipient_refill_limit)
8646 A transport-specific override for the default_recipient_refill_limit
8647 parameter value, where \fItransport\fR is the master.cf name of
8648 the message delivery transport.
8650 This feature is available in Postfix 2.4 and later.
8651 .SH transport_retry_time (default: 60s)
8652 The time between attempts by the Postfix queue manager to contact
8653 a malfunctioning message delivery transport.
8655 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
8656 The default time unit is s (seconds).
8657 .SH transport_time_limit (default: $command_time_limit)
8658 A transport-specific override for the command_time_limit parameter
8659 value, where \fItransport\fR is the master.cf name of the message
8661 .SH trigger_timeout (default: 10s)
8662 The time limit for sending a trigger to a Postfix daemon (for
8663 example, the \fBpickup\fR(8) or \fBqmgr\fR(8) daemon). This time limit prevents
8664 programs from getting stuck when the mail system is under heavy
8667 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
8668 The default time unit is s (seconds).
8669 .SH undisclosed_recipients_header (default: To: undisclosed-recipients:;)
8670 Message header that the Postfix \fBcleanup\fR(8) server inserts when a
8671 message contains no To: or Cc: message header. With Postfix 2.4
8672 and later, specify an empty value to disable this feature.
8673 .SH unknown_address_reject_code (default: 450)
8674 The numerical Postfix SMTP server response code when a sender or
8675 recipient address is rejected by the reject_unknown_sender_domain
8676 or reject_unknown_recipient_domain restriction. The response is
8677 always 450 in case of a temporary DNS error.
8679 Do not change this unless you have a complete understanding of RFC 2821.
8680 .SH unknown_address_tempfail_action (default: $reject_tempfail_action)
8681 The Postfix SMTP server's action when reject_unknown_sender_domain
8682 or reject_unknown_recipient_domain fail due to a temporary error
8683 condition. Specify "defer" to defer the remote SMTP client request
8684 immediately. With the default "defer_if_permit" action, the Postfix
8685 SMTP server continues to look for opportunities to reject mail, and
8686 defers the client request only if it would otherwise be accepted.
8688 This feature is available in Postfix 2.6 and later.
8689 .SH unknown_client_reject_code (default: 450)
8690 The numerical Postfix SMTP server response code when a client
8691 without valid address <=> name mapping is rejected by the
8692 reject_unknown_client_hostname restriction. The SMTP server always replies
8693 with 450 when the mapping failed due to a temporary error condition.
8695 Do not change this unless you have a complete understanding of RFC 2821.
8696 .SH unknown_helo_hostname_tempfail_action (default: $reject_tempfail_action)
8697 The Postfix SMTP server's action when reject_unknown_helo_hostname
8698 fails due to an temporary error condition. Specify "defer" to defer
8699 the remote SMTP client request immediately. With the default
8700 "defer_if_permit" action, the Postfix SMTP server continues to look
8701 for opportunities to reject mail, and defers the client request
8702 only if it would otherwise be accepted.
8704 This feature is available in Postfix 2.6 and later.
8705 .SH unknown_hostname_reject_code (default: 450)
8706 The numerical Postfix SMTP server response code when the hostname
8707 specified with the HELO or EHLO command is rejected by the
8708 reject_unknown_helo_hostname restriction.
8710 Do not change this unless you have a complete understanding of RFC 2821.
8711 .SH unknown_local_recipient_reject_code (default: 550)
8712 The numerical Postfix SMTP server response code when a recipient
8713 address is local, and $local_recipient_maps specifies a list of
8714 lookup tables that does not match the recipient. A recipient
8715 address is local when its domain matches $mydestination,
8716 $proxy_interfaces or $inet_interfaces.
8718 The default setting is 550 (reject mail) but it is safer to initially
8719 use 450 (try again later) so you have time to find out if your
8720 local_recipient_maps settings are OK.
8727 unknown_local_recipient_reject_code = 450
8732 This feature is available in Postfix 2.0 and later.
8733 .SH unknown_relay_recipient_reject_code (default: 550)
8734 The numerical Postfix SMTP server reply code when a recipient
8735 address matches $relay_domains, and relay_recipient_maps specifies
8736 a list of lookup tables that does not match the recipient address.
8738 This feature is available in Postfix 2.0 and later.
8739 .SH unknown_virtual_alias_reject_code (default: 550)
8740 The SMTP server reply code when a recipient address matches
8741 $virtual_alias_domains, and $virtual_alias_maps specifies a list
8742 of lookup tables that does not match the recipient address.
8744 This feature is available in Postfix 2.0 and later.
8745 .SH unknown_virtual_mailbox_reject_code (default: 550)
8746 The SMTP server reply code when a recipient address matches
8747 $virtual_mailbox_domains, and $virtual_mailbox_maps specifies a list
8748 of lookup tables that does not match the recipient address.
8750 This feature is available in Postfix 2.0 and later.
8751 .SH unverified_recipient_defer_code (default: 450)
8752 The numerical Postfix SMTP server response when a recipient address
8753 probe fails due to a temporary error condition.
8755 Unlike elsewhere in Postfix, you can specify 250 in order to
8756 accept the address anyway.
8758 Do not change this unless you have a complete understanding of RFC 2821.
8760 This feature is available in Postfix 2.6 and later.
8761 .SH unverified_recipient_reject_code (default: 450)
8762 The numerical Postfix SMTP server response when a recipient address
8763 is rejected by the reject_unverified_recipient restriction.
8765 Unlike elsewhere in Postfix, you can specify 250 in order to
8766 accept the address anyway.
8768 Do not change this unless you have a complete understanding of RFC 2821.
8770 This feature is available in Postfix 2.1 and later.
8771 .SH unverified_recipient_reject_reason (default: empty)
8772 The Postfix SMTP server's reply when rejecting mail with
8773 reject_unverified_recipient. Do not include the numeric SMTP reply
8774 code or the enhanced status code. By default, the response includes
8775 actual address verification details.
8782 unverified_recipient_reject_reason = Recipient address lookup failed
8787 This feature is available in Postfix 2.6 and later.
8788 .SH unverified_recipient_tempfail_action (default: $reject_tempfail_action)
8789 The Postfix SMTP server's action when reject_unverified_recipient
8790 fails due to a temporary error condition. Specify "defer" to defer
8791 the remote SMTP client request immediately. With the default
8792 "defer_if_permit" action, the Postfix SMTP server continues to look
8793 for opportunities to reject mail, and defers the client request
8794 only if it would otherwise be accepted.
8796 This feature is available in Postfix 2.6 and later.
8797 .SH unverified_sender_defer_code (default: 450)
8798 The numerical Postfix SMTP server response code when a sender address
8799 probe fails due to a temporary error condition.
8801 Unlike elsewhere in Postfix, you can specify 250 in order to
8802 accept the address anyway.
8804 Do not change this unless you have a complete understanding of RFC 2821.
8806 This feature is available in Postfix 2.6 and later.
8807 .SH unverified_sender_reject_code (default: 450)
8808 The numerical Postfix SMTP server response code when a recipient
8809 address is rejected by the reject_unverified_sender restriction.
8811 Unlike elsewhere in Postfix, you can specify 250 in order to
8812 accept the address anyway.
8814 Do not change this unless you have a complete understanding of RFC 2821.
8816 This feature is available in Postfix 2.1 and later.
8817 .SH unverified_sender_reject_reason (default: empty)
8818 The Postfix SMTP server's reply when rejecting mail with
8819 reject_unverified_sender. Do not include the numeric SMTP reply
8820 code or the enhanced status code. By default, the response includes
8821 actual address verification details.
8828 unverified_sender_reject_reason = Sender address lookup failed
8833 This feature is available in Postfix 2.6 and later.
8834 .SH unverified_sender_tempfail_action (default: $reject_tempfail_action)
8835 The Postfix SMTP server's action when reject_unverified_sender
8836 fails due to a temporary error condition. Specify "defer" to defer
8837 the remote SMTP client request immediately. With the default
8838 "defer_if_permit" action, the Postfix SMTP server continues to look
8839 for opportunities to reject mail, and defers the client request
8840 only if it would otherwise be accepted.
8842 This feature is available in Postfix 2.6 and later.
8843 .SH verp_delimiter_filter (default: -=+)
8844 The characters Postfix accepts as VERP delimiter characters on the
8845 Postfix \fBsendmail\fR(1) command line and in SMTP commands.
8847 This feature is available in Postfix 1.1 and later.
8848 .SH virtual_alias_domains (default: $virtual_alias_maps)
8849 Postfix is final destination for the specified list of virtual
8850 alias domains, that is, domains for which all addresses are aliased
8851 to addresses in other local or remote domains. The SMTP server
8852 validates recipient addresses with $virtual_alias_maps and rejects
8853 non-existent recipients. See also the virtual alias domain class
8854 in the ADDRESS_CLASS_README file
8856 This feature is available in Postfix 2.0 and later. The default
8857 value is backwards compatible with Postfix version 1.1.
8859 The default value is $virtual_alias_maps so that you can keep all
8860 information about virtual alias domains in one place. If you have
8861 many users, it is better to separate information that changes more
8862 frequently (virtual address -> local or remote address mapping)
8863 from information that changes less frequently (the list of virtual
8866 Specify a list of host or domain names, "/file/name" or
8867 "type:table" patterns, separated by commas and/or whitespace. A
8868 "/file/name" pattern is replaced by its contents; a "type:table"
8869 lookup table is matched when a table entry matches a lookup string
8870 (the lookup result is ignored). Continue long lines by starting
8871 the next line with whitespace. Specify "!pattern" to exclude a host
8872 or domain name from the list. The form "!/file/name" is supported
8873 only in Postfix version 2.4 and later.
8875 See also the VIRTUAL_README and ADDRESS_CLASS_README documents
8876 for further information.
8883 virtual_alias_domains = virtual1.tld virtual2.tld
8887 .SH virtual_alias_expansion_limit (default: 1000)
8888 The maximal number of addresses that virtual alias expansion produces
8889 from each original recipient.
8891 This feature is available in Postfix 2.1 and later.
8892 .SH virtual_alias_maps (default: $virtual_maps)
8893 Optional lookup tables that alias specific mail addresses or domains
8894 to other local or remote address. The table format and lookups
8895 are documented in \fBvirtual\fR(5). For an overview of Postfix address
8896 manipulations see the ADDRESS_REWRITING_README document.
8898 This feature is available in Postfix 2.0 and later. The default
8899 value is backwards compatible with Postfix version 1.1.
8901 If you use this feature with indexed files, run "\fBpostmap
8902 /etc/postfix/virtual\fR" after changing the file.
8909 virtual_alias_maps = dbm:/etc/postfix/virtual
8910 virtual_alias_maps = hash:/etc/postfix/virtual
8914 .SH virtual_alias_recursion_limit (default: 1000)
8915 The maximal nesting depth of virtual alias expansion. Currently
8916 the recursion limit is applied only to the left branch of the
8917 expansion graph, so the depth of the tree can in the worst case
8918 reach the sum of the expansion and recursion limits. This may
8919 change in the future.
8921 This feature is available in Postfix 2.1 and later.
8922 .SH virtual_destination_concurrency_limit (default: $default_destination_concurrency_limit)
8923 The maximal number of parallel deliveries to the same destination
8924 via the virtual message delivery transport. This limit is enforced
8925 by the queue manager. The message delivery transport name is the
8926 first field in the entry in the master.cf file.
8927 .SH virtual_destination_recipient_limit (default: $default_destination_recipient_limit)
8928 The maximal number of recipients per message for the virtual
8929 message delivery transport. This limit is enforced by the queue
8930 manager. The message delivery transport name is the first field in
8931 the entry in the master.cf file.
8933 Setting this parameter to a value of 1 changes the meaning of
8934 virtual_destination_concurrency_limit from concurrency per domain
8935 into concurrency per recipient.
8936 .SH virtual_gid_maps (default: empty)
8937 Lookup tables with the per-recipient group ID for \fBvirtual\fR(8) mailbox
8940 In a lookup table, specify a left-hand side of "@domain.tld" to
8941 match any user in the specified domain that does not have a specific
8942 "user@domain.tld" entry.
8944 When a recipient address has an optional address extension
8945 (user+foo@domain.tld), the \fBvirtual\fR(8) delivery agent looks up
8946 the full address first, and when the lookup fails, it looks up the
8947 unextended address (user@domain.tld).
8949 Note 1: for security reasons, the \fBvirtual\fR(8) delivery agent disallows
8950 regular expression substitution of $1 etc. in regular expression
8951 lookup tables, because that would open a security hole.
8953 Note 2: for security reasons, the \fBvirtual\fR(8) delivery agent will
8954 silently ignore requests to use the \fBproxymap\fR(8) server. Instead
8955 it will open the table directly. Before Postfix version 2.2, the
8956 \fBvirtual\fR(8) delivery agent will terminate with a fatal error.
8957 .SH virtual_mailbox_base (default: empty)
8958 A prefix that the \fBvirtual\fR(8) delivery agent prepends to all pathname
8959 results from $virtual_mailbox_maps table lookups. This is a safety
8960 measure to ensure that an out of control map doesn't litter the
8961 file system with mailboxes. While virtual_mailbox_base could be
8962 set to "/", this setting isn't recommended.
8969 virtual_mailbox_base = /var/mail
8973 .SH virtual_mailbox_domains (default: $virtual_mailbox_maps)
8974 Postfix is final destination for the specified list of domains;
8975 mail is delivered via the $virtual_transport mail delivery transport.
8976 By default this is the Postfix \fBvirtual\fR(8) delivery agent. The SMTP
8977 server validates recipient addresses with $virtual_mailbox_maps
8978 and rejects mail for non-existent recipients. See also the virtual
8979 mailbox domain class in the ADDRESS_CLASS_README file.
8981 This parameter expects the same syntax as the mydestination
8982 configuration parameter.
8984 This feature is available in Postfix 2.0 and later. The default
8985 value is backwards compatible with Postfix version 1.1.
8986 .SH virtual_mailbox_limit (default: 51200000)
8987 The maximal size in bytes of an individual mailbox or maildir file,
8989 .SH virtual_mailbox_lock (default: see "postconf -d" output)
8990 How to lock a UNIX-style \fBvirtual\fR(8) mailbox before attempting
8991 delivery. For a list of available file locking methods, use the
8992 "\fBpostconf -l\fR" command.
8994 This setting is ignored with \fBmaildir\fR style delivery, because
8995 such deliveries are safe without application-level locks.
8997 Note 1: the \fBdotlock\fR method requires that the recipient UID
8998 or GID has write access to the parent directory of the recipient's
9001 Note 2: the default setting of this parameter is system dependent.
9002 .SH virtual_mailbox_maps (default: empty)
9003 Optional lookup tables with all valid addresses in the domains that
9004 match $virtual_mailbox_domains.
9006 In a lookup table, specify a left-hand side of "@domain.tld" to
9007 match any user in the specified domain that does not have a specific
9008 "user@domain.tld" entry.
9010 The \fBvirtual\fR(8) delivery agent uses this table to look up the
9011 per-recipient mailbox or maildir pathname. If the lookup result
9012 ends in a slash ("/"), maildir-style delivery is carried out,
9013 otherwise the path is assumed to specify a UNIX-style mailbox file.
9014 Note that $virtual_mailbox_base is unconditionally prepended to
9017 When a recipient address has an optional address extension
9018 (user+foo@domain.tld), the \fBvirtual\fR(8) delivery agent looks up
9019 the full address first, and when the lookup fails, it looks up the
9020 unextended address (user@domain.tld).
9022 Note 1: for security reasons, the \fBvirtual\fR(8) delivery agent disallows
9023 regular expression substitution of $1 etc. in regular expression
9024 lookup tables, because that would open a security hole.
9026 Note 2: for security reasons, the \fBvirtual\fR(8) delivery agent will
9027 silently ignore requests to use the \fBproxymap\fR(8) server. Instead
9028 it will open the table directly. Before Postfix version 2.2, the
9029 \fBvirtual\fR(8) delivery agent will terminate with a fatal error.
9030 .SH virtual_maps (default: empty)
9031 Optional lookup tables with a) names of domains for which all
9032 addresses are aliased to addresses in other local or remote domains,
9033 and b) addresses that are aliased to addresses in other local or
9034 remote domains. Available before Postfix version 2.0. With Postfix
9035 version 2.0 and later, this is replaced by separate controls: virtual_alias_domains
9036 and virtual_alias_maps.
9037 .SH virtual_minimum_uid (default: 100)
9038 The minimum user ID value that the \fBvirtual\fR(8) delivery agent accepts
9039 as a result from $virtual_uid_maps table lookup. Returned
9040 values less than this will be rejected, and the message will be
9042 .SH virtual_transport (default: virtual)
9043 The default mail delivery transport and next-hop destination for
9044 final delivery to domains listed with $virtual_mailbox_domains.
9045 This information can be overruled with the \fBtransport\fR(5) table.
9047 Specify a string of the form \fItransport:nexthop\fR, where \fItransport\fR
9048 is the name of a mail delivery transport defined in master.cf.
9049 The \fI:nexthop\fR part is optional. For more details see the
9050 \fBtransport\fR(5) manual page.
9052 This feature is available in Postfix 2.0 and later.
9053 .SH virtual_uid_maps (default: empty)
9054 Lookup tables with the per-recipient user ID that the \fBvirtual\fR(8)
9055 delivery agent uses while writing to the recipient's mailbox.
9057 In a lookup table, specify a left-hand side of "@domain.tld"
9058 to match any user in the specified domain that does not have a
9059 specific "user@domain.tld" entry.
9061 When a recipient address has an optional address extension
9062 (user+foo@domain.tld), the \fBvirtual\fR(8) delivery agent looks up
9063 the full address first, and when the lookup fails, it looks up the
9064 unextended address (user@domain.tld).
9066 Note 1: for security reasons, the \fBvirtual\fR(8) delivery agent disallows
9067 regular expression substitution of $1 etc. in regular expression
9068 lookup tables, because that would open a security hole.
9070 Note 2: for security reasons, the \fBvirtual\fR(8) delivery agent will
9071 silently ignore requests to use the \fBproxymap\fR(8) server. Instead
9072 it will open the table directly. Before Postfix version 2.2, the
9073 \fBvirtual\fR(8) delivery agent will terminate with a fatal error.
9077 postconf(1), Postfix configuration parameter maintenance
9078 master(5), Postfix daemon configuration maintenance
9082 The Secure Mailer license must be distributed with this software.
9087 IBM T.J. Watson Research
9089 Yorktown Heights, NY 10598, USA