1 # This is the input file for automatically generating the postconf(5)
2 # manual page, the summaries of parameters in on-line manual pages,
3 # and for the postconf.5.html hyperlinked document.
5 # The following tools operate on information from this file:
8 # Extracts specific parameter definitions from this file, or
9 # produces a sorted version of all the information in this
13 # Adds parameter name +default headers. The result can be embedded
14 # into the postconf.5.html hyperlinked document.
17 # Converts this file into something that can be embedded into
18 # the postconf(5) UNIX-style manual page. This tool knows only
19 # a limited subset of HTML as described below.
22 # Converts this file result into something that can be embedded
23 # into Postfix source code files.
25 # The subset of HTML that you can use is limited by the postconf2man
28 # * Supported HTML elements are: blockquote, ul, li, dl, dt, dd,
29 # p, pre, b, i, h, and the escapes for < <= >= >. Sorry, no
32 # * HTML elements must be specified in lower case.
34 # * Lists cannot be nested.
36 # * The postconf2man tool leaves unrecognized HTML in place as a
37 # reminder that it is not supported.
39 # * Text between <!-- and --> is stripped out. The <!-- and -->
40 # must appear on separate lines.
42 # * Blank lines are special for postconf2man: it replaces them by
43 # a "new paragraph" command. Don't put any blank lines inside
44 # <blockquote> text. Instead, put those blank lines between
45 # </blockquote> and <blockquote>.
47 # * Text after a blank line must start with an HTML element.
51 # * All <dt> and <dd>text must be closed with </dt> and </dd>.
53 # * Use <blockquote><pre>..</pre></blockquote> for examples
54 # between narrative text, instead of indenting examples by hand.
56 # * Use <pre>..</pre> for the "Examples:" section at the end
57 # of a parameter description.
59 # The postlink tool automatically inserts hyperlinks for the following,
60 # so you must not hyperlink that information yourself:
62 # * Postfix manual pages
65 # * Postfix configuration parameters
66 # * Postfix README files
67 # * Address classes and other terminology.
69 # The xpostconf and postconf2html tools expect the file format described
70 # in the comments below. The description includes the transformation
71 # that is done by the postconf2html tool.
73 # * The format of this file is blocks of text separated by one or
74 # more empty (or all whitespace) lines.
76 # * A text block that begins with %PARAM specifies a parameter name
77 # and its default value, separated by whitespace. The text in
78 # the blocks that follow is the parameter description.
80 # * The first line (text up to the first ". ") is used in Postfix
81 # on-line manual pages, in the one-line configuration parameter
84 # * A text block that begins with the "<" character is treated as
85 # literal HTML. For example, to specify a "dl" list element one
88 # |<dt><b>name</b></dt> <dd>
90 # |text that describes "name".
94 # As described below, the text that describes "name" will be
95 # enclosed with <p> and </p>.
97 # An "ul" list element would be written like this:
99 # |<li> text for this list element.
101 # * Any text block that does not begin with < is an error.
103 %CLASS address-verification Address verification (Postfix 2.1 and later)
106 Sender/recipient address verification is implemented by sending
107 probe email messages that are not actually delivered. This feature
108 is requested via the reject_unverified_sender and
109 reject_unverified_recipient access restrictions. The status of
110 verification probes is maintained by the address verification
111 service. See the file ADDRESS_VERIFICATION_README for information
112 about how to configure and operate the Postfix sender/recipient
113 address verification service.
116 %CLASS smtpd-compatibility Compatibility controls
118 %CLASS resource-control Resource controls
120 %CLASS after-queue-filter After-queue content filter
123 As of version 1.0, Postfix can be configured to send new mail to
124 an external content filter AFTER the mail is queued. This content
125 filter is expected to inject mail back into a (Postfix or other)
126 MTA for further delivery. See the FILTER_README document for
130 %CLASS before-queue-filter Before-queue content filter
133 The Postfix SMTP server can be configured to send incoming mail to
134 a real-time SMTP-based content filter BEFORE mail is queued. This
135 content filter is expected to inject mail back into Postfix. See
136 the SMTPD_PROXY_README document for details on how to configure
137 and operate this feature.
140 %CLASS basic-config Basic configuration parameters
142 %CLASS smtpd-access-relay SMTP server access and relay control
144 %CLASS smtpd-sasl SMTP server SASL authentication
146 %CLASS unknown-recipients Rejecting mail for unknown recipients
148 %CLASS smtpd-reply-code SMTP server response codes
150 %CLASS other Other configuration parameters
152 %PARAM access_map_reject_code 554
155 The numerical Postfix SMTP server response code for
156 an access(5) map "reject" action.
160 Do not change this unless you have a complete understanding of RFC 2821.
163 %PARAM access_map_defer_code 450
166 The numerical Postfix SMTP server response code for
167 an access(5) map "defer" action, including "defer_if_permit"
168 or "defer_if_reject". Prior to Postfix 2.6, the response
169 is hard-coded as "450".
173 Do not change this unless you have a complete understanding of RFC 2821.
177 This feature is available in Postfix 2.6 and later.
180 %PARAM address_verify_default_transport $default_transport
183 Overrides the default_transport parameter setting for address
188 This feature is available in Postfix 2.1 and later.
191 %PARAM address_verify_local_transport $local_transport
194 Overrides the local_transport parameter setting for address
199 This feature is available in Postfix 2.1 and later.
202 %PARAM address_verify_map
205 Optional lookup table for persistent address verification status
206 storage. The table is maintained by the verify(8) service, and
207 is opened before the process releases privileges.
211 By default, the information is kept in volatile memory, and is lost
212 after "<b>postfix reload</b>" or "<b>postfix stop</b>".
216 Specify a location in a file system that will not fill up. If the
217 database becomes corrupted, the world comes to an end. To recover
218 delete the file and do "<b>postfix reload</b>".
221 <p> As of version 2.5, Postfix no longer uses root privileges when
222 opening this file. The file should now be stored under the Postfix-owned
223 data_directory. As a migration aid, an attempt to open the file
224 under a non-Postfix directory is redirected to the Postfix-owned
225 data_directory, and a warning is logged. </p>
232 address_verify_map = hash:/var/db/postfix/verify
233 address_verify_map = btree:/var/db/postfix/verify
237 This feature is available in Postfix 2.1 and later.
240 %PARAM address_verify_negative_cache yes
243 Enable caching of failed address verification probe results. When
244 this feature is enabled, the cache may pollute quickly with garbage.
245 When this feature is disabled, Postfix will generate an address
246 probe for every lookup.
250 This feature is available in Postfix 2.1 and later.
253 %PARAM address_verify_negative_expire_time 3d
256 The time after which a failed probe expires from the address
261 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
265 This feature is available in Postfix 2.1 and later.
268 %PARAM address_verify_negative_refresh_time 3h
271 The time after which a failed address verification probe needs to
276 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
280 This feature is available in Postfix 2.1 and later.
283 %PARAM address_verify_poll_count 3
286 How many times to query the verify(8) service for the completion
287 of an address verification request in progress.
291 The default poll count is 3.
295 Specify 1 to implement a crude form of greylisting, that is, always
296 defer the first delivery request for a never seen before address.
304 address_verify_poll_count = 1
308 This feature is available in Postfix 2.1 and later.
311 %PARAM address_verify_poll_delay 3s
314 The delay between queries for the completion of an address
315 verification request in progress.
319 The default polling delay is 3 seconds.
323 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
327 This feature is available in Postfix 2.1 and later.
330 %PARAM address_verify_positive_expire_time 31d
333 The time after which a successful probe expires from the address
338 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
342 This feature is available in Postfix 2.1 and later.
345 %PARAM address_verify_positive_refresh_time 7d
348 The time after which a successful address verification probe needs
349 to be refreshed. The address verification status is not updated
350 when the probe fails (optimistic caching).
354 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
358 This feature is available in Postfix 2.1 and later.
361 %PARAM address_verify_relay_transport $relay_transport
364 Overrides the relay_transport parameter setting for address
369 This feature is available in Postfix 2.1 and later.
372 %PARAM address_verify_relayhost $relayhost
375 Overrides the relayhost parameter setting for address verification
376 probes. This information can be overruled with the transport(5) table.
380 This feature is available in Postfix 2.1 and later.
383 %PARAM address_verify_sender $double_bounce_sender
385 <p> The sender address to use in address verification probes; prior
386 to Postfix 2.5 the default was "postmaster". To
387 avoid problems with address probes that are sent in response to
388 address probes, the Postfix SMTP server excludes the probe sender
389 address from all SMTPD access blocks. </p>
392 Specify an empty value (address_verify_sender =) or <> if you want
393 to use the null sender address. Beware, some sites reject mail from
394 <>, even though RFCs require that such addresses be accepted.
402 address_verify_sender = <>
403 address_verify_sender = postmaster@my.domain
407 This feature is available in Postfix 2.1 and later.
410 %PARAM address_verify_transport_maps $transport_maps
413 Overrides the transport_maps parameter setting for address verification
418 This feature is available in Postfix 2.1 and later.
421 %PARAM address_verify_virtual_transport $virtual_transport
424 Overrides the virtual_transport parameter setting for address
429 This feature is available in Postfix 2.1 and later.
432 %PARAM alias_database see "postconf -d" output
435 The alias databases for local(8) delivery that are updated with
436 "<b>newaliases</b>" or with "<b>sendmail -bi</b>".
440 This is a separate configuration parameter because not all the
441 tables specified with $alias_maps have to be local files.
449 alias_database = hash:/etc/aliases
450 alias_database = hash:/etc/mail/aliases
453 %PARAM alias_maps see "postconf -d" output
456 The alias databases that are used for local(8) delivery. See
457 aliases(5) for syntax details.
461 The default list is system dependent. On systems with NIS, the
462 default is to search the local alias database, then the NIS alias
467 If you change the alias database, run "<b>postalias /etc/aliases</b>"
468 (or wherever your system stores the mail alias file), or simply
469 run "<b>newaliases</b>" to build the necessary DBM or DB file.
473 The local(8) delivery agent disallows regular expression substitution
474 of $1 etc. in alias_maps, because that would open a security hole.
478 The local(8) delivery agent will silently ignore requests to use
479 the proxymap(8) server within alias_maps. Instead it will open the
480 table directly. Before Postfix version 2.2, the local(8) delivery
481 agent will terminate with a fatal error.
489 alias_maps = hash:/etc/aliases, nis:mail.aliases
490 alias_maps = hash:/etc/aliases
493 %PARAM allow_mail_to_commands alias, forward
496 Restrict local(8) mail delivery to external commands. The default
497 is to disallow delivery to "|command" in :include: files (see
498 aliases(5) for the text that defines this terminology).
502 Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
503 in order to allow commands in aliases(5), .forward files or in
504 :include: files, respectively.
512 allow_mail_to_commands = alias,forward,include
515 %PARAM allow_mail_to_files alias, forward
518 Restrict local(8) mail delivery to external files. The default is
519 to disallow "/file/name" destinations in :include: files (see
520 aliases(5) for the text that defines this terminology).
524 Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
525 in order to allow "/file/name" destinations in aliases(5), .forward
526 files and in :include: files, respectively.
534 allow_mail_to_files = alias,forward,include
537 %PARAM allow_min_user no
540 Allow a sender or recipient address to have `-' as the first
542 default, this is not allowed, to avoid accidents with software that
543 passes email addresses via the command line. Such software
544 would not be able to distinguish a malicious address from a
545 bona fide command-line option. Although this can be prevented by
546 inserting a "--" option terminator into the command line, this is
547 difficult to enforce consistently and globally. </p>
549 <p> As of Postfix version 2.5, this feature is implemented by
550 trivial-rewrite(8). With earlier versions this feature was implemented
551 by qmgr(8) and was limited to recipient addresses only. </p>
553 %PARAM allow_percent_hack yes
556 Enable the rewriting of the form "user%domain" to "user@domain".
557 This is enabled by default.
560 <p> Note: with Postfix version 2.2, message header address rewriting
561 happens only when one of the following conditions is true: </p>
565 <li> The message is received with the Postfix sendmail(1) command,
567 <li> The message is received from a network client that matches
568 $local_header_rewrite_clients,
570 <li> The message is received from the network, and the
571 remote_header_rewrite_domain parameter specifies a non-empty value.
575 <p> To get the behavior before Postfix version 2.2, specify
576 "local_header_rewrite_clients = static:all". </p>
583 allow_percent_hack = no
586 %PARAM allow_untrusted_routing no
589 Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
590 from untrusted clients to destinations matching $relay_domains.
594 By default, this feature is turned off. This closes a nasty open
595 relay loophole where a backup MX host can be tricked into forwarding
596 junk mail to a primary MX host which then spams it out to the world.
600 This parameter also controls if non-local addresses with sender-specified
601 routing can match Postfix access tables. By default, such addresses
602 cannot match Postfix access tables, because the address is ambiguous.
608 Optional address that receives a "blind carbon copy" of each message
609 that is received by the Postfix mail system.
613 Note: if mail to the BCC address bounces it will be returned to
617 <p> Note: automatic BCC recipients are produced only for new mail.
618 To avoid mailer loops, automatic BCC recipients are not generated
619 for mail that Postfix forwards internally, nor for mail that Postfix
620 generates itself. </p>
622 %PARAM berkeley_db_create_buffer_size 16777216
625 The per-table I/O buffer size for programs that create Berkeley DB
626 hash or btree tables. Specify a byte count.
630 This feature is available in Postfix 2.0 and later.
633 %PARAM berkeley_db_read_buffer_size 131072
636 The per-table I/O buffer size for programs that read Berkeley DB
637 hash or btree tables. Specify a byte count.
641 This feature is available in Postfix 2.0 and later.
644 %PARAM best_mx_transport
647 Where the Postfix SMTP client should deliver mail when it detects
648 a "mail loops back to myself" error condition. This happens when
649 the local MTA is the best SMTP mail exchanger for a destination
650 not listed in $mydestination, $inet_interfaces, $proxy_interfaces,
651 $virtual_alias_domains, or $virtual_mailbox_domains. By default,
652 the Postfix SMTP client returns such mail as undeliverable.
656 Specify, for example, "best_mx_transport = local" to pass the mail
657 from the Postfix SMTP client to the local(8) delivery agent. You
659 any message delivery "transport" or "transport:nexthop" that is
660 defined in the master.cf file. See the transport(5) manual page
661 for the syntax and meaning of "transport" or "transport:nexthop".
665 However, this feature is expensive because it ties up a Postfix
666 SMTP client process while the local(8) delivery agent is doing its
667 work. It is more efficient (for Postfix) to list all hosted domains
668 in a table or database.
674 Whether or not to use the local biff service. This service sends
675 "new mail" notifications to users who have requested new mail
676 notification with the UNIX command "biff y".
680 For compatibility reasons this feature is on by default. On systems
681 with lots of interactive users, the biff service can be a performance
682 drain. Specify "biff = no" in main.cf to disable.
687 <p> Optional lookup tables for content inspection as specified in
688 the body_checks(5) manual page. </p>
690 <p> Note: with Postfix versions before 2.0, these rules inspect
691 all content after the primary message headers. </p>
693 %PARAM body_checks_size_limit 51200
696 How much text in a message body segment (or attachment, if you
697 prefer to use that term) is subjected to body_checks inspection.
698 The amount of text is limited to avoid scanning huge attachments.
702 This feature is available in Postfix 2.0 and later.
705 %PARAM bounce_queue_lifetime 5d
708 The maximal time a bounce message is queued before it is considered
709 undeliverable. By default, this is the same as the queue life time
714 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
715 The default time unit is d (days).
719 Specify 0 when mail delivery should be tried only once.
723 This feature is available in Postfix 2.1 and later.
726 %PARAM bounce_size_limit 50000
728 <p> The maximal amount of original message text that is sent in a
729 non-delivery notification. Specify a byte count. With Postfix 2.4
730 and later, a message is returned as either message/rfc822 (the
731 complete original) or as text/rfc822-headers (the headers only).
732 With earlier Postfix versions, a message is always returned as
733 message/rfc822 and is truncated when it exceeds the size limit.
740 <li> <p> If you increase this limit, then you should increase the
741 mime_nesting_limit value proportionally. </p>
743 <li> <p> Be careful when making changes. Excessively large values
744 will result in the loss of non-delivery notifications, when a bounce
745 message size exceeds a local or remote MTA's message size limit.
750 %PARAM canonical_maps
753 Optional address mapping lookup tables for message headers and
754 envelopes. The mapping is applied to both sender and recipient
755 addresses, in both envelopes and in headers, as controlled
756 with the canonical_classes parameter. This is typically used
757 to clean up dirty addresses from legacy mail systems, or to replace
758 login names by Firstname.Lastname. The table format and lookups
759 are documented in canonical(5). For an overview of Postfix address
760 manipulations see the ADDRESS_REWRITING_README document.
764 If you use this feature, run "<b>postmap /etc/postfix/canonical</b>" to
765 build the necessary DBM or DB file after every change. The changes
766 will become visible after a minute or so. Use "<b>postfix reload</b>"
767 to eliminate the delay.
770 <p> Note: with Postfix version 2.2, message header address mapping
771 happens only when message header address rewriting is enabled: </p>
775 <li> The message is received with the Postfix sendmail(1) command,
777 <li> The message is received from a network client that matches
778 $local_header_rewrite_clients,
780 <li> The message is received from the network, and the
781 remote_header_rewrite_domain parameter specifies a non-empty value.
785 <p> To get the behavior before Postfix version 2.2, specify
786 "local_header_rewrite_clients = static:all". </p>
793 canonical_maps = dbm:/etc/postfix/canonical
794 canonical_maps = hash:/etc/postfix/canonical
797 %PARAM canonical_classes envelope_sender, envelope_recipient, header_sender, header_recipient
799 <p> What addresses are subject to canonical_maps address mapping.
800 By default, canonical_maps address mapping is applied to envelope
801 sender and recipient addresses, and to header sender and header
802 recipient addresses. </p>
804 <p> Specify one or more of: envelope_sender, envelope_recipient,
805 header_sender, header_recipient </p>
807 <p> This feature is available in Postfix 2.2 and later. </p>
809 %PARAM sender_canonical_classes envelope_sender, header_sender
811 <p> What addresses are subject to sender_canonical_maps address
812 mapping. By default, sender_canonical_maps address mapping is
813 applied to envelope sender addresses, and to header sender addresses.
816 <p> Specify one or more of: envelope_sender, header_sender </p>
818 <p> This feature is available in Postfix 2.2 and later. </p>
820 %PARAM recipient_canonical_classes envelope_recipient, header_recipient
822 <p> What addresses are subject to recipient_canonical_maps address
823 mapping. By default, recipient_canonical_maps address mapping is
824 applied to envelope recipient addresses, and to header recipient
827 <p> Specify one or more of: envelope_recipient, header_recipient
830 <p> This feature is available in Postfix 2.2 and later. </p>
832 %PARAM command_directory see "postconf -d" output
835 The location of all postfix administrative commands.
838 %PARAM command_time_limit 1000s
841 Time limit for delivery to external commands. This limit is used
842 by the local(8) delivery agent, and is the default time limit for
843 delivery by the pipe(8) delivery agent.
847 Note: if you set this time limit to a large value you must update the
848 global ipc_timeout parameter as well.
851 %PARAM daemon_directory see "postconf -d" output
854 The directory with Postfix support programs and daemon programs.
855 These should not be invoked directly by humans. The directory must
859 %PARAM daemon_timeout 18000s
861 <p> How much time a Postfix daemon process may take to handle a
862 request before it is terminated by a built-in watchdog timer. </p>
865 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
866 The default time unit is s (seconds).
869 %PARAM debug_peer_level 2
871 <p> The increment in verbose logging level when a remote client or
872 server matches a pattern in the debug_peer_list parameter. </p>
874 %PARAM debug_peer_list
876 <p> Optional list of remote client or server hostname or network
877 address patterns that cause the verbose logging level to increase
878 by the amount specified in $debug_peer_level. </p>
880 <p> Specify domain names, network/netmask patterns, "/file/name"
881 patterns or "type:table" lookup tables. The right-hand side result
882 from "type:table" lookups is ignored. </p>
884 <p> Pattern matching of domain names is controlled by the
885 parent_domain_matches_subdomains parameter. </p>
892 debug_peer_list = 127.0.0.1
893 debug_peer_list = example.com
896 %PARAM default_database_type see "postconf -d" output
899 The default database type for use in newaliases(1), postalias(1)
900 and postmap(1) commands. On many UNIX systems the default type is
901 either <b>dbm</b> or <b>hash</b>. The default setting is frozen
902 when the Postfix system is built.
910 default_database_type = hash
911 default_database_type = dbm
914 %PARAM default_delivery_slot_cost 5
917 How often the Postfix queue manager's scheduler is allowed to
918 preempt delivery of one message with another.
922 Each transport maintains a so-called "available delivery slot counter"
923 for each message. One message can be preempted by another one when
924 the other message can be delivered using no more delivery slots
925 (i.e., invocations of delivery agents) than the current message
926 counter has accumulated (or will eventually accumulate - see about
927 slot loans below). This parameter controls how often is the counter
928 incremented - it happens after each default_delivery_slot_cost
929 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
941 The only reason why the value of 2 is not the default is the way
942 this parameter affects the delivery of mailing-list mail. In the
943 worst case, their delivery can take somewhere between (cost+1/cost)
944 and (cost/cost-1) times more than if the preemptive scheduler was
945 disabled. The default value of 5 turns out to provide reasonable
946 message response times while making sure the mailing-list deliveries
947 are not extended by more than 20-25 percent even in the worst case.
950 <p> Use <i>transport</i>_delivery_slot_cost to specify a
951 transport-specific override, where <i>transport</i> is the master.cf
952 name of the message delivery transport.
960 default_delivery_slot_cost = 0
961 default_delivery_slot_cost = 2
964 %PARAM default_destination_concurrency_limit 20
967 The default maximal number of parallel deliveries to the same
968 destination. This is the default limit for delivery via the lmtp(8),
969 pipe(8), smtp(8) and virtual(8) delivery agents.
970 With per-destination recipient limit > 1, a destination is a domain,
971 otherwise it is a recipient.
974 <p> Use <i>transport</i>_destination_concurrency_limit to specify a
975 transport-specific override, where <i>transport</i> is the master.cf
976 name of the message delivery transport.
979 %PARAM default_destination_recipient_limit 50
982 The default maximal number of recipients per message delivery.
983 This is the default limit for delivery via the lmtp(8), pipe(8),
984 smtp(8) and virtual(8) delivery agents.
987 <p> Setting this parameter to a value of 1 changes the meaning of
988 the corresponding per-destination concurrency limit from concurrency
989 per domain into concurrency per recipient. </p>
991 <p> Use <i>transport</i>_destination_recipient_limit to specify a
992 transport-specific override, where <i>transport</i> is the master.cf
993 name of the message delivery transport.
996 %PARAM default_extra_recipient_limit 1000
999 The default value for the extra per-transport limit imposed on the
1000 number of in-memory recipients. This extra recipient space is
1001 reserved for the cases when the Postfix queue manager's scheduler
1002 preempts one message with another and suddenly needs some extra
1003 recipients slots for the chosen message in order to avoid performance
1007 <p> Use <i>transport</i>_extra_recipient_limit to specify a
1008 transport-specific override, where <i>transport</i> is the master.cf
1009 name of the message delivery transport.
1012 %PARAM default_minimum_delivery_slots 3
1015 How many recipients a message must have in order to invoke the
1016 Postfix queue manager's scheduling algorithm at all. Messages
1017 which would never accumulate at least this many delivery slots
1018 (subject to slot cost parameter as well) are never preempted.
1021 <p> Use <i>transport</i>_minimum_delivery_slots to specify a
1022 transport-specific override, where <i>transport</i> is the master.cf
1023 name of the message delivery transport.
1026 %PARAM default_privs nobody
1029 The default rights used by the local(8) delivery agent for delivery
1030 to external file or command. These rights are used when delivery
1031 is requested from an aliases(5) file that is owned by <b>root</b>, or
1032 when delivery is done on behalf of <b>root</b>. <b>DO NOT SPECIFY A
1033 PRIVILEGED USER OR THE POSTFIX OWNER</b>.
1036 %PARAM default_process_limit 100
1039 The default maximal number of Postfix child processes that provide
1040 a given service. This limit can be overruled for specific services
1041 in the master.cf file.
1044 %PARAM default_rbl_reply see "postconf -d" output
1047 The default SMTP server response template for a request that is
1048 rejected by an RBL-based restriction. This template can be overruled
1049 by specific entries in the optional rbl_reply_maps lookup table.
1053 This feature is available in Postfix 2.0 and later.
1057 The template is subject to exactly one level of $name substitution:
1062 <dt><b>$client</b></dt>
1064 <dd>The client hostname and IP address, formatted as name[address]. </dd>
1066 <dt><b>$client_address</b></dt>
1068 <dd>The client IP address. </dd>
1070 <dt><b>$client_name</b></dt>
1072 <dd>The client hostname or "unknown". See reject_unknown_client_hostname
1073 for more details. </dd>
1075 <dt><b>$reverse_client_name</b></dt>
1077 <dd>The client hostname from address->name lookup, or "unknown".
1078 See reject_unknown_reverse_client_hostname for more details. </dd>
1080 #<dt><b>$forward_client_name</b></dt>
1082 #<dd>The client hostname from address->name lookup followed by
1083 #name->address lookup, or "unknown". See
1084 #reject_unknown_forward_client_hostname for more details. </dd>
1086 <dt><b>$helo_name</b></dt>
1088 <dd>The hostname given in HELO or EHLO command or empty string. </dd>
1090 <dt><b>$rbl_class</b></dt>
1092 <dd>The blacklisted entity type: Client host, Helo command, Sender
1093 address, or Recipient address. </dd>
1095 <dt><b>$rbl_code</b></dt>
1097 <dd>The numerical SMTP response code, as specified with the
1098 maps_rbl_reject_code configuration parameter. Note: The numerical
1099 SMTP response code is required, and must appear at the start of the
1100 reply. With Postfix version 2.3 and later this information may be followed
1101 by an RFC 3463 enhanced status code. </dd>
1103 <dt><b>$rbl_domain</b></dt>
1105 <dd>The RBL domain where $rbl_what is blacklisted. </dd>
1107 <dt><b>$rbl_reason</b></dt>
1109 <dd>The reason why $rbl_what is blacklisted, or an empty string. </dd>
1111 <dt><b>$rbl_what</b></dt>
1113 <dd>The entity that is blacklisted (an IP address, a hostname, a domain
1114 name, or an email address whose domain was blacklisted). </dd>
1116 <dt><b>$recipient</b></dt>
1118 <dd>The recipient address or <> in case of the null address. </dd>
1120 <dt><b>$recipient_domain</b></dt>
1122 <dd>The recipient domain or empty string. </dd>
1124 <dt><b>$recipient_name</b></dt>
1126 <dd>The recipient address localpart or <> in case of null address. </dd>
1128 <dt><b>$sender</b></dt>
1130 <dd>The sender address or <> in case of the null address. </dd>
1132 <dt><b>$sender_domain</b></dt>
1134 <dd>The sender domain or empty string. </dd>
1136 <dt><b>$sender_name</b></dt>
1138 <dd>The sender address localpart or <> in case of the null address. </dd>
1140 <dt><b>${name?text}</b></dt>
1142 <dd>Expands to `text' if $name is not empty. </dd>
1144 <dt><b>${name:text}</b></dt>
1146 <dd>Expands to `text' if $name is empty. </dd>
1151 Instead of $name you can also specify ${name} or $(name).
1154 <p> Note: when an enhanced status code is specified in an RBL reply
1155 template, it is subject to modification. The following transformations
1156 are needed when the same RBL reply template is used for client,
1157 helo, sender, or recipient access restrictions. </p>
1161 <li> <p> When rejecting a sender address, the Postfix SMTP server
1162 will transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the
1163 corresponding sender DSN status, and vice versa. </p>
1165 <li> <p> When rejecting non-address information (such as the HELO
1166 command argument or the client hostname/address), the Postfix SMTP
1167 server will transform a sender or recipient DSN status into a generic
1168 non-address DSN status (e.g., 4.0.0). </p>
1172 %PARAM smtpd_expansion_filter see "postconf -d" output
1175 The smtpd_expansion_filter configuration parameter controls what
1176 characters may appear in $name expansions.
1179 %PARAM default_recipient_limit 20000
1182 The default per-transport upper limit on the number of in-memory
1183 recipients. These limits take priority over the global
1184 qmgr_message_recipient_limit after the message has been assigned
1185 to the respective transports. See also default_extra_recipient_limit
1186 and qmgr_message_recipient_minimum.
1189 <p> Use <i>transport</i>_recipient_limit to specify a
1190 transport-specific override, where <i>transport</i> is the master.cf
1191 name of the message delivery transport.
1194 %PARAM default_recipient_refill_limit 100
1197 The default per-transport limit on the number of recipients refilled at
1198 once. When not all message recipients fit into the memory at once, keep
1199 loading more of them in batches of at least this many at a time. See also
1200 $default_recipient_refill_delay, which may result in recipient batches
1201 lower than this when this limit is too high for too slow deliveries.
1204 <p> Use <i>transport</i>_recipient_refill_limit to specify a
1205 transport-specific override, where <i>transport</i> is the master.cf
1206 name of the message delivery transport.
1209 <p> This feature is available in Postfix 2.4 and later. </p>
1211 %PARAM default_recipient_refill_delay 5s
1214 The default per-transport maximum delay between recipients refills.
1215 When not all message recipients fit into the memory at once, keep loading
1216 more of them at least once every this many seconds. This is used to
1217 make sure the recipients are refilled in timely manner even when
1218 $default_recipient_refill_limit is too high for too slow deliveries.
1221 <p> Use <i>transport</i>_recipient_refill_delay to specify a
1222 transport-specific override, where <i>transport</i> is the master.cf
1223 name of the message delivery transport.
1226 <p> This feature is available in Postfix 2.4 and later. </p>
1228 %PARAM default_transport smtp
1231 The default mail delivery transport and next-hop destination for
1232 destinations that do not match $mydestination, $inet_interfaces,
1233 $proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains,
1234 or $relay_domains. In order of decreasing precedence, the nexthop
1235 destination is taken from $default_transport,
1236 $sender_dependent_relayhost_maps, $relayhost, or from the recipient
1237 domain. This information can be overruled with the transport(5)
1242 Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
1243 is the name of a mail delivery transport defined in master.cf.
1244 The <i>:nexthop</i> part is optional. For more details see the
1245 transport(5) manual page.
1253 default_transport = uucp:relayhostname
1256 %PARAM defer_code 450
1259 The numerical Postfix SMTP server response code when a remote SMTP
1260 client request is rejected by the "defer" restriction.
1264 Do not change this unless you have a complete understanding of RFC 2821.
1267 %PARAM defer_transports
1270 The names of message delivery transports that should not deliver mail
1271 unless someone issues "<b>sendmail -q</b>" or equivalent. Specify zero
1272 or more names of mail delivery transports names that appear in the
1273 first field of master.cf.
1281 defer_transports = smtp
1284 %PARAM deliver_lock_attempts 20
1287 The maximal number of attempts to acquire an exclusive lock on a
1288 mailbox file or bounce(8) logfile.
1291 %PARAM deliver_lock_delay 1s
1294 The time between attempts to acquire an exclusive lock on a mailbox
1295 file or bounce(8) logfile.
1299 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1300 The default time unit is s (seconds).
1303 %PARAM disable_vrfy_command no
1306 Disable the SMTP VRFY command. This stops some techniques used to
1307 harvest email addresses.
1315 disable_vrfy_command = no
1318 %PARAM double_bounce_sender double-bounce
1320 <p> The sender address of postmaster notifications that are generated
1321 by the mail system. All mail to this address is silently discarded,
1322 in order to terminate mail bounce loops. </p>
1324 %PARAM duplicate_filter_limit 1000
1326 <p> The maximal number of addresses remembered by the address
1327 duplicate filter for aliases(5) or virtual(5) alias expansion, or
1328 for showq(8) queue displays. </p>
1330 %PARAM enable_original_recipient yes
1332 <p> Enable support for the X-Original-To message header. This header
1333 is needed for multi-recipient mailboxes. </p>
1335 <p> When this parameter is set to yes, the cleanup(8) daemon performs
1336 duplicate elimination on distinct pairs of (original recipient,
1337 rewritten recipient), and generates non-empty original recipient
1338 queue file records. </p>
1340 <p> When this parameter is set to no, the cleanup(8) daemon performs
1341 duplicate elimination on the rewritten recipient address only, and
1342 generates empty original recipient queue file records. </p>
1344 <p> This feature is available in Postfix 2.1 and later. With Postfix
1345 version 2.0, support for the X-Original-To message header is always turned
1346 on. Postfix versions before 2.0 have no support for the X-Original-To
1347 message header. </p>
1349 %PARAM export_environment see "postconf -d" output
1352 The list of environment variables that a Postfix process will export
1353 to non-Postfix processes. The TZ variable is needed for sane
1354 time keeping on System-V-ish systems.
1358 Specify a list of names and/or name=value pairs, separated by
1359 whitespace or comma. The name=value form is supported with
1360 Postfix version 2.1 and later.
1368 export_environment = TZ PATH=/bin:/usr/bin
1371 %PARAM smtp_fallback_relay $fallback_relay
1374 Optional list of relay hosts for SMTP destinations that can't be
1375 found or that are unreachable. With Postfix 2.2 and earlier this
1376 parameter is called fallback_relay. </p>
1379 By default, mail is returned to the sender when a destination is
1380 not found, and delivery is deferred when a destination is unreachable.
1383 <p> The fallback relays must be SMTP destinations. Specify a domain,
1384 host, host:port, [host]:port, [address] or [address]:port; the form
1385 [host] turns off MX lookups. If you specify multiple SMTP
1386 destinations, Postfix will try them in the specified order. </p>
1388 <p> To prevent mailer loops between MX hosts and fall-back hosts,
1389 Postfix version 2.2 and later will not use the fallback relays for
1390 destinations that it is MX host for (assuming DNS lookup is turned on).
1393 %PARAM fallback_relay
1396 Optional list of relay hosts for SMTP destinations that can't be
1397 found or that are unreachable. With Postfix 2.3 this parameter
1398 is renamed to smtp_fallback_relay. </p>
1401 By default, mail is returned to the sender when a destination is
1402 not found, and delivery is deferred when a destination is unreachable.
1405 <p> The fallback relays must be SMTP destinations. Specify a domain,
1406 host, host:port, [host]:port, [address] or [address]:port; the form
1407 [host] turns off MX lookups. If you specify multiple SMTP
1408 destinations, Postfix will try them in the specified order. </p>
1410 <p> Note: before Postfix 2.2, do not use the fallback_relay feature
1412 for a backup or primary MX domain. Mail would loop between the
1413 Postfix MX host and the fallback_relay host when the final destination
1414 is unavailable. </p>
1418 <li> In main.cf specify "relay_transport = relay",
1420 <li> In master.cf specify "-o fallback_relay =" (i.e., empty) at
1421 the end of the <tt>relay</tt> entry.
1423 <li> In transport maps, specify "relay:<i>nexthop...</i>"
1424 as the right-hand side for backup or primary MX domain entries.
1428 <p> Postfix version 2.2 and later will not use the fallback_relay feature
1429 for destinations that it is MX host for.
1432 %PARAM fast_flush_domains $relay_domains
1435 Optional list of destinations that are eligible for per-destination
1436 logfiles with mail that is queued to those destinations.
1440 By default, Postfix maintains "fast flush" logfiles only for
1441 destinations that the Postfix SMTP server is willing to relay to
1442 (i.e. the default is: "fast_flush_domains = $relay_domains"; see
1443 the relay_domains parameter in the postconf(5) manual).
1446 <p> Specify a list of hosts or domains, "/file/name" patterns or
1447 "type:table" lookup tables, separated by commas and/or whitespace.
1448 Continue long lines by starting the next line with whitespace. A
1449 "/file/name" pattern is replaced by its contents; a "type:table"
1450 lookup table is matched when the domain or its parent domain appears
1454 Specify "fast_flush_domains =" (i.e., empty) to disable the feature
1458 %PARAM fast_flush_purge_time 7d
1461 The time after which an empty per-destination "fast flush" logfile
1466 You can specify the time as a number, or as a number followed by
1467 a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
1468 d=days, w=weeks. The default time unit is days.
1471 %PARAM fast_flush_refresh_time 12h
1474 The time after which a non-empty but unread per-destination "fast
1475 flush" logfile needs to be refreshed. The contents of a logfile
1476 are refreshed by requesting delivery of all messages listed in the
1481 You can specify the time as a number, or as a number followed by
1482 a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
1483 d=days, w=weeks. The default time unit is hours.
1486 %PARAM fork_attempts 5
1488 <p> The maximal number of attempts to fork() a child process. </p>
1490 %PARAM fork_delay 1s
1492 <p> The delay between attempts to fork() a child process. </p>
1494 <p> Time units: s (seconds), m (minutes), h (hours), d (days), w
1495 (weeks). The default time unit is s (seconds). </p>
1497 %PARAM execution_directory_expansion_filter see "postconf -d" output
1499 <p> Restrict the characters that the local(8) delivery agent allows
1500 in $name expansions of $command_execution_directory. Characters
1501 outside the allowed set are replaced by underscores. </p>
1503 <p> This feature is available in Postfix 2.2 and later. </p>
1505 %PARAM command_execution_directory
1507 <p> The local(8) delivery agent working directory for delivery to
1508 external command. Failure to change directory causes the delivery
1509 to be deferred. </p>
1511 <p> The following $name expansions are done on command_execution_directory
1512 before the directory is changed. Expansion happens in the context
1513 of the delivery request. The result of $name expansion is filtered
1514 with the character set that is specified with the
1515 execution_directory_expansion_filter parameter. </p>
1519 <dt><b>$user</b></dt>
1521 <dd>The recipient's username. </dd>
1523 <dt><b>$shell</b></dt>
1525 <dd>The recipient's login shell pathname. </dd>
1527 <dt><b>$home</b></dt>
1529 <dd>The recipient's home directory. </dd>
1531 <dt><b>$recipient</b></dt>
1533 <dd>The full recipient address. </dd>
1535 <dt><b>$extension</b></dt>
1537 <dd>The optional recipient address extension. </dd>
1539 <dt><b>$domain</b></dt>
1541 <dd>The recipient domain. </dd>
1543 <dt><b>$local</b></dt>
1545 <dd>The entire recipient localpart. </dd>
1547 <dt><b>$recipient_delimiter</b></dt>
1549 <dd>The system-wide recipient address extension delimiter. </dd>
1551 <dt><b>${name?value}</b></dt>
1553 <dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
1555 <dt><b>${name:value}</b></dt>
1557 <dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
1562 Instead of $name you can also specify ${name} or $(name).
1565 <p> This feature is available in Postfix 2.2 and later. </p>
1567 %PARAM forward_path see "postconf -d" output
1569 <p> The local(8) delivery agent search list for finding a .forward
1570 file with user-specified delivery methods. The first file that is
1573 <p> The following $name expansions are done on forward_path before
1574 the search actually happens. The result of $name expansion is
1575 filtered with the character set that is specified with the
1576 forward_expansion_filter parameter. </p>
1580 <dt><b>$user</b></dt>
1582 <dd>The recipient's username. </dd>
1584 <dt><b>$shell</b></dt>
1586 <dd>The recipient's login shell pathname. </dd>
1588 <dt><b>$home</b></dt>
1590 <dd>The recipient's home directory. </dd>
1592 <dt><b>$recipient</b></dt>
1594 <dd>The full recipient address. </dd>
1596 <dt><b>$extension</b></dt>
1598 <dd>The optional recipient address extension. </dd>
1600 <dt><b>$domain</b></dt>
1602 <dd>The recipient domain. </dd>
1604 <dt><b>$local</b></dt>
1606 <dd>The entire recipient localpart. </dd>
1608 <dt><b>$recipient_delimiter</b></dt>
1610 <dd>The system-wide recipient address extension delimiter. </dd>
1612 <dt><b>${name?value}</b></dt>
1614 <dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
1616 <dt><b>${name:value}</b></dt>
1618 <dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
1623 Instead of $name you can also specify ${name} or $(name).
1631 forward_path = /var/forward/$user
1633 /var/forward/$user/.forward$recipient_delimiter$extension,
1634 /var/forward/$user/.forward
1637 %CLASS queue-hashing Queue directory hashing
1640 Queue directory hashing is a performance feature. Splitting one
1641 queue directory across multiple subdirectory levels can speed up
1642 file access by reducing the number of files per directory.
1646 Unfortunately, deeply hashing the incoming or deferred queue can
1647 actually slow down the mail system (with a depth of 2, mailq with
1648 an empty queue can take several seconds).
1652 Hashing must NOT be used with a world-writable maildrop directory.
1653 Hashing MUST be used for the defer logfile directory, to avoid poor
1654 performance when handling lots of deferred mail.
1657 %PARAM hash_queue_depth 1
1660 The number of subdirectory levels for queue directories listed with
1661 the hash_queue_names parameter.
1665 After changing the hash_queue_names or hash_queue_depth parameter,
1666 execute the command "<b>postfix reload</b>".
1669 %PARAM hash_queue_names deferred, defer
1672 The names of queue directories that are split across multiple
1673 subdirectory levels.
1676 <p> Before Postfix version 2.2, the default list of hashed queues
1677 was significantly larger. Claims about improvements in file system
1678 technology suggest that hashing of the incoming and active queues
1679 is no longer needed. Fewer hashed directories speed up the time
1680 needed to restart Postfix. </p>
1683 After changing the hash_queue_names or hash_queue_depth parameter,
1684 execute the command "<b>postfix reload</b>".
1687 %CLASS headerbody-checks Content inspection built-in features
1690 The Postfix cleanup(8) server has a limited ability to inspect
1691 message headers and body content for signs of trouble. This is not
1692 meant to be a substitute for content filters that do complex
1693 processing such attachment decoding and unzipping.
1696 %PARAM header_checks
1699 Optional lookup tables for content inspection of primary non-MIME
1700 message headers, as specified in the header_checks(5) manual page.
1703 %PARAM header_size_limit 102400
1706 The maximal amount of memory in bytes for storing a message header.
1707 If a header is larger, the excess is discarded. The limit is
1708 enforced by the cleanup(8) server.
1714 Optional pathname of a mailbox file relative to a local(8) user's
1719 Specify a pathname ending in "/" for qmail-style delivery.
1722 <p> The precedence of local(8) delivery features from high to low
1723 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
1724 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
1725 fallback_transport_maps, fallback_transport and luser_relay. </p>
1732 home_mailbox = Mailbox
1733 home_mailbox = Maildir/
1736 %PARAM hopcount_limit 50
1739 The maximal number of Received: message headers that is allowed
1740 in the primary message headers. A message that exceeds the limit
1741 is bounced, in order to stop a mailer loop.
1744 %PARAM ignore_mx_lookup_error no
1746 <p> Ignore DNS MX lookups that produce no response. By default,
1747 the Postfix SMTP client defers delivery and tries again after some
1748 delay. This behavior is required by the SMTP standard. </p>
1751 Specify "ignore_mx_lookup_error = yes" to force a DNS A record
1752 lookup instead. This violates the SMTP standard and can result in
1753 mis-delivery of mail.
1756 %PARAM import_environment see "postconf -d" output
1759 The list of environment parameters that a Postfix process will
1760 import from a non-Postfix parent process. Examples of relevant
1768 <dd>Needed for sane time keeping on most System-V-ish systems. </dd>
1770 <dt><b>DISPLAY</b></dt>
1772 <dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
1774 <dt><b>XAUTHORITY</b></dt>
1776 <dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
1778 <dt><b>MAIL_CONFIG</b></dt>
1780 <dd>Needed to make "<b>postfix -c</b>" work. </dd>
1784 <p> Specify a list of names and/or name=value pairs, separated by
1785 whitespace or comma. The name=value form is supported with
1786 Postfix version 2.1 and later. </p>
1788 %PARAM in_flow_delay 1s
1790 <p> Time to pause before accepting a new message, when the message
1791 arrival rate exceeds the message delivery rate. This feature is
1792 turned on by default (it's disabled on SCO UNIX due to an SCO bug).
1796 With the default 100 SMTP server process limit, "in_flow_delay
1797 = 1s" limits the mail inflow to 100 messages per second above the
1798 number of messages delivered per second.
1802 Specify 0 to disable the feature. Valid delays are 0..10.
1805 %PARAM inet_interfaces all
1807 <p> The network interface addresses that this mail system receives
1808 mail on. Specify "all" to receive mail on all network
1809 interfaces (default), and "loopback-only" to receive mail
1810 on loopback network interfaces only (Postfix version 2.2 and later). The
1811 parameter also controls delivery of mail to <tt>user@[ip.address]</tt>.
1815 Note 1: you need to stop and start Postfix when this parameter changes.
1818 <p> Note 2: address information may be enclosed inside <tt>[]</tt>,
1819 but this form is not required here. </p>
1821 <p> When inet_interfaces specifies just one IPv4 and/or IPv6 address
1822 that is not a loopback address, the Postfix SMTP client will use
1823 this address as the IP source address for outbound mail. Support
1824 for IPv6 is available in Postfix version 2.2 and later. </p>
1827 On a multi-homed firewall with separate Postfix instances listening on the
1828 "inside" and "outside" interfaces, this can prevent each instance from
1829 being able to reach servers on the "other side" of the firewall. Setting
1830 smtp_bind_address to 0.0.0.0 avoids the potential problem for
1831 IPv4, and setting smtp_bind_address6 to :: solves the problem
1835 A better solution for multi-homed firewalls is to leave inet_interfaces
1836 at the default value and instead use explicit IP addresses in
1837 the master.cf SMTP server definitions. This preserves the Postfix
1839 loop detection, by ensuring that each side of the firewall knows that the
1840 other IP address is still the same host. Setting $inet_interfaces to a
1841 single IPv4 and/or IPV6 address is primarily useful with virtual
1842 hosting of domains on
1843 secondary IP addresses, when each IP address serves a different domain
1844 (and has a different $myhostname setting). </p>
1847 See also the proxy_interfaces parameter, for network addresses that
1848 are forwarded to Postfix by way of a proxy or address translator.
1856 inet_interfaces = all (DEFAULT)
1857 inet_interfaces = loopback-only (Postfix version 2.2 and later)
1858 inet_interfaces = 127.0.0.1
1859 inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later)
1860 inet_interfaces = 192.168.1.2, 127.0.0.1
1863 %PARAM inet_protocols ipv4
1865 <p> The Internet protocols Postfix will attempt to use when making
1866 or accepting connections. Specify one or more of "ipv4"
1867 or "ipv6", separated by whitespace or commas. The form
1868 "all" is equivalent to "ipv4, ipv6" or "ipv4", depending
1869 on whether the operating system implements IPv6. </p>
1871 <p> This feature is available in Postfix 2.2 and later. </p>
1873 <p> Note: you MUST stop and start Postfix after changing this
1876 <p> On systems that pre-date IPV6_V6ONLY support (RFC 3493), an
1877 IPv6 server will also accept IPv4 connections, even when IPv4 is
1878 turned off with the inet_protocols parameter. On systems with
1879 IPV6_V6ONLY support, Postfix will use separate server sockets for
1880 IPv6 and IPv4, and each will accept only connections for the
1881 corresponding protocol. </p>
1883 <p> When IPv4 support is enabled via the inet_protocols parameter,
1884 Postfix will to DNS type A record lookups, and will convert
1885 IPv4-in-IPv6 client IP addresses (::ffff:1.2.3.4) to their original
1886 IPv4 form (1.2.3.4). The latter is needed on hosts that pre-date
1887 IPV6_V6ONLY support (RFC 3493). </p>
1889 <p> When IPv6 support is enabled via the inet_protocols parameter,
1890 Postfix will do DNS type AAAA record lookups. </p>
1892 <p> When both IPv4 and IPv6 support are enabled, the Postfix SMTP
1893 client will attempt to connect via IPv6 before attempting to use
1901 inet_protocols = ipv4 (DEFAULT)
1902 inet_protocols = all
1903 inet_protocols = ipv6
1904 inet_protocols = ipv4, ipv6
1907 %PARAM initial_destination_concurrency 5
1910 The initial per-destination concurrency level for parallel delivery
1911 to the same destination.
1912 With per-destination recipient limit > 1, a destination is a domain,
1913 otherwise it is a recipient.
1916 <p> Use <i>transport</i>_initial_destination_concurrency to specify
1917 a transport-specific override, where <i>transport</i> is the master.cf
1918 name of the message delivery transport (Postfix 2.5 and later). </p>
1921 Warning: with concurrency of 1, one bad message can be enough to
1922 block all mail to a site.
1925 %PARAM invalid_hostname_reject_code 501
1928 The numerical Postfix SMTP server response code when the client
1929 HELO or EHLO command parameter is rejected by the reject_invalid_helo_hostname
1934 Do not change this unless you have a complete understanding of RFC 2821.
1937 %PARAM ipc_idle version dependent
1940 The time after which a client closes an idle internal communication
1941 channel. The purpose is to allow servers to terminate voluntarily
1942 after they become idle. This is used, for example, by the address
1943 resolving and rewriting clients.
1946 <p> With Postfix 2.4 the default value was reduced from 100s to 5s. </p>
1949 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1950 The default time unit is s (seconds).
1953 %PARAM ipc_timeout 3600s
1956 The time limit for sending or receiving information over an internal
1957 communication channel. The purpose is to break out of deadlock
1958 situations. If the time limit is exceeded the software aborts with a
1963 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1964 The default time unit is s (seconds).
1967 %PARAM ipc_ttl 1000s
1970 The time after which a client closes an active internal communication
1971 channel. The purpose is to allow servers to terminate voluntarily
1972 after reaching their client limit. This is used, for example, by
1973 the address resolving and rewriting clients.
1977 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1978 The default time unit is s (seconds).
1982 This feature is available in Postfix 2.1 and later.
1985 %PARAM line_length_limit 2048
1987 <p> Upon input, long lines are chopped up into pieces of at most
1988 this length; upon delivery, long lines are reconstructed. </p>
1990 %PARAM lmtp_connect_timeout 0s
1992 <p> The LMTP client time limit for completing a TCP connection, or
1993 zero (use the operating system built-in time limit). When no
1994 connection can be made within the deadline, the LMTP client tries
1995 the next address on the mail exchanger list. </p>
1998 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
1999 The default time unit is s (seconds).
2007 lmtp_connect_timeout = 30s
2010 %PARAM lmtp_data_done_timeout 600s
2012 <p> The LMTP client time limit for sending the LMTP ".", and for
2013 receiving the server response. When no response is received within
2014 the deadline, a warning is logged that the mail may be delivered
2015 multiple times. </p>
2018 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2019 The default time unit is s (seconds).
2022 %PARAM lmtp_data_init_timeout 120s
2025 The LMTP client time limit for sending the LMTP DATA command, and
2026 for receiving the server response.
2030 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2031 The default time unit is s (seconds).
2034 %PARAM lmtp_data_xfer_timeout 180s
2037 The LMTP client time limit for sending the LMTP message content.
2038 When the connection stalls for more than $lmtp_data_xfer_timeout
2039 the LMTP client terminates the transfer.
2043 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2044 The default time unit is s (seconds).
2047 %PARAM lmtp_lhlo_timeout 300s
2049 <p> The LMTP client time limit for receiving the LMTP greeting
2050 banner. When the server drops the connection without sending a
2051 greeting banner, or when it sends no greeting banner within the
2052 deadline, the LMTP client tries the next address on the mail
2053 exchanger list. </p>
2056 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2057 The default time unit is s (seconds).
2060 %PARAM lmtp_mail_timeout 300s
2063 The LMTP client time limit for sending the MAIL FROM command, and
2064 for receiving the server response.
2068 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2069 The default time unit is s (seconds).
2072 %PARAM lmtp_quit_timeout 300s
2075 The LMTP client time limit for sending the QUIT command, and for
2076 receiving the server response.
2080 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2081 The default time unit is s (seconds).
2084 %PARAM lmtp_rcpt_timeout 300s
2087 The LMTP client time limit for sending the RCPT TO command, and
2088 for receiving the server response.
2092 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2093 The default time unit is s (seconds).
2096 %PARAM lmtp_rset_timeout 20s
2098 <p> The LMTP client time limit for sending the RSET command, and
2099 for receiving the server response. The LMTP client sends RSET in
2100 order to finish a recipient address probe, or to verify that a
2101 cached connection is still alive. </p>
2104 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2105 The default time unit is s (seconds).
2108 %PARAM lmtp_send_xforward_command no
2111 Send an XFORWARD command to the LMTP server when the LMTP LHLO
2112 server response announces XFORWARD support. This allows an lmtp(8)
2113 delivery agent, used for content filter message injection, to
2114 forward the name, address, protocol and HELO name of the original
2115 client to the content filter and downstream queuing LMTP server.
2116 Before you change the value to yes, it is best to make sure that
2117 your content filter supports this command.
2121 This feature is available in Postfix 2.1 and later.
2124 %PARAM lmtp_skip_quit_response no
2127 Wait for the response to the LMTP QUIT command.
2130 %PARAM lmtp_xforward_timeout 300s
2133 The LMTP client time limit for sending the XFORWARD command, and
2134 for receiving the server response.
2138 In case of problems the client does NOT try the next address on
2139 the mail exchanger list.
2143 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2144 The default time unit is s (seconds).
2148 This feature is available in Postfix 2.1 and later.
2151 %PARAM local_command_shell
2154 Optional shell program for local(8) delivery to non-Postfix command.
2155 By default, non-Postfix commands are executed directly; commands
2156 are given to given to /bin/sh only when they contain shell meta
2157 characters or shell built-in commands. </p>
2159 <p> "sendmail's restricted shell" (smrsh) is what most people will
2160 use in order to restrict what programs can be run from e.g. .forward
2161 files (smrsh is part of the Sendmail distribution). </p>
2163 <p> Note: when a shell program is specified, it is invoked even
2164 when the command contains no shell built-in commands or meta
2172 local_command_shell = /some/where/smrsh -c
2175 %PARAM local_destination_concurrency_limit 2
2177 <p> The maximal number of parallel deliveries via the local mail
2178 delivery transport to the same recipient (when
2179 "local_destination_recipient_limit = 1") or the maximal number of
2180 parallel deliveries to the same local domain (when
2181 "local_destination_recipient_limit > 1"). This limit is enforced by
2182 the queue manager. The message delivery transport name is the first
2183 field in the entry in the master.cf file. </p>
2185 <p> A low limit of 2 is recommended, just in case someone has an
2186 expensive shell command in a .forward file or in an alias (e.g.,
2187 a mailing list manager). You don't want to run lots of those at
2190 %PARAM local_destination_recipient_limit 1
2192 <p> The maximal number of recipients per message delivery via the
2193 local mail delivery transport. This limit is enforced by the queue
2194 manager. The message delivery transport name is the first field in
2195 the entry in the master.cf file. </p>
2197 <p> Setting this parameter to a value > 1 changes the meaning of
2198 local_destination_concurrency_limit from concurrency per recipient
2199 into concurrency per domain. </p>
2201 %PARAM local_recipient_maps proxy:unix:passwd.byname $alias_maps
2203 <p> Lookup tables with all names or addresses of local recipients:
2204 a recipient address is local when its domain matches $mydestination,
2205 $inet_interfaces or $proxy_interfaces. Specify @domain as a
2206 wild-card for domains that do not have a valid recipient list.
2207 Technically, tables listed with $local_recipient_maps are used as
2208 lists: Postfix needs to know only if a lookup string is found or
2209 not, but it does not use the result from table lookup. </p>
2212 If this parameter is non-empty (the default), then the Postfix SMTP
2213 server will reject mail for unknown local users.
2217 To turn off local recipient checking in the Postfix SMTP server,
2218 specify "local_recipient_maps =" (i.e. empty).
2222 The default setting assumes that you use the default Postfix local
2223 delivery agent for local delivery. You need to update the
2224 local_recipient_maps setting if:
2229 <li>You redefine the local delivery agent in master.cf.
2231 <li>You redefine the "local_transport" setting in main.cf.
2233 <li>You use the "luser_relay", "mailbox_transport", or "fallback_transport"
2234 feature of the Postfix local(8) delivery agent.
2239 Details are described in the LOCAL_RECIPIENT_README file.
2243 Beware: if the Postfix SMTP server runs chrooted, you need to access
2244 the passwd file via the proxymap(8) service, in order to overcome
2245 chroot access restrictions. The alternative, maintaining a copy of
2246 the system password file in the chroot jail is not practical.
2254 local_recipient_maps =
2257 %PARAM local_transport local:$myhostname
2259 <p> The default mail delivery transport and next-hop destination
2260 for final delivery to domains listed with mydestination, and for
2261 [ipaddress] destinations that match $inet_interfaces or $proxy_interfaces.
2262 This information can be overruled with the transport(5) table. </p>
2265 By default, local mail is delivered to the transport called "local",
2266 which is just the name of a service that is defined the master.cf file.
2270 Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
2271 is the name of a mail delivery transport defined in master.cf.
2272 The <i>:nexthop</i> part is optional. For more details see the
2273 transport(5) manual page.
2277 Beware: if you override the default local delivery agent then you
2278 need to review the LOCAL_RECIPIENT_README document, otherwise the
2279 SMTP server may reject mail for local recipients.
2285 Optional catch-all destination for unknown local(8) recipients.
2286 By default, mail for unknown recipients in domains that match
2287 $mydestination, $inet_interfaces or $proxy_interfaces is returned
2292 The following $name expansions are done on luser_relay:
2297 <dt><b>$domain</b></dt>
2299 <dd>The recipient domain. </dd>
2301 <dt><b>$extension</b></dt>
2303 <dd>The recipient address extension. </dd>
2305 <dt><b>$home</b></dt>
2307 <dd>The recipient's home directory. </dd>
2309 <dt><b>$local</b></dt>
2311 <dd>The entire recipient address localpart. </dd>
2313 <dt><b>$recipient</b></dt>
2315 <dd>The full recipient address. </dd>
2317 <dt><b>$recipient_delimiter</b></dt>
2319 <dd>The system-wide recipient address extension delimiter. </dd>
2321 <dt><b>$shell</b></dt>
2323 <dd>The recipient's login shell. </dd>
2325 <dt><b>$user</b></dt>
2327 <dd>The recipient username. </dd>
2329 <dt><b>${name?value}</b></dt>
2331 <dd>Expands to <i>value</i> when <i>$name</i> has a non-empty value. </dd>
2333 <dt><b>${name:value}</b></dt>
2335 <dd>Expands to <i>value</i> when <i>$name</i> has an empty value. </dd>
2340 Instead of $name you can also specify ${name} or $(name).
2344 Note: luser_relay works only for the Postfix local(8) delivery agent.
2348 Note: if you use this feature for accounts not in the UNIX password
2349 file, then you must specify "local_recipient_maps =" (i.e. empty)
2350 in the main.cf file, otherwise the Postfix SMTP server will reject mail
2351 for non-UNIX accounts with "User unknown in local recipient table".
2359 luser_relay = $user@other.host
2360 luser_relay = $local@other.host
2361 luser_relay = admin+$local
2364 %PARAM mail_name Postfix
2367 The mail system name that is displayed in Received: headers, in
2368 the SMTP greeting banner, and in bounced mail.
2371 %PARAM mail_owner postfix
2374 The UNIX system account that owns the Postfix queue and most Postfix
2375 daemon processes. Specify the name of a user account that does
2376 not share a group with other accounts and that owns no other files
2377 or processes on the system. In particular, don't specify nobody
2378 or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID.
2382 When this parameter value is changed you need to re-run "<b>postfix
2383 set-permissions</b>" (with Postfix version 2.0 and earlier:
2384 "<b>/etc/postfix/post-install set-permissions</b>".
2387 %PARAM mail_spool_directory see "postconf -d" output
2390 The directory where local(8) UNIX-style mailboxes are kept. The
2391 default setting depends on the system type. Specify a name ending
2392 in / for maildir-style delivery.
2396 Note: maildir delivery is done with the privileges of the recipient.
2397 If you use the mail_spool_directory setting for maildir style
2398 delivery, then you must create the top-level maildir directory in
2399 advance. Postfix will not create it.
2407 mail_spool_directory = /var/mail
2408 mail_spool_directory = /var/spool/mail
2411 %PARAM mail_version see "postconf -d" output
2414 The version of the mail system. Stable releases are named
2415 <i>major</i>.<i>minor</i>.<i>patchlevel</i>. Experimental releases
2416 also include the release date. The version string can be used in,
2417 for example, the SMTP greeting banner.
2420 %PARAM mailbox_command
2423 Optional external command that the local(8) delivery agent should
2424 use for mailbox delivery. The command is run with the user ID and
2425 the primary group ID privileges of the recipient. Exception:
2426 command delivery for root executes with $default_privs privileges.
2427 This is not a problem, because 1) mail for root should always be
2428 aliased to a real user and 2) don't log in as root, use "su" instead.
2432 The following environment variables are exported to the command:
2437 <dt><b>CLIENT_ADDRESS</b></dt>
2439 <dd>Remote client network address. Available in Postfix version 2.2 and
2442 <dt><b>CLIENT_HELO</b></dt>
2444 <dd>Remote client EHLO command parameter. Available in Postfix version 2.2
2447 <dt><b>CLIENT_HOSTNAME</b></dt>
2449 <dd>Remote client hostname. Available in Postfix version 2.2 and later.
2452 <dt><b>CLIENT_PROTOCOL</b></dt>
2454 <dd>Remote client protocol. Available in Postfix version 2.2 and later.
2457 <dt><b>DOMAIN</b></dt>
2459 <dd>The domain part of the recipient address. </dd>
2461 <dt><b>EXTENSION</b></dt>
2463 <dd>The optional address extension. </dd>
2465 <dt><b>HOME</b></dt>
2467 <dd>The recipient home directory. </dd>
2469 <dt><b>LOCAL</b></dt>
2471 <dd>The recipient address localpart. </dd>
2473 <dt><b>LOGNAME</b></dt>
2475 <dd>The recipient's username. </dd>
2477 <dt><b>ORIGINAL_RECIPIENT</b></dt>
2479 <dd>The entire recipient address, before any address rewriting or
2482 <dt><b>RECIPIENT</b></dt>
2484 <dd>The full recipient address. </dd>
2486 <dt><b>SASL_METHOD</b></dt>
2488 <dd>SASL authentication method specified in the remote client AUTH
2489 command. Available in Postfix version 2.2 and later. </dd>
2491 <dt><b>SASL_SENDER</b></dt>
2493 <dd>SASL sender address specified in the remote client MAIL FROM
2494 command. Available in Postfix version 2.2 and later. </dd>
2496 <dt><b>SASL_USER</b></dt>
2498 <dd>SASL username specified in the remote client AUTH command.
2499 Available in Postfix version 2.2 and later. </dd>
2501 <dt><b>SENDER</b></dt>
2503 <dd>The full sender address. </dd>
2505 <dt><b>SHELL</b></dt>
2507 <dd>The recipient's login shell. </dd>
2509 <dt><b>USER</b></dt>
2511 <dd>The recipient username. </dd>
2516 Unlike other Postfix configuration parameters, the mailbox_command
2517 parameter is not subjected to $name substitutions. This is to make
2518 it easier to specify shell syntax (see example below).
2522 If you can, avoid shell meta characters because they will force
2523 Postfix to run an expensive shell process. If you're delivering
2524 via Procmail then running a shell won't make a noticeable difference
2529 Note: if you use the mailbox_command feature to deliver mail
2530 system-wide, you must set up an alias that forwards mail for root
2534 <p> The precedence of local(8) delivery features from high to low
2535 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
2536 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
2537 fallback_transport_maps, fallback_transport and luser_relay. </p>
2544 mailbox_command = /some/where/procmail
2545 mailbox_command = /some/where/procmail -a "$EXTENSION"
2546 mailbox_command = /some/where/maildrop -d "$USER"
2547 -f "$SENDER" "$EXTENSION"
2550 %PARAM mailbox_size_limit 51200000
2552 <p> The maximal size of any local(8) individual mailbox or maildir
2553 file, or zero (no limit). In fact, this limits the size of any
2554 file that is written to upon local delivery, including files written
2555 by external commands that are executed by the local(8) delivery
2559 This limit must not be smaller than the message size limit.
2562 %PARAM maps_rbl_reject_code 554
2565 The numerical Postfix SMTP server response code when a remote SMTP
2566 client request is blocked by the reject_rbl_client, reject_rhsbl_client,
2567 reject_rhsbl_sender or reject_rhsbl_recipient restriction.
2571 Do not change this unless you have a complete understanding of RFC 2821.
2574 %PARAM masquerade_classes envelope_sender, header_sender, header_recipient
2577 What addresses are subject to address masquerading.
2581 By default, address masquerading is limited to envelope sender
2582 addresses, and to header sender and header recipient addresses.
2583 This allows you to use address masquerading on a mail gateway while
2584 still being able to forward mail to users on individual machines.
2588 Specify zero or more of: envelope_sender, envelope_recipient,
2589 header_sender, header_recipient
2592 %PARAM masquerade_domains
2595 Optional list of domains whose subdomain structure will be stripped
2596 off in email addresses.
2600 The list is processed left to right, and processing stops at the
2606 masquerade_domains = foo.example.com example.com
2611 strips "user@any.thing.foo.example.com" to "user@foo.example.com",
2612 but strips "user@any.thing.else.example.com" to "user@example.com".
2616 A domain name prefixed with ! means do not masquerade this domain
2617 or its subdomains. Thus,
2622 masquerade_domains = !foo.example.com example.com
2627 does not change "user@any.thing.foo.example.com" or "user@foo.example.com",
2628 but strips "user@any.thing.else.example.com" to "user@example.com".
2631 <p> Note: with Postfix version 2.2, message header address masquerading
2632 happens only when message header address rewriting is enabled: </p>
2636 <li> The message is received with the Postfix sendmail(1) command,
2638 <li> The message is received from a network client that matches
2639 $local_header_rewrite_clients,
2641 <li> The message is received from the network, and the
2642 remote_header_rewrite_domain parameter specifies a non-empty value.
2646 <p> To get the behavior before Postfix version 2.2, specify
2647 "local_header_rewrite_clients = static:all". </p>
2655 masquerade_domains = $mydomain
2658 %PARAM masquerade_exceptions
2661 Optional list of user names that are not subjected to address
2662 masquerading, even when their address matches $masquerade_domains.
2666 By default, address masquerading makes no exceptions.
2670 Specify a list of user names, "/file/name" or "type:table" patterns,
2671 separated by commas and/or whitespace. The list is matched left to
2672 right, and the search stops on the first match. A "/file/name"
2674 by its contents; a "type:table" lookup table is matched when a name
2675 matches a lookup key (the lookup result is ignored). Continue long
2676 lines by starting the next line with whitespace. Specify "!pattern"
2677 to exclude a name from the list. The form "!/file/name" is supported
2678 only in Postfix version 2.4 and later. </p>
2685 masquerade_exceptions = root, mailer-daemon
2686 masquerade_exceptions = root
2689 %PARAM max_idle 100s
2692 The maximum amount of time that an idle Postfix daemon process waits
2693 for an incoming connection before terminating voluntarily. This
2695 is ignored by the Postfix queue manager and by other long-lived
2696 Postfix daemon processes.
2700 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2701 The default time unit is s (seconds).
2707 The maximal number of incoming connections that a Postfix daemon
2708 process will service before terminating voluntarily. This parameter
2709 is ignored by the Postfix queue
2710 manager and by other long-lived Postfix daemon processes.
2713 %PARAM maximal_backoff_time 4000s
2716 The maximal time between attempts to deliver a deferred message.
2719 <p> This parameter should be set to a value greater than or equal
2720 to $minimal_backoff_time. See also $queue_run_delay. </p>
2723 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2724 The default time unit is s (seconds).
2727 %PARAM maximal_queue_lifetime 5d
2730 The maximal time a message is queued before it is sent back as
2735 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2736 The default time unit is d (days).
2740 Specify 0 when mail delivery should be tried only once.
2743 %PARAM message_size_limit 10240000
2746 The maximal size in bytes of a message, including envelope information.
2749 <p> Note: be careful when making changes. Excessively small values
2750 will result in the loss of non-delivery notifications, when a bounce
2751 message size exceeds the local or remote MTA's message size limit.
2754 %PARAM minimal_backoff_time 300s
2757 The minimal time between attempts to deliver a deferred message;
2758 prior to Postfix 2.4 the default value was 1000s.
2762 This parameter also limits the time an unreachable destination is
2763 kept in the short-term, in-memory, destination status cache.
2766 <p> This parameter should be set greater than or equal to
2767 $queue_run_delay. See also $maximal_backoff_time. </p>
2770 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
2771 The default time unit is s (seconds).
2774 %PARAM multi_recipient_bounce_reject_code 550
2777 The numerical Postfix SMTP server response code when a remote SMTP
2778 client request is blocked by the reject_multi_recipient_bounce
2783 Do not change this unless you have a complete understanding of RFC 2821.
2787 This feature is available in Postfix 2.1 and later.
2790 %PARAM mydestination $myhostname, localhost.$mydomain, localhost
2792 <p> The list of domains that are delivered via the $local_transport
2793 mail delivery transport. By default this is the Postfix local(8)
2794 delivery agent which looks up all recipients in /etc/passwd and
2795 /etc/aliases. The SMTP server validates recipient addresses with
2796 $local_recipient_maps and rejects non-existent recipients. See also
2797 the local domain class in the ADDRESS_CLASS_README file.
2801 The default mydestination value specifies names for the local
2802 machine only. On a mail domain gateway, you should also include
2807 The $local_transport delivery method is also selected for mail
2808 addressed to user@[the.net.work.address] of the mail system (the
2809 IP addresses specified with the inet_interfaces and proxy_interfaces
2819 <li><p>Do not specify the names of virtual domains - those domains
2820 are specified elsewhere. See VIRTUAL_README for more information. </p>
2822 <li><p>Do not specify the names of domains that this machine is
2823 backup MX host for. See STANDARD_CONFIGURATION_README for how to
2824 set up backup MX hosts. </p>
2826 <li><p>By default, the Postfix SMTP server rejects mail for recipients
2827 not listed with the local_recipient_maps parameter. See the
2828 postconf(5) manual for a description of the local_recipient_maps
2829 and unknown_local_recipient_reject_code parameters. </p>
2834 Specify a list of host or domain names, "/file/name" or "type:table"
2835 patterns, separated by commas and/or whitespace. A "/file/name"
2836 pattern is replaced by its contents; a "type:table" lookup table
2837 is matched when a name matches a lookup key (the lookup result is
2838 ignored). Continue long lines by starting the next line with
2846 mydestination = $myhostname, localhost.$mydomain $mydomain
2847 mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain
2850 %PARAM mydomain see "postconf -d" output
2853 The internet domain name of this mail system. The default is to
2854 use $myhostname minus the first component. $mydomain is used as
2855 a default value for many other configuration parameters.
2863 mydomain = domain.tld
2866 %PARAM myhostname see "postconf -d" output
2869 The internet hostname of this mail system. The default is to use
2870 the fully-qualified domain name from gethostname(). $myhostname is
2871 used as a default value for many other configuration parameters.
2879 myhostname = host.example.com
2882 %PARAM mynetworks see "postconf -d" output
2885 The list of "trusted" SMTP clients that have more privileges than
2890 In particular, "trusted" SMTP clients are allowed to relay mail
2891 through Postfix. See the smtpd_recipient_restrictions parameter
2892 description in the postconf(5) manual.
2896 You can specify the list of "trusted" network addresses by hand
2897 or you can let Postfix do it for you (which is the default).
2898 See the description of the mynetworks_style parameter for more
2903 If you specify the mynetworks list by hand,
2904 Postfix ignores the mynetworks_style setting.
2907 <p> Specify a list of network addresses or network/netmask patterns,
2908 separated by commas and/or whitespace. Continue long lines by
2909 starting the next line with whitespace. </p>
2911 <p> The netmask specifies the number of bits in the network part
2912 of a host address. You can also specify "/file/name" or "type:table"
2913 patterns. A "/file/name" pattern is replaced by its contents; a
2914 "type:table" lookup table is matched when a table entry matches a
2915 lookup string (the lookup result is ignored). </p>
2917 <p> The list is matched left to right, and the search stops on the
2918 first match. Specify "!pattern" to exclude an address or network
2919 block from the list. The form "!/file/name" is supported only
2920 in Postfix version 2.4 and later. </p>
2922 <p> Note: IP version 6 address information must be specified inside
2923 <tt>[]</tt> in the mynetworks value, and in files specified with
2924 "/file/name". IP version 6 addresses contain the ":" character,
2925 and would otherwise be confused with a "type:table" pattern. </p>
2930 mynetworks = 127.0.0.0/8 168.100.189.0/28
2931 mynetworks = !192.168.0.1, 192.168.0.0/28
2932 mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64
2933 mynetworks = $config_directory/mynetworks
2934 mynetworks = hash:/etc/postfix/network_table
2937 %PARAM myorigin $myhostname
2940 The domain name that locally-posted mail appears to come
2941 from, and that locally posted mail is delivered to. The default,
2942 $myhostname, is adequate for small sites. If you run a domain with
2943 multiple machines, you should (1) change this to $mydomain and (2)
2944 set up a domain-wide alias database that aliases each user to
2945 user@that.users.mailhost.
2953 myorigin = $mydomain
2956 %PARAM notify_classes resource, software
2959 The list of error classes that are reported to the postmaster. The
2960 default is to report only the most serious problems. The paranoid
2961 may wish to turn on the policy (UCE and mail relaying) and protocol
2962 error (broken mail software) reports.
2965 <p> NOTE: postmaster notifications may contain confidential information
2966 such as SASL passwords or message content. It is the system
2967 administrator's responsibility to treat such information with care.
2971 The error classes are:
2976 <dt><b>bounce</b> (also implies <b>2bounce</b>)</dt>
2978 <dd>Send the postmaster copies of the headers of bounced mail, and
2979 send transcripts of SMTP sessions when Postfix rejects mail. The
2980 notification is sent to the address specified with the
2981 bounce_notice_recipient configuration parameter (default: postmaster).
2984 <dt><b>2bounce</b></dt>
2986 <dd>Send undeliverable bounced mail to the postmaster. The notification
2987 is sent to the address specified with the 2bounce_notice_recipient
2988 configuration parameter (default: postmaster). </dd>
2990 <dt><b>delay</b></dt>
2992 <dd>Send the postmaster copies of the headers of delayed mail. The
2993 notification is sent to the address specified with the
2994 delay_notice_recipient configuration parameter (default: postmaster).
2997 <dt><b>policy</b></dt>
2999 <dd>Send the postmaster a transcript of the SMTP session when a
3000 client request was rejected because of (UCE) policy. The notification
3001 is sent to the address specified with the error_notice_recipient
3002 configuration parameter (default: postmaster). </dd>
3004 <dt><b>protocol</b></dt>
3006 <dd>Send the postmaster a transcript of the SMTP session in case
3007 of client or server protocol errors. The notification is sent to
3008 the address specified with the error_notice_recipient configuration
3009 parameter (default: postmaster). </dd>
3011 <dt><b>resource</b></dt>
3013 <dd>Inform the postmaster of mail not delivered due to resource
3014 problems. The notification is sent to the address specified with
3015 the error_notice_recipient configuration parameter (default:
3018 <dt><b>software</b></dt>
3020 <dd>Inform the postmaster of mail not delivered due to software
3021 problems. The notification is sent to the address specified with
3022 the error_notice_recipient configuration parameter (default:
3032 notify_classes = bounce, delay, policy, protocol, resource, software
3033 notify_classes = 2bounce, resource, software
3036 %PARAM parent_domain_matches_subdomains see "postconf -d" output
3039 What Postfix features match subdomains of "domain.tld" automatically,
3040 instead of requiring an explicit ".domain.tld" pattern. This is
3041 planned backwards compatibility: eventually, all Postfix features
3042 are expected to require explicit ".domain.tld" style patterns when
3043 you really want to match subdomains.
3046 %PARAM propagate_unmatched_extensions canonical, virtual
3049 What address lookup tables copy an address extension from the lookup
3050 key to the lookup result.
3054 For example, with a virtual(5) mapping of "<i>joe@example.com =>
3055 joe.user@example.net</i>", the address "<i>joe+foo@example.com</i>"
3056 would rewrite to "<i>joe.user+foo@example.net</i>".
3060 Specify zero or more of <b>canonical</b>, <b>virtual</b>, <b>alias</b>,
3061 <b>forward</b>, <b>include</b> or <b>generic</b>. These cause
3063 propagation with canonical(5), virtual(5), and aliases(5) maps,
3064 with local(8) .forward and :include: file lookups, and with smtp(8)
3065 generic maps, respectively. </p>
3068 Note: enabling this feature for types other than <b>canonical</b>
3069 and <b>virtual</b> is likely to cause problems when mail is forwarded
3070 to other sites, especially with mail that is sent to a mailing list
3079 propagate_unmatched_extensions = canonical, virtual, alias,
3081 propagate_unmatched_extensions = canonical, virtual
3084 %PARAM proxy_interfaces
3087 The network interface addresses that this mail system receives mail
3088 on by way of a proxy or network address translation unit.
3092 This feature is available in Postfix 2.0 and later.
3095 <p> You must specify your "outside" proxy/NAT addresses when your
3096 system is a backup MX host for other domains, otherwise mail delivery
3097 loops will happen when the primary MX host is down. </p>
3104 proxy_interfaces = 1.2.3.4
3107 %PARAM qmgr_message_active_limit 20000
3110 The maximal number of messages in the active queue.
3113 %PARAM qmgr_message_recipient_limit 20000
3115 <p> The maximal number of recipients held in memory by the Postfix
3116 queue manager, and the maximal size of the size of the short-term,
3117 in-memory "dead" destination status cache. </p>
3119 %PARAM qmgr_message_recipient_minimum 10
3122 The minimal number of in-memory recipients for any message. This
3123 takes priority over any other in-memory recipient limits (i.e.,
3124 the global qmgr_message_recipient_limit and the per transport
3125 _recipient_limit) if necessary. The minimum value allowed for this
3129 %PARAM qmqpd_authorized_clients
3132 What clients are allowed to connect to the QMQP server port.
3136 By default, no client is allowed to use the service. This is
3137 because the QMQP server will relay mail to any destination.
3141 Specify a list of client patterns. A list pattern specifies a host
3142 name, a domain name, an internet address, or a network/mask pattern,
3143 where the mask specifies the number of bits in the network part.
3144 When a pattern specifies a file name, its contents are substituted
3145 for the file name; when a pattern is a "type:table" table specification,
3146 table lookup is used instead. </p>
3149 Patterns are separated by whitespace and/or commas. In order to
3150 reverse the result, precede a pattern with an
3151 exclamation point (!). The form "!/file/name" is supported only
3152 in Postfix version 2.4 and later.
3160 qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24
3163 %PARAM qmqpd_error_delay 1s
3166 How long the QMQP server will pause before sending a negative reply
3167 to the client. The purpose is to slow down confused or malicious
3172 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3173 The default time unit is s (seconds).
3176 %PARAM qmqpd_timeout 300s
3179 The time limit for sending or receiving information over the network.
3180 If a read or write operation blocks for more than $qmqpd_timeout
3181 seconds the QMQP server gives up and disconnects.
3185 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3186 The default time unit is s (seconds).
3189 %PARAM queue_minfree 0
3192 The minimal amount of free space in bytes in the queue file system
3193 that is needed to receive mail. This is currently used by the SMTP
3194 server to decide if it will accept any mail at all.
3198 By default, the Postfix version 2.1 SMTP server rejects MAIL FROM commands
3199 when the amount of free space is less than 1.5*$message_size_limit.
3200 To specify a higher minimum free space limit, specify a queue_minfree
3201 value that is at least 1.5*$message_size_limit.
3205 With Postfix versions 2.0 and earlier, a queue_minfree value of
3206 zero means there is no minimum required amount of free space.
3209 %PARAM queue_run_delay 300s
3212 The time between deferred queue scans by the queue manager;
3213 prior to Postfix 2.4 the default value was 1000s.
3216 <p> This parameter should be set less than or equal to
3217 $minimal_backoff_time. See also $maximal_backoff_time. </p>
3220 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3221 The default time unit is s (seconds).
3224 %PARAM rbl_reply_maps
3227 Optional lookup tables with RBL response templates. The tables are
3228 indexed by the RBL domain name. By default, Postfix uses the default
3229 template as specified with the default_rbl_reply configuration
3230 parameter. See there for a discussion of the syntax of RBL reply
3235 This feature is available in Postfix 2.0 and later.
3238 %PARAM receive_override_options
3240 <p> Enable or disable recipient validation, built-in content
3241 filtering, or address mapping. Typically, these are specified in
3242 master.cf as command-line arguments for the smtpd(8), qmqpd(8) or
3243 pickup(8) daemons. </p>
3245 <p> Specify zero or more of the following options. The options
3246 override main.cf settings and are either implemented by smtpd(8),
3247 qmqpd(8), or pickup(8) themselves, or they are forwarded to the
3248 cleanup server. </p>
3252 <dt><b><a name="no_unknown_recipient_checks">no_unknown_recipient_checks</a></b></dt>
3254 <dd>Do not try to reject unknown recipients (SMTP server only).
3255 This is typically specified AFTER an external content filter.
3258 <dt><b><a name="no_address_mappings">no_address_mappings</a></b></dt>
3260 <dd>Disable canonical address mapping, virtual alias map expansion,
3261 address masquerading, and automatic BCC (blind carbon-copy)
3262 recipients. This is typically specified BEFORE an external content
3265 <dt><b><a name="no_header_body_checks">no_header_body_checks</a></b></dt>
3267 <dd>Disable header/body_checks. This is typically specified AFTER
3268 an external content filter. </dd>
3270 <dt><b><a name="no_milters">no_milters</a></b></dt>
3272 <dd>Disable Milter (mail filter) applications. This is typically
3273 specified AFTER an external content filter. </dd>
3278 Note: when the "BEFORE content filter" receive_override_options
3279 setting is specified in the main.cf file, specify the "AFTER content
3280 filter" receive_override_options setting in master.cf (and vice
3289 receive_override_options =
3290 no_unknown_recipient_checks, no_header_body_checks
3291 receive_override_options = no_address_mappings
3295 This feature is available in Postfix 2.1 and later.
3298 %PARAM recipient_bcc_maps
3301 Optional BCC (blind carbon-copy) address lookup tables, indexed by
3302 recipient address. The BCC address (multiple results are not
3303 supported) is added when mail enters from outside of Postfix.
3307 This feature is available in Postfix 2.1 and later.
3311 The table search order is as follows:
3316 <li> Look up the "user+extension@domain.tld" address including the
3317 optional address extension.
3319 <li> Look up the "user@domain.tld" address without the optional
3322 <li> Look up the "user+extension" address local part when the
3323 recipient domain equals $myorigin, $mydestination, $inet_interfaces
3324 or $proxy_interfaces.
3326 <li> Look up the "user" address local part when the recipient domain
3327 equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces.
3329 <li> Look up the "@domain.tld" part.
3334 Specify the types and names of databases to use. After change,
3335 run "<b>postmap /etc/postfix/recipient_bcc</b>".
3339 Note: if mail to the BCC address bounces it will be returned to
3343 <p> Note: automatic BCC recipients are produced only for new mail.
3344 To avoid mailer loops, automatic BCC recipients are not generated
3345 for mail that Postfix forwards internally, nor for mail that Postfix
3346 generates itself. </p>
3353 recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
3356 %PARAM recipient_canonical_maps
3359 Optional address mapping lookup tables for envelope and header
3360 recipient addresses.
3361 The table format and lookups are documented in canonical(5).
3365 Note: $recipient_canonical_maps is processed before $canonical_maps.
3373 recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
3376 %PARAM recipient_delimiter
3379 The separator between user names and address extensions (user+foo).
3380 See canonical(5), local(8), relocated(5) and virtual(5) for the
3381 effects this has on aliases, canonical, virtual, relocated and
3382 on .forward file lookups. Basically, the software tries user+foo
3383 and .forward+foo before trying user and .forward.
3391 recipient_delimiter = +
3394 %PARAM reject_code 554
3397 The numerical Postfix SMTP server response code when a remote SMTP
3398 client request is rejected by the "reject" restriction.
3402 Do not change this unless you have a complete understanding of RFC 2821.
3405 %PARAM relay_domains $mydestination
3407 <p> What destination domains (and subdomains thereof) this system
3408 will relay mail to. Subdomain matching is controlled with the
3409 parent_domain_matches_subdomains parameter. For details about how
3410 the relay_domains value is used, see the description of the
3411 permit_auth_destination and reject_unauth_destination SMTP recipient
3414 <p> Domains that match $relay_domains are delivered with the
3415 $relay_transport mail delivery transport. The SMTP server validates
3416 recipient addresses with $relay_recipient_maps and rejects non-existent
3417 recipients. See also the relay domains address class in the
3418 ADDRESS_CLASS_README file. </p>
3420 <p> Note: Postfix will not automatically forward mail for domains
3421 that list this system as their primary or backup MX host. See the
3422 permit_mx_backup restriction in the postconf(5) manual page. </p>
3424 <p> Specify a list of host or domain names, "/file/name" patterns
3425 or "type:table" lookup tables, separated by commas and/or whitespace.
3426 Continue long lines by starting the next line with whitespace. A
3427 "/file/name" pattern is replaced by its contents; a "type:table"
3428 lookup table is matched when a (parent) domain appears as lookup
3429 key. Specify "!pattern" to exclude a domain from the list. The form
3430 "!/file/name" is supported only in Postfix version 2.4 and later.
3433 %PARAM relay_domains_reject_code 554
3436 The numerical Postfix SMTP server response code when a client
3437 request is rejected by the reject_unauth_destination recipient
3442 Do not change this unless you have a complete understanding of RFC 2821.
3445 %PARAM relay_recipient_maps
3447 <p> Optional lookup tables with all valid addresses in the domains
3448 that match $relay_domains. Specify @domain as a wild-card for
3449 domains that have no valid recipient list, and become a source of
3450 backscatter mail: Postfix accepts spam for non-existent recipients
3451 and then floods innocent people with undeliverable mail. Technically,
3453 listed with $relay_recipient_maps are used as lists: Postfix needs
3454 to know only if a lookup string is found or not, but it does not
3455 use the result from table lookup. </p>
3458 If this parameter is non-empty, then the Postfix SMTP server will reject
3459 mail to unknown relay users. This feature is off by default.
3463 See also the relay domains address class in the ADDRESS_CLASS_README
3472 relay_recipient_maps = hash:/etc/postfix/relay_recipients
3476 This feature is available in Postfix 2.0 and later.
3482 The next-hop destination of non-local mail; overrides non-local
3483 domains in recipient addresses. This information is overruled with
3484 relay_transport, default_transport, sender_dependent_relayhost_maps
3485 and with the transport(5) table.
3489 On an intranet, specify the organizational domain name. If your
3490 internal DNS uses no MX records, specify the name of the intranet
3491 gateway host instead.
3495 In the case of SMTP, specify a domain name, hostname, hostname:port,
3496 [hostname]:port, [hostaddress] or [hostaddress]:port. The form
3497 [hostname] turns off MX lookups.
3501 If you're connected via UUCP, see the UUCP_README file for useful
3510 relayhost = $mydomain
3511 relayhost = [gateway.example.com]
3512 relayhost = uucphost
3513 relayhost = [an.ip.add.ress]
3516 %PARAM relocated_maps
3519 Optional lookup tables with new contact information for users or
3520 domains that no longer exist. The table format and lookups are
3521 documented in relocated(5).
3525 If you use this feature, run "<b>postmap /etc/postfix/relocated</b>" to
3526 build the necessary DBM or DB file after change, then "<b>postfix
3527 reload</b>" to make the changes visible.
3535 relocated_maps = dbm:/etc/postfix/relocated
3536 relocated_maps = hash:/etc/postfix/relocated
3539 %PARAM require_home_directory no
3542 Whether or not a local(8) recipient's home directory must exist
3543 before mail delivery is attempted. By default this test is disabled.
3544 It can be useful for environments that import home directories to
3545 the mail server (NOT RECOMMENDED).
3548 %PARAM resolve_dequoted_address yes
3550 <p> Resolve a recipient address safely instead of correctly, by
3551 looking inside quotes. </p>
3553 <p> By default, the Postfix address resolver does not quote the
3554 address localpart as per RFC 822, so that additional @ or % or !
3555 operators remain visible. This behavior is safe but it is also
3556 technically incorrect. </p>
3558 <p> If you specify "resolve_dequoted_address = no", then
3560 resolver will not know about additional @ etc. operators in the
3561 address localpart. This opens opportunities for obscure mail relay
3562 attacks with user@domain@domain addresses when Postfix provides
3563 backup MX service for Sendmail systems. </p>
3565 %PARAM resolve_null_domain no
3567 <p> Resolve an address that ends in the "@" null domain as if the
3568 local hostname were specified, instead of rejecting the address as
3571 <p> This feature is available in Postfix 2.1 and later.
3572 Earlier versions always resolve the null domain as the local
3575 <p> The Postfix SMTP server uses this feature to reject mail from
3576 or to addresses that end in the "@" null domain, and from addresses
3577 that rewrite into a form that ends in the "@" null domain. </p>
3579 %PARAM sender_bcc_maps
3581 <p> Optional BCC (blind carbon-copy) address lookup tables, indexed
3582 by sender address. The BCC address (multiple results are not
3583 supported) is added when mail enters from outside of Postfix. </p>
3586 This feature is available in Postfix 2.1 and later.
3590 The table search order is as follows:
3595 <li> Look up the "user+extension@domain.tld" address including the
3596 optional address extension.
3598 <li> Look up the "user@domain.tld" address without the optional
3601 <li> Look up the "user+extension" address local part when the
3602 sender domain equals $myorigin, $mydestination, $inet_interfaces
3603 or $proxy_interfaces.
3605 <li> Look up the "user" address local part when the sender domain
3606 equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces.
3608 <li> Look up the "@domain.tld" part.
3613 Specify the types and names of databases to use. After change,
3614 run "<b>postmap /etc/postfix/sender_bcc</b>".
3618 Note: if mail to the BCC address bounces it will be returned to
3622 <p> Note: automatic BCC recipients are produced only for new mail.
3623 To avoid mailer loops, automatic BCC recipients are not generated
3624 for mail that Postfix forwards internally, nor for mail that Postfix
3625 generates itself. </p>
3632 sender_bcc_maps = hash:/etc/postfix/sender_bcc
3635 %PARAM sender_canonical_maps
3638 Optional address mapping lookup tables for envelope and header
3640 The table format and lookups are documented in canonical(5).
3644 Example: you want to rewrite the SENDER address "user@ugly.domain"
3645 to "user@pretty.domain", while still being able to send mail to
3646 the RECIPIENT address "user@ugly.domain".
3650 Note: $sender_canonical_maps is processed before $canonical_maps.
3658 sender_canonical_maps = hash:/etc/postfix/sender_canonical
3661 %PARAM smtp_always_send_ehlo yes
3664 Always send EHLO at the start of an SMTP session.
3668 With "smtp_always_send_ehlo = no", Postfix sends EHLO only when
3669 the word "ESMTP" appears in the server greeting banner (example:
3670 220 spike.porcupine.org ESMTP Postfix).
3673 %PARAM smtp_bind_address
3676 An optional numerical network address that the Postfix SMTP client
3677 should bind to when making an IPv4 connection.
3681 This can be specified in the main.cf file for all SMTP clients, or
3682 it can be specified in the master.cf file for a specific client,
3688 /etc/postfix/master.cf:
3689 smtp ... smtp -o smtp_bind_address=11.22.33.44
3693 <p> Note 1: when inet_interfaces specifies no more than one IPv4
3694 address, and that address is a non-loopback address, it is
3695 automatically used as the smtp_bind_address. This supports virtual
3696 IP hosting, but can be a problem on multi-homed firewalls. See the
3697 inet_interfaces documentation for more detail. </p>
3699 <p> Note 2: address information may be enclosed inside <tt>[]</tt>,
3700 but this form is not required here. </p>
3702 %PARAM smtp_bind_address6
3705 An optional numerical network address that the Postfix SMTP client
3706 should bind to when making an IPv6 connection.
3709 <p> This feature is available in Postfix 2.2 and later. </p>
3712 This can be specified in the main.cf file for all SMTP clients, or
3713 it can be specified in the master.cf file for a specific client,
3719 /etc/postfix/master.cf:
3720 smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8
3724 <p> Note 1: when inet_interfaces specifies no more than one IPv6
3725 address, and that address is a non-loopback address, it is
3726 automatically used as the smtp_bind_address6. This supports virtual
3727 IP hosting, but can be a problem on multi-homed firewalls. See the
3728 inet_interfaces documentation for more detail. </p>
3730 <p> Note 2: address information may be enclosed inside <tt>[]</tt>,
3731 but this form is not recommended here. </p>
3733 %PARAM smtp_connection_cache_time_limit 2s
3735 <p> When SMTP connection caching is enabled, the amount of time that
3736 an unused SMTP client socket is kept open before it is closed. Do
3737 not specify larger values without permission from the remote sites.
3740 <p> This feature is available in Postfix 2.2 and later. </p>
3742 %PARAM smtp_connection_cache_reuse_limit 10
3744 <p> When SMTP connection caching is enabled, the number of times that
3745 an SMTP session may be reused before it is closed.
3748 <p> This feature is available in Postfix 2.2. In Postfix 2.3 it is
3749 replaced by $smtp_connection_reuse_time_limit.</p>
3751 %PARAM smtp_connection_reuse_time_limit 300s
3753 <p> The amount of time during which Postfix will use an SMTP
3754 connection repeatedly. The timer starts when the connection is
3755 initiated (i.e. it includes the connect, greeting and helo latency,
3756 in addition to the latencies of subsequent mail delivery transactions).
3759 <p> This feature addresses a performance stability problem with
3760 remote SMTP servers. This problem is not specific to Postfix: it
3761 can happen when any MTA sends large amounts of SMTP email to a site
3762 that has multiple MX hosts. </p>
3764 <p> The problem starts when one of a set of MX hosts becomes slower
3765 than the rest. Even though SMTP clients connect to fast and slow
3766 MX hosts with equal probability, the slow MX host ends up with more
3767 simultaneous inbound connections than the faster MX hosts, because
3768 the slow MX host needs more time to serve each client request. </p>
3770 <p> The slow MX host becomes a connection attractor. If one MX
3771 host becomes N times slower than the rest, it dominates mail delivery
3772 latency unless there are more than N fast MX hosts to counter the
3773 effect. And if the number of MX hosts is smaller than N, the mail
3774 delivery latency becomes effectively that of the slowest MX host
3775 divided by the total number of MX hosts. </p>
3777 <p> The solution uses connection caching in a way that differs from
3778 Postfix version 2.2. By limiting the amount of time during which a connection
3779 can be used repeatedly (instead of limiting the number of deliveries
3780 over that connection), Postfix not only restores fairness in the
3781 distribution of simultaneous connections across a set of MX hosts,
3782 it also favors deliveries over connections that perform well, which
3783 is exactly what we want. </p>
3785 <p> The default reuse time limit, 300s, is comparable to the various
3786 smtp transaction timeouts which are fair estimates of maximum excess
3787 latency for a slow delivery. Note that hosts may accept thousands
3788 of messages over a single connection within the default connection
3789 reuse time limit. This number is much larger than the default Postfix
3790 version 2.2 limit of 10 messages per cached connection. It may prove necessary
3791 to lower the limit to avoid interoperability issues with MTAs that
3792 exhibit bugs when many messages are delivered via a single connection.
3793 A lower reuse time limit risks losing the benefit of connection
3794 reuse when the average connection and mail delivery latency exceeds
3795 the reuse time limit. </p>
3797 <p> This feature is available in Postfix 2.3 and later. </p>
3799 %PARAM smtp_connection_cache_destinations
3801 <p> Permanently enable SMTP connection caching for the specified
3802 destinations. With SMTP connection caching, a connection is not
3803 closed immediately after completion of a mail transaction. Instead,
3804 the connection is kept open for up to $smtp_connection_cache_time_limit
3805 seconds. This allows connections to be reused for other deliveries,
3806 and can improve mail delivery performance. </p>
3808 <p> Specify a comma or white space separated list of destinations
3809 or pseudo-destinations: </p>
3813 <li> if mail is sent without a relay host: a domain name (the
3814 right-hand side of an email address, without the [] around a numeric
3817 <li> if mail is sent via a relay host: a relay host name (without
3818 [] or non-default TCP port), as specified in main.cf or in the
3821 <li> if mail is sent via a UNIX-domain socket: a pathname (without
3824 <li> a /file/name with domain names and/or relay host names as
3827 <li> a "type:table" with domain names and/or relay host names on
3828 the left-hand side. The right-hand side result from "type:table"
3833 <p> This feature is available in Postfix 2.2 and later. </p>
3835 %PARAM smtp_connection_cache_on_demand yes
3837 <p> Temporarily enable SMTP connection caching while a destination
3838 has a high volume of mail in the active queue. With SMTP connection
3839 caching, a connection is not closed immediately after completion
3840 of a mail transaction. Instead, the connection is kept open for
3841 up to $smtp_connection_cache_time_limit seconds. This allows
3842 connections to be reused for other deliveries, and can improve mail
3843 delivery performance. </p>
3845 <p> This feature is available in Postfix 2.2 and later. </p>
3847 %PARAM smtp_connect_timeout 30s
3850 The SMTP client time limit for completing a TCP connection, or
3851 zero (use the operating system built-in time limit).
3855 When no connection can be made within the deadline, the Postfix
3857 tries the next address on the mail exchanger list. Specify 0 to
3858 disable the time limit (i.e. use whatever timeout is implemented by
3859 the operating system).
3863 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3864 The default time unit is s (seconds).
3867 %PARAM smtp_data_done_timeout 600s
3870 The SMTP client time limit for sending the SMTP ".", and for receiving
3871 the server response.
3875 When no response is received within the deadline, a warning is
3876 logged that the mail may be delivered multiple times.
3880 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3881 The default time unit is s (seconds).
3884 %PARAM smtp_data_init_timeout 120s
3887 The SMTP client time limit for sending the SMTP DATA command, and for
3888 receiving the server response.
3892 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3893 The default time unit is s (seconds).
3896 %PARAM smtp_data_xfer_timeout 180s
3899 The SMTP client time limit for sending the SMTP message content.
3900 When the connection makes no progress for more than $smtp_data_xfer_timeout
3901 seconds the Postfix SMTP client terminates the transfer.
3905 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
3906 The default time unit is s (seconds).
3909 %PARAM smtp_defer_if_no_mx_address_found no
3912 Defer mail delivery when no MX record resolves to an IP address.
3916 The default (no) is to return the mail as undeliverable. With older
3917 Postfix versions the default was to keep trying to deliver the mail
3918 until someone fixed the MX record or until the mail was too old.
3922 Note: Postfix always ignores MX records with equal or worse preference
3923 than the local MTA itself.
3927 This feature is available in Postfix 2.1 and later.
3930 %PARAM lmtp_destination_concurrency_limit $default_destination_concurrency_limit
3932 <p> The maximal number of parallel deliveries to the same destination
3933 via the lmtp message delivery transport. This limit is enforced by
3934 the queue manager. The message delivery transport name is the first
3935 field in the entry in the master.cf file. </p>
3937 %PARAM lmtp_destination_recipient_limit $default_destination_recipient_limit
3939 <p> The maximal number of recipients per message for the lmtp
3940 message delivery transport. This limit is enforced by the queue
3941 manager. The message delivery transport name is the first field in
3942 the entry in the master.cf file. </p>
3944 <p> Setting this parameter to a value of 1 changes the meaning of
3945 lmtp_destination_concurrency_limit from concurrency per domain into
3946 concurrency per recipient. </p>
3948 %PARAM relay_destination_concurrency_limit $default_destination_concurrency_limit
3950 <p> The maximal number of parallel deliveries to the same destination
3951 via the relay message delivery transport. This limit is enforced
3952 by the queue manager. The message delivery transport name is the
3953 first field in the entry in the master.cf file. </p>
3955 <p> This feature is available in Postfix 2.0 and later. </p>
3957 %PARAM relay_destination_recipient_limit $default_destination_recipient_limit
3959 <p> The maximal number of recipients per message for the relay
3960 message delivery transport. This limit is enforced by the queue
3961 manager. The message delivery transport name is the first field in
3962 the entry in the master.cf file. </p>
3964 <p> Setting this parameter to a value of 1 changes the meaning of
3965 relay_destination_concurrency_limit from concurrency per domain
3966 into concurrency per recipient. </p>
3968 <p> This feature is available in Postfix 2.0 and later. </p>
3970 %PARAM smtp_destination_concurrency_limit $default_destination_concurrency_limit
3972 <p> The maximal number of parallel deliveries to the same destination
3973 via the smtp message delivery transport. This limit is enforced by
3974 the queue manager. The message delivery transport name is the first
3975 field in the entry in the master.cf file. </p>
3977 %PARAM smtp_destination_recipient_limit $default_destination_recipient_limit
3979 <p> The maximal number of recipients per message for the smtp
3980 message delivery transport. This limit is enforced by the queue
3981 manager. The message delivery transport name is the first field in
3982 the entry in the master.cf file. </p>
3984 <p> Setting this parameter to a value of 1 changes the meaning of
3985 smtp_destination_concurrency_limit from concurrency per domain
3986 into concurrency per recipient. </p>
3988 %PARAM virtual_destination_concurrency_limit $default_destination_concurrency_limit
3990 <p> The maximal number of parallel deliveries to the same destination
3991 via the virtual message delivery transport. This limit is enforced
3992 by the queue manager. The message delivery transport name is the
3993 first field in the entry in the master.cf file. </p>
3995 %PARAM virtual_destination_recipient_limit $default_destination_recipient_limit
3997 <p> The maximal number of recipients per message for the virtual
3998 message delivery transport. This limit is enforced by the queue
3999 manager. The message delivery transport name is the first field in
4000 the entry in the master.cf file. </p>
4002 <p> Setting this parameter to a value of 1 changes the meaning of
4003 virtual_destination_concurrency_limit from concurrency per domain
4004 into concurrency per recipient. </p>
4006 %PARAM smtp_helo_name $myhostname
4009 The hostname to send in the SMTP EHLO or HELO command.
4013 The default value is the machine hostname. Specify a hostname or
4018 This information can be specified in the main.cf file for all SMTP
4019 clients, or it can be specified in the master.cf file for a specific
4020 client, for example:
4025 /etc/postfix/master.cf:
4026 mysmtp ... smtp -o smtp_helo_name=foo.bar.com
4031 This feature is available in Postfix 2.0 and later.
4034 %PARAM smtp_helo_timeout 300s
4037 The SMTP client time limit for sending the HELO or EHLO command,
4038 and for receiving the initial server response.
4042 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4043 The default time unit is s (seconds).
4046 %PARAM smtp_host_lookup dns
4049 What mechanisms when the Postfix SMTP client uses to look up a host's IP
4050 address. This parameter is ignored when DNS lookups are disabled.
4054 Specify one of the following:
4061 <dd>Hosts can be found in the DNS (preferred). </dd>
4063 <dt><b>native</b></dt>
4065 <dd>Use the native naming service only (nsswitch.conf, or equivalent
4068 <dt><b>dns, native</b></dt>
4070 <dd>Use the native service for hosts not found in the DNS. </dd>
4075 This feature is available in Postfix 2.1 and later.
4078 %PARAM smtp_line_length_limit 990
4081 The maximal length of message header and body lines that Postfix
4082 will send via SMTP. Longer lines are broken by inserting
4083 "<CR><LF><SPACE>". This minimizes the damage to
4084 MIME formatted mail.
4088 By default, the line length is limited to 990 characters, because
4089 some server implementations cannot receive mail with long lines.
4092 %PARAM smtp_mail_timeout 300s
4095 The SMTP client time limit for sending the MAIL FROM command, and
4096 for receiving the server response.
4100 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4101 The default time unit is s (seconds).
4104 %PARAM smtp_mx_address_limit 5
4107 The maximal number of MX (mail exchanger) IP addresses that can
4108 result from mail exchanger lookups, or zero (no limit). Prior to
4109 Postfix version 2.3, this limit was disabled by default.
4113 This feature is available in Postfix 2.1 and later.
4116 %PARAM smtp_mx_session_limit 2
4118 <p> The maximal number of SMTP sessions per delivery request before
4119 giving up or delivering to a fall-back relay host, or zero (no
4120 limit). This restriction ignores sessions that fail to complete the
4121 SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to
4122 complete the EHLO and TLS handshake (Postfix version 2.3 and later). </p>
4124 <p> This feature is available in Postfix 2.1 and later. </p>
4126 %PARAM smtp_never_send_ehlo no
4128 <p> Never send EHLO at the start of an SMTP session. See also the
4129 smtp_always_send_ehlo parameter. </p>
4131 %PARAM smtp_pix_workaround_threshold_time 500s
4133 <p> How long a message must be queued before the Postfix SMTP client
4134 turns on the PIX firewall "<CR><LF>.<CR><LF>"
4135 bug workaround for delivery through firewalls with "smtp fixup"
4136 mode turned on. </p>
4139 By default, the workaround is turned off for mail that is queued
4140 for less than 500 seconds. In other words, the workaround is normally
4141 turned off for the first delivery attempt.
4145 Specify 0 to enable the PIX firewall
4146 "<CR><LF>.<CR><LF>" bug workaround upon the
4147 first delivery attempt.
4150 %PARAM smtp_quit_timeout 300s
4153 The SMTP client time limit for sending the QUIT command, and for
4154 receiving the server response.
4158 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4159 The default time unit is s (seconds).
4162 %PARAM smtp_quote_rfc821_envelope yes
4165 Quote addresses in SMTP MAIL FROM and RCPT TO commands as required
4166 by RFC 2821. This includes putting quotes around an address localpart
4171 The default is to comply with RFC 2821. If you have to send mail to
4172 a broken SMTP server, configure a special SMTP client in master.cf:
4177 /etc/postfix/master.cf:
4178 broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no
4183 and route mail for the destination in question to the "broken-smtp"
4184 message delivery with a transport(5) table.
4188 This feature is available in Postfix 2.1 and later.
4191 %PARAM smtp_rcpt_timeout 300s
4194 The SMTP client time limit for sending the SMTP RCPT TO command, and
4195 for receiving the server response.
4199 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4200 The default time unit is s (seconds).
4203 %PARAM smtp_sasl_auth_enable no
4206 Enable SASL authentication in the Postfix SMTP client. By default,
4207 the Postfix SMTP client uses no authentication.
4215 smtp_sasl_auth_enable = yes
4218 %PARAM smtp_sasl_password_maps
4221 Optional SMTP client lookup tables with one username:password entry
4222 per remote hostname or domain, or sender address when sender-dependent
4223 authentication is enabled. If no username:password entry is found,
4224 then the Postfix SMTP client will not
4225 attempt to authenticate to the remote host.
4229 The Postfix SMTP client opens the lookup table before going to
4230 chroot jail, so you can leave the password file in /etc/postfix.
4233 %PARAM smtp_sasl_security_options noplaintext, noanonymous
4235 <p> Postfix SMTP client SASL security options; as of Postfix 2.3
4236 the list of available
4237 features depends on the SASL client implementation that is selected
4238 with <b>smtp_sasl_type</b>. </p>
4240 <p> The following security features are defined for the <b>cyrus</b>
4241 client SASL implementation: </p>
4244 Specify zero or more of the following:
4249 <dt><b>noplaintext</b></dt>
4251 <dd>Disallow methods that use plaintext passwords. </dd>
4253 <dt><b>noactive</b></dt>
4255 <dd>Disallow methods subject to active (non-dictionary) attack.
4258 <dt><b>nodictionary</b></dt>
4260 <dd>Disallow methods subject to passive (dictionary) attack. </dd>
4262 <dt><b>noanonymous</b></dt>
4264 <dd>Disallow methods that allow anonymous authentication. </dd>
4266 <dt><b>mutual_auth</b></dt>
4268 <dd>Only allow methods that provide mutual authentication (not
4269 available with SASL version 1). </dd>
4278 smtp_sasl_security_options = noplaintext
4281 %PARAM smtp_sasl_mechanism_filter
4284 If non-empty, a Postfix SMTP client filter for the remote SMTP
4285 server's list of offered SASL mechanisms. Different client and
4286 server implementations may support different mechanism lists. By
4287 default, the Postfix SMTP client will use the intersection of the
4288 two. smtp_sasl_mechanism_filter further restricts what server
4289 mechanisms the client will take into consideration. </p>
4291 <p> Specify mechanism names, "/file/name" patterns or "type:table"
4292 lookup tables. The right-hand side result from "type:table" lookups
4293 is ignored. Specify "!pattern" to exclude a mechanism name from the
4294 list. The form "!/file/name" is supported only in Postfix version
4297 <p> This feature is available in Postfix 2.2 and later. </p>
4304 smtp_sasl_mechanism_filter = plain, login
4305 smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs
4306 smtp_sasl_mechanism_filter = !gssapi, !login, static:rest
4309 %PARAM smtp_send_xforward_command no
4312 Send the non-standard XFORWARD command when the Postfix SMTP server
4313 EHLO response announces XFORWARD support.
4317 This allows an "smtp" delivery agent, used for injecting mail into
4318 a content filter, to forward the name, address, protocol and HELO
4319 name of the original client to the content filter and downstream
4320 queuing SMTP server. This can produce more useful logging than
4321 localhost[127.0.0.1] etc.
4325 This feature is available in Postfix 2.1 and later.
4328 %PARAM smtp_skip_4xx_greeting yes
4331 Skip SMTP servers that greet with a 4XX status code (go away, try
4336 By default, Postfix moves on the next mail exchanger. Specify
4337 "smtp_skip_4xx_greeting = no" if Postfix should defer delivery
4341 <p> This feature is available in Postfix 2.0 and earlier.
4342 Later Postfix versions always skip SMTP servers that greet with a
4343 4XX status code. </p>
4345 %PARAM smtp_skip_5xx_greeting yes
4348 Skip SMTP servers that greet with a 5XX status code (go away, do
4349 not try again later).
4352 <p> By default, the Postfix SMTP client moves on the next mail
4353 exchanger. Specify "smtp_skip_5xx_greeting = no" if Postfix should
4354 bounce the mail immediately. The default setting is incorrect, but
4355 it is what a lot of people expect to happen. </p>
4357 %PARAM smtp_skip_quit_response yes
4360 Do not wait for the response to the SMTP QUIT command.
4363 %PARAM smtp_xforward_timeout 300s
4366 The SMTP client time limit for sending the XFORWARD command, and
4367 for receiving the server response.
4371 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
4372 The default time unit is s (seconds).
4376 This feature is available in Postfix 2.1 and later.
4379 %PARAM authorized_verp_clients $mynetworks
4381 <p> What SMTP clients are allowed to specify the XVERP command.
4382 This command requests that mail be delivered one recipient at a
4383 time with a per recipient return address. </p>
4385 <p> By default, only trusted clients are allowed to specify XVERP.
4388 <p> This parameter was introduced with Postfix version 1.1. Postfix
4389 version 2.1 renamed this parameter to smtpd_authorized_verp_clients
4390 and changed the default to none. </p>
4392 <p> Specify a list of network/netmask patterns, separated by commas
4393 and/or whitespace. The mask specifies the number of bits in the
4394 network part of a host address. You can also specify hostnames or
4395 .domain names (the initial dot causes the domain to match any name
4396 below it), "/file/name" or "type:table" patterns. A "/file/name"
4397 pattern is replaced by its contents; a "type:table" lookup table
4398 is matched when a table entry matches a lookup string (the lookup
4399 result is ignored). Continue long lines by starting the next line
4400 with whitespace. Specify "!pattern" to exclude an address or network
4401 block from the list. The form "!/file/name" is supported only in
4402 Postfix version 2.4 and later. </p>
4404 <p> Note: IP version 6 address information must be specified inside
4405 <tt>[]</tt> in the authorized_verp_clients value, and in files
4406 specified with "/file/name". IP version 6 addresses contain the
4407 ":" character, and would otherwise be confused with a "type:table"
4410 %PARAM smtpd_authorized_verp_clients $authorized_verp_clients
4412 <p> What SMTP clients are allowed to specify the XVERP command.
4413 This command requests that mail be delivered one recipient at a
4414 time with a per recipient return address. </p>
4416 <p> By default, no clients are allowed to specify XVERP. </p>
4418 <p> This parameter was renamed with Postfix version 2.1. The default value
4419 is backwards compatible with Postfix version 2.0. </p>
4421 <p> Specify a list of network/netmask patterns, separated by commas
4422 and/or whitespace. The mask specifies the number of bits in the
4423 network part of a host address. You can also specify hostnames or
4424 .domain names (the initial dot causes the domain to match any name
4425 below it), "/file/name" or "type:table" patterns. A "/file/name"
4426 pattern is replaced by its contents; a "type:table" lookup table
4427 is matched when a table entry matches a lookup string (the lookup
4428 result is ignored). Continue long lines by starting the next line
4429 with whitespace. Specify "!pattern" to exclude an address or network
4430 block from the list. The form "!/file/name" is supported only in
4431 Postfix version 2.4 and later. </p>
4433 <p> Note: IP version 6 address information must be specified inside
4434 <tt>[]</tt> in the smtpd_authorized_verp_clients value, and in
4435 files specified with "/file/name". IP version 6 addresses contain
4436 the ":" character, and would otherwise be confused with a "type:table"
4439 %PARAM smtpd_authorized_xclient_hosts
4442 What SMTP clients are allowed to use the XCLIENT feature. This
4443 command overrides SMTP client information that is used for access
4444 control. Typical use is for SMTP-based content filters, fetchmail-like
4445 programs, or SMTP server access rule testing. See the XCLIENT_README
4446 document for details.
4450 This feature is available in Postfix 2.1 and later.
4454 By default, no clients are allowed to specify XCLIENT.
4458 Specify a list of network/netmask patterns, separated by commas
4459 and/or whitespace. The mask specifies the number of bits in the
4460 network part of a host address. You can also specify hostnames or
4461 .domain names (the initial dot causes the domain to match any name
4462 below it), "/file/name" or "type:table" patterns. A "/file/name"
4463 pattern is replaced by its contents; a "type:table" lookup table
4464 is matched when a table entry matches a lookup string (the lookup
4465 result is ignored). Continue long lines by starting the next line
4466 with whitespace. Specify "!pattern" to exclude an address or network
4467 block from the list. The form "!/file/name" is supported only in
4468 Postfix version 2.4 and later. </p>
4470 <p> Note: IP version 6 address information must be specified inside
4471 <tt>[]</tt> in the smtpd_authorized_xclient_hosts value, and in
4472 files specified with "/file/name". IP version 6 addresses contain
4473 the ":" character, and would otherwise be confused with a "type:table"
4476 %PARAM smtpd_authorized_xforward_hosts
4479 What SMTP clients are allowed to use the XFORWARD feature. This
4480 command forwards information that is used to improve logging after
4481 SMTP-based content filters. See the XFORWARD_README document for
4486 This feature is available in Postfix 2.1 and later.
4490 By default, no clients are allowed to specify XFORWARD.
4494 Specify a list of network/netmask patterns, separated by commas
4495 and/or whitespace. The mask specifies the number of bits in the
4496 network part of a host address. You can also specify hostnames or
4497 .domain names (the initial dot causes the domain to match any name
4498 below it), "/file/name" or "type:table" patterns. A "/file/name"
4499 pattern is replaced by its contents; a "type:table" lookup table
4500 is matched when a table entry matches a lookup string (the lookup
4501 result is ignored). Continue long lines by starting the next line
4502 with whitespace. Specify "!pattern" to exclude an address or network
4503 block from the list. The form "!/file/name" is supported only in
4504 Postfix version 2.4 and later. </p>
4506 <p> Note: IP version 6 address information must be specified inside
4507 <tt>[]</tt> in the smtpd_authorized_xforward_hosts value, and in
4508 files specified with "/file/name". IP version 6 addresses contain
4509 the ":" character, and would otherwise be confused with a "type:table"
4512 %PARAM smtpd_banner $myhostname ESMTP $mail_name
4515 The text that follows the 220 status code in the SMTP greeting
4516 banner. Some people like to see the mail version advertised. By
4517 default, Postfix shows no version.
4521 You MUST specify $myhostname at the start of the text. This is
4522 required by the SMTP protocol.
4530 smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
4533 %PARAM smtpd_client_connection_count_limit 50
4536 How many simultaneous connections any client is allowed to
4537 make to this service. By default, the limit is set to half
4538 the default process limit value.
4542 To disable this feature, specify a limit of 0.
4546 WARNING: The purpose of this feature is to limit abuse. It must
4547 not be used to regulate legitimate mail traffic.
4551 This feature is available in Postfix 2.2 and later.
4554 %PARAM smtpd_client_event_limit_exceptions $mynetworks
4557 Clients that are excluded from connection count, connection rate,
4558 or SMTP request rate restrictions. See the mynetworks parameter
4559 description for the parameter value syntax.
4563 By default, clients in trusted networks are excluded. Specify a
4564 list of network blocks, hostnames or .domain names (the initial
4565 dot causes the domain to match any name below it).
4568 <p> Note: IP version 6 address information must be specified inside
4569 <tt>[]</tt> in the smtpd_client_event_limit_exceptions value, and
4570 in files specified with "/file/name". IP version 6 addresses
4571 contain the ":" character, and would otherwise be confused with a
4572 "type:table" pattern. </p>
4575 This feature is available in Postfix 2.2 and later.
4578 %PARAM smtpd_client_connection_rate_limit 0
4581 The maximal number of connection attempts any client is allowed to
4582 make to this service per time unit. The time unit is specified
4583 with the anvil_rate_time_unit configuration parameter.
4587 By default, a client can make as many connections per time unit as
4592 To disable this feature, specify a limit of 0.
4596 WARNING: The purpose of this feature is to limit abuse. It must
4597 not be used to regulate legitimate mail traffic.
4601 This feature is available in Postfix 2.2 and later.
4609 smtpd_client_connection_rate_limit = 1000
4612 %PARAM smtpd_client_message_rate_limit 0
4615 The maximal number of message delivery requests that any client is
4616 allowed to make to this service per time unit, regardless of whether
4617 or not Postfix actually accepts those messages. The time unit is
4618 specified with the anvil_rate_time_unit configuration parameter.
4622 By default, a client can send as many message delivery requests
4623 per time unit as Postfix can accept.
4627 To disable this feature, specify a limit of 0.
4631 WARNING: The purpose of this feature is to limit abuse. It must
4632 not be used to regulate legitimate mail traffic.
4636 This feature is available in Postfix 2.2 and later.
4644 smtpd_client_message_rate_limit = 1000
4647 %PARAM smtpd_client_recipient_rate_limit 0
4650 The maximal number of recipient addresses that any client is allowed
4651 to send to this service per time unit, regardless of whether or not
4652 Postfix actually accepts those recipients. The time unit is specified
4653 with the anvil_rate_time_unit configuration parameter.
4657 By default, a client can make as many recipient addresses per time
4658 unit as Postfix can accept.
4662 To disable this feature, specify a limit of 0.
4666 WARNING: The purpose of this feature is to limit abuse. It must
4667 not be used to regulate legitimate mail traffic.
4671 This feature is available in Postfix 2.2 and later.
4679 smtpd_client_recipient_rate_limit = 1000
4682 %PARAM smtpd_client_new_tls_session_rate_limit 0
4685 The maximal number of new (i.e., uncached) TLS sessions that a
4686 remote SMTP client is allowed to negotiate with this service per
4687 time unit. The time unit is specified with the anvil_rate_time_unit
4688 configuration parameter.
4692 By default, a remote SMTP client can negotiate as many new TLS
4693 sessions per time unit as Postfix can accept.
4697 To disable this feature, specify a limit of 0. Otherwise, specify
4698 a limit that is at least the per-client concurrent session limit,
4699 or else legitimate client sessions may be rejected.
4703 WARNING: The purpose of this feature is to limit abuse. It must
4704 not be used to regulate legitimate mail traffic.
4708 This feature is available in Postfix 2.3 and later.
4716 smtpd_client_new_tls_session_rate_limit = 100
4719 %PARAM smtpd_client_restrictions
4722 Optional SMTP server access restrictions in the context of a client
4723 SMTP connection request.
4724 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
4725 restriction lists" for a discussion of evaluation context and time.
4729 The default is to allow all connection requests.
4733 Specify a list of restrictions, separated by commas and/or whitespace.
4734 Continue long lines by starting the next line with whitespace.
4735 Restrictions are applied in the order as specified; the first
4736 restriction that matches wins.
4740 The following restrictions are specific to client hostname or
4741 client network address information.
4746 <dt><b><a name="check_ccert_access">check_ccert_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
4748 <dd> Use the client certificate fingerprint as lookup key for the
4749 specified access(5) database; with Postfix version 2.2, also require that
4750 the SMTP client certificate is verified successfully.
4751 The fingerprint digest algorithm is configurable via the
4752 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
4753 Postfix version 2.5). This feature is available with Postfix version
4754 2.2 and later. </dd>
4756 <dt><b><a name="check_client_access">check_client_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
4758 <dd>Search the specified access database for the client hostname,
4759 parent domains, client IP address, or networks obtained by stripping
4760 least significant octets. See the access(5) manual page for details. </dd>
4762 <dt><b><a name="check_reverse_client_hostname_access">check_reverse_client_hostname_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
4764 <dd>Search the specified access database for the unverified reverse
4765 client hostname, parent domains, client IP address, or networks
4766 obtained by stripping least significant octets. See the access(5)
4767 manual page for details. Note: a result of "OK" is not allowed for
4768 safety reasons. Instead, use DUNNO in order to exclude specific
4769 hosts from blacklists. This feature is available in Postfix 2.6
4772 <dt><b><a name="permit_inet_interfaces">permit_inet_interfaces</a></b></dt>
4774 <dd>Permit the request when the client IP address matches
4775 $inet_interfaces. </dd>
4777 <dt><b><a name="permit_mynetworks">permit_mynetworks</a></b></dt>
4779 <dd>Permit the request when the client IP address matches any
4780 network or network address listed in $mynetworks. </dd>
4782 <dt><b><a name="permit_sasl_authenticated">permit_sasl_authenticated</a></b></dt>
4784 <dd> Permit the request when the client is successfully
4785 authenticated via the RFC 4954 (AUTH) protocol. </dd>
4788 <dt><b><a name="permit_tls_all_clientcerts">permit_tls_all_clientcerts</a></b></dt>
4790 <dd> Permit the request when the remote SMTP client certificate is
4791 verified successfully. This option must be used only if a special
4792 CA issues the certificates and only this CA is listed as trusted
4793 CA, otherwise all clients with a recognized certificate would be
4794 allowed to relay. This feature is available with Postfix version 2.2.</dd>
4796 <dt><b><a name="permit_tls_clientcerts">permit_tls_clientcerts</a></b></dt>
4798 <dd>Permit the request when the remote SMTP client certificate
4799 fingerprint is listed in $relay_clientcerts.
4800 The fingerprint digest algorithm is configurable via the
4801 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
4802 Postfix version 2.5). This feature is available with Postfix version
4805 <dt><b><a name="reject_rbl_client">reject_rbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
4807 <dd>Reject the request when the reversed client network address is
4808 listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
4809 (Postfix version 2.1 and later only). If no "<i>=d.d.d.d</i>" is
4810 specified, reject the request when the reversed client network
4811 address is listed with any A record under <i>rbl_domain</i>. <br>
4812 The maps_rbl_reject_code parameter specifies the response code for
4813 rejected requests (default: 554), the default_rbl_reply parameter
4814 specifies the default server reply, and the rbl_reply_maps parameter
4815 specifies tables with server replies indexed by <i>rbl_domain</i>.
4816 This feature is available in Postfix 2.0 and later. </dd>
4818 <dt><b><a name="reject_rhsbl_client">reject_rhsbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt>
4820 <dd>Reject the request when the client hostname is listed with the
4821 A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
4822 2.1 and later only). If no "<i>=d.d.d.d</i>" is specified, reject
4823 the request when the client hostname is listed with
4824 any A record under <i>rbl_domain</i>. See the reject_rbl_client
4825 description above for additional RBL related configuration parameters.
4826 This feature is available in Postfix 2.0 and later. </dd>
4828 <dt><b><a name="reject_unknown_client_hostname">reject_unknown_client_hostname</a></b> (with Postfix < 2.3: reject_unknown_client)</dt>
4830 <dd>Reject the request when 1) the client IP address->name mapping
4831 fails, 2) the name->address mapping fails, or 3) the name->address
4832 mapping does not match the client IP address. <br> This is a
4833 stronger restriction than the reject_unknown_reverse_client_hostname
4834 feature, which triggers only under condition 1) above. <br> The
4835 unknown_client_reject_code parameter specifies the response code
4836 for rejected requests (default: 450). The reply is always 450 in
4837 case the address->name or name->address lookup failed due to
4838 a temporary problem. </dd>
4840 <dt><b><a name="reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a></b></dt>
4842 <dd>Reject the request when the client IP address has no address->name
4843 mapping. <br> This is a weaker restriction than the
4844 reject_unknown_client_hostname feature, which requires not only
4845 that the address->name and name->address mappings exist, but
4846 also that the two mappings reproduce the client IP address. <br>
4847 The unknown_client_reject_code parameter specifies the response
4848 code for rejected requests (default: 450). The reply is always 450
4849 in case the address->name lookup failed due to a temporary
4850 problem. <br> This feature is available in Postfix 2.3 and
4853 #<dt><b><a name="reject_unknown_forward_client_hostname">reject_unknown_forward_client_hostname</a></b></dt>
4855 #<dd>Reject the request when the client IP address has no address->name
4856 #or name ->address mapping. <br> This is a weaker restriction
4857 #than the reject_unknown_client_hostname feature, which requires not
4858 #only that the address->name and name->address mappings exist,
4859 #but also that the two mappings reproduce the client IP address.
4860 #<br> The unknown_client_reject_code parameter specifies the response
4861 #code for rejected requests (default: 450). The reply is always 450
4862 #in case the address->name or name ->address lookup failed due
4863 #to a temporary problem. <br> This feature is available in Postfix
4864 #version 2.3 and later. </dd>
4869 In addition, you can use any of the following <a name="generic">
4870 generic</a> restrictions. These restrictions are applicable in
4871 any SMTP command context.
4876 <dt><b><a name="check_policy_service">check_policy_service <i>servername</i></a></b></dt>
4878 <dd>Query the specified policy server. See the SMTPD_POLICY_README
4879 document for details. This feature is available in Postfix 2.1
4882 <dt><b><a name="defer">defer</a></b></dt>
4884 <dd>Defer the request. The client is told to try again later. This
4885 restriction is useful at the end of a restriction list, to make
4886 the default policy explicit. <br> The defer_code parameter specifies
4887 the SMTP server reply code (default: 450).</dd>
4889 <dt><b><a name="defer_if_permit">defer_if_permit</a></b></dt>
4891 <dd>Defer the request if some later restriction would result in an
4892 explicit or implicit PERMIT action. This is useful when a blacklisting
4893 feature fails due to a temporary problem. This feature is available
4894 in Postfix version 2.1 and later. </dd>
4896 <dt><b><a name="defer_if_reject">defer_if_reject</a></b></dt>
4898 <dd>Defer the request if some later restriction would result in a
4899 REJECT action. This is useful when a whitelisting feature fails
4900 due to a temporary problem. This feature is available in Postfix
4901 version 2.1 and later. </dd>
4903 <dt><b><a name="permit">permit</a></b></dt>
4905 <dd>Permit the request. This restriction is useful at the end of
4906 a restriction list, to make the default policy explicit.</dd>
4908 <dt><b><a name="reject_multi_recipient_bounce">reject_multi_recipient_bounce</a></b></dt>
4910 <dd>Reject the request when the envelope sender is the null address,
4911 and the message has multiple envelope recipients. This usage has
4912 rare but legitimate applications: under certain conditions,
4913 multi-recipient mail that was posted with the DSN option NOTIFY=NEVER
4914 may be forwarded with the null sender address.
4915 <br> Note: this restriction can only work reliably
4916 when used in smtpd_data_restrictions or
4917 smtpd_end_of_data_restrictions, because the total number of
4918 recipients is not known at an earlier stage of the SMTP conversation.
4919 Use at the RCPT stage will only reject the second etc. recipient.
4921 The multi_recipient_bounce_reject_code parameter specifies the
4922 response code for rejected requests (default: 550). This feature
4923 is available in Postfix 2.1 and later. </dd>
4925 <dt><b><a name="reject_plaintext_session">reject_plaintext_session</a></b></dt>
4927 <dd>Reject the request when the connection is not encrypted. This
4928 restriction should not be used before the client has had a chance
4929 to negotiate encryption with the AUTH or STARTTLS commands.
4931 The plaintext_reject_code parameter specifies the response
4932 code for rejected requests (default: 450). This feature is available
4933 in Postfix 2.3 and later. </dd>
4935 <dt><b><a name="reject_unauth_pipelining">reject_unauth_pipelining</a></b></dt>
4937 <dd>Reject the request when the client sends SMTP commands ahead
4938 of time where it is not allowed, or when the client sends SMTP
4939 commands ahead of time without knowing that Postfix actually supports
4940 ESMTP command pipelining. This stops mail from bulk mail software
4941 that improperly uses ESMTP command pipelining in order to speed up
4943 <br> With Postfix 2.6 and later, the SMTP server sets a per-session
4944 flag whenever it detects illegal pipelining, including pipelined
4945 EHLO or HELO commands. The reject_unauth_pipelining feature simply
4946 tests whether the flag was set at any point in time during the
4948 <br> With older Postfix versions, reject_unauth_pipelining checks
4949 the current status of the input read queue, and its usage is not
4950 recommended in contexts other than smtpd_data_restrictions. </dd>
4952 <dt><b><a name="reject">reject</a></b></dt>
4954 <dd>Reject the request. This restriction is useful at the end of
4955 a restriction list, to make the default policy explicit. The
4956 reject_code configuration parameter specifies the response code for
4957 rejected requests (default: 554).</dd>
4959 <dt><b><a name="sleep">sleep <i>seconds</i></a></b></dt>
4961 <dd>Pause for the specified number of seconds and proceed with
4962 the next restriction in the list, if any. This may stop zombie
4965 /etc/postfix/main.cf:
4966 smtpd_client_restrictions =
4967 sleep 1, reject_unauth_pipelining
4968 smtpd_delay_reject = no
4970 This feature is available in Postfix 2.3. </dd>
4972 <dt><b><a name="warn_if_reject">warn_if_reject</a></b></dt>
4974 <dd>Change the meaning of the next restriction, so that it logs
4975 a warning instead of rejecting a request (look for logfile records
4976 that contain "reject_warning"). This is useful for testing new
4977 restrictions in a "live" environment without risking unnecessary
4983 Other restrictions that are valid in this context:
4988 <li> SMTP command specific restrictions that are described under
4989 the smtpd_helo_restrictions, smtpd_sender_restrictions or
4990 smtpd_recipient_restrictions parameters. When helo, sender or
4991 recipient restrictions are listed under smtpd_client_restrictions,
4992 they have effect only with "smtpd_delay_reject = yes", so that
4993 $smtpd_client_restrictions is evaluated at the time of the RCPT TO
5003 smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname
5006 %CLASS smtpd-tarpit Tarpit features
5009 When a remote SMTP client makes errors, the Postfix SMTP server
5010 can insert delays before responding. This can help to slow down
5011 run-away software. The behavior is controlled by an error counter
5012 that counts the number of errors within an SMTP session that a
5013 client makes without delivering mail.
5018 <li><p>When the error counter is less than $smtpd_soft_error_limit the
5019 Postfix SMTP server replies immediately (Postfix version 2.0 and earlier
5020 delay their 4xx or 5xx error response). </p>
5022 <li><p>When the error counter reaches $smtpd_soft_error_limit, the Postfix
5023 SMTP server delays all its responses. </p>
5025 <li><p>When the error counter reaches $smtpd_hard_error_limit the Postfix
5026 SMTP server breaks the connection. </p>
5030 %PARAM smtpd_error_sleep_time 1s
5032 <p>With Postfix version 2.1 and later: the SMTP server response delay after
5033 a client has made more than $smtpd_soft_error_limit errors, and
5034 fewer than $smtpd_hard_error_limit errors, without delivering mail.
5037 <p>With Postfix version 2.0 and earlier: the SMTP server delay before
5038 sending a reject (4xx or 5xx) response, when the client has made
5039 fewer than $smtpd_soft_error_limit errors without delivering
5042 %PARAM smtpd_soft_error_limit 10
5045 The number of errors a remote SMTP client is allowed to make without
5046 delivering mail before the Postfix SMTP server slows down all its
5052 <li><p>With Postfix version 2.1 and later, the Postfix SMTP server
5053 delays all responses by $smtpd_error_sleep_time seconds. </p>
5055 <li><p>With Postfix versions 2.0 and earlier, the Postfix SMTP
5056 server delays all responses by (number of errors) seconds. </p>
5060 %PARAM smtpd_hard_error_limit normal: 20, stress: 1
5063 The maximal number of errors a remote SMTP client is allowed to
5064 make without delivering mail. The Postfix SMTP server disconnects
5065 when the limit is exceeded. Normally the default limit is 20, but
5066 it changes under overload to just 1 with Postfix 2.6 and later.
5069 %PARAM smtpd_junk_command_limit normal: 100, stress: 1
5072 The number of junk commands (NOOP, VRFY, ETRN or RSET) that a remote
5073 SMTP client can send before the Postfix SMTP server starts to
5074 increment the error counter with each junk command. The junk
5075 command count is reset after mail is delivered. See also the
5076 smtpd_error_sleep_time and smtpd_soft_error_limit configuration
5077 parameters. Normally the default limit is 100, but it changes under
5078 overload to just 1 with Postfix 2.6 and later.
5081 %PARAM smtpd_recipient_overshoot_limit 1000
5083 <p> The number of recipients that a remote SMTP client can send in
5084 excess of the limit specified with $smtpd_recipient_limit, before
5085 the Postfix SMTP server increments the per-session error count
5086 for each excess recipient. </p>
5088 %PARAM smtpd_etrn_restrictions
5091 Optional SMTP server access restrictions in the context of a client
5093 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5094 restriction lists" for a discussion of evaluation context and time.
5098 The Postfix ETRN implementation accepts only destinations that are
5099 eligible for the Postfix "fast flush" service. See the ETRN_README
5104 Specify a list of restrictions, separated by commas and/or whitespace.
5105 Continue long lines by starting the next line with whitespace.
5106 Restrictions are applied in the order as specified; the first
5107 restriction that matches wins.
5111 The following restrictions are specific to the domain name information
5112 received with the ETRN command.
5117 <dt><b><a name="check_etrn_access">check_etrn_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5119 <dd>Search the specified access database for the ETRN domain name
5120 or its parent domains. See the access(5) manual page for details.
5126 Other restrictions that are valid in this context:
5131 <li><a href="#generic">Generic</a> restrictions that can be used
5132 in any SMTP command context, described under smtpd_client_restrictions.
5134 <li>SMTP command specific restrictions described under
5135 smtpd_client_restrictions and smtpd_helo_restrictions.
5144 smtpd_etrn_restrictions = permit_mynetworks, reject
5147 %PARAM smtpd_expansion_filter see "postconf -d" output
5150 What characters are allowed in $name expansions of RBL reply
5151 templates. Characters not in the allowed set are replaced by "_".
5152 Use C like escapes to specify special characters such as whitespace.
5156 This parameter is not subjected to $parameter expansion.
5160 This feature is available in Postfix 2.0 and later.
5163 %PARAM smtpd_forbidden_commands CONNECT, GET, POST
5166 List of commands that causes the Postfix SMTP server to immediately
5167 terminate the session with a 221 code. This can be used to disconnect
5168 clients that obviously attempt to abuse the system. In addition to the
5169 commands listed in this parameter, commands that follow the "Label:"
5170 format of message headers will also cause a disconnect.
5174 This feature is available in Postfix 2.2 and later.
5177 %PARAM smtpd_helo_required no
5180 Require that a remote SMTP client introduces itself at the beginning
5181 of an SMTP session with the HELO or EHLO command.
5189 smtpd_helo_required = yes
5192 %PARAM smtpd_helo_restrictions
5195 Optional restrictions that the Postfix SMTP server applies in the
5196 context of the SMTP HELO command.
5197 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5198 restriction lists" for a discussion of evaluation context and time.
5202 The default is to permit everything.
5206 Specify a list of restrictions, separated by commas and/or whitespace.
5207 Continue long lines by starting the next line with whitespace.
5208 Restrictions are applied in the order as specified; the first
5209 restriction that matches wins.
5213 The following restrictions are specific to the hostname information
5214 received with the HELO or EHLO command.
5219 <dt><b><a name="check_helo_access">check_helo_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5221 <dd>Search the specified access(5) database for the HELO or EHLO
5222 hostname or parent domains, and execute the corresponding action.
5225 <dt><b><a name="check_helo_mx_access">check_helo_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5227 <dd>Search the specified access(5) database for the MX hosts for
5228 the HELO or EHLO hostname, and execute the corresponding action.
5229 Note: a result of "OK" is not allowed for safety reasons. Instead,
5230 use DUNNO in order to exclude specific hosts from blacklists. This
5231 feature is available in Postfix 2.1 and later. </dd>
5233 <dt><b><a name="check_helo_ns_access">check_helo_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5235 <dd>Search the specified access(5) database for the DNS servers
5236 for the HELO or EHLO hostname, and execute the corresponding action.
5237 Note: a result of "OK" is not allowed for safety reasons. Instead,
5238 use DUNNO in order to exclude specific hosts from blacklists. This
5239 feature is available in Postfix 2.1 and later. </dd>
5241 <dt><b><a name="reject_invalid_helo_hostname">reject_invalid_helo_hostname</a></b> (with Postfix < 2.3: reject_invalid_hostname)</dt>
5243 <dd>Reject the request when the HELO or EHLO hostname syntax is
5244 invalid. <br> The invalid_hostname_reject_code specifies the response
5245 code for rejected requests (default: 501).</dd>
5247 <dt><b><a name="reject_non_fqdn_helo_hostname">reject_non_fqdn_helo_hostname</a></b> (with Postfix < 2.3: reject_non_fqdn_hostname)</dt>
5249 <dd>Reject the request when the HELO or EHLO hostname is not in
5250 fully-qualified domain form, as required by the RFC. <br> The
5251 non_fqdn_reject_code parameter specifies the response code for
5252 rejected requests (default: 504).</dd>
5254 <dt><b><a name="reject_rhsbl_helo">reject_rhsbl_helo <i>rbl_domain=d.d.d.d</i></a></b></dt>
5256 <dd>Reject the request when the HELO or EHLO hostname hostname is
5257 listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
5258 (Postfix version 2.1 and later only). If no "<i>=d.d.d.d</i>" is
5259 specified, reject the request when the HELO or EHLO hostname is
5260 listed with any A record under <i>rbl_domain</i>. See the
5261 reject_rbl_client description for additional RBL related configuration
5262 parameters. This feature is available in Postfix 2.0 and later.
5265 <dt><b><a name="reject_unknown_helo_hostname">reject_unknown_helo_hostname</a></b> (with Postfix < 2.3: reject_unknown_hostname)</dt>
5267 <dd>Reject the request when the HELO or EHLO hostname has no DNS A
5268 or MX record. <br> The unknown_hostname_reject_code parameter
5269 specifies the numerical response code for rejected requests (default:
5270 450). <br> The unknown_helo_hostname_tempfail_action parameter
5271 specifies the action after a temporary DNS error (default:
5272 defer_if_permit). </dd>
5277 Other restrictions that are valid in this context:
5282 <li> <a href="#generic">Generic</a> restrictions that can be used
5283 in any SMTP command context, described under smtpd_client_restrictions.
5285 <li> Client hostname or network address specific restrictions
5286 described under smtpd_client_restrictions.
5288 <li> SMTP command specific restrictions described under
5289 smtpd_sender_restrictions or smtpd_recipient_restrictions. When
5290 sender or recipient restrictions are listed under smtpd_helo_restrictions,
5291 they have effect only with "smtpd_delay_reject = yes", so that
5292 $smtpd_helo_restrictions is evaluated at the time of the RCPT TO
5302 smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname
5303 smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname
5306 %PARAM smtpd_history_flush_threshold 100
5309 The maximal number of lines in the Postfix SMTP server command history
5310 before it is flushed upon receipt of EHLO, RSET, or end of DATA.
5313 %PARAM smtpd_noop_commands
5316 List of commands that the Postfix SMTP server replies to with "250
5317 Ok", without doing any syntax checks and without changing state.
5318 This list overrides any commands built into the Postfix SMTP server.
5321 %PARAM smtpd_proxy_ehlo $myhostname
5324 How the Postfix SMTP server announces itself to the proxy filter.
5325 By default, the Postfix hostname is used.
5329 This feature is available in Postfix 2.1 and later.
5332 %CLASS smtpd-proxy SMTP Proxy filter
5335 As of Postfix version 2.1, the SMTP server can forward all incoming
5336 mail to a content filtering proxy server that inspects all mail
5337 BEFORE it is stored in the Postfix mail queue.
5341 WARNING: the proxy filter must reply within a fixed deadline or
5342 else the remote SMTP client times out and mail duplication happens.
5343 This becomes a problem as mail load increases so that fewer and
5344 fewer CPU cycles remain available to mead the fixed deadline.
5347 %PARAM smtpd_proxy_filter
5349 <p> The hostname and TCP port of the mail filtering proxy server.
5350 The proxy receives all mail from the Postfix SMTP server, and is
5351 supposed to give the result to another Postfix SMTP server process.
5354 <p> Specify "host:port" or "inet:host:port" for a TCP endpoint, or
5355 "unix:pathname" for a UNIX-domain endpoint. The host can be specified
5356 as an IP address or as a symbolic name; no MX lookups are done.
5357 When no "host" or "host:" are specified, the local machine is
5358 assumed. Pathname interpretation is relative to the Postfix queue
5361 <p> This feature is available in Postfix 2.1 and later. </p>
5363 <p> The "inet:" and "unix:" prefixes are available in Postfix 2.3
5366 %PARAM smtpd_proxy_timeout 100s
5369 The time limit for connecting to a proxy filter and for sending or
5370 receiving information. When a connection fails the client gets a
5371 generic error message while more detailed information is logged to
5376 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
5377 The default time unit is s (seconds).
5381 This feature is available in Postfix 2.1 and later.
5384 %PARAM smtpd_recipient_limit 1000
5387 The maximal number of recipients that the Postfix SMTP server
5388 accepts per message delivery request.
5391 %PARAM smtpd_recipient_restrictions permit_mynetworks, reject_unauth_destination
5394 The access restrictions that the Postfix SMTP server applies in
5395 the context of the RCPT TO command.
5396 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5397 restriction lists" for a discussion of evaluation context and time.
5401 By default, the Postfix SMTP server accepts:
5406 <li> Mail from clients whose IP address matches $mynetworks, or:
5408 <li> Mail to remote destinations that match $relay_domains, except
5409 for addresses that contain sender-specified routing
5410 (user@elsewhere@domain), or:
5412 <li> Mail to local destinations that match $inet_interfaces
5413 or $proxy_interfaces, $mydestination, $virtual_alias_domains, or
5414 $virtual_mailbox_domains.
5419 IMPORTANT: If you change this parameter setting, you must specify
5420 at least one of the following restrictions. Otherwise Postfix will
5421 refuse to receive mail:
5426 reject, defer, defer_if_permit, reject_unauth_destination
5431 Specify a list of restrictions, separated by commas and/or whitespace.
5432 Continue long lines by starting the next line with whitespace.
5433 Restrictions are applied in the order as specified; the first
5434 restriction that matches wins.
5438 The following restrictions are specific to the recipient address
5439 that is received with the RCPT TO command.
5444 <dt><b><a name="check_recipient_access">check_recipient_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5446 <dd>Search the specified access(5) database for the resolved RCPT
5447 TO address, domain, parent domains, or localpart@, and execute the
5448 corresponding action. </dd>
5450 <dt><b><a name="check_recipient_mx_access">check_recipient_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5452 <dd>Search the specified access(5) database for the MX hosts for
5453 the RCPT TO domain, and execute the corresponding action. Note:
5454 a result of "OK" is not allowed for safety reasons. Instead, use
5455 DUNNO in order to exclude specific hosts from blacklists. This
5456 feature is available in Postfix 2.1 and later. </dd>
5458 <dt><b><a name="check_recipient_ns_access">check_recipient_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5460 <dd>Search the specified access(5) database for the DNS servers
5461 for the RCPT TO domain, and execute the corresponding action.
5462 Note: a result of "OK" is not allowed for safety reasons. Instead,
5463 use DUNNO in order to exclude specific hosts from blacklists. This
5464 feature is available in Postfix 2.1 and later. </dd>
5466 <dt><b><a name="permit_auth_destination">permit_auth_destination</a></b></dt>
5468 <dd>Permit the request when one of the following is true:
5472 <li> Postfix is mail forwarder: the resolved RCPT TO domain matches
5473 $relay_domains or a subdomain thereof, and the address contains no
5474 sender-specified routing (user@elsewhere@domain),
5476 <li> Postfix is the final destination: the resolved RCPT TO domain
5477 matches $mydestination, $inet_interfaces, $proxy_interfaces,
5478 $virtual_alias_domains, or $virtual_mailbox_domains, and the address
5479 contains no sender-specified routing (user@elsewhere@domain).
5483 <dt><b><a name="permit_mx_backup">permit_mx_backup</a></b></dt>
5485 <dd>Permit the request when the local mail system is backup MX for
5486 the RCPT TO domain, or when the domain is an authorized destination
5487 (see permit_auth_destination for definition).
5491 <li> Safety: permit_mx_backup does not accept addresses that have
5492 sender-specified routing information (example: user@elsewhere@domain).
5494 <li> Safety: permit_mx_backup can be vulnerable to mis-use when
5495 access is not restricted with permit_mx_backup_networks.
5497 <li> Safety: as of Postfix version 2.3, permit_mx_backup no longer
5498 accepts the address when the local mail system is primary MX for
5499 the recipient domain. Exception: permit_mx_backup accepts the address
5500 when it specifies an authorized destination (see permit_auth_destination
5503 <li> Limitation: mail may be rejected in case of a temporary DNS
5504 lookup problem with Postfix prior to version 2.0.
5508 <dt><b><a name="reject_non_fqdn_recipient">reject_non_fqdn_recipient</a></b></dt>
5510 <dd>Reject the request when the RCPT TO address is not in
5511 fully-qualified domain form, as required by the RFC. <br> The
5512 non_fqdn_reject_code parameter specifies the response code for
5513 rejected requests (default: 504). </dd>
5515 <dt><b><a name="reject_rhsbl_recipient">reject_rhsbl_recipient <i>rbl_domain=d.d.d.d</i></a></b></dt>
5517 <dd>Reject the request when the RCPT TO domain is listed with the
5518 A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
5519 2.1 and later only). If no "<i>=d.d.d.d</i>" is specified, reject
5520 the request when the RCPT TO domain is listed with
5521 any A record under <i>rbl_domain</i>. <br> The maps_rbl_reject_code
5522 parameter specifies the response code for rejected requests (default:
5523 554); the default_rbl_reply parameter specifies the default server
5524 reply; and the rbl_reply_maps parameter specifies tables with server
5525 replies indexed by <i>rbl_domain</i>. This feature is available
5526 in Postfix version 2.0 and later.</dd>
5528 <dt><b><a name="reject_unauth_destination">reject_unauth_destination</a></b></dt>
5530 <dd>Reject the request unless one of the following is true:
5534 <li> Postfix is mail forwarder: the resolved RCPT TO domain matches
5535 $relay_domains or a subdomain thereof, and contains no sender-specified
5536 routing (user@elsewhere@domain),
5538 <li> Postfix is the final destination: the resolved RCPT TO domain
5539 matches $mydestination, $inet_interfaces, $proxy_interfaces,
5540 $virtual_alias_domains, or $virtual_mailbox_domains, and contains
5541 no sender-specified routing (user@elsewhere@domain).
5543 </ul> The relay_domains_reject_code parameter specifies the response
5544 code for rejected requests (default: 554). </dd>
5546 <dt><b><a name="reject_unknown_recipient_domain">reject_unknown_recipient_domain</a></b></dt>
5548 <dd>Reject the request when Postfix is not final destination for
5549 the recipient domain, and the RCPT TO domain has no DNS A or MX
5550 record, or when it has a malformed MX record such as a record with
5551 a zero-length MX hostname (Postfix version 2.3 and later). <br> The
5552 unknown_address_reject_code parameter specifies the numerical
5553 response code for rejected requests (default: 450). The response
5554 is always 450 in case of a temporary DNS error. <br> The
5555 unknown_address_tempfail_action parameter specifies the action
5556 after a temporary DNS error (default: defer_if_permit). </dd>
5558 <dt><b><a name="reject_unlisted_recipient">reject_unlisted_recipient</a></b> (with Postfix version 2.0: check_recipient_maps)</dt>
5560 <dd> Reject the request when the RCPT TO address is not listed in
5561 the list of valid recipients for its domain class. See the
5562 smtpd_reject_unlisted_recipient parameter description for details.
5563 This feature is available in Postfix 2.1 and later.</dd>
5565 <dt><b><a name="reject_unverified_recipient">reject_unverified_recipient</a></b></dt>
5567 <dd>Reject the request when mail to the RCPT TO address is known
5568 to bounce, or when the recipient address destination is not reachable.
5569 Address verification information is managed by the verify(8) server;
5570 see the ADDRESS_VERIFICATION_README file for details. <br> The
5571 unverified_recipient_reject_code parameter specifies the numerical
5572 response code when an address is known to bounce (default: 450,
5573 change into 550 when you are confident that it is safe to do so).
5574 <br>The unverified_recipient_defer_code parameter specifies the
5575 numerical response code when an address probe failed due to a
5576 temporary problem (default: 450). <br> The
5577 unverified_recipient_tempfail_action parameter specifies the action
5578 after addres probe failure due to a temporary problem (default:
5579 defer_if_permit). <br> This feature is available in Postfix 2.1
5585 Other restrictions that are valid in this context:
5590 <li><a href="#generic">Generic</a> restrictions that can be used
5591 in any SMTP command context, described under smtpd_client_restrictions.
5593 <li>SMTP command specific restrictions described under
5594 smtpd_client_restrictions, smtpd_helo_restrictions and
5595 smtpd_sender_restrictions.
5604 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
5607 %CLASS sasl-auth SASL Authentication
5610 Postfix SASL support (RFC 4954) can be used to authenticate remote
5611 SMTP clients to the Postfix SMTP server, and to authenticate the
5612 Postfix SMTP client to a remote SMTP server.
5613 See the SASL_README document for details.
5616 %PARAM smtpd_sasl_auth_enable no
5619 Enable SASL authentication in the Postfix SMTP server. By default,
5620 the Postfix SMTP server does not use authentication.
5624 If a remote SMTP client is authenticated, the permit_sasl_authenticated
5625 access restriction can be used to permit relay access, like this:
5630 smtpd_recipient_restrictions =
5631 permit_mynetworks, permit_sasl_authenticated, ...
5635 <p> To reject all SMTP connections from unauthenticated clients,
5636 specify "smtpd_delay_reject = yes" (which is the default) and use:
5641 smtpd_client_restrictions = permit_sasl_authenticated, reject
5646 See the SASL_README file for SASL configuration and operation details.
5649 %PARAM smtpd_sasl_authenticated_header no
5651 <p> Report the SASL authenticated user name in the smtpd(8) Received
5652 message header. </p>
5654 <p> This feature is available in Postfix 2.3 and later. </p>
5656 %PARAM smtpd_sasl_exceptions_networks
5659 What remote SMTP clients the Postfix SMTP server will not offer
5664 Some clients (Netscape 4 at least) have a bug that causes them to
5665 require a login and password whenever AUTH is offered, whether it's
5666 necessary or not. To work around this, specify, for example,
5667 $mynetworks to prevent Postfix from offering AUTH to local clients.
5671 Specify a list of network/netmask patterns, separated by commas
5672 and/or whitespace. The mask specifies the number of bits in the
5673 network part of a host address. You can also "/file/name" or
5674 "type:table" patterns. A "/file/name" pattern is replaced by its
5675 contents; a "type:table" lookup table is matched when a table entry
5676 matches a lookup string (the lookup result is ignored). Continue
5677 long lines by starting the next line with whitespace. Specify
5678 "!pattern" to exclude an address or network block from the list.
5679 The form "!/file/name" is supported only in Postfix version 2.4 and
5682 <p> Note: IP version 6 address information must be specified inside
5683 <tt>[]</tt> in the smtpd_sasl_exceptions_networks value, and in
5684 files specified with "/file/name". IP version 6 addresses contain
5685 the ":" character, and would otherwise be confused with a "type:table"
5693 smtpd_sasl_exceptions_networks = $mynetworks
5697 This feature is available in Postfix 2.1 and later.
5700 %PARAM smtpd_sasl_local_domain
5703 The name of the Postfix SMTP server's local SASL authentication
5708 By default, the local authentication realm name is the null string.
5716 smtpd_sasl_local_domain = $mydomain
5717 smtpd_sasl_local_domain = $myhostname
5720 %PARAM smtpd_sasl_security_options noanonymous
5722 <p> Postfix SMTP server SASL security options; as of Postfix 2.3
5723 the list of available
5724 features depends on the SASL server implementation that is selected
5725 with <b>smtpd_sasl_type</b>. </p>
5727 <p> The following security features are defined for the <b>cyrus</b>
5728 server SASL implementation: </p>
5731 Restrict what authentication mechanisms the Postfix SMTP server
5732 will offer to the client. The list of available authentication
5733 mechanisms is system dependent.
5737 Specify zero or more of the following:
5742 <dt><b>noplaintext</b></dt>
5744 <dd>Disallow methods that use plaintext passwords. </dd>
5746 <dt><b>noactive</b></dt>
5748 <dd>Disallow methods subject to active (non-dictionary) attack. </dd>
5750 <dt><b>nodictionary</b></dt>
5752 <dd>Disallow methods subject to passive (dictionary) attack. </dd>
5754 <dt><b>noanonymous</b></dt>
5756 <dd>Disallow methods that allow anonymous authentication. </dd>
5758 <dt><b>forward_secrecy</b></dt>
5760 <dd>Only allow methods that support forward secrecy (Dovecot only).
5763 <dt><b>mutual_auth</b></dt>
5765 <dd>Only allow methods that provide mutual authentication (not available
5766 with Cyrus SASL version 1). </dd>
5771 By default, the Postfix SMTP server accepts plaintext passwords but
5772 not anonymous logins.
5776 Warning: it appears that clients try authentication methods in the
5777 order as advertised by the server (e.g., PLAIN ANONYMOUS CRAM-MD5)
5778 which means that if you disable plaintext passwords, clients will
5779 log in anonymously, even when they should be able to use CRAM-MD5.
5780 So, if you disable plaintext logins, disable anonymous logins too.
5781 Postfix treats anonymous login as no authentication.
5789 smtpd_sasl_security_options = noanonymous, noplaintext
5792 %PARAM smtpd_sender_login_maps
5795 Optional lookup table with the SASL login names that own sender
5796 (MAIL FROM) addresses.
5800 Specify zero or more "type:table" lookup tables. With lookups from
5801 indexed files such as DB or DBM, or from networked tables such as
5802 NIS, LDAP or SQL, the following search operations are done with a
5803 sender address of <i>user@domain</i>: </p>
5807 <dt> 1) <i>user@domain</i> </dt>
5809 <dd>This table lookup is always done and has the highest precedence. </dd>
5811 <dt> 2) <i>user</i> </dt>
5813 <dd>This table lookup is done only when the <i>domain</i> part of the
5814 sender address matches $myorigin, $mydestination, $inet_interfaces
5815 or $proxy_interfaces. </dd>
5817 <dt> 3) <i>@domain</i> </dt>
5819 <dd>This table lookup is done last and has the lowest precedence. </dd>
5824 In all cases the result of table lookup must be either "not found"
5825 or a list of SASL login names separated by comma and/or whitespace.
5828 %PARAM smtpd_sender_restrictions
5831 Optional restrictions that the Postfix SMTP server applies in the
5832 context of the MAIL FROM command.
5833 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
5834 restriction lists" for a discussion of evaluation context and time.
5838 The default is to permit everything.
5842 Specify a list of restrictions, separated by commas and/or whitespace.
5843 Continue long lines by starting the next line with whitespace.
5844 Restrictions are applied in the order as specified; the first
5845 restriction that matches wins.
5849 The following restrictions are specific to the sender address
5850 received with the MAIL FROM command.
5855 <dt><b><a name="check_sender_access">check_sender_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5857 <dd>Search the specified access(5) database for the MAIL FROM
5858 address, domain, parent domains, or localpart@, and execute the
5859 corresponding action. </dd>
5861 <dt><b><a name="check_sender_mx_access">check_sender_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5863 <dd>Search the specified access(5) database for the MX hosts for
5864 the MAIL FROM address, and execute the corresponding action. Note:
5865 a result of "OK" is not allowed for safety reasons. Instead, use
5866 DUNNO in order to exclude specific hosts from blacklists. This
5867 feature is available in Postfix 2.1 and later. </dd>
5869 <dt><b><a name="check_sender_ns_access">check_sender_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt>
5871 <dd>Search the specified access(5) database for the DNS servers
5872 for the MAIL FROM address, and execute the corresponding action.
5873 Note: a result of "OK" is not allowed for safety reasons. Instead,
5874 use DUNNO in order to exclude specific hosts from blacklists. This
5875 feature is available in Postfix 2.1 and later. </dd>
5877 <dt><b><a name="reject_authenticated_sender_login_mismatch">reject_authenticated_sender_login_mismatch</a></b></dt>
5879 <dd>Enforces the reject_sender_login_mismatch restriction for
5880 authenticated clients only. This feature is available in
5881 Postfix version 2.1 and later. </dd>
5883 <dt><b><a name="reject_non_fqdn_sender">reject_non_fqdn_sender</a></b></dt>
5885 <dd>Reject the request when the MAIL FROM address is not in
5886 fully-qualified domain form, as required by the RFC. <br> The
5887 non_fqdn_reject_code parameter specifies the response code for
5888 rejected requests (default: 504). </dd>
5890 <dt><b><a name="reject_rhsbl_sender">reject_rhsbl_sender <i>rbl_domain=d.d.d.d</i></a></b></dt>
5892 <dd>Reject the request when the MAIL FROM domain is listed with
5893 the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix
5894 version 2.1 and later only). If no "<i>=d.d.d.d</i>" is specified,
5895 reject the request when the MAIL FROM domain is
5896 listed with any A record under <i>rbl_domain</i>. <br> The
5897 maps_rbl_reject_code parameter specifies the response code for
5898 rejected requests (default: 554); the default_rbl_reply parameter
5899 specifies the default server reply; and the rbl_reply_maps parameter
5900 specifies tables with server replies indexed by <i>rbl_domain</i>.
5901 This feature is available in Postfix 2.0 and later.</dd>
5903 <dt><b><a name="reject_sender_login_mismatch">reject_sender_login_mismatch</a></b></dt>
5905 <dd>Reject the request when $smtpd_sender_login_maps specifies an
5906 owner for the MAIL FROM address, but the client is not (SASL) logged
5907 in as that MAIL FROM address owner; or when the client is (SASL)
5908 logged in, but the client login name doesn't own the MAIL FROM
5909 address according to $smtpd_sender_login_maps.</dd>
5911 <dt><b><a name="reject_unauthenticated_sender_login_mismatch">reject_unauthenticated_sender_login_mismatch</a></b></dt>
5913 <dd>Enforces the reject_sender_login_mismatch restriction for
5914 unauthenticated clients only. This feature is available in
5915 Postfix version 2.1 and later. </dd>
5917 <dt><b><a name="reject_unknown_sender_domain">reject_unknown_sender_domain</a></b></dt>
5919 <dd>Reject the request when Postfix is not final destination for
5920 the sender address, and the MAIL FROM address has no DNS A or MX
5921 record, or when it has a malformed MX record such as a record with
5922 a zero-length MX hostname (Postfix version 2.3 and later). <br> The
5923 unknown_address_reject_code parameter specifies the numerical
5924 response code for rejected requests (default: 450). The response
5925 is always 450 in case of a temporary DNS error. <br> The
5926 unknown_address_tempfail_action parameter specifies the action
5927 after a temporary DNS error (default: defer_if_permit). </dd>
5929 <dt><b><a name="reject_unlisted_sender">reject_unlisted_sender</a></b></dt>
5931 <dd>Reject the request when the MAIL FROM address is not listed in
5932 the list of valid recipients for its domain class. See the
5933 smtpd_reject_unlisted_sender parameter description for details.
5934 This feature is available in Postfix 2.1 and later.</dd>
5936 <dt><b><a name="reject_unverified_sender">reject_unverified_sender</a></b></dt>
5938 <dd>Reject the request when mail to the MAIL FROM address is known to
5939 bounce, or when the sender address destination is not reachable.
5940 Address verification information is managed by the verify(8) server;
5941 see the ADDRESS_VERIFICATION_README file for details. <br> The
5942 unverified_sender_reject_code parameter specifies the numerical
5943 response code when an address is known to bounce (default: 450,
5944 change into 550 when you are confident that it is safe to do so).
5945 <br>The unverified_sender_defer_code specifies the numerical response
5946 code when an address address probe failed due to a temporary problem
5947 (default: 450). <br> The unverified_sender_tempfail_action parameter
5948 specifies the action after address probe failure due to a temporary
5949 problem (default: defer_if_permit). <br> This feature is available
5950 in Postfix 2.1 and later. </dd>
5955 Other restrictions that are valid in this context:
5960 <li> <a href="#generic">Generic</a> restrictions that can be used
5961 in any SMTP command context, described under smtpd_client_restrictions.
5963 <li> SMTP command specific restrictions described under
5964 smtpd_client_restrictions and smtpd_helo_restrictions.
5966 <li> SMTP command specific restrictions described under
5967 smtpd_recipient_restrictions. When recipient restrictions are listed
5968 under smtpd_sender_restrictions, they have effect only with
5969 "smtpd_delay_reject = yes", so that $smtpd_sender_restrictions is
5970 evaluated at the time of the RCPT TO command.
5979 smtpd_sender_restrictions = reject_unknown_sender_domain
5980 smtpd_sender_restrictions = reject_unknown_sender_domain,
5981 check_sender_access hash:/etc/postfix/access
5984 %PARAM smtpd_timeout normal: 300s, stress: 10s
5987 The time limit for sending a Postfix SMTP server response and for
5988 receiving a remote SMTP client request. Normally the default limit
5989 is 300s, but it changes under overload to just 10s with Postfix 2.6
5994 Note: if you set SMTP time limits to very large values you may have
5995 to update the global ipc_timeout parameter.
5999 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6000 The default time unit is s (seconds).
6003 %PARAM soft_bounce no
6006 Safety net to keep mail queued that would otherwise be returned to
6007 the sender. This parameter disables locally-generated bounces,
6008 and prevents the Postfix SMTP server from rejecting mail permanently,
6009 by changing 5xx reply codes into 4xx. However, soft_bounce is no
6010 cure for address rewriting mistakes or mail routing mistakes.
6021 %PARAM stale_lock_time 500s
6024 The time after which a stale exclusive mailbox lockfile is removed.
6025 This is used for delivery to file or mailbox.
6029 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6030 The default time unit is s (seconds).
6033 %PARAM strict_rfc821_envelopes no
6036 Require that addresses received in SMTP MAIL FROM and RCPT TO
6037 commands are enclosed with <>, and that those addresses do
6038 not contain RFC 822 style comments or phrases. This stops mail
6039 from poorly written software.
6043 By default, the Postfix SMTP server accepts RFC 822 syntax in MAIL
6044 FROM and RCPT TO addresses.
6047 %PARAM swap_bangpath yes
6050 Enable the rewriting of "site!user" into "user@site". This is
6051 necessary if your machine is connected to UUCP networks. It is
6055 <p> Note: with Postfix version 2.2, message header address rewriting
6056 happens only when one of the following conditions is true: </p>
6060 <li> The message is received with the Postfix sendmail(1) command,
6062 <li> The message is received from a network client that matches
6063 $local_header_rewrite_clients,
6065 <li> The message is received from the network, and the
6066 remote_header_rewrite_domain parameter specifies a non-empty value.
6070 <p> To get the behavior before Postfix version 2.2, specify
6071 "local_header_rewrite_clients = static:all". </p>
6081 %PARAM syslog_facility mail
6084 The syslog facility of Postfix logging. Specify a facility as
6085 defined in syslog.conf(5). The default facility is "mail".
6089 Warning: a non-default syslog_facility setting takes effect only
6090 after a Postfix process has completed initialization. Errors during
6091 process initialization will be logged with the default facility.
6092 Examples are errors while parsing the command line arguments, and
6093 errors while accessing the Postfix main.cf configuration file.
6096 %PARAM syslog_name see "postconf -d" output
6099 The mail system name that is prepended to the process name in syslog
6100 records, so that "smtpd" becomes, for example, "postfix/smtpd".
6104 Warning: a non-default syslog_name setting takes effect only after
6105 a Postfix process has completed initialization. Errors during
6106 process initialization will be logged with the default name. Examples
6107 are errors while parsing the command line arguments, and errors
6108 while accessing the Postfix main.cf configuration file.
6111 %PARAM transport_maps
6114 Optional lookup tables with mappings from recipient address to
6115 (message delivery transport, next-hop destination). See transport(5)
6120 Specify zero or more "type:table" lookup tables. If you use this
6121 feature with local files, run "<b>postmap /etc/postfix/transport</b>"
6122 after making a change. </p>
6124 <p> For safety reasons, as of Postfix 2.3 this feature does not
6125 allow $number substitutions in regular expression maps. </p>
6132 transport_maps = dbm:/etc/postfix/transport
6133 transport_maps = hash:/etc/postfix/transport
6136 %PARAM transport_retry_time 60s
6139 The time between attempts by the Postfix queue manager to contact
6140 a malfunctioning message delivery transport.
6144 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6145 The default time unit is s (seconds).
6148 %PARAM trigger_timeout 10s
6151 The time limit for sending a trigger to a Postfix daemon (for
6152 example, the pickup(8) or qmgr(8) daemon). This time limit prevents
6153 programs from getting stuck when the mail system is under heavy
6158 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6159 The default time unit is s (seconds).
6162 %PARAM unknown_address_reject_code 450
6165 The numerical Postfix SMTP server response code when a sender or
6166 recipient address is rejected by the reject_unknown_sender_domain
6167 or reject_unknown_recipient_domain restriction. The response is
6168 always 450 in case of a temporary DNS error.
6172 Do not change this unless you have a complete understanding of RFC 2821.
6175 %PARAM unknown_client_reject_code 450
6178 The numerical Postfix SMTP server response code when a client
6179 without valid address <=> name mapping is rejected by the
6180 reject_unknown_client_hostname restriction. The SMTP server always replies
6181 with 450 when the mapping failed due to a temporary error condition.
6185 Do not change this unless you have a complete understanding of RFC 2821.
6188 %PARAM unknown_hostname_reject_code 450
6191 The numerical Postfix SMTP server response code when the hostname
6192 specified with the HELO or EHLO command is rejected by the
6193 reject_unknown_helo_hostname restriction.
6197 Do not change this unless you have a complete understanding of RFC 2821.
6200 %PARAM unknown_local_recipient_reject_code 550
6203 The numerical Postfix SMTP server response code when a recipient
6204 address is local, and $local_recipient_maps specifies a list of
6205 lookup tables that does not match the recipient. A recipient
6206 address is local when its domain matches $mydestination,
6207 $proxy_interfaces or $inet_interfaces.
6211 The default setting is 550 (reject mail) but it is safer to initially
6212 use 450 (try again later) so you have time to find out if your
6213 local_recipient_maps settings are OK.
6221 unknown_local_recipient_reject_code = 450
6225 This feature is available in Postfix 2.0 and later.
6228 %PARAM unverified_recipient_reject_code 450
6231 The numerical Postfix SMTP server response when a recipient address
6232 is rejected by the reject_unverified_recipient restriction.
6236 Unlike elsewhere in Postfix, you can specify 250 in order to
6237 accept the address anyway.
6241 Do not change this unless you have a complete understanding of RFC 2821.
6245 This feature is available in Postfix 2.1 and later.
6248 %PARAM unverified_recipient_defer_code 450
6251 The numerical Postfix SMTP server response when a recipient address
6252 probe fails due to a temporary error condition.
6256 Unlike elsewhere in Postfix, you can specify 250 in order to
6257 accept the address anyway.
6261 Do not change this unless you have a complete understanding of RFC 2821.
6265 This feature is available in Postfix 2.6 and later.
6268 %PARAM unverified_sender_reject_code 450
6271 The numerical Postfix SMTP server response code when a recipient
6272 address is rejected by the reject_unverified_sender restriction.
6276 Unlike elsewhere in Postfix, you can specify 250 in order to
6277 accept the address anyway.
6281 Do not change this unless you have a complete understanding of RFC 2821.
6285 This feature is available in Postfix 2.1 and later.
6288 %PARAM unverified_sender_defer_code 450
6291 The numerical Postfix SMTP server response code when a sender address
6292 probe fails due to a temporary error condition.
6296 Unlike elsewhere in Postfix, you can specify 250 in order to
6297 accept the address anyway.
6301 Do not change this unless you have a complete understanding of RFC 2821.
6305 This feature is available in Postfix 2.6 and later.
6308 %PARAM virtual_alias_domains $virtual_alias_maps
6310 <p> Postfix is final destination for the specified list of virtual
6311 alias domains, that is, domains for which all addresses are aliased
6312 to addresses in other local or remote domains. The SMTP server
6313 validates recipient addresses with $virtual_alias_maps and rejects
6314 non-existent recipients. See also the virtual alias domain class
6315 in the ADDRESS_CLASS_README file </p>
6318 This feature is available in Postfix 2.0 and later. The default
6319 value is backwards compatible with Postfix version 1.1.
6323 The default value is $virtual_alias_maps so that you can keep all
6324 information about virtual alias domains in one place. If you have
6325 many users, it is better to separate information that changes more
6326 frequently (virtual address -> local or remote address mapping)
6327 from information that changes less frequently (the list of virtual
6331 <p> Specify a list of host or domain names, "/file/name" or
6332 "type:table" patterns, separated by commas and/or whitespace. A
6333 "/file/name" pattern is replaced by its contents; a "type:table"
6334 lookup table is matched when a table entry matches a lookup string
6335 (the lookup result is ignored). Continue long lines by starting
6336 the next line with whitespace. Specify "!pattern" to exclude a host
6337 or domain name from the list. The form "!/file/name" is supported
6338 only in Postfix version 2.4 and later. </p>
6341 See also the VIRTUAL_README and ADDRESS_CLASS_README documents
6342 for further information.
6350 virtual_alias_domains = virtual1.tld virtual2.tld
6353 %PARAM virtual_alias_expansion_limit 1000
6356 The maximal number of addresses that virtual alias expansion produces
6357 from each original recipient.
6361 This feature is available in Postfix 2.1 and later.
6364 %PARAM virtual_alias_maps $virtual_maps
6367 Optional lookup tables that alias specific mail addresses or domains
6368 to other local or remote address. The table format and lookups
6369 are documented in virtual(5). For an overview of Postfix address
6370 manipulations see the ADDRESS_REWRITING_README document.
6374 This feature is available in Postfix 2.0 and later. The default
6375 value is backwards compatible with Postfix version 1.1.
6379 If you use this feature with indexed files, run "<b>postmap
6380 /etc/postfix/virtual</b>" after changing the file.
6388 virtual_alias_maps = dbm:/etc/postfix/virtual
6389 virtual_alias_maps = hash:/etc/postfix/virtual
6392 %PARAM virtual_alias_recursion_limit 1000
6395 The maximal nesting depth of virtual alias expansion. Currently
6396 the recursion limit is applied only to the left branch of the
6397 expansion graph, so the depth of the tree can in the worst case
6398 reach the sum of the expansion and recursion limits. This may
6399 change in the future.
6403 This feature is available in Postfix 2.1 and later.
6406 %CLASS trouble-shooting Trouble shooting
6409 The DEBUG_README document describes how to debug parts of the
6410 Postfix mail system. The methods vary from making the software log
6411 a lot of detail, to running some daemon processes under control of
6412 a call tracer or debugger.
6415 %PARAM debugger_command
6418 The external command to execute when a Postfix daemon program is
6419 invoked with the -D option.
6423 Use "command .. & sleep 5" so that the debugger can attach before
6424 the process marches on. If you use an X-based debugger, be sure to
6425 set up your XAUTHORITY environment variable before starting Postfix.
6434 PATH=/usr/bin:/usr/X11R6/bin
6435 ddd $daemon_directory/$process_name $process_id & sleep 5
6438 %PARAM 2bounce_notice_recipient postmaster
6440 <p> The recipient of undeliverable mail that cannot be returned to
6441 the sender. This feature is enabled with the notify_classes
6444 %PARAM address_verify_service_name verify
6447 The name of the verify(8) address verification service. This service
6448 maintains the status of sender and/or recipient address verification
6449 probes, and generates probes on request by other Postfix processes.
6452 %PARAM alternate_config_directories
6455 A list of non-default Postfix configuration directories that may
6456 be specified with "-c config_directory" on the command line, or
6457 via the MAIL_CONFIG environment parameter.
6461 This list must be specified in the default Postfix configuration
6462 directory, and is used by set-gid Postfix commands such as postqueue(1)
6466 %PARAM append_at_myorigin yes
6469 With locally submitted mail, append the string "@$myorigin" to mail
6470 addresses without domain information. With remotely submitted mail,
6471 append the string "@$remote_header_rewrite_domain" instead.
6475 Note 1: this feature is enabled by default and must not be turned off.
6476 Postfix does not support domain-less addresses.
6479 <p> Note 2: with Postfix version 2.2, message header address rewriting
6480 happens only when one of the following conditions is true: </p>
6484 <li> The message is received with the Postfix sendmail(1) command,
6486 <li> The message is received from a network client that matches
6487 $local_header_rewrite_clients,
6489 <li> The message is received from the network, and the
6490 remote_header_rewrite_domain parameter specifies a non-empty value.
6494 <p> To get the behavior before Postfix version 2.2, specify
6495 "local_header_rewrite_clients = static:all". </p>
6497 %PARAM append_dot_mydomain yes
6500 With locally submitted mail, append the string ".$mydomain" to
6501 addresses that have no ".domain" information. With remotely submitted
6502 mail, append the string ".$remote_header_rewrite_domain"
6507 Note 1: this feature is enabled by default. If disabled, users will not be
6508 able to send mail to "user@partialdomainname" but will have to
6509 specify full domain names instead.
6512 <p> Note 2: with Postfix version 2.2, message header address rewriting
6513 happens only when one of the following conditions is true: </p>
6517 <li> The message is received with the Postfix sendmail(1) command,
6519 <li> The message is received from a network client that matches
6520 $local_header_rewrite_clients,
6522 <li> The message is received from the network, and the
6523 remote_header_rewrite_domain parameter specifies a non-empty value.
6527 <p> To get the behavior before Postfix version 2.2, specify
6528 "local_header_rewrite_clients = static:all". </p>
6530 %PARAM application_event_drain_time 100s
6533 How long the postkick(1) command waits for a request to enter the
6534 server's input buffer before giving up.
6538 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6539 The default time unit is s (seconds).
6543 This feature is available in Postfix 2.1 and later.
6546 %PARAM authorized_flush_users static:anyone
6549 List of users who are authorized to flush the queue.
6553 By default, all users are allowed to flush the queue. Access is
6554 always granted if the invoking user is the super-user or the
6555 $mail_owner user. Otherwise, the real UID of the process is looked
6556 up in the system password file, and access is granted only if the
6557 corresponding login name is on the access list. The username
6558 "unknown" is used for processes whose real UID is not found in the
6562 Specify a list of user names, "/file/name" or "type:table" patterns,
6563 separated by commas and/or whitespace. The list is matched left to
6564 right, and the search stops on the first match. A "/file/name"
6566 by its contents; a "type:table" lookup table is matched when a name
6567 matches a lookup key (the lookup result is ignored). Continue long
6568 lines by starting the next line with whitespace. Specify "!pattern"
6569 to exclude a name from the list. The form "!/file/name" is supported
6570 only in Postfix version 2.4 and later. </p>
6573 This feature is available in Postfix 2.2 and later.
6576 %PARAM authorized_mailq_users static:anyone
6579 List of users who are authorized to view the queue.
6583 By default, all users are allowed to view the queue. Access is
6584 always granted if the invoking user is the super-user or the
6585 $mail_owner user. Otherwise, the real UID of the process is looked
6586 up in the system password file, and access is granted only if the
6587 corresponding login name is on the access list. The username
6588 "unknown" is used for processes whose real UID is not found in the
6592 Specify a list of user names, "/file/name" or "type:table" patterns,
6593 separated by commas and/or whitespace. The list is matched left to
6594 right, and the search stops on the first match. A "/file/name"
6596 by its contents; a "type:table" lookup table is matched when a name
6597 matches a lookup key (the lookup result is ignored). Continue long
6598 lines by starting the next line with whitespace. Specify "!pattern"
6599 to exclude a user name from the list. The form "!/file/name" is
6600 supported only in Postfix version 2.4 and later. </p>
6603 This feature is available in Postfix 2.2 and later.
6606 %PARAM authorized_submit_users static:anyone
6609 List of users who are authorized to submit mail with the sendmail(1)
6610 command (and with the privileged postdrop(1) helper command).
6614 By default, all users are allowed to submit mail. Otherwise, the
6615 real UID of the process is looked up in the system password file,
6616 and access is granted only if the corresponding login name is on
6617 the access list. The username "unknown" is used for processes
6618 whose real UID is not found in the password file. To deny mail
6619 submission access to all users specify an empty list. </p>
6622 Specify a list of user names, "/file/name" or "type:table" patterns,
6623 separated by commas and/or whitespace. The list is matched left to right,
6624 and the search stops on the first match. A "/file/name" pattern is
6625 replaced by its contents;
6626 a "type:table" lookup table is matched when a name matches a lookup key
6627 (the lookup result is ignored). Continue long lines by starting the
6628 next line with whitespace. Specify "!pattern" to exclude a user
6629 name from the list. The form "!/file/name" is supported only in
6630 Postfix version 2.4 and later. </p>
6637 authorized_submit_users = !www, static:all
6641 This feature is available in Postfix 2.2 and later.
6644 %PARAM backwards_bounce_logfile_compatibility yes
6647 Produce additional bounce(8) logfile records that can be read by
6648 Postfix versions before 2.0. The current and more extensible "name =
6649 value" format is needed in order to implement more sophisticated
6654 This feature is available in Postfix 2.1 and later.
6657 %PARAM bounce_notice_recipient postmaster
6660 The recipient of postmaster notifications with the message headers
6661 of mail that Postfix did not deliver and of SMTP conversation
6662 transcripts of mail that Postfix did not receive. This feature is
6663 enabled with the notify_classes parameter. </p>
6665 %PARAM bounce_service_name bounce
6668 The name of the bounce(8) service. This service maintains a record
6669 of failed delivery attempts and generates non-delivery notifications.
6673 This feature is available in Postfix 2.0 and later.
6676 %PARAM broken_sasl_auth_clients no
6679 Enable inter-operability with SMTP clients that implement an obsolete
6680 version of the AUTH command (RFC 4954). Examples of such clients
6681 are MicroSoft Outlook Express version 4 and MicroSoft Exchange
6686 Specify "broken_sasl_auth_clients = yes" to have Postfix advertise
6687 AUTH support in a non-standard way.
6690 %PARAM cleanup_service_name cleanup
6693 The name of the cleanup(8) service. This service rewrites addresses
6694 into the standard form, and performs canonical(5) address mapping
6695 and virtual(5) aliasing.
6699 This feature is available in Postfix 2.0 and later.
6702 %PARAM anvil_status_update_time 600s
6705 How frequently the anvil(8) connection and rate limiting server
6706 logs peak usage information.
6710 This feature is available in Postfix 2.2 and later.
6714 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6715 The default time unit is s (seconds).
6718 %PARAM enable_errors_to no
6720 <p> Report mail delivery errors to the address specified with the
6721 non-standard Errors-To: message header, instead of the envelope
6722 sender address (this feature is removed with Postfix version 2.2, is
6723 turned off by default with Postfix version 2.1, and is always turned on
6724 with older Postfix versions). </p>
6726 %PARAM extract_recipient_limit 10240
6729 The maximal number of recipient addresses that Postfix will extract
6730 from message headers when mail is submitted with "<b>sendmail -t</b>".
6734 This feature was removed in Postfix version 2.1.
6737 %PARAM anvil_rate_time_unit 60s
6740 The time unit over which client connection rates and other rates
6745 This feature is implemented by the anvil(8) service which is available
6746 in Postfix version 2.2 and later.
6750 The default interval is relatively short. Because of the high
6751 frequency of updates, the anvil(8) server uses volatile memory
6752 only. Thus, information is lost whenever the process terminates.
6756 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6757 The default time unit is s (seconds).
6760 %PARAM command_expansion_filter see "postconf -d" output
6763 Restrict the characters that the local(8) delivery agent allows in
6764 $name expansions of $mailbox_command and $command_execution_directory.
6765 Characters outside the
6766 allowed set are replaced by underscores.
6769 %PARAM content_filter
6772 The name of a mail delivery transport that filters mail after
6777 This parameter uses the same syntax as the right-hand side of a
6778 Postfix transport(5) table. This setting has a lower precedence
6779 than a content filter that is specified with an access(5) table or
6780 in a header_checks(5) or body_checks(5) table.
6783 %PARAM default_delivery_slot_discount 50
6786 The default value for transport-specific _delivery_slot_discount
6791 This parameter speeds up the moment when a message preemption can
6792 happen. Instead of waiting until the full amount of delivery slots
6793 required is available, the preemption can happen when
6794 transport_delivery_slot_discount percent of the required amount
6795 plus transport_delivery_slot_loan still remains to be accumulated.
6796 Note that the full amount will still have to be accumulated before
6797 another preemption can take place later.
6800 <p> Use <i>transport</i>_delivery_slot_discount to specify a
6801 transport-specific override, where <i>transport</i> is the master.cf
6802 name of the message delivery transport.
6805 %PARAM default_delivery_slot_loan 3
6808 The default value for transport-specific _delivery_slot_loan
6813 This parameter speeds up the moment when a message preemption can
6814 happen. Instead of waiting until the full amount of delivery slots
6815 required is available, the preemption can happen when
6816 transport_delivery_slot_discount percent of the required amount
6817 plus transport_delivery_slot_loan still remains to be accumulated.
6818 Note that the full amount will still have to be accumulated before
6819 another preemption can take place later.
6822 <p> Use <i>transport</i>_delivery_slot_loan to specify a
6823 transport-specific override, where <i>transport</i> is the master.cf
6824 name of the message delivery transport.
6827 %CLASS verp VERP Support
6830 With VERP style delivery, each recipient of a message receives a
6831 customized copy of the message with his/her own recipient address
6832 encoded in the envelope sender address. The VERP_README file
6833 describes configuration and operation details of Postfix support
6834 for variable envelope return path addresses. VERP style delivery
6835 is requested with the SMTP XVERP command or with the "<b>sendmail
6836 -V</b>" command-line option and is available in Postfix
6840 %PARAM default_verp_delimiters +=
6842 <p> The two default VERP delimiter characters. These are used when
6843 no explicit delimiters are specified with the SMTP XVERP command
6844 or with the "<b>sendmail -V</b>" command-line option. Specify
6845 characters that are allowed by the verp_delimiter_filter setting.
6849 This feature is available in Postfix 1.1 and later.
6852 %PARAM defer_service_name defer
6855 The name of the defer service. This service is implemented by the
6856 bounce(8) daemon and maintains a record
6857 of failed delivery attempts and generates non-delivery notifications.
6861 This feature is available in Postfix 2.0 and later.
6864 %PARAM delay_notice_recipient postmaster
6867 The recipient of postmaster notifications with the message headers
6868 of mail that cannot be delivered within $delay_warning_time time
6872 This feature is enabled with the delay_warning_time parameter.
6875 %PARAM delay_warning_time 0h
6878 The time after which the sender receives the message headers of
6879 mail that is still queued.
6883 To enable this feature, specify a non-zero time value (an integral
6884 value plus an optional one-letter suffix that specifies the time
6889 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
6890 The default time unit is h (hours).
6893 %PARAM disable_dns_lookups no
6896 Disable DNS lookups in the Postfix SMTP and LMTP clients. When
6897 disabled, hosts are looked up with the getaddrinfo() system
6898 library routine which normally also looks in /etc/hosts.
6902 DNS lookups are enabled by default.
6905 %CLASS mime MIME Processing
6908 MIME processing is available in Postfix as of version 2.0. Older
6909 Postfix versions do not recognize MIME headers inside the message
6913 %PARAM disable_mime_input_processing no
6916 Turn off MIME processing while receiving mail. This means that no
6917 special treatment is given to Content-Type: message headers, and
6918 that all text after the initial message headers is considered to
6919 be part of the message body.
6923 This feature is available in Postfix 2.0 and later.
6927 Mime input processing is enabled by default, and is needed in order
6928 to recognize MIME headers in message content.
6931 %PARAM disable_mime_output_conversion no
6934 Disable the conversion of 8BITMIME format to 7BIT format. Mime
6935 output conversion is needed when the destination does not advertise
6940 This feature is available in Postfix 2.0 and later.
6943 %PARAM disable_verp_bounces no
6946 Disable sending one bounce report per recipient.
6950 The default, one per recipient, is what ezmlm needs.
6954 This feature is available in Postfix 1.1 and later.
6957 %PARAM dont_remove 0
6960 Don't remove queue files and save them to the "saved" mail queue.
6961 This is a debugging aid. To inspect the envelope information and
6962 content of a Postfix queue file, use the postcat(1) command.
6965 %PARAM empty_address_recipient MAILER-DAEMON
6968 The recipient of mail addressed to the null address. Postfix does
6969 not accept such addresses in SMTP commands, but they may still be
6970 created locally as the result of configuration or software error.
6973 %PARAM error_notice_recipient postmaster
6975 <p> The recipient of postmaster notifications about mail delivery
6976 problems that are caused by policy, resource, software or protocol
6977 errors. These notifications are enabled with the notify_classes
6980 %PARAM error_service_name error
6983 The name of the error(8) pseudo delivery agent. This service always
6984 returns mail as undeliverable.
6988 This feature is available in Postfix 2.0 and later.
6991 %PARAM expand_owner_alias no
6994 When delivering to an alias "aliasname" that has an "owner-aliasname"
6995 companion alias, set the envelope sender address to the expansion
6996 of the "owner-aliasname" alias. Normally, Postfix sets the envelope
6997 sender address to the name of the "owner-aliasname" alias.
7000 %PARAM fallback_transport
7003 Optional message delivery transport that the local(8) delivery
7004 agent should use for names that are not found in the aliases(5)
7005 or UNIX password database.
7008 <p> The precedence of local(8) delivery features from high to low
7009 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
7010 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
7011 fallback_transport_maps, fallback_transport and luser_relay. </p>
7013 %PARAM fault_injection_code 0
7016 Force specific internal tests to fail, to test the handling of
7017 errors that are difficult to reproduce otherwise.
7020 %PARAM flush_service_name flush
7023 The name of the flush(8) service. This service maintains per-destination
7024 logfiles with the queue file names of mail that is queued for those
7029 This feature is available in Postfix 2.0 and later.
7032 %PARAM forward_expansion_filter see "postconf -d" output
7035 Restrict the characters that the local(8) delivery agent allows in
7036 $name expansions of $forward_path. Characters outside the
7037 allowed set are replaced by underscores.
7040 %PARAM header_address_token_limit 10240
7043 The maximal number of address tokens are allowed in an address
7044 message header. Information that exceeds the limit is discarded.
7045 The limit is enforced by the cleanup(8) server.
7048 %PARAM helpful_warnings yes
7051 Log warnings about problematic configuration settings, and provide
7052 helpful suggestions.
7056 This feature is available in Postfix 2.0 and later.
7059 %PARAM lmtp_cache_connection yes
7062 Keep Postfix LMTP client connections open for up to $max_idle
7063 seconds. When the LMTP client receives a request for the same
7064 connection the connection is reused.
7067 <p> This parameter is available in Postfix version 2.2 and earlier.
7068 With Postfix version 2.3 and later, see lmtp_connection_cache_on_demand,
7069 lmtp_connection_cache_destinations, or lmtp_connection_reuse_time_limit.
7073 The effectiveness of cached connections will be determined by the
7074 number of LMTP servers in use, and the concurrency limit specified
7075 for the LMTP client. Cached connections are closed under any of
7076 the following conditions:
7081 <li> The LMTP client idle time limit is reached. This limit is
7082 specified with the Postfix max_idle configuration parameter.
7084 <li> A delivery request specifies a different destination than the
7085 one currently cached.
7087 <li> The per-process limit on the number of delivery requests is
7088 reached. This limit is specified with the Postfix max_use
7089 configuration parameter.
7091 <li> Upon the onset of another delivery request, the LMTP server
7092 associated with the current session does not respond to the RSET
7098 Most of these limitations will be removed after Postfix implements
7099 a connection cache that is shared among multiple LMTP client
7103 %PARAM lmtp_sasl_auth_enable no
7106 Enable SASL authentication in the Postfix LMTP client.
7109 %PARAM lmtp_sasl_password_maps
7112 Optional LMTP client lookup tables with one username:password entry
7113 per host or domain. If a remote host or domain has no username:password
7114 entry, then the Postfix LMTP client will not attempt to authenticate
7118 %PARAM lmtp_sasl_security_options noplaintext, noanonymous
7120 <p> SASL security options; as of Postfix 2.3 the list of available
7121 features depends on the SASL client implementation that is selected
7122 with <b>lmtp_sasl_type</b>. </p>
7124 <p> The following security features are defined for the <b>cyrus</b>
7125 client SASL implementation: </p>
7129 <dt><b>noplaintext</b></dt>
7131 <dd>Disallow authentication methods that use plaintext passwords. </dd>
7133 <dt><b>noactive</b></dt>
7135 <dd>Disallow authentication methods that are vulnerable to non-dictionary
7136 active attacks. </dd>
7138 <dt><b>nodictionary</b></dt>
7140 <dd>Disallow authentication methods that are vulnerable to passive
7141 dictionary attack. </dd>
7143 <dt><b>noanonymous</b></dt>
7145 <dd>Disallow anonymous logins. </dd>
7154 lmtp_sasl_security_options = noplaintext
7157 %PARAM lmtp_tcp_port 24
7160 The default TCP port that the Postfix LMTP client connects to.
7163 %PARAM mail_release_date see "postconf -d" output
7166 The Postfix release date, in "YYYYMMDD" format.
7169 %PARAM mailbox_command_maps
7172 Optional lookup tables with per-recipient external commands to use
7173 for local(8) mailbox delivery. Behavior is as with mailbox_command.
7176 <p> The precedence of local(8) delivery features from high to low
7177 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
7178 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
7179 fallback_transport_maps, fallback_transport and luser_relay. </p>
7181 %PARAM mailbox_delivery_lock see "postconf -d" output
7184 How to lock a UNIX-style local(8) mailbox before attempting delivery.
7185 For a list of available file locking methods, use the "<b>postconf
7190 This setting is ignored with <b>maildir</b> style delivery,
7191 because such deliveries are safe without explicit locks.
7195 Note: The <b>dotlock</b> method requires that the recipient UID or
7196 GID has write access to the parent directory of the mailbox file.
7200 Note: the default setting of this parameter is system dependent.
7203 %PARAM mailbox_transport
7206 Optional message delivery transport that the local(8) delivery
7207 agent should use for mailbox delivery to all local recipients,
7208 whether or not they are found in the UNIX passwd database.
7211 <p> The precedence of local(8) delivery features from high to low
7212 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
7213 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
7214 fallback_transport_maps, fallback_transport and luser_relay. </p>
7216 %PARAM mailq_path see "postconf -d" output
7219 Sendmail compatibility feature that specifies where the Postfix
7220 mailq(1) command is installed. This command can be used to
7221 list the Postfix mail queue.
7224 %PARAM manpage_directory see "postconf -d" output
7227 Where the Postfix manual pages are installed.
7230 %PARAM maps_rbl_domains
7233 Obsolete feature: use the reject_rbl_client feature instead.
7236 %PARAM mime_boundary_length_limit 2048
7239 The maximal length of MIME multipart boundary strings. The MIME
7240 processor is unable to distinguish between boundary strings that
7241 do not differ in the first $mime_boundary_length_limit characters.
7245 This feature is available in Postfix 2.0 and later.
7248 %PARAM mime_header_checks $header_checks
7251 Optional lookup tables for content inspection of MIME related
7252 message headers, as described in the header_checks(5) manual page.
7256 This feature is available in Postfix 2.0 and later.
7259 %PARAM mime_nesting_limit 100
7262 The maximal recursion level that the MIME processor will handle.
7263 Postfix refuses mail that is nested deeper than the specified limit.
7267 This feature is available in Postfix 2.0 and later.
7270 %PARAM mynetworks_style subnet
7273 The method to generate the default value for the mynetworks parameter.
7274 This is the list of trusted networks for relay access control etc.
7279 <li><p>Specify "mynetworks_style = host" when Postfix should
7280 "trust" only the local machine. </p>
7282 <li><p>Specify "mynetworks_style = subnet" when Postfix
7283 should "trust" SMTP clients in the same IP subnetworks as the local
7284 machine. On Linux, this works correctly only with interfaces
7285 specified with the "ifconfig" command. </p>
7287 <li><p>Specify "mynetworks_style = class" when Postfix should
7288 "trust" SMTP clients in the same IP class A/B/C networks as the
7289 local machine. Don't do this with a dialup site - it would cause
7290 Postfix to "trust" your entire provider's network. Instead, specify
7291 an explicit mynetworks list by hand, as described with the mynetworks
7292 configuration parameter. </p>
7296 %PARAM nested_header_checks $header_checks
7299 Optional lookup tables for content inspection of non-MIME message
7300 headers in attached messages, as described in the header_checks(5)
7305 This feature is available in Postfix 2.0 and later.
7308 %PARAM newaliases_path see "postconf -d" output
7311 Sendmail compatibility feature that specifies the location of the
7312 newaliases(1) command. This command can be used to rebuild the
7313 local(8) aliases(5) database.
7316 %PARAM non_fqdn_reject_code 504
7319 The numerical Postfix SMTP server reply code when a client request
7320 is rejected by the reject_non_fqdn_helo_hostname, reject_non_fqdn_sender
7321 or reject_non_fqdn_recipient restriction.
7324 %PARAM owner_request_special yes
7327 Give special treatment to owner-listname and listname-request
7328 address localparts: don't split such addresses when the
7329 recipient_delimiter is set to "-". This feature is useful for
7333 %PARAM permit_mx_backup_networks
7336 Restrict the use of the permit_mx_backup SMTP access feature to
7337 only domains whose primary MX hosts match the listed networks.
7338 The parameter value syntax is the same as with the mynetworks
7339 parameter; note, however, that the default value is empty. </p>
7341 %PARAM pickup_service_name pickup
7344 The name of the pickup(8) service. This service picks up local mail
7345 submissions from the Postfix maildrop queue.
7349 This feature is available in Postfix 2.0 and later.
7352 %PARAM prepend_delivered_header command, file, forward
7354 <p> The message delivery contexts where the Postfix local(8) delivery
7355 agent prepends a Delivered-To: message header with the address
7356 that the mail was delivered to. This information is used for mail
7357 delivery loop detection. </p>
7360 By default, the Postfix local delivery agent prepends a Delivered-To:
7361 header when forwarding mail and when delivering to file (mailbox)
7362 and command. Turning off the Delivered-To: header when forwarding
7363 mail is not recommended.
7367 Specify zero or more of <b>forward</b>, <b>file</b>, or <b>command</b>.
7375 prepend_delivered_header = forward
7378 %PARAM process_name read-only
7381 The process name of a Postfix command or daemon process.
7384 %PARAM process_id read-only
7387 The process ID of a Postfix command or daemon process.
7390 %PARAM process_id_directory pid
7393 The location of Postfix PID files relative to $queue_directory.
7394 This is a read-only parameter.
7397 %PARAM proxy_read_maps see "postconf -d" output
7400 The lookup tables that the proxymap(8) server is allowed to
7401 access for the read-only service.
7402 Table references that don't begin with proxy: are ignored.
7406 This feature is available in Postfix 2.0 and later.
7409 %PARAM proxy_write_maps see "postconf -d" output
7411 <p> The lookup tables that the proxymap(8) server is allowed to
7412 access for the read-write service. Postfix-owned local database
7413 files should be stored under the Postfix-owned data_directory.
7414 Table references that don't begin with proxy: are ignored. </p>
7417 This feature is available in Postfix 2.5 and later.
7420 %PARAM qmgr_clog_warn_time 300s
7423 The minimal delay between warnings that a specific destination is
7424 clogging up the Postfix active queue. Specify 0 to disable.
7428 This feature is enabled with the helpful_warnings parameter.
7432 This feature is available in Postfix 2.0 and later.
7435 %PARAM qmgr_fudge_factor 100
7438 Obsolete feature: the percentage of delivery resources that a busy
7439 mail system will use up for delivery of a large mailing list
7444 This feature exists only in the oqmgr(8) old queue manager. The
7445 current queue manager solves the problem in a better way.
7448 %PARAM queue_directory see "postconf -d" output
7451 The location of the Postfix top-level queue directory. This is the
7452 root directory of Postfix daemon processes that run chrooted.
7455 %PARAM queue_file_attribute_count_limit 100
7458 The maximal number of (name=value) attributes that may be stored
7459 in a Postfix queue file. The limit is enforced by the cleanup(8)
7464 This feature is available in Postfix 2.0 and later.
7467 %PARAM queue_service_name qmgr
7470 The name of the qmgr(8) service. This service manages the Postfix
7471 queue and schedules delivery requests.
7475 This feature is available in Postfix 2.0 and later.
7478 %PARAM html_directory see "postconf -d" output
7481 The location of Postfix HTML files that describe how to build,
7482 configure or operate a specific Postfix subsystem or feature.
7485 %PARAM readme_directory see "postconf -d" output
7488 The location of Postfix README files that describe how to build,
7489 configure or operate a specific Postfix subsystem or feature.
7492 %PARAM relay_transport relay
7495 The default mail delivery transport and next-hop destination for
7496 remote delivery to domains listed with $relay_domains. In order of
7497 decreasing precedence, the nexthop destination is taken from
7498 $relay_transport, $sender_dependent_relayhost_maps, $relayhost, or
7499 from the recipient domain. This information can be overruled with
7500 the transport(5) table.
7504 Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
7505 is the name of a mail delivery transport defined in master.cf.
7506 The <i>:nexthop</i> part is optional. For more details see the
7507 transport(5) manual page.
7511 See also the relay domains address class in the ADDRESS_CLASS_README
7516 This feature is available in Postfix 2.0 and later.
7519 %PARAM rewrite_service_name rewrite
7522 The name of the address rewriting service. This service rewrites
7523 addresses to standard form and resolves them to a (delivery method,
7524 next-hop host, recipient) triple.
7528 This feature is available in Postfix 2.0 and later.
7531 %PARAM sample_directory /etc/postfix
7534 The name of the directory with example Postfix configuration files.
7537 %PARAM sender_based_routing no
7540 This parameter should not be used. It was replaced by sender_dependent_relayhost_maps
7541 in Postfix version 2.3.
7544 %PARAM sendmail_path see "postconf -d" output
7547 A Sendmail compatibility feature that specifies the location of
7548 the Postfix sendmail(1) command. This command can be used to
7549 submit mail into the Postfix queue.
7552 %PARAM service_throttle_time 60s
7555 How long the Postfix master(8) waits before forking a server that
7556 appears to be malfunctioning.
7560 Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
7561 The default time unit is s (seconds).
7564 %PARAM setgid_group postdrop
7567 The group ownership of set-gid Postfix commands and of group-writable
7568 Postfix directories. When this parameter value is changed you need
7569 to re-run "<b>postfix set-permissions</b>" (with Postfix version 2.0 and
7570 earlier: "<b>/etc/postfix/post-install set-permissions</b>".
7573 %PARAM show_user_unknown_table_name yes
7576 Display the name of the recipient table in the "User unknown"
7577 responses. The extra detail makes trouble shooting easier but also
7578 reveals information that is nobody elses business.
7582 This feature is available in Postfix 2.0 and later.
7585 %PARAM showq_service_name showq
7588 The name of the showq(8) service. This service produces mail queue
7593 This feature is available in Postfix 2.0 and later.
7596 %PARAM smtp_pix_workaround_delay_time 10s
7599 How long the Postfix SMTP client pauses before sending
7600 ".<CR><LF>" in order to work around the PIX firewall
7601 "<CR><LF>.<CR><LF>" bug.
7605 Choosing a too short time makes this workaround ineffective when
7606 sending large messages over slow network connections.
7609 %PARAM smtp_randomize_addresses yes
7612 Randomize the order of equal-preference MX host addresses. This
7613 is a performance feature of the Postfix SMTP client.
7616 %PARAM smtp_rset_timeout 20s
7618 <p> The SMTP client time limit for sending the RSET command, and
7619 for receiving the server response. The SMTP client sends RSET in
7620 order to finish a recipient address probe, or to verify that a
7621 cached session is still usable. </p>
7623 <p> This feature is available in Postfix 2.1 and later. </p>
7625 %PARAM smtpd_data_restrictions
7628 Optional access restrictions that the Postfix SMTP server applies
7629 in the context of the SMTP DATA command.
7630 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
7631 restriction lists" for a discussion of evaluation context and time.
7635 This feature is available in Postfix 2.0 and later.
7639 Specify a list of restrictions, separated by commas and/or whitespace.
7640 Continue long lines by starting the next line with whitespace.
7641 Restrictions are applied in the order as specified; the first
7642 restriction that matches wins.
7646 The following restrictions are valid in this context:
7651 <li><a href="#generic">Generic</a> restrictions that can be used
7652 in any SMTP command context, described under smtpd_client_restrictions.
7654 <li>SMTP command specific restrictions described under
7655 smtpd_client_restrictions, smtpd_helo_restrictions,
7656 smtpd_sender_restrictions or smtpd_recipient_restrictions.
7665 smtpd_data_restrictions = reject_unauth_pipelining
7666 smtpd_data_restrictions = reject_multi_recipient_bounce
7669 %PARAM smtpd_end_of_data_restrictions
7671 <p> Optional access restrictions that the Postfix SMTP server
7672 applies in the context of the SMTP END-OF-DATA command.
7673 See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access
7674 restriction lists" for a discussion of evaluation context and time.
7677 <p> This feature is available in Postfix 2.2 and later. </p>
7679 <p> See smtpd_data_restrictions for syntax details. </p>
7681 %PARAM smtpd_delay_reject yes
7684 Wait until the RCPT TO command before evaluating
7685 $smtpd_client_restrictions, $smtpd_helo_restrictions and
7686 $smtpd_sender_restrictions, or wait until the ETRN command before
7687 evaluating $smtpd_client_restrictions and $smtpd_helo_restrictions.
7691 This feature is turned on by default because some clients apparently
7692 mis-behave when the Postfix SMTP server rejects commands before
7697 The default setting has one major benefit: it allows Postfix to log
7698 recipient address information when rejecting a client name/address
7699 or sender address, so that it is possible to find out whose mail
7703 %PARAM smtpd_null_access_lookup_key <>
7706 The lookup key to be used in SMTP access(5) tables instead of the
7707 null sender address.
7710 %CLASS smtpd-policy SMTP server policy delegation
7713 The Postfix SMTP server has a number of built-in mechanisms to
7714 block or accept mail at specific SMTP protocol stages. As of version
7715 2.1 Postfix can be configured to delegate policy decisions to an
7716 external server that runs outside Postfix. See the file
7717 SMTPD_POLICY_README for more information.
7720 %PARAM smtpd_policy_service_max_idle 300s
7723 The time after which an idle SMTPD policy service connection is
7728 This feature is available in Postfix 2.1 and later.
7731 %PARAM smtpd_policy_service_max_ttl 1000s
7734 The time after which an active SMTPD policy service connection is
7739 This feature is available in Postfix 2.1 and later.
7742 %PARAM smtpd_policy_service_timeout 100s
7745 The time limit for connecting to, writing to or receiving from a
7746 delegated SMTPD policy server.
7750 This feature is available in Postfix 2.1 and later.
7753 %PARAM smtpd_reject_unlisted_recipient yes
7756 Request that the Postfix SMTP server rejects mail for unknown
7757 recipient addresses, even when no explicit reject_unlisted_recipient
7758 access restriction is specified. This prevents the Postfix queue
7759 from filling up with undeliverable MAILER-DAEMON messages.
7764 <li> The recipient domain matches $mydestination, $inet_interfaces
7765 or $proxy_interfaces, but the recipient is not listed in
7766 $local_recipient_maps, and $local_recipient_maps is not null.
7768 <li> The recipient domain matches $virtual_alias_domains but the
7769 recipient is not listed in $virtual_alias_maps.
7771 <li> The recipient domain matches $virtual_mailbox_domains but the
7772 recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps
7775 <li> The recipient domain matches $relay_domains but the recipient
7776 is not listed in $relay_recipient_maps, and $relay_recipient_maps
7782 This feature is available in Postfix 2.1 and later.
7785 %PARAM smtpd_reject_unlisted_sender no
7787 <p> Request that the Postfix SMTP server rejects mail from unknown
7788 sender addresses, even when no explicit reject_unlisted_sender
7789 access restriction is specified. This can slow down an explosion
7790 of forged mail from worms or viruses. </p>
7794 <li> The sender domain matches $mydestination, $inet_interfaces or
7795 $proxy_interfaces, but the sender is not listed in
7796 $local_recipient_maps, and $local_recipient_maps is not null.
7798 <li> The sender domain matches $virtual_alias_domains but the sender
7799 is not listed in $virtual_alias_maps.
7801 <li> The sender domain matches $virtual_mailbox_domains but the
7802 sender is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps
7805 <li> The sender domain matches $relay_domains but the sender is
7806 not listed in $relay_recipient_maps, and $relay_recipient_maps is
7812 This feature is available in Postfix 2.1 and later.
7815 %PARAM smtpd_restriction_classes
7818 User-defined aliases for groups of access restrictions. The aliases
7819 can be specified in smtpd_recipient_restrictions etc., and on the
7820 right-hand side of a Postfix access(5) table.
7824 One major application is for implementing per-recipient UCE control.
7825 See the RESTRICTION_CLASS_README document for other examples.
7828 %PARAM smtpd_sasl_application_name smtpd
7831 The application name that the Postfix SMTP server uses for SASL
7832 server initialization. This
7833 controls the name of the SASL configuration file. The default value
7834 is <b>smtpd</b>, corresponding to a SASL configuration file named
7839 This feature is available in Postfix 2.1 and 2.2. With Postfix 2.3
7840 it was renamed to smtpd_sasl_path.
7843 %PARAM strict_7bit_headers no
7846 Reject mail with 8-bit text in message headers. This blocks mail
7847 from poorly written applications.
7851 This feature should not be enabled on a general purpose mail server,
7852 because it is likely to reject legitimate email.
7856 This feature is available in Postfix 2.0 and later.
7859 %PARAM strict_8bitmime no
7862 Enable both strict_7bit_headers and strict_8bitmime_body.
7866 This feature should not be enabled on a general purpose mail server,
7867 because it is likely to reject legitimate email.
7871 This feature is available in Postfix 2.0 and later.
7874 %PARAM strict_8bitmime_body no
7877 Reject 8-bit message body text without 8-bit MIME content encoding
7878 information. This blocks mail from poorly written applications.
7882 Unfortunately, this also rejects majordomo approval requests when
7883 the included request contains valid 8-bit MIME mail, and it rejects
7884 bounces from mailers that do not MIME encapsulate 8-bit content
7885 (for example, bounces from qmail or from old versions of Postfix).
7889 This feature should not be enabled on a general purpose mail server,
7890 because it is likely to reject legitimate email.
7894 This feature is available in Postfix 2.0 and later.
7897 %PARAM strict_mime_encoding_domain no
7900 Reject mail with invalid Content-Transfer-Encoding: information
7901 for the message/* or multipart/* MIME content types. This blocks
7902 mail from poorly written software.
7906 This feature should not be enabled on a general purpose mail server,
7907 because it will reject mail after a single violation.
7911 This feature is available in Postfix 2.0 and later.
7914 %PARAM sun_mailtool_compatibility no
7917 Obsolete SUN mailtool compatibility feature. Instead, use
7918 "mailbox_delivery_lock = dotlock".
7921 %PARAM trace_service_name trace
7924 The name of the trace service. This service is implemented by the
7925 bounce(8) daemon and maintains a record
7926 of mail deliveries and produces a mail delivery report when verbose
7927 delivery is requested with "<b>sendmail -v</b>".
7931 This feature is available in Postfix 2.1 and later.
7934 %PARAM undisclosed_recipients_header To: undisclosed-recipients:;
7937 Message header that the Postfix cleanup(8) server inserts when a
7938 message contains no To: or Cc: message header. With Postfix 2.4
7939 and later, specify an empty value to disable this feature. </p>
7941 %PARAM unknown_relay_recipient_reject_code 550
7944 The numerical Postfix SMTP server reply code when a recipient
7945 address matches $relay_domains, and relay_recipient_maps specifies
7946 a list of lookup tables that does not match the recipient address.
7950 This feature is available in Postfix 2.0 and later.
7953 %PARAM unknown_virtual_alias_reject_code 550
7956 The SMTP server reply code when a recipient address matches
7957 $virtual_alias_domains, and $virtual_alias_maps specifies a list
7958 of lookup tables that does not match the recipient address.
7962 This feature is available in Postfix 2.0 and later.
7965 %PARAM unknown_virtual_mailbox_reject_code 550
7968 The SMTP server reply code when a recipient address matches
7969 $virtual_mailbox_domains, and $virtual_mailbox_maps specifies a list
7970 of lookup tables that does not match the recipient address.
7974 This feature is available in Postfix 2.0 and later.
7977 %PARAM verp_delimiter_filter -=+
7980 The characters Postfix accepts as VERP delimiter characters on the
7981 Postfix sendmail(1) command line and in SMTP commands.
7985 This feature is available in Postfix 1.1 and later.
7988 %PARAM virtual_gid_maps
7991 Lookup tables with the per-recipient group ID for virtual(8) mailbox
7996 In a lookup table, specify a left-hand side of "@domain.tld" to
7997 match any user in the specified domain that does not have a specific
7998 "user@domain.tld" entry.
8002 When a recipient address has an optional address extension
8003 (user+foo@domain.tld), the virtual(8) delivery agent looks up
8004 the full address first, and when the lookup fails, it looks up the
8005 unextended address (user@domain.tld).
8009 Note 1: for security reasons, the virtual(8) delivery agent disallows
8010 regular expression substitution of $1 etc. in regular expression
8011 lookup tables, because that would open a security hole.
8015 Note 2: for security reasons, the virtual(8) delivery agent will
8016 silently ignore requests to use the proxymap(8) server. Instead
8017 it will open the table directly. Before Postfix version 2.2, the
8018 virtual(8) delivery agent will terminate with a fatal error.
8021 %PARAM virtual_mailbox_base
8024 A prefix that the virtual(8) delivery agent prepends to all pathname
8025 results from $virtual_mailbox_maps table lookups. This is a safety
8026 measure to ensure that an out of control map doesn't litter the
8027 file system with mailboxes. While virtual_mailbox_base could be
8028 set to "/", this setting isn't recommended.
8036 virtual_mailbox_base = /var/mail
8039 %PARAM virtual_mailbox_domains $virtual_mailbox_maps
8041 <p> Postfix is final destination for the specified list of domains;
8042 mail is delivered via the $virtual_transport mail delivery transport.
8043 By default this is the Postfix virtual(8) delivery agent. The SMTP
8044 server validates recipient addresses with $virtual_mailbox_maps
8045 and rejects mail for non-existent recipients. See also the virtual
8046 mailbox domain class in the ADDRESS_CLASS_README file. </p>
8048 <p> This parameter expects the same syntax as the mydestination
8049 configuration parameter. </p>
8052 This feature is available in Postfix 2.0 and later. The default
8053 value is backwards compatible with Postfix version 1.1.
8056 %PARAM virtual_mailbox_limit 51200000
8059 The maximal size in bytes of an individual mailbox or maildir file,
8063 %PARAM virtual_mailbox_lock see "postconf -d" output
8066 How to lock a UNIX-style virtual(8) mailbox before attempting
8067 delivery. For a list of available file locking methods, use the
8068 "<b>postconf -l</b>" command.
8072 This setting is ignored with <b>maildir</b> style delivery, because
8073 such deliveries are safe without application-level locks.
8077 Note 1: the <b>dotlock</b> method requires that the recipient UID
8078 or GID has write access to the parent directory of the recipient's
8083 Note 2: the default setting of this parameter is system dependent.
8086 %PARAM virtual_mailbox_maps
8089 Optional lookup tables with all valid addresses in the domains that
8090 match $virtual_mailbox_domains.
8094 In a lookup table, specify a left-hand side of "@domain.tld" to
8095 match any user in the specified domain that does not have a specific
8096 "user@domain.tld" entry.
8100 The virtual(8) delivery agent uses this table to look up the
8101 per-recipient mailbox or maildir pathname. If the lookup result
8102 ends in a slash ("/"), maildir-style delivery is carried out,
8103 otherwise the path is assumed to specify a UNIX-style mailbox file.
8104 Note that $virtual_mailbox_base is unconditionally prepended to
8109 When a recipient address has an optional address extension
8110 (user+foo@domain.tld), the virtual(8) delivery agent looks up
8111 the full address first, and when the lookup fails, it looks up the
8112 unextended address (user@domain.tld).
8116 Note 1: for security reasons, the virtual(8) delivery agent disallows
8117 regular expression substitution of $1 etc. in regular expression
8118 lookup tables, because that would open a security hole.
8122 Note 2: for security reasons, the virtual(8) delivery agent will
8123 silently ignore requests to use the proxymap(8) server. Instead
8124 it will open the table directly. Before Postfix version 2.2, the
8125 virtual(8) delivery agent will terminate with a fatal error.
8128 %PARAM virtual_minimum_uid 100
8131 The minimum user ID value that the virtual(8) delivery agent accepts
8132 as a result from $virtual_uid_maps table lookup. Returned
8133 values less than this will be rejected, and the message will be
8137 %PARAM virtual_transport virtual
8140 The default mail delivery transport and next-hop destination for
8141 final delivery to domains listed with $virtual_mailbox_domains.
8142 This information can be overruled with the transport(5) table.
8146 Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
8147 is the name of a mail delivery transport defined in master.cf.
8148 The <i>:nexthop</i> part is optional. For more details see the
8149 transport(5) manual page.
8153 This feature is available in Postfix 2.0 and later.
8156 %PARAM virtual_uid_maps
8159 Lookup tables with the per-recipient user ID that the virtual(8)
8160 delivery agent uses while writing to the recipient's mailbox.
8164 In a lookup table, specify a left-hand side of "@domain.tld"
8165 to match any user in the specified domain that does not have a
8166 specific "user@domain.tld" entry.
8170 When a recipient address has an optional address extension
8171 (user+foo@domain.tld), the virtual(8) delivery agent looks up
8172 the full address first, and when the lookup fails, it looks up the
8173 unextended address (user@domain.tld).
8177 Note 1: for security reasons, the virtual(8) delivery agent disallows
8178 regular expression substitution of $1 etc. in regular expression
8179 lookup tables, because that would open a security hole.
8183 Note 2: for security reasons, the virtual(8) delivery agent will
8184 silently ignore requests to use the proxymap(8) server. Instead
8185 it will open the table directly. Before Postfix version 2.2, the
8186 virtual(8) delivery agent will terminate with a fatal error.
8189 %PARAM config_directory see "postconf -d" output
8191 <p> The default location of the Postfix main.cf and master.cf
8192 configuration files. This can be overruled via the following
8197 <li> <p> The MAIL_CONFIG environment variable (daemon processes
8200 <li> <p> The "-c" command-line option (commands only). </p>
8204 <p> With Postfix command that run with set-gid privileges, a
8205 config_directory override requires either root privileges, or it
8206 requires that the directory is listed with the alternate_config_directories
8207 parameter in the default main.cf file. </p>
8211 <p> Optional lookup tables with a) names of domains for which all
8212 addresses are aliased to addresses in other local or remote domains,
8213 and b) addresses that are aliased to addresses in other local or
8214 remote domains. Available before Postfix version 2.0. With Postfix
8215 version 2.0 and later, this is replaced by separate controls: virtual_alias_domains
8216 and virtual_alias_maps. </p>
8218 %PARAM smtp_discard_ehlo_keywords
8220 <p> A case insensitive list of EHLO keywords (pipelining, starttls,
8221 auth, etc.) that the Postfix SMTP client will ignore in the EHLO
8222 response from a remote SMTP server. </p>
8224 <p> This feature is available in Postfix 2.2 and later. </p>
8230 <li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
8231 this action from being logged. </p>
8233 <li> <p> Use the smtp_discard_ehlo_keyword_address_maps feature to
8234 discard EHLO keywords selectively. </p>
8238 %PARAM smtpd_discard_ehlo_keywords
8240 <p> A case insensitive list of EHLO keywords (pipelining, starttls,
8241 auth, etc.) that the SMTP server will not send in the EHLO response
8242 to a remote SMTP client. </p>
8244 <p> This feature is available in Postfix 2.2 and later. </p>
8250 <li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
8251 this action from being logged. </p>
8253 <li> <p> Use the smtpd_discard_ehlo_keyword_address_maps feature
8254 to discard EHLO keywords selectively. </p>
8258 %PARAM smtp_discard_ehlo_keyword_address_maps
8260 <p> Lookup tables, indexed by the remote SMTP server address, with
8261 case insensitive lists of EHLO keywords (pipelining, starttls, auth,
8262 etc.) that the Postfix SMTP client will ignore in the EHLO response from a
8263 remote SMTP server. See smtp_discard_ehlo_keywords for details. The
8264 table is not indexed by hostname for consistency with
8265 smtpd_discard_ehlo_keyword_address_maps. </p>
8267 <p> This feature is available in Postfix 2.2 and later. </p>
8269 %PARAM smtpd_discard_ehlo_keyword_address_maps
8271 <p> Lookup tables, indexed by the remote SMTP client address, with
8272 case insensitive lists of EHLO keywords (pipelining, starttls, auth,
8273 etc.) that the SMTP server will not send in the EHLO response to a
8274 remote SMTP client. See smtpd_discard_ehlo_keywords for details.
8275 The table is not searched by hostname for robustness reasons. </p>
8277 <p> This feature is available in Postfix 2.2 and later. </p>
8279 %PARAM connection_cache_service_name scache
8281 <p> The name of the scache(8) connection cache service. This service
8282 maintains a limited pool of cached sessions. </p>
8284 <p> This feature is available in Postfix 2.2 and later. </p>
8286 %PARAM connection_cache_ttl_limit 2s
8288 <p> The maximal time-to-live value that the scache(8) connection
8290 allows. Requests that specify a larger TTL will be stored with the
8291 maximum allowed TTL. The purpose of this additional control is to
8292 protect the infrastructure against careless people. The cache TTL
8293 is already bounded by $max_idle. </p>
8295 %PARAM connection_cache_status_update_time 600s
8297 <p> How frequently the scache(8) server logs usage statistics with
8298 connection cache hit and miss rates for logical destinations and for
8299 physical endpoints. </p>
8301 %PARAM remote_header_rewrite_domain
8303 <p> Don't rewrite message headers from remote clients at all when
8304 this parameter is empty; otherwise, rewrite message headers and
8305 append the specified domain name to incomplete addresses. The
8306 local_header_rewrite_clients parameter controls what clients Postfix
8307 considers local. </p>
8311 <p> The safe setting: append "domain.invalid" to incomplete header
8312 addresses from remote SMTP clients, so that those addresses cannot
8313 be confused with local addresses. </p>
8317 remote_header_rewrite_domain = domain.invalid
8321 <p> The default, purist, setting: don't rewrite headers from remote
8322 clients at all. </p>
8326 remote_header_rewrite_domain =
8330 %PARAM local_header_rewrite_clients permit_inet_interfaces
8332 <p> Rewrite message header addresses in mail from these clients and
8333 update incomplete addresses with the domain name in $myorigin or
8334 $mydomain; either don't rewrite message headers from other clients
8335 at all, or rewrite message headers and update incomplete addresses
8336 with the domain specified in the remote_header_rewrite_domain
8339 <p> See the append_at_myorigin and append_dot_mydomain parameters
8340 for details of how domain names are appended to incomplete addresses.
8343 <p> Specify a list of zero or more of the following: </p>
8347 <dt><b>permit_inet_interfaces</b></dt>
8349 <dd> Append the domain name in $myorigin or $mydomain when the
8350 client IP address matches $inet_interfaces. This is enabled by
8353 <dt><b>permit_mynetworks</b></dt>
8355 <dd> Append the domain name in $myorigin or $mydomain when the
8356 client IP address matches any network or network address listed in
8357 $mynetworks. This setting will not prevent remote mail header
8358 address rewriting when mail from a remote client is forwarded by
8359 a neighboring system. </dd>
8361 <dt><b>permit_sasl_authenticated </b></dt>
8363 <dd> Append the domain name in $myorigin or $mydomain when the
8364 client is successfully authenticated via the RFC 4954 (AUTH)
8367 <dt><b>permit_tls_clientcerts </b></dt>
8369 <dd> Append the domain name in $myorigin or $mydomain when the
8370 client TLS certificate fingerprint is listed in $relay_clientcerts.
8371 The fingerprint digest algorithm is configurable via the
8372 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
8373 Postfix version 2.5). </dd>
8375 <dt><b>permit_tls_all_clientcerts </b></dt>
8377 <dd> Append the domain name in $myorigin or $mydomain when the
8378 client TLS certificate is successfully verified, regardless of
8379 whether it is listed on the server, and regardless of the certifying
8382 <dt><b><a name="check_address_map">check_address_map</a> <i><a href="DATABASE_README.html">type:table</a></i> </b></dt>
8384 <dt><b><i><a href="DATABASE_README.html">type:table</a></i> </b></dt>
8386 <dd> Append the domain name in $myorigin or $mydomain when the
8387 client IP address matches the specified lookup table.
8388 The lookup result is ignored, and no subnet lookup is done. This
8389 is suitable for, e.g., pop-before-smtp lookup tables. </dd>
8395 <p> The Postfix < 2.2 backwards compatible setting: always rewrite
8396 message headers, and always append my own domain to incomplete
8397 header addresses. </p>
8401 local_header_rewrite_clients = static:all
8405 <p> The purist (and default) setting: rewrite headers only in mail
8406 from Postfix sendmail and in SMTP mail from this machine. </p>
8410 local_header_rewrite_clients = permit_inet_interfaces
8414 <p> The intermediate setting: rewrite header addresses and append
8415 $myorigin or $mydomain information only with mail from Postfix
8416 sendmail, from local clients, or from authorized SMTP clients. </p>
8418 <p> Note: this setting will not prevent remote mail header address
8419 rewriting when mail from a remote client is forwarded by a neighboring
8424 local_header_rewrite_clients = permit_mynetworks,
8425 permit_sasl_authenticated permit_tls_clientcerts
8426 check_address_map hash:/etc/postfix/pop-before-smtp
8430 %PARAM smtpd_tls_cert_file
8432 <p> File with the Postfix SMTP server RSA certificate in PEM format.
8433 This file may also contain the Postfix SMTP server private RSA key. </p>
8435 <p> Public Internet MX hosts without certificates signed by a "reputable"
8436 CA must generate, and be prepared to present to most clients, a
8437 self-signed or private-CA signed certificate. The client will not be
8438 able to authenticate the server, but unless it is running Postfix 2.3 or
8439 similar software, it will still insist on a server certificate. </p>
8441 <p> For servers that are <b>not</b> public Internet MX hosts, Postfix
8442 2.3 supports configurations with no certificates. This entails the
8443 use of just the anonymous TLS ciphers, which are not supported by
8444 typical SMTP clients. Since such clients will not, as a rule, fall
8445 back to plain text after a TLS handshake failure, the server will
8446 be unable to receive email from TLS enabled clients. To avoid
8447 accidental configurations with no certificates, Postfix 2.3 enables
8448 certificate-less operation only when the administrator explicitly
8449 sets "smtpd_tls_cert_file = none". This ensures that new Postfix
8450 configurations will not accidentally run with no certificates. </p>
8452 <p> Both RSA and DSA certificates are supported. When both types
8453 are present, the cipher used determines which certificate will be
8454 presented to the client. For Netscape and OpenSSL clients without
8455 special cipher choices the RSA certificate is preferred. </p>
8457 <p> To enable a remote SMTP client to verify the Postfix SMTP server
8458 certificate, the issuing CA certificates must be made available to the
8459 client. You should include the required certificates in the server
8460 certificate file, the server certificate first, then the issuing
8461 CA(s) (bottom-up order). </p>
8463 <p> Example: the certificate for "server.example.com" was issued by
8464 "intermediate CA" which itself has a certificate of "root CA".
8465 Create the server.pem file with "cat server_cert.pem intermediate_CA.pem
8466 root_CA.pem > server.pem". </p>
8468 <p> If you also want to verify client certificates issued by these
8469 CAs, you can add the CA certificates to the smtpd_tls_CAfile, in which
8470 case it is not necessary to have them in the smtpd_tls_cert_file or
8471 smtpd_tls_dcert_file. </p>
8473 <p> A certificate supplied here must be usable as an SSL server certificate
8474 and hence pass the "openssl verify -purpose sslserver ..." test. </p>
8479 smtpd_tls_cert_file = /etc/postfix/server.pem
8482 <p> This feature is available in Postfix 2.2 and later. </p>
8484 %PARAM smtpd_tls_key_file $smtpd_tls_cert_file
8486 <p> File with the Postfix SMTP server RSA private key in PEM format.
8487 This file may be combined with the Postfix SMTP server RSA certificate
8488 file specified with $smtpd_tls_cert_file. </p>
8490 <p> The private key must be accessible without a pass-phrase, i.e. it
8491 must not be encrypted. File permissions should grant read-only
8492 access to the system superuser account ("root"), and no access
8493 to anyone else. </p>
8495 %PARAM smtpd_tls_dcert_file
8497 <p> File with the Postfix SMTP server DSA certificate in PEM format.
8498 This file may also contain the Postfix SMTP server private DSA key. </p>
8500 <p> See the discussion under smtpd_tls_cert_file for more details.
8506 smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
8509 <p> This feature is available in Postfix 2.2 and later. </p>
8511 %PARAM smtpd_tls_dkey_file $smtpd_tls_dcert_file
8513 <p> File with the Postfix SMTP server DSA private key in PEM format.
8514 This file may be combined with the Postfix SMTP server DSA certificate
8515 file specified with $smtpd_tls_dcert_file. </p>
8517 <p> The private key must be accessible without a pass-phrase, i.e. it
8518 must not be encrypted. File permissions should grant read-only
8519 access to the system superuser account ("root"), and no access
8520 to anyone else. </p>
8522 <p> This feature is available in Postfix 2.2 and later. </p>
8524 %PARAM smtpd_tls_CAfile
8526 <p> A file containing (PEM format) CA certificates of root CAs trusted
8527 to sign either remote SMTP client certificates or intermediate CA
8528 certificates. These are loaded into memory before the smtpd(8) server
8529 enters the chroot jail. If the number of trusted roots is large, consider
8530 using smtpd_tls_CApath instead, but note that the latter directory must
8531 be present in the chroot jail if the smtpd(8) server is chrooted. This
8532 file may also be used to augment the server certificate trust chain,
8533 but it is best to include all the required certificates directly in the
8534 server certificate file. </p>
8536 <p> By default (see smtpd_tls_ask_ccert), client certificates are not
8537 requested, and smtpd_tls_CAfile should remain empty. If you do make use
8538 of client certificates, the distinguished names (DNs) of the certificate
8539 authorities listed in smtpd_tls_CAfile are sent to the remote SMTP client
8540 in the client certificate request message. MUAs with multiple client
8541 certificates may use the list of preferred certificate authorities
8542 to select the correct client certificate. You may want to put your
8543 "preferred" CA or CAs in this file, and install other trusted CAs in
8544 $smtpd_tls_CApath. </p>
8549 smtpd_tls_CAfile = /etc/postfix/CAcert.pem
8552 <p> This feature is available in Postfix 2.2 and later. </p>
8554 %PARAM smtpd_tls_CApath
8556 <p> A directory containing (PEM format) CA certificates of root CAs
8557 trusted to sign either remote SMTP client certificates or intermediate CA
8558 certificates. Do not forget to create the necessary "hash" links with,
8559 for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". To use
8560 smtpd_tls_CApath in chroot mode, this directory (or a copy) must be
8561 inside the chroot jail. </p>
8563 <p> By default (see smtpd_tls_ask_ccert), client certificates are
8564 not requested, and smtpd_tls_CApath should remain empty. In contrast
8565 to smtp_tls_CAfile, DNs of certificate authorities installed
8566 in $smtpd_tls_CApath are not included in the client certificate
8567 request message. MUAs with multiple client certificates may use the
8568 list of preferred certificate authorities to select the correct
8569 client certificate. You may want to put your "preferred" CA or
8570 CAs in $smtp_tls_CAfile, and install the remaining trusted CAs in
8571 $smtpd_tls_CApath. </p>
8576 smtpd_tls_CApath = /etc/postfix/certs
8579 <p> This feature is available in Postfix 2.2 and later. </p>
8581 %PARAM smtpd_tls_loglevel 0
8583 <p> Enable additional Postfix SMTP server logging of TLS activity.
8584 Each logging level also includes the information that is logged at
8585 a lower logging level. </p>
8589 <dt> </dt> <dd> 0 Disable logging of TLS activity. </dd>
8591 <dt> </dt> <dd> 1 Log TLS handshake and certificate information. </dd>
8593 <dt> </dt> <dd> 2 Log levels during TLS negotiation. </dd>
8595 <dt> </dt> <dd> 3 Log hexadecimal and ASCII dump of TLS negotiation
8598 <dt> </dt> <dd> 4 Also log hexadecimal and ASCII dump of complete
8599 transmission after STARTTLS. </dd>
8603 <p> Use "smtpd_tls_loglevel = 3" only in case of problems. Use of
8604 loglevel 4 is strongly discouraged. </p>
8606 <p> This feature is available in Postfix 2.2 and later. </p>
8608 %PARAM smtpd_tls_received_header no
8610 <p> Request that the Postfix SMTP server produces Received: message
8611 headers that include information about the protocol and cipher used,
8612 as well as the client CommonName and client certificate issuer
8613 CommonName. This is disabled by default, as the information may
8614 be modified in transit through other mail servers. Only information
8615 that was recorded by the final destination can be trusted. </p>
8617 <p> This feature is available in Postfix 2.2 and later. </p>
8619 %PARAM smtpd_use_tls no
8621 <p> Opportunistic TLS: announce STARTTLS support to SMTP clients,
8622 but do not require that clients use TLS encryption. </p>
8624 <p> Note: when invoked via "<b>sendmail -bs</b>", Postfix will never offer
8625 STARTTLS due to insufficient privileges to access the server private
8626 key. This is intended behavior. </p>
8628 <p> This feature is available in Postfix 2.2 and later. With
8629 Postfix 2.3 and later use smtpd_tls_security_level instead. </p>
8631 %PARAM smtpd_enforce_tls no
8633 <p> Mandatory TLS: announce STARTTLS support to SMTP clients,
8634 and require that clients use TLS encryption. According to RFC 2487
8635 this MUST NOT be applied in case of a publicly-referenced SMTP
8636 server. This option is off by default and should be used only on
8637 dedicated servers. </p>
8639 <p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p>
8641 <p> Note 2: when invoked via "<b>sendmail -bs</b>", Postfix will never offer
8642 STARTTLS due to insufficient privileges to access the server private
8643 key. This is intended behavior. </p>
8645 <p> This feature is available in Postfix 2.2 and later. With
8646 Postfix 2.3 and later use smtpd_tls_security_level instead. </p>
8648 %PARAM smtpd_tls_wrappermode no
8650 <p> Run the Postfix SMTP server in the non-standard "wrapper" mode,
8651 instead of using the STARTTLS command. </p>
8653 <p> If you want to support this service, enable a special port in
8654 master.cf, and specify "-o smtpd_tls_wrappermode=yes" on the SMTP
8655 server's command line. Port 465 (smtps) was once chosen for this
8658 <p> This feature is available in Postfix 2.2 and later. </p>
8660 %PARAM smtpd_tls_ask_ccert no
8662 <p> Ask a remote SMTP client for a client certificate. This
8663 information is needed for certificate based mail relaying with,
8664 for example, the permit_tls_clientcerts feature. </p>
8666 <p> Some clients such as Netscape will either complain if no
8667 certificate is available (for the list of CAs in $smtpd_tls_CAfile)
8668 or will offer multiple client certificates to choose from. This
8669 may be annoying, so this option is "off" by default. </p>
8671 <p> This feature is available in Postfix 2.2 and later. </p>
8673 %PARAM smtpd_tls_req_ccert no
8675 <p> With mandatory TLS encryption, require a trusted remote SMTP client
8676 certificate in order to allow TLS connections to proceed. This
8677 option implies "smtpd_tls_ask_ccert = yes". </p>
8679 <p> When TLS encryption is optional, this setting is ignored with
8680 a warning written to the mail log. </p>
8682 <p> This feature is available in Postfix 2.2 and later. </p>
8684 %PARAM smtpd_tls_ccert_verifydepth 9
8686 <p> The verification depth for remote SMTP client certificates. A
8687 depth of 1 is sufficient if the issuing CA is listed in a local CA
8690 <p> The default verification depth is 9 (the OpenSSL default) for
8691 compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
8692 the default value was 5, but the limit was not actually enforced. If
8693 you have set this to a lower non-default value, certificates with longer
8694 trust chains may now fail to verify. Certificate chains with 1 or 2
8695 CAs are common, deeper chains are more rare and any number between 5
8696 and 9 should suffice in practice. You can choose a lower number if,
8697 for example, you trust certificates directly signed by an issuing CA
8698 but not any CAs it delegates to. </p>
8700 <p> This feature is available in Postfix 2.2 and later. </p>
8702 %PARAM smtpd_tls_auth_only no
8704 <p> When TLS encryption is optional in the Postfix SMTP server, do
8705 not announce or accept SASL authentication over unencrypted
8708 <p> This feature is available in Postfix 2.2 and later. </p>
8710 %PARAM smtpd_tls_session_cache_database
8712 <p> Name of the file containing the optional Postfix SMTP server
8713 TLS session cache. Specify a database type that supports enumeration,
8714 such as <b>btree</b> or <b>sdbm</b>; there is no need to support
8715 concurrent access. The file is created if it does not exist. The smtpd(8)
8716 daemon does not use this parameter directly, rather the cache is
8717 implemented indirectly in the tlsmgr(8) daemon. This means that
8718 per-smtpd-instance master.cf overrides of this parameter are not
8719 effective. Note, that each of the cache databases supported by tlsmgr(8)
8720 daemon: $smtpd_tls_session_cache_database, $smtp_tls_session_cache_database
8721 (and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to be
8722 stored separately. It is not at this time possible to store multiple
8723 caches in a single database. </p>
8725 <p> Note: <b>dbm</b> databases are not suitable. TLS
8726 session objects are too large. </p>
8728 <p> As of version 2.5, Postfix no longer uses root privileges when
8729 opening this file. The file should now be stored under the Postfix-owned
8730 data_directory. As a migration aid, an attempt to open the file
8731 under a non-Postfix directory is redirected to the Postfix-owned
8732 data_directory, and a warning is logged. </p>
8737 smtpd_tls_session_cache_database = btree:/var/db/postfix/smtpd_scache
8740 <p> This feature is available in Postfix 2.2 and later. </p>
8742 %PARAM smtpd_tls_session_cache_timeout 3600s
8744 <p> The expiration time of Postfix SMTP server TLS session cache
8745 information. A cache cleanup is performed periodically
8746 every $smtpd_tls_session_cache_timeout seconds. As with
8747 $smtpd_tls_session_cache_database, this parameter is implemented in the
8748 tlsmgr(8) daemon and therefore per-smtpd-instance master.cf overrides
8749 are not possible. </p>
8751 <p> This feature is available in Postfix 2.2 and later. </p>
8753 %PARAM relay_clientcerts
8755 <p> List of tables with remote SMTP client-certificate fingerprints
8756 for which the Postfix SMTP server will allow access with the
8757 permit_tls_clientcerts feature.
8758 The fingerprint digest algorithm is configurable via the
8759 smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to
8760 Postfix version 2.5). </p>
8762 <p> Postfix lookup tables are in the form of (key, value) pairs.
8763 Since we only need the key, the value can be chosen freely, e.g.
8764 the name of the user or host:
8765 D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home </p>
8770 relay_clientcerts = hash:/etc/postfix/relay_clientcerts
8773 <p>For more fine-grained control, use check_ccert_access to select
8774 an appropriate access(5) policy for each client.
8775 See RESTRICTION_CLASS_README.</p>
8777 <p>This feature is available with Postfix version 2.2.</p>
8779 %PARAM smtpd_tls_cipherlist
8781 <p> Obsolete Postfix < 2.3 control for the Postfix SMTP server TLS
8782 cipher list. It is easy to create inter-operability problems by choosing
8783 a non-default cipher list. Do not use a non-default TLS cipherlist for
8784 MX hosts on the public Internet. Clients that begin the TLS handshake,
8785 but are unable to agree on a common cipher, may not be able to send any
8786 email to the SMTP server. Using a restricted cipher list may be more
8787 appropriate for a dedicated MSA or an internal mailhub, where one can
8788 exert some control over the TLS software and settings of the connecting
8791 <p> <b>Note:</b> do not use "" quotes around the parameter value. </p>
8793 <p>This feature is available with Postfix version 2.2. It is not used with
8794 Postfix 2.3 and later; use smtpd_tls_mandatory_ciphers instead. </p>
8796 %PARAM smtpd_tls_dh1024_param_file
8798 <p> File with DH parameters that the Postfix SMTP server should
8799 use with EDH ciphers. </p>
8801 <p> Instead of using the exact same parameter sets as distributed
8802 with other TLS packages, it is more secure to generate your own
8803 set of parameters with something like the following command: </p>
8807 openssl gendh -out /etc/postfix/dh_1024.pem -2 1024
8811 <p> Your actual source for entropy may differ. Some systems have
8812 /dev/random; on other system you may consider using the "Entropy
8813 Gathering Daemon EGD", available at http://egd.sourceforge.net/
8819 smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem
8822 <p>This feature is available with Postfix version 2.2.</p>
8824 %PARAM smtpd_tls_dh512_param_file
8826 <p> File with DH parameters that the Postfix SMTP server should
8827 use with EDH ciphers. </p>
8829 <p> See also the discussion under the smtpd_tls_dh1024_param_file
8830 configuration parameter. </p>
8835 smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
8838 <p>This feature is available with Postfix version 2.2.</p>
8840 %PARAM smtpd_starttls_timeout 300s
8842 <p> The time limit for Postfix SMTP server write and read operations
8843 during TLS startup and shutdown handshake procedures. </p>
8845 <p> This feature is available in Postfix 2.2 and later. </p>
8847 %PARAM smtp_tls_cert_file
8849 <p> File with the Postfix SMTP client RSA certificate in PEM format.
8850 This file may also contain the Postfix SMTP client private RSA key,
8851 and these may be the same as the Postfix SMTP server RSA certificate and key
8854 <p> Do not configure client certificates unless you <b>must</b> present
8855 client TLS certificates to one or more servers. Client certificates are
8856 not usually needed, and can cause problems in configurations that work
8857 well without them. The recommended setting is to let the defaults stand: </p>
8861 smtp_tls_cert_file =
8863 smtp_tls_dcert_file =
8864 smtp_tls_dkey_file =
8865 smtp_tls_eccert_file =
8866 smtp_tls_eckey_file =
8870 <p> The best way to use the default settings is to comment out the above
8871 parameters in main.cf if present. </p>
8873 <p> To enable remote SMTP servers to verify the Postfix SMTP client
8874 certificate, the issuing CA certificates must be made available to the
8875 server. You should include the required certificates in the client
8876 certificate file, the client certificate first, then the issuing
8877 CA(s) (bottom-up order). </p>
8879 <p> Example: the certificate for "client.example.com" was issued by
8880 "intermediate CA" which itself has a certificate issued by "root CA".
8881 Create the client.pem file with "cat client_cert.pem intermediate_CA.pem
8882 root_CA.pem > client.pem". </p>
8884 <p> If you also want to verify remote SMTP server certificates issued by
8885 these CAs, you can add the CA certificates to the smtp_tls_CAfile, in
8886 which case it is not necessary to have them in the smtp_tls_cert_file,
8887 smtp_tls_dcert_file or smtp_tls_eccert_file. </p>
8889 <p> A certificate supplied here must be usable as an SSL client certificate
8890 and hence pass the "openssl verify -purpose sslclient ..." test. </p>
8895 smtp_tls_cert_file = /etc/postfix/client.pem
8898 <p> This feature is available in Postfix 2.2 and later. </p>
8900 %PARAM smtp_tls_key_file $smtp_tls_cert_file
8902 <p> File with the Postfix SMTP client RSA private key in PEM format.
8903 This file may be combined with the Postfix SMTP client RSA certificate
8904 file specified with $smtp_tls_cert_file. </p>
8906 <p> The private key must be accessible without a pass-phrase, i.e. it
8907 must not be encrypted. File permissions should grant read-only
8908 access to the system superuser account ("root"), and no access
8909 to anyone else. </p>
8914 smtp_tls_key_file = $smtp_tls_cert_file
8917 <p> This feature is available in Postfix 2.2 and later. </p>
8919 %PARAM smtp_tls_CAfile
8921 <p> A file containing CA certificates of root CAs trusted to sign
8922 either remote SMTP server certificates or intermediate CA certificates.
8923 These are loaded into memory before the smtp(8) client enters the
8924 chroot jail. If the number of trusted roots is large, consider using
8925 smtp_tls_CApath instead, but note that the latter directory must be
8926 present in the chroot jail if the smtp(8) client is chrooted. This
8927 file may also be used to augment the client certificate trust chain,
8928 but it is best to include all the required certificates directly in
8929 $smtp_tls_cert_file. </p>
8934 smtp_tls_CAfile = /etc/postfix/CAcert.pem
8937 <p> This feature is available in Postfix 2.2 and later. </p>
8939 %PARAM smtp_tls_CApath
8941 <p> Directory with PEM format certificate authority certificates
8942 that the Postfix SMTP client uses to verify a remote SMTP server
8943 certificate. Don't forget to create the necessary "hash" links
8944 with, for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs".
8947 <p> To use this option in chroot mode, this directory (or a copy)
8948 must be inside the chroot jail. </p>
8953 smtp_tls_CApath = /etc/postfix/certs
8956 <p> This feature is available in Postfix 2.2 and later. </p>
8958 %PARAM smtp_tls_loglevel 0
8960 <p> Enable additional Postfix SMTP client logging of TLS activity.
8961 Each logging level also includes the information that is logged at
8962 a lower logging level. </p>
8966 <dt> </dt> <dd> 0 Disable logging of TLS activity. </dd>
8968 <dt> </dt> <dd> 1 Log TLS handshake and certificate information. </dd>
8970 <dt> </dt> <dd> 2 Log levels during TLS negotiation. </dd>
8972 <dt> </dt> <dd> 3 Log hexadecimal and ASCII dump of TLS negotiation
8975 <dt> </dt> <dd> 4 Log hexadecimal and ASCII dump of complete
8976 transmission after STARTTLS. </dd>
8980 <p> Use "smtp_tls_loglevel = 3" only in case of problems. Use of
8981 loglevel 4 is strongly discouraged. </p>
8983 <p> This feature is available in Postfix 2.2 and later. </p>
8985 %PARAM smtp_tls_session_cache_database
8987 <p> Name of the file containing the optional Postfix SMTP client
8988 TLS session cache. Specify a database type that supports enumeration,
8989 such as <b>btree</b> or <b>sdbm</b>; there is no need to support
8990 concurrent access. The file is created if it does not exist. The smtp(8)
8991 daemon does not use this parameter directly, rather the cache is
8992 implemented indirectly in the tlsmgr(8) daemon. This means that
8993 per-smtp-instance master.cf overrides of this parameter are not effective.
8994 Note, that each of the cache databases supported by tlsmgr(8) daemon:
8995 $smtpd_tls_session_cache_database, $smtp_tls_session_cache_database
8996 (and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to
8997 be stored separately. It is not at this time possible to store multiple
8998 caches in a single database. </p>
9000 <p> Note: <b>dbm</b> databases are not suitable. TLS
9001 session objects are too large. </p>
9003 <p> As of version 2.5, Postfix no longer uses root privileges when
9004 opening this file. The file should now be stored under the Postfix-owned
9005 data_directory. As a migration aid, an attempt to open the file
9006 under a non-Postfix directory is redirected to the Postfix-owned
9007 data_directory, and a warning is logged. </p>
9012 smtp_tls_session_cache_database = btree:/var/db/postfix/smtp_scache
9015 <p> This feature is available in Postfix 2.2 and later. </p>
9017 %PARAM smtp_tls_session_cache_timeout 3600s
9019 <p> The expiration time of Postfix SMTP client TLS session cache
9020 information. A cache cleanup is performed periodically
9021 every $smtp_tls_session_cache_timeout seconds. As with
9022 $smtp_tls_session_cache_database, this parameter is implemented in the
9023 tlsmgr(8) daemon and therefore per-smtp-instance master.cf overrides
9024 are not possible. </p>
9026 <p> This feature is available in Postfix 2.2 and later. </p>
9028 %PARAM smtp_use_tls no
9030 <p> Opportunistic mode: use TLS when a remote SMTP server announces
9031 STARTTLS support, otherwise send the mail in the clear. Beware:
9032 some SMTP servers offer STARTTLS even if it is not configured. With
9033 Postfix < 2.3, if the TLS handshake fails, and no other server is
9034 available, delivery is deferred and mail stays in the queue. If this
9035 is a concern for you, use the smtp_tls_per_site feature instead. </p>
9037 <p> This feature is available in Postfix 2.2 and later. With
9038 Postfix 2.3 and later use smtp_tls_security_level instead. </p>
9040 %PARAM smtp_enforce_tls no
9042 <p> Enforcement mode: require that remote SMTP servers use TLS
9043 encryption, and never send mail in the clear. This also requires
9044 that the remote SMTP server hostname matches the information in
9045 the remote server certificate, and that the remote SMTP server
9046 certificate was issued by a CA that is trusted by the Postfix SMTP
9047 client. If the certificate doesn't verify or the hostname doesn't
9048 match, delivery is deferred and mail stays in the queue. </p>
9050 <p> The server hostname is matched against all names provided as
9051 dNSNames in the SubjectAlternativeName. If no dNSNames are specified,
9052 the CommonName is checked. The behavior may be changed with the
9053 smtp_tls_enforce_peername option. </p>
9055 <p> This option is useful only if you are definitely sure that you
9056 will only connect to servers that support RFC 2487 _and_ that
9057 provide valid server certificates. Typical use is for clients that
9058 send all their email to a dedicated mailhub. </p>
9060 <p> This feature is available in Postfix 2.2 and later. With
9061 Postfix 2.3 and later use smtp_tls_security_level instead. </p>
9063 %PARAM smtp_tls_enforce_peername yes
9065 <p> With mandatory TLS encryption, require that the remote SMTP
9066 server hostname matches the information in the remote SMTP server
9067 certificate. As of RFC 2487 the requirements for hostname checking
9068 for MTA clients are not specified. </p>
9070 <p> This option can be set to "no" to disable strict peer name
9071 checking. This setting has no effect on sessions that are controlled
9072 via the smtp_tls_per_site table. </p>
9074 <p> Disabling the hostname verification can make sense in closed
9075 environment where special CAs are created. If not used carefully,
9076 this option opens the danger of a "man-in-the-middle" attack (the
9077 CommonName of this attacker will be logged). </p>
9079 <p> This feature is available in Postfix 2.2 and later. With
9080 Postfix 2.3 and later use smtp_tls_security_level instead. </p>
9082 %PARAM smtp_tls_per_site
9084 <p> Optional lookup tables with the Postfix SMTP client TLS usage
9085 policy by next-hop destination and by remote SMTP server hostname.
9086 When both lookups succeed, the more specific per-site policy (NONE,
9087 MUST, etc) overrides the less specific one (MAY), and the more secure
9088 per-site policy (MUST, etc) overrides the less secure one (NONE).
9089 With Postfix 2.3 and later smtp_tls_per_site is strongly discouraged:
9090 use smtp_tls_policy_maps instead. </p>
9092 <p> Use of the bare hostname as the per-site table lookup key is
9093 discouraged. Always use the full destination nexthop (enclosed in
9094 [] with a possible ":port" suffix). A recipient domain or MX-enabled
9095 transport next-hop with no port suffix may look like a bare hostname,
9096 but is still a suitable <i>destination</i>. </p>
9098 <p> Specify a next-hop destination or server hostname on the left-hand
9099 side; no wildcards are allowed. The next-hop destination is either
9100 the recipient domain, or the destination specified with a transport(5)
9101 table, the relayhost parameter, or the relay_transport parameter.
9102 On the right hand side specify one of the following keywords: </p>
9106 <dt> NONE </dt> <dd> Don't use TLS at all. This overrides a less
9107 specific <b>MAY</b> lookup result from the alternate host or next-hop
9108 lookup key, and overrides the global smtp_use_tls, smtp_enforce_tls,
9109 and smtp_tls_enforce_peername settings. </dd>
9111 <dt> MAY </dt> <dd> Try to use TLS if the server announces support,
9112 otherwise use the unencrypted connection. This has less precedence
9113 than a more specific result (including <b>NONE</b>) from the alternate
9114 host or next-hop lookup key, and has less precedence than the more
9115 specific global "smtp_enforce_tls = yes" or "smtp_tls_enforce_peername
9118 <dt> MUST_NOPEERMATCH </dt> <dd> Require TLS encryption, but do not
9119 require that the remote SMTP server hostname matches the information
9120 in the remote SMTP server certificate, or that the server certificate
9121 was issued by a trusted CA. This overrides a less secure <b>NONE</b>
9122 or a less specific <b>MAY</b> lookup result from the alternate host
9123 or next-hop lookup key, and overrides the global smtp_use_tls,
9124 smtp_enforce_tls and smtp_tls_enforce_peername settings. </dd>
9126 <dt> MUST </dt> <dd> Require TLS encryption, require that the remote
9127 SMTP server hostname matches the information in the remote SMTP
9128 server certificate, and require that the remote SMTP server certificate
9129 was issued by a trusted CA. This overrides a less secure <b>NONE</b>
9130 and <b>MUST_NOPEERMATCH</b> or a less specific <b>MAY</b> lookup
9131 result from the alternate host or next-hop lookup key, and overrides
9132 the global smtp_use_tls, smtp_enforce_tls and smtp_tls_enforce_peername
9137 <p> The above keywords correspond to the "none", "may", "encrypt" and
9138 "verify" security levels for the new smtp_tls_security_level parameter
9139 introduced in Postfix 2.3. Starting with Postfix 2.3, and independently
9140 of how the policy is specified, the smtp_tls_mandatory_ciphers and
9141 smtp_tls_mandatory_protocols parameters apply when TLS encryption
9142 is mandatory. Connections for which encryption is optional typically
9143 enable all "export" grade and better ciphers (see smtp_tls_ciphers
9144 and smtp_tls_protocols). </p>
9146 <p> As long as no secure DNS lookup mechanism is available, false
9147 hostnames in MX or CNAME responses can change the server hostname
9148 that Postfix uses for TLS policy lookup and server certificate
9149 verification. Even with a perfect match between the server hostname and
9150 the server certificate, there is no guarantee that Postfix is connected
9151 to the right server. See TLS_README (Closing a DNS loophole with obsolete
9152 per-site TLS policies) for a possible work-around. </p>
9154 <p> This feature is available in Postfix 2.2 and later. With
9155 Postfix 2.3 and later use smtp_tls_policy_maps instead. </p>
9157 %PARAM smtp_tls_scert_verifydepth 9
9159 <p> The verification depth for remote SMTP server certificates. A depth
9160 of 1 is sufficient if the issuing CA is listed in a local CA file. </p>
9162 <p> The default verification depth is 9 (the OpenSSL default) for
9163 compatibility with earlier Postfix behavior. Prior to Postfix 2.5,
9164 the default value was 5, but the limit was not actually enforced. If
9165 you have set this to a lower non-default value, certificates with longer
9166 trust chains may now fail to verify. Certificate chains with 1 or 2
9167 CAs are common, deeper chains are more rare and any number between 5
9168 and 9 should suffice in practice. You can choose a lower number if,
9169 for example, you trust certificates directly signed by an issuing CA
9170 but not any CAs it delegates to. </p>
9172 <p> This feature is available in Postfix 2.2 and later. </p>
9174 %PARAM smtp_tls_note_starttls_offer no
9176 <p> Log the hostname of a remote SMTP server that offers STARTTLS,
9177 when TLS is not already enabled for that server. </p>
9179 <p> The logfile record looks like: </p>
9182 postfix/smtp[pid]: Host offered STARTTLS: [name.of.host]
9185 <p> This feature is available in Postfix 2.2 and later. </p>
9187 %PARAM smtp_tls_cipherlist
9189 <p> Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
9190 cipher list. As this feature applies to all TLS security levels, it is easy
9191 to create inter-operability problems by choosing a non-default cipher
9192 list. Do not use a non-default TLS cipher list on hosts that deliver email
9193 to the public Internet: you will be unable to send email to servers that
9194 only support the ciphers you exclude. Using a restricted cipher list
9195 may be more appropriate for an internal MTA, where one can exert some
9196 control over the TLS software and settings of the peer servers. </p>
9198 <p> <b>Note:</b> do not use "" quotes around the parameter value. </p>
9200 <p> This feature is available in Postfix version 2.2. It is not used with
9201 Postfix 2.3 and later; use smtp_tls_mandatory_ciphers instead. </p>
9203 %PARAM smtp_starttls_timeout 300s
9205 <p> Time limit for Postfix SMTP client write and read operations
9206 during TLS startup and shutdown handshake procedures. </p>
9208 <p> This feature is available in Postfix 2.2 and later. </p>
9210 %PARAM smtp_tls_dkey_file $smtp_tls_dcert_file
9212 <p> File with the Postfix SMTP client DSA private key in PEM format.
9213 This file may be combined with the Postfix SMTP client DSA certificate
9214 file specified with $smtp_tls_dcert_file. </p>
9216 <p> The private key must be accessible without a pass-phrase, i.e. it
9217 must not be encrypted. File permissions should grant read-only
9218 access to the system superuser account ("root"), and no access
9219 to anyone else. </p>
9221 <p> This feature is available in Postfix 2.2 and later. </p>
9223 %PARAM smtp_tls_dcert_file
9225 <p> File with the Postfix SMTP client DSA certificate in PEM format.
9226 This file may also contain the Postfix SMTP client private DSA key. </p>
9228 <p> See the discussion under smtp_tls_cert_file for more details.
9234 smtp_tls_dcert_file = /etc/postfix/client-dsa.pem
9237 <p> This feature is available in Postfix 2.2 and later. </p>
9239 %PARAM tls_random_exchange_name see "postconf -d" output
9241 <p> Name of the pseudo random number generator (PRNG) state file
9242 that is maintained by tlsmgr(8). The file is created when it does
9243 not exist, and its length is fixed at 1024 bytes. </p>
9245 <p> As of version 2.5, Postfix no longer uses root privileges when
9246 opening this file, and the default file location was changed from
9247 ${config_directory}/prng_exch to ${data_directory}/prng_exch. As
9248 a migration aid, an attempt to open the file under a non-Postfix
9249 directory is redirected to the Postfix-owned data_directory, and a
9250 warning is logged. </p>
9252 <p> This feature is available in Postfix 2.2 and later. </p>
9254 %PARAM tls_random_source see "postconf -d" output
9256 <p> The external entropy source for the in-memory tlsmgr(8) pseudo
9257 random number generator (PRNG) pool. Be sure to specify a non-blocking
9258 source. If this source is not a regular file, the entropy source
9259 type must be prepended: egd:/path/to/egd_socket for a source with
9260 EGD compatible socket interface, or dev:/path/to/device for a
9263 <p> Note: on OpenBSD systems specify /dev/arandom when /dev/urandom
9264 gives timeout errors. </p>
9266 <p> This feature is available in Postfix 2.2 and later. </p>
9268 %PARAM tls_random_bytes 32
9270 <p> The number of bytes that tlsmgr(8) reads from $tls_random_source
9271 when (re)seeding the in-memory pseudo random number generator (PRNG)
9272 pool. The default of 32 bytes (256 bits) is good enough for 128bit
9273 symmetric keys. If using EGD or a device file, a maximum of 255
9276 <p> This feature is available in Postfix 2.2 and later. </p>
9278 %PARAM tls_random_reseed_period 3600s
9280 <p> The maximal time between attempts by tlsmgr(8) to re-seed the
9281 in-memory pseudo random number generator (PRNG) pool from external
9282 sources. The actual time between re-seeding attempts is calculated
9283 using the PRNG, and is between 0 and the time specified. </p>
9285 <p> This feature is available in Postfix 2.2 and later. </p>
9287 %PARAM tls_random_prng_update_period 3600s
9289 <p> The time between attempts by tlsmgr(8) to save the state of
9290 the pseudo random number generator (PRNG) to the file specified
9291 with $tls_random_exchange_name. </p>
9293 <p> This feature is available in Postfix 2.2 and later. </p>
9295 %PARAM tls_daemon_random_bytes 32
9297 <p> The number of pseudo-random bytes that an smtp(8) or smtpd(8)
9298 process requests from the tlsmgr(8) server in order to seed its
9299 internal pseudo random number generator (PRNG). The default of 32
9300 bytes (equivalent to 256 bits) is sufficient to generate a 128bit
9301 (or 168bit) session key. </p>
9303 <p> This feature is available in Postfix 2.2 and later. </p>
9305 %PARAM smtp_sasl_tls_security_options $smtp_sasl_security_options
9307 <p> The SASL authentication security options that the Postfix SMTP
9308 client uses for TLS encrypted SMTP sessions. </p>
9310 <p> This feature is available in Postfix 2.2 and later. </p>
9312 %PARAM smtpd_sasl_tls_security_options $smtpd_sasl_security_options
9314 <p> The SASL authentication security options that the Postfix SMTP
9315 server uses for TLS encrypted SMTP sessions. </p>
9317 <p> This feature is available in Postfix 2.2 and later. </p>
9319 %PARAM smtp_generic_maps
9321 <p> Optional lookup tables that perform address rewriting in the
9322 SMTP client, typically to transform a locally valid address into
9323 a globally valid address when sending mail across the Internet.
9324 This is needed when the local machine does not have its own Internet
9325 domain name, but uses something like <i>localdomain.local</i>
9328 <p> The table format and lookups are documented in generic(5);
9329 examples are shown in the ADDRESS_REWRITING_README and
9330 STANDARD_CONFIGURATION_README documents. </p>
9332 <p> This feature is available in Postfix 2.2 and later. </p>
9334 %PARAM message_reject_characters
9336 <p> The set of characters that Postfix will reject in message
9337 content. The usual C-like escape sequences are recognized: <tt>\a
9338 \b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and
9344 message_reject_characters = \0
9347 <p> This feature is available in Postfix 2.3 and later. </p>
9349 %PARAM message_strip_characters
9351 <p> The set of characters that Postfix will remove from message
9352 content. The usual C-like escape sequences are recognized: <tt>\a
9353 \b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and
9359 message_strip_characters = \0
9362 <p> This feature is available in Postfix 2.3 and later. </p>
9364 %PARAM frozen_delivered_to yes
9366 <p> Update the local(8) delivery agent's idea of the Delivered-To:
9367 address (see prepend_delivered_header) only once, at the start of
9368 a delivery attempt; do not update the Delivered-To: address while
9369 expanding aliases or .forward files. </p>
9371 <p> This feature is available in Postfix 2.3 and later. With older
9372 Postfix releases, the behavior is as if this parameter is set to
9373 "no". The old setting can be expensive with deeply nested aliases
9374 or .forward files. When an alias or .forward file changes the
9375 Delivered-To: address, it ties up one queue file and one cleanup
9376 process instance while mail is being forwarded. </p>
9378 %PARAM smtpd_peername_lookup yes
9380 <p> Attempt to look up the remote SMTP client hostname, and verify that
9381 the name matches the client IP address. A client name is set to
9382 "unknown" when it cannot be looked up or verified, or when name
9383 lookup is disabled. Turning off name lookup reduces delays due to
9384 DNS lookup and increases the maximal inbound delivery rate. </p>
9386 <p> This feature is available in Postfix 2.3 and later. </p>
9388 %PARAM delay_logging_resolution_limit 2
9390 <p> The maximal number of digits after the decimal point when logging
9391 sub-second delay values. Specify a number in the range 0..6. </p>
9393 <p> Large delay values are rounded off to an integral number seconds;
9394 delay values below the delay_logging_resolution_limit are logged
9395 as "0", and small delay values are logged with at most two-digit
9398 <p> The format of the "delays=a/b/c/d" logging is as follows: </p>
9402 <li> a = time from message arrival to last active queue entry
9404 <li> b = time from last active queue entry to connection setup
9406 <li> c = time in connection setup, including DNS, EHLO and TLS
9408 <li> d = time in message transmission
9412 <p> This feature is available in Postfix 2.3 and later. </p>
9414 %PARAM bounce_template_file
9416 <p> Pathname of a configuration file with bounce message templates.
9417 These override the built-in templates of delivery status notification
9418 (DSN) messages for undeliverable mail, for delayed mail, successful
9419 delivery, or delivery verification. The bounce(5) manual page
9420 describes how to edit and test template files. </p>
9422 <p> Template message body text may contain $name references to
9423 Postfix configuration parameters. The result of $name expansion can
9424 be previewed with "<b>postconf -b <i>file_name</i></b>" before the file
9425 is placed into the Postfix configuration directory. </p>
9427 <p> This feature is available in Postfix 2.3 and later. </p>
9429 %PARAM sender_dependent_relayhost_maps
9431 <p> A sender-dependent override for the global relayhost parameter
9432 setting. The tables are searched by the envelope sender address and
9433 @domain. A lookup result of DUNNO terminates the search without
9434 overriding the global relayhost parameter setting (Postfix 2.6 and
9435 later). This information is overruled with relay_transport,
9436 default_transport and with the transport(5) table. </p>
9438 <p> For safety reasons, this feature does not allow $number
9439 substitutions in regular expression maps. </p>
9442 This feature is available in Postfix 2.3 and later.
9445 %PARAM empty_address_relayhost_maps_lookup_key <>
9447 <p> The sender_dependent_relayhost_maps search string that will be
9448 used instead of the null sender address. </p>
9450 <p> This feature is available in Postfix 2.5 and later. With
9451 earlier versions, sender_dependent_relayhost_maps lookups were
9452 skipped for the null sender address. </p>
9454 %PARAM address_verify_sender_dependent_relayhost_maps $sender_dependent_relayhost_maps
9457 Overrides the sender_dependent_relayhost_maps parameter setting for address
9458 verification probes.
9462 This feature is available in Postfix 2.3 and later.
9465 %PARAM smtp_sender_dependent_authentication no
9468 Enable sender-dependent authentication in the Postfix SMTP client; this is
9469 available only with SASL authentication, and disables SMTP connection
9470 caching to ensure that mail from different senders will use the
9471 appropriate credentials. </p>
9474 This feature is available in Postfix 2.3 and later.
9477 %PARAM lmtp_lhlo_name $myhostname
9480 The hostname to send in the LMTP LHLO command.
9484 The default value is the machine hostname. Specify a hostname or
9489 This information can be specified in the main.cf file for all LMTP
9490 clients, or it can be specified in the master.cf file for a specific
9491 client, for example:
9496 /etc/postfix/master.cf:
9497 mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com
9502 This feature is available in Postfix 2.3 and later.
9505 %PARAM lmtp_discard_lhlo_keyword_address_maps
9507 <p> Lookup tables, indexed by the remote LMTP server address, with
9508 case insensitive lists of LHLO keywords (pipelining, starttls,
9509 auth, etc.) that the LMTP client will ignore in the LHLO response
9510 from a remote LMTP server. See lmtp_discard_lhlo_keywords for
9511 details. The table is not indexed by hostname for consistency with
9512 smtpd_discard_ehlo_keyword_address_maps. </p>
9514 <p> This feature is available in Postfix 2.3 and later. </p>
9516 %PARAM lmtp_discard_lhlo_keywords
9518 <p> A case insensitive list of LHLO keywords (pipelining, starttls,
9519 auth, etc.) that the LMTP client will ignore in the LHLO response
9520 from a remote LMTP server. </p>
9522 <p> This feature is available in Postfix 2.3 and later. </p>
9528 <li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent
9529 this action from being logged. </p>
9531 <li> <p> Use the lmtp_discard_lhlo_keyword_address_maps feature to
9532 discard LHLO keywords selectively. </p>
9536 %PARAM lmtp_lhlo_timeout 300s
9538 <p> The LMTP client time limit for sending the LHLO command, and
9539 for receiving the initial server response. </p>
9541 <p> Time units: s (seconds), m (minutes), h (hours), d (days), w
9542 (weeks). The default time unit is s (seconds). </p>
9544 %PARAM lmtp_sasl_tls_security_options $lmtp_sasl_security_options
9546 <p> The LMTP-specific version of the smtp_sasl_tls_security_options
9547 configuration parameter. See there for details. </p>
9549 <p> This feature is available in Postfix 2.3 and later. </p>
9551 %PARAM lmtp_sasl_mechanism_filter
9553 <p> The LMTP-specific version of the smtp_sasl_mechanism_filter
9554 configuration parameter. See there for details. </p>
9556 <p> This feature is available in Postfix 2.3 and later. </p>
9558 %PARAM lmtp_bind_address
9560 <p> The LMTP-specific version of the smtp_bind_address configuration
9561 parameter. See there for details. </p>
9563 <p> This feature is available in Postfix 2.3 and later. </p>
9565 %PARAM lmtp_bind_address6
9567 <p> The LMTP-specific version of the smtp_bind_address6 configuration
9568 parameter. See there for details. </p>
9570 <p> This feature is available in Postfix 2.3 and later. </p>
9572 %PARAM lmtp_host_lookup dns
9574 <p> The LMTP-specific version of the smtp_host_lookup configuration
9575 parameter. See there for details. </p>
9577 <p> This feature is available in Postfix 2.3 and later. </p>
9579 %PARAM lmtp_connection_cache_destinations
9581 <p> The LMTP-specific version of the smtp_connection_cache_destinations
9582 configuration parameter. See there for details. </p>
9584 <p> This feature is available in Postfix 2.3 and later. </p>
9586 %PARAM lmtp_tls_per_site
9588 <p> The LMTP-specific version of the smtp_tls_per_site configuration
9589 parameter. See there for details. </p>
9591 <p> This feature is available in Postfix 2.3 and later. </p>
9593 %PARAM lmtp_generic_maps
9595 <p> The LMTP-specific version of the smtp_generic_maps configuration
9596 parameter. See there for details. </p>
9598 <p> This feature is available in Postfix 2.3 and later. </p>
9600 %PARAM lmtp_pix_workaround_threshold_time 500s
9602 <p> The LMTP-specific version of the smtp_pix_workaround_threshold_time
9603 configuration parameter. See there for details. </p>
9605 <p> This feature is available in Postfix 2.3 and later. </p>
9607 %PARAM lmtp_pix_workaround_delay_time 10s
9609 <p> The LMTP-specific version of the smtp_pix_workaround_delay_time
9610 configuration parameter. See there for details. </p>
9612 <p> This feature is available in Postfix 2.3 and later. </p>
9614 %PARAM lmtp_connection_reuse_time_limit 300s
9616 <p> The LMTP-specific version of the smtp_connection_reuse_time_limit
9617 configuration parameter. See there for details. </p>
9619 <p> This feature is available in Postfix 2.3 and later. </p>
9621 %PARAM lmtp_starttls_timeout 300s
9623 <p> The LMTP-specific version of the smtp_starttls_timeout configuration
9624 parameter. See there for details. </p>
9626 <p> This feature is available in Postfix 2.3 and later. </p>
9628 %PARAM lmtp_line_length_limit 990
9630 <p> The LMTP-specific version of the smtp_line_length_limit
9631 configuration parameter. See there for details. </p>
9633 <p> This feature is available in Postfix 2.3 and later. </p>
9635 %PARAM lmtp_mx_address_limit 5
9637 <p> The LMTP-specific version of the smtp_mx_address_limit configuration
9638 parameter. See there for details. </p>
9640 <p> This feature is available in Postfix 2.3 and later. </p>
9642 %PARAM lmtp_mx_session_limit 2
9644 <p> The LMTP-specific version of the smtp_mx_session_limit configuration
9645 parameter. See there for details. </p>
9647 <p> This feature is available in Postfix 2.3 and later. </p>
9649 %PARAM lmtp_tls_scert_verifydepth 9
9651 <p> The LMTP-specific version of the smtp_tls_scert_verifydepth
9652 configuration parameter. See there for details. </p>
9654 <p> This feature is available in Postfix 2.3 and later. </p>
9656 %PARAM lmtp_skip_5xx_greeting yes
9658 <p> The LMTP-specific version of the smtp_skip_5xx_greeting
9659 configuration parameter. See there for details. </p>
9661 <p> This feature is available in Postfix 2.3 and later. </p>
9663 %PARAM lmtp_randomize_addresses yes
9665 <p> The LMTP-specific version of the smtp_randomize_addresses
9666 configuration parameter. See there for details. </p>
9668 <p> This feature is available in Postfix 2.3 and later. </p>
9670 %PARAM lmtp_quote_rfc821_envelope yes
9672 <p> The LMTP-specific version of the smtp_quote_rfc821_envelope
9673 configuration parameter. See there for details. </p>
9675 <p> This feature is available in Postfix 2.3 and later. </p>
9677 %PARAM lmtp_defer_if_no_mx_address_found no
9679 <p> The LMTP-specific version of the smtp_defer_if_no_mx_address_found
9680 configuration parameter. See there for details. </p>
9682 <p> This feature is available in Postfix 2.3 and later. </p>
9684 %PARAM lmtp_connection_cache_on_demand yes
9686 <p> The LMTP-specific version of the smtp_connection_cache_on_demand
9687 configuration parameter. See there for details. </p>
9689 <p> This feature is available in Postfix 2.3 and later. </p>
9691 %PARAM lmtp_use_tls no
9693 <p> The LMTP-specific version of the smtp_use_tls configuration
9694 parameter. See there for details. </p>
9696 <p> This feature is available in Postfix 2.3 and later. </p>
9698 %PARAM lmtp_enforce_tls no
9700 <p> The LMTP-specific version of the smtp_enforce_tls configuration
9701 parameter. See there for details. </p>
9703 <p> This feature is available in Postfix 2.3 and later. </p>
9705 %PARAM lmtp_tls_security_level
9707 <p> The LMTP-specific version of the smtp_tls_security_level configuration
9708 parameter. See there for details. </p>
9710 <p> This feature is available in Postfix 2.3 and later. </p>
9712 %PARAM lmtp_tls_enforce_peername yes
9714 <p> The LMTP-specific version of the smtp_tls_enforce_peername
9715 configuration parameter. See there for details. </p>
9717 <p> This feature is available in Postfix 2.3 and later. </p>
9719 %PARAM lmtp_tls_note_starttls_offer no
9721 <p> The LMTP-specific version of the smtp_tls_note_starttls_offer
9722 configuration parameter. See there for details. </p>
9724 <p> This feature is available in Postfix 2.3 and later. </p>
9726 %PARAM lmtp_sender_dependent_authentication no
9728 <p> The LMTP-specific version of the smtp_sender_dependent_authentication
9729 configuration parameter. See there for details. </p>
9731 <p> This feature is available in Postfix 2.3 and later. </p>
9733 %PARAM connection_cache_protocol_timeout 5s
9735 <p> Time limit for connection cache connect, send or receive
9736 operations. The time limit is enforced in the client. </p>
9738 <p> This feature is available in Postfix 2.3 and later. </p>
9740 %PARAM smtpd_sasl_type cyrus
9742 <p> The SASL plug-in type that the Postfix SMTP server should use
9743 for authentication. The available types are listed with the
9744 "<b>postconf -a</b>" command. </p>
9746 <p> This feature is available in Postfix 2.3 and later. </p>
9748 %PARAM smtp_sasl_type cyrus
9750 <p> The SASL plug-in type that the Postfix SMTP client should use
9751 for authentication. The available types are listed with the
9752 "<b>postconf -A</b>" command. </p>
9754 <p> This feature is available in Postfix 2.3 and later. </p>
9757 %PARAM lmtp_sasl_type cyrus
9759 <p> The SASL plug-in type that the Postfix LMTP client should use
9760 for authentication. The available types are listed with the
9761 "<b>postconf -A</b>" command. </p>
9763 <p> This feature is available in Postfix 2.3 and later. </p>
9765 %PARAM smtpd_sasl_path smtpd
9767 <p> Implementation-specific information that the Postfix SMTP server
9769 the SASL plug-in implementation that is selected with
9770 <b>smtpd_sasl_type</b>. Typically this specifies the name of a
9771 configuration file or rendezvous point. </p>
9773 <p> This feature is available in Postfix 2.3 and later. In earlier
9774 releases it was called <b>smtpd_sasl_application_name</b>. </p>
9776 %PARAM cyrus_sasl_config_path
9778 <p> Search path for Cyrus SASL application configuration files,
9779 currently used only to locate the $smtpd_sasl_path.conf file.
9780 Specify zero or more directories separated by a colon character,
9781 or an empty value to use Cyrus SASL's built-in search path. </p>
9783 <p> This feature is available in Postfix 2.5 and later when compiled
9784 with Cyrus SASL 2.1.22 or later. </p>
9786 %PARAM smtp_sasl_path
9788 <p> Implementation-specific information that the Postfix SMTP client
9790 the SASL plug-in implementation that is selected with
9791 <b>smtp_sasl_type</b>. Typically this specifies the name of a
9792 configuration file or rendezvous point. </p>
9794 <p> This feature is available in Postfix 2.3 and later. </p>
9796 %PARAM lmtp_sasl_path
9798 <p> Implementation-specific information that is passed through to
9799 the SASL plug-in implementation that is selected with
9800 <b>lmtp_sasl_type</b>. Typically this specifies the name of a
9801 configuration file or rendezvous point. </p>
9803 <p> This feature is available in Postfix 2.3 and later. </p>
9805 %PARAM plaintext_reject_code 450
9808 The numerical Postfix SMTP server response code when a request
9809 is rejected by the <b>reject_plaintext_session</b> restriction.
9812 <p> This feature is available in Postfix 2.3 and later. </p>
9814 %PARAM resolve_numeric_domain no
9816 <p> Resolve "user@ipaddress" as "user@[ipaddress]", instead of
9817 rejecting the address as invalid. </p>
9819 <p> This feature is available in Postfix 2.3 and later.
9821 %PARAM mailbox_transport_maps
9823 <p> Optional lookup tables with per-recipient message delivery
9824 transports to use for local(8) mailbox delivery, whether or not the
9825 recipients are found in the UNIX passwd database. </p>
9827 <p> The precedence of local(8) delivery features from high to low
9828 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
9829 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
9830 fallback_transport_maps, fallback_transport and luser_relay. </p>
9832 <p> For safety reasons, this feature does not allow $number
9833 substitutions in regular expression maps. </p>
9835 <p> This feature is available in Postfix 2.3 and later. </p>
9837 %PARAM fallback_transport_maps
9839 <p> Optional lookup tables with per-recipient message delivery
9840 transports for recipients that the local(8) delivery agent could
9841 not find in the aliases(5) or UNIX password database. </p>
9843 <p> The precedence of local(8) delivery features from high to low
9844 is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
9845 mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
9846 fallback_transport_maps, fallback_transport and luser_relay. </p>
9848 <p> For safety reasons, this feature does not allow $number
9849 substitutions in regular expression maps. </p>
9851 <p> This feature is available in Postfix 2.3 and later. </p>
9853 %PARAM smtp_cname_overrides_servername version dependent
9855 <p> Allow DNS CNAME records to override the servername that the
9856 Postfix SMTP client uses for logging, SASL password lookup, TLS
9857 policy decisions, or TLS certificate verification. The value "no"
9858 hardens Postfix smtp_tls_per_site hostname-based policies against
9859 false hostname information in DNS CNAME records, and makes SASL
9860 password file lookups more predictable. This is the default setting
9861 as of Postfix 2.3. </p>
9863 <p> This feature is available in Postfix 2.2.9 and later. </p>
9865 %PARAM lmtp_cname_overrides_servername yes
9867 <p> The LMTP-specific version of the smtp_cname_overrides_servername
9868 configuration parameter. See there for details. </p>
9870 <p> This feature is available in Postfix 2.3 and later. </p>
9872 %PARAM smtp_sasl_tls_verified_security_options $smtp_sasl_tls_security_options
9874 <p> The SASL authentication security options that the Postfix SMTP
9875 client uses for TLS encrypted SMTP sessions with a verified server
9878 <p> When mail is sent to the public MX host for the recipient's
9879 domain, server certificates are by default optional, and delivery
9880 proceeds even if certificate verification fails. For delivery via
9881 a submission service that requires SASL authentication, it may be
9882 appropriate to send plaintext passwords only when the connection
9883 to the server is strongly encrypted <b>and</b> the server identity
9886 <p> The smtp_sasl_tls_verified_security_options parameter makes it
9887 possible to only enable plaintext mechanisms when a secure connection
9888 to the server is available. Submission servers subject to this
9889 policy must either have verifiable certificates or offer suitable
9890 non-plaintext SASL mechanisms. </p>
9892 <p> This feature is available in Postfix 2.6 and later. </p>
9894 %PARAM lmtp_sasl_tls_verified_security_options $lmtp_sasl_tls_security_options
9896 <p> The LMTP-specific version of the
9897 smtp_sasl_tls_verified_security_options configuration parameter.
9898 See there for details. </p>
9900 <p> This feature is available in Postfix 2.3 and later. </p>
9902 %PARAM lmtp_connection_cache_time_limit 2s
9904 <p> The LMTP-specific version of the
9905 smtp_connection_cache_time_limit configuration parameter.
9906 See there for details. </p>
9908 <p> This feature is available in Postfix 2.3 and later. </p>
9910 %PARAM smtpd_delay_open_until_valid_rcpt yes
9912 <p> Postpone the start of an SMTP mail transaction until a valid
9913 RCPT TO command is received. Specify "no" to create a mail transaction
9914 as soon as the SMTP server receives a valid MAIL FROM command. </p>
9916 <p> With sites that reject lots of mail, the default setting reduces
9918 disk, CPU and memory resources. The downside is that rejected
9919 recipients are logged with NOQUEUE instead of a mail transaction
9920 ID. This complicates the logfile analysis of multi-recipient mail.
9923 <p> This feature is available in Postfix 2.3 and later. </p>
9925 %PARAM lmtp_tls_cert_file
9927 <p> The LMTP-specific version of the smtp_tls_cert_file
9928 configuration parameter. See there for details. </p>
9930 <p> This feature is available in Postfix 2.3 and later. </p>
9932 %PARAM lmtp_tls_key_file $lmtp_tls_cert_file
9934 <p> The LMTP-specific version of the smtp_tls_key_file
9935 configuration parameter. See there for details. </p>
9937 <p> This feature is available in Postfix 2.3 and later. </p>
9939 %PARAM lmtp_tls_dcert_file
9941 <p> The LMTP-specific version of the smtp_tls_dcert_file
9942 configuration parameter. See there for details. </p>
9944 <p> This feature is available in Postfix 2.3 and later. </p>
9946 %PARAM lmtp_tls_dkey_file $lmtp_tls_dcert_file
9948 <p> The LMTP-specific version of the smtp_tls_dkey_file
9949 configuration parameter. See there for details. </p>
9951 <p> This feature is available in Postfix 2.3 and later. </p>
9953 %PARAM lmtp_tls_CAfile
9955 <p> The LMTP-specific version of the smtp_tls_CAfile
9956 configuration parameter. See there for details. </p>
9958 <p> This feature is available in Postfix 2.3 and later. </p>
9960 %PARAM lmtp_tls_CApath
9962 <p> The LMTP-specific version of the smtp_tls_CApath
9963 configuration parameter. See there for details. </p>
9965 <p> This feature is available in Postfix 2.3 and later. </p>
9967 %PARAM lmtp_tls_loglevel 0
9969 <p> The LMTP-specific version of the smtp_tls_loglevel
9970 configuration parameter. See there for details. </p>
9972 <p> This feature is available in Postfix 2.3 and later. </p>
9974 %PARAM lmtp_tls_session_cache_database
9976 <p> The LMTP-specific version of the smtp_tls_session_cache_database
9977 configuration parameter. See there for details. </p>
9979 <p> This feature is available in Postfix 2.3 and later. </p>
9981 %PARAM lmtp_tls_session_cache_timeout 3600s
9983 <p> The LMTP-specific version of the smtp_tls_session_cache_timeout
9984 configuration parameter. See there for details. </p>
9986 <p> This feature is available in Postfix 2.3 and later. </p>
9988 %PARAM smtp_tls_policy_maps
9990 <p> Optional lookup tables with the Postfix SMTP client TLS security
9991 policy by next-hop destination; when a non-empty value is specified,
9992 this overrides the obsolete smtp_tls_per_site parameter. See
9993 TLS_README for a more detailed discussion of TLS security levels.
9996 <p> The TLS policy table is indexed by the full next-hop destination,
9997 which is either the recipient domain, or the verbatim next-hop
9998 specified in the transport table, $local_transport, $virtual_transport,
9999 $relay_transport or $default_transport. This includes any enclosing
10000 square brackets and any non-default destination server port suffix. The
10001 LMTP socket type prefix (inet: or unix:) is not included in the lookup
10004 <p> Only the next-hop domain, or $myhostname with LMTP over UNIX-domain
10005 sockets, is used as the nexthop name for certificate verification. The
10006 port and any enclosing square brackets are used in the table lookup key,
10007 but are not used for server name verification. </p>
10009 <p> When the lookup key is a domain name without enclosing square brackets
10010 or any <i>:port</i> suffix (typically the recipient domain), and the full
10011 domain is not found in the table, just as with the transport(5) table,
10012 the parent domain starting with a leading "." is matched recursively. This
10013 allows one to specify a security policy for a recipient domain and all
10014 its sub-domains. </p>
10016 <p> The lookup result is a security level, followed by an optional list
10017 of whitespace and/or comma separated name=value attributes that override
10018 related main.cf settings. The TLS security levels in order of increasing
10023 <dt><b>none</b></dt>
10024 <dd>No TLS. No additional attributes are supported at this level. </dd>
10026 <dt><b>may</b></dt>
10027 <dd>Opportunistic TLS. Since sending in the clear is acceptable,
10028 demanding stronger than default TLS security merely reduces
10029 inter-operability. The optional "ciphers", "exclude" and "protocols"
10030 attributes (available for opportunistic TLS with Postfix ≥ 2.6)
10031 override the "smtp_tls_ciphers", "smtp_tls_exclude_ciphers" and
10032 "smtp_tls_protocols" configuration parameters. When opportunistic TLS
10033 handshakes fail, Postfix retries the connection with TLS disabled.
10034 This allows mail delivery to sites with non-interoperable TLS
10035 implementations.</dd>
10037 <dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption. At this level
10038 and higher, the optional "protocols" attribute overrides the main.cf
10039 smtp_tls_mandatory_protocols parameter, the optional "ciphers" attribute
10040 overrides the main.cf smtp_tls_mandatory_ciphers parameter, and the
10041 optional "exclude" attribute (Postfix ≥ 2.6) overrides the main.cf
10042 smtp_tls_mandatory_exclude_ciphers parameter. In the policy table,
10043 multiple protocols or excluded ciphers must be separated by colons,
10044 as attribute values may not contain whitespace or commas. </dd>
10046 <dt><b>fingerprint</b></dt> <dd>Certificate fingerprint
10047 verification. Available with Postfix 2.5 and later. At this security
10048 level, there are no trusted certificate authorities. The certificate
10049 trust chain, expiration date, ... are not checked. Instead,
10050 the optional <b>match</b> attribute, or else the main.cf
10051 <b>smtp_tls_fingerprint_cert_match</b> parameter, lists the
10052 valid "fingerprints" of the server certificate. The digest
10053 algorithm used to calculate the fingerprint is selected by the
10054 <b>smtp_tls_fingerprint_digest</b> parameter. Multiple fingerprints can
10055 be combined with a "|" delimiter in a single match attribute, or multiple
10056 match attributes can be employed. The ":" character is not used as a
10057 delimiter as it occurs between each pair of fingerprint (hexadecimal)
10060 <dt><b>verify</b></dt> <dd>Mandatory TLS verification. At this security
10061 level, DNS MX lookups are trusted to be secure enough, and the name
10062 verified in the server certificate is usually obtained indirectly via
10063 unauthenticated DNS MX lookups. The optional "match" attribute overrides
10064 the main.cf smtp_tls_verify_cert_match parameter. In the policy table,
10065 multiple match patterns and strategies must be separated by colons.
10066 In practice explicit control over matching is more common with the
10067 "secure" policy, described below. </dd>
10069 <dt><b>secure</b></dt> <dd>Secure-channel TLS. At this security level, DNS
10070 MX lookups, though potentially used to determine the candidate next-hop
10071 gateway IP addresses, are <b>not</b> trusted to be secure enough for TLS
10072 peername verification. Instead, the default name verified in the server
10073 certificate is obtained directly from the next-hop, or is explicitly
10074 specified via the optional <b>match</b> attribute which overrides the
10075 main.cf smtp_tls_secure_cert_match parameter. In the policy table,
10076 multiple match patterns and strategies must be separated by colons.
10077 The match attribute is most useful when multiple domains are supported by
10078 common server, the policy entries for additional domains specify matching
10079 rules for the primary domain certificate. While transport table overrides
10080 routing the secondary domains to the primary nexthop also allow secure
10081 verification, they risk delivery to the wrong destination when domains
10082 change hands or are re-assigned to new gateways. With the "match"
10083 attribute approach, routing is not perturbed, and mail is deferred if
10084 verification of a new MX host fails. </dd>
10093 /etc/postfix/main.cf:
10094 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
10095 # Postfix 2.5 and later
10096 smtp_tls_fingerprint_digest = md5
10100 /etc/postfix/tls_policy:
10103 example.gov encrypt protocols=TLSv1
10104 example.com verify ciphers=high
10106 .example.net secure match=.example.net:example.net
10107 [mail.example.org]:587 secure match=nexthop
10108 # Postfix 2.5 and later
10109 [thumb.example.org] fingerprint
10110 match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
10111 match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
10114 <p> <b>Note:</b> The <b>hostname</b> strategy if listed in a non-default
10115 setting of smtp_tls_secure_cert_match or in the <b>match</b> attribute
10116 in the policy table can render the <b>secure</b> level vulnerable to
10117 DNS forgery. Do not use the <b>hostname</b> strategy for secure-channel
10118 configurations in environments where DNS security is not assured. </p>
10120 <p> This feature is available in Postfix 2.3 and later. </p>
10122 %PARAM smtp_tls_mandatory_protocols SSLv3, TLSv1
10124 <p> List of SSL/TLS protocols that the Postfix SMTP client will use with
10125 mandatory TLS encryption. In main.cf the values are separated by
10126 whitespace, commas or colons. In the policy table "protocols" attribute
10127 (see smtp_tls_policy_maps) the only valid separator is colon. An
10128 empty value means allow all protocols. The valid protocol names, (see
10129 <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" and "TLSv1". </p>
10131 <p> With Postfix ≥ 2.5 the parameter syntax is expanded to support
10132 protocol exclusions. One can now explicitly exclude SSLv2 by setting
10133 "smtp_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and
10134 SSLv3 set "smtp_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing
10135 the protocols to include, rather than protocols to exclude, is still
10136 supported; use the form you find more intuitive. </p>
10138 <p> Since SSL version 2 has known protocol weaknesses and is now
10139 deprecated, the default setting excludes "SSLv2". This means that by
10140 default, SSL version 2 will not be used at the "encrypt" security level
10143 <p> See the documentation of the smtp_tls_policy_maps parameter and
10144 TLS_README for more information about security levels. </p>
10149 smtp_tls_mandatory_protocols = TLSv1
10150 # Alternative form with Postfix ≥ 2.5:
10151 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
10154 <p> This feature is available in Postfix 2.3 and later. </p>
10156 %PARAM smtp_tls_verify_cert_match hostname
10158 <p> The server certificate peername verification method for the
10159 "verify" TLS security level. In a "verify" TLS policy table
10160 ($smtp_tls_policy_maps) entry the optional "match" attribute
10161 overrides this main.cf setting. </p>
10163 <p> This parameter specifies one or more patterns or strategies separated
10164 by commas, whitespace or colons. In the policy table the only valid
10165 separator is the colon character. </p>
10167 <p> Patterns specify domain names, or domain name suffixes: </p>
10171 <dt><i>example.com</i></dt> <dd> Match the <i>example.com</i> domain,
10172 i.e. one of the names the server certificate must be <i>example.com</i>,
10173 upper and lower case distinctions are ignored. </dd>
10175 <dt><i>.example.com</i></dt>
10176 <dd> Match subdomains of the <i>example.com</i> domain, i.e. match
10177 a name in the server certificate that consists of a non-zero number of
10178 labels followed by a <i>.example.com</i> suffix. Case distinctions are
10183 <p> Strategies specify a transformation from the next-hop domain
10184 to the expected name in the server certificate: </p>
10189 <dd> Match against the next-hop domain, which is either the recipient
10190 domain, or the transport next-hop configured for the domain stripped of
10191 any optional socket type prefix, enclosing square brackets and trailing
10192 port. When MX lookups are not suppressed, this is the original nexthop
10193 domain prior to the MX lookup, not the result of the MX lookup. For
10194 LMTP delivery via UNIX-domain sockets, the verified next-hop name is
10195 $myhostname. This strategy is suitable for use with the "secure"
10196 policy. Case is ignored.</dd>
10198 <dt>dot-nexthop</dt>
10199 <dd> As above, but match server certificate names that are subdomains
10200 of the next-hop domain. Case is ignored.</dd>
10202 <dt>hostname</dt> <dd> Match against the hostname of the server, often
10203 obtained via an unauthenticated DNS MX lookup. For LMTP delivery via
10204 UNIX-domain sockets, the verified name is $myhostname. This matches
10205 the verification strategy of the "MUST" keyword in the obsolete
10206 smtp_tls_per_site table, and is suitable for use with the "verify"
10207 security level. When the next-hop name is enclosed in square brackets
10208 to suppress MX lookups, the "hostname" strategy is the same as the
10209 "nexthop" strategy. Case is ignored.</dd>
10214 Sample main.cf setting:
10218 smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
10222 Sample policy table override:
10226 example.com verify match=hostname:nexthop
10227 .example.com verify match=example.com:.example.com:hostname
10230 <p> This feature is available in Postfix 2.3 and later. </p>
10232 %PARAM smtp_tls_secure_cert_match nexthop, dot-nexthop
10234 <p> The server certificate peername verification method for the
10235 "secure" TLS security level. In a "secure" TLS policy table
10236 ($smtp_tls_policy_maps) entry the optional "match" attribute
10237 overrides this main.cf setting. </p>
10239 <p> This parameter specifies one or more patterns or strategies separated
10240 by commas, whitespace or colons. In the policy table the only valid
10241 separator is the colon character. </p>
10243 <p> For a description of the pattern and strategy syntax see the
10244 smtp_tls_verify_cert_match parameter. The "hostname" strategy should
10245 be avoided in this context, as in the absence of a secure global DNS, using
10246 the results of MX lookups in certificate verification is not immune to active
10247 (man-in-the-middle) attacks on DNS. </p>
10250 Sample main.cf setting:
10255 smtp_tls_secure_cert_match = nexthop
10260 Sample policy table override:
10265 example.net secure match=example.com:.example.com
10266 .example.net secure match=example.com:.example.com
10270 <p> This feature is available in Postfix 2.3 and later. </p>
10272 %PARAM lmtp_tls_policy_maps
10274 <p> The LMTP-specific version of the smtp_tls_policy_maps
10275 configuration parameter. See there for details. </p>
10277 <p> This feature is available in Postfix 2.3 and later. </p>
10279 %PARAM lmtp_tls_mandatory_protocols SSLv3, TLSv1
10281 <p> The LMTP-specific version of the smtp_tls_mandatory_protocols
10282 configuration parameter. See there for details. </p>
10284 <p> This feature is available in Postfix 2.3 and later. </p>
10286 %PARAM lmtp_tls_verify_cert_match hostname
10288 <p> The LMTP-specific version of the smtp_tls_verify_cert_match
10289 configuration parameter. See there for details. </p>
10291 <p> This feature is available in Postfix 2.3 and later. </p>
10293 %PARAM lmtp_tls_secure_cert_match nexthop
10295 <p> The LMTP-specific version of the smtp_tls_secure_cert_match
10296 configuration parameter. See there for details. </p>
10298 <p> This feature is available in Postfix 2.3 and later. </p>
10300 %PARAM smtpd_tls_mandatory_protocols SSLv3, TLSv1
10302 <p> The SSL/TLS protocols accepted by the Postfix SMTP server with
10303 mandatory TLS encryption. If the list is empty, the server supports all
10304 available SSL/TLS protocol versions. A non-empty value is a list
10306 names separated by whitespace, commas or colons. The supported protocol
10307 names are "SSLv2", "SSLv3" and "TLSv1", and are not case sensitive. </p>
10309 <p> With Postfix ≥ 2.5 the parameter syntax is expanded to support
10310 protocol exclusions. One can now explicitly exclude SSLv2 by setting
10311 "smtpd_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and
10312 SSLv3 set "smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing
10313 the protocols to include, rather than protocols to exclude, is still
10314 supported, use the form you find more intuitive. </p>
10316 <p> Since SSL version 2 has known protocol weaknesses and is now
10317 deprecated, the default setting excludes "SSLv2". This means that
10318 by default, SSL version 2 will not be used at the "encrypt" security
10324 smtpd_tls_mandatory_protocols = TLSv1
10325 # Alternative form with Postfix ≥ 2.5:
10326 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
10329 <p> This feature is available in Postfix 2.3 and later. </p>
10331 %PARAM smtp_tls_security_level
10333 <p> The default SMTP TLS security level for the Postfix SMTP client;
10334 when a non-empty value is specified, this overrides the obsolete
10335 parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername.
10338 <p> Specify one of the following security levels: </p>
10342 <dt><b>none</b></dt> <dd> TLS will not be used unless enabled for specific
10343 destinations via smtp_tls_policy_maps. </dd>
10345 <dt><b>may</b></dt>
10346 <dd> Opportunistic TLS. Use TLS if this is supported by the remote
10347 SMTP server, otherwise use plaintext. Since
10348 sending in the clear is acceptable, demanding stronger than default TLS
10349 security merely reduces inter-operability.
10350 The "smtp_tls_ciphers" and "smtp_tls_protocols" (Postfix ≥ 2.6)
10351 configuration parameters provide control over the protocols and
10352 cipher grade used with opportunistic TLS. With earlier releases the
10353 opportunistic TLS cipher grade is always "export" and no protocols
10355 When TLS handshakes fail, the connection is retried with TLS disabled.
10356 This allows mail delivery to sites with non-interoperable TLS
10357 implementations. </dd>
10359 <dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption. Since a minimum
10360 level of security is intended, it is reasonable to be specific about
10361 sufficiently secure protocol versions and ciphers. At this security level
10362 and higher, the main.cf parameters smtp_tls_mandatory_protocols and
10363 smtp_tls_mandatory_ciphers specify the TLS protocols and minimum
10364 cipher grade which the administrator considers secure enough for
10365 mandatory encrypted sessions. This security level is not an appropriate
10366 default for systems delivering mail to the Internet. </dd>
10368 <dt><b>fingerprint</b></dt> <dd>Certificate fingerprint
10369 verification. Available with Postfix 2.5 and later. At this security
10370 level, there are no trusted certificate authorities. The certificate
10371 trust chain, expiration date, ... are not checked. Instead,
10372 the <b>smtp_tls_fingerprint_cert_match</b> parameter lists
10373 the valid "fingerprints" of the server certificate. The digest
10374 algorithm used to calculate the fingerprint is selected by the
10375 <b>smtp_tls_fingerprint_digest</b> parameter. </dd>
10377 <dt><b>verify</b></dt> <dd>Mandatory TLS verification. At this security
10378 level, DNS MX lookups are trusted to be secure enough, and the name
10379 verified in the server certificate is usually obtained indirectly
10380 via unauthenticated DNS MX lookups. The smtp_tls_verify_cert_match
10381 parameter controls how the server name is verified. In practice explicit
10382 control over matching is more common at the "secure" level, described
10383 below. This security level is not an appropriate default for systems
10384 delivering mail to the Internet. </dd>
10386 <dt><b>secure</b></dt> <dd>Secure-channel TLS. At this security level,
10387 DNS MX lookups, though potentially used to determine the candidate
10388 next-hop gateway IP addresses, are <b>not</b> trusted to be secure enough
10389 for TLS peername verification. Instead, the default name verified in
10390 the server certificate is obtained from the next-hop domain as specified
10391 in the smtp_tls_secure_cert_match configuration parameter. The default
10392 matching rule is that a server certificate matches when its name is equal
10393 to or is a sub-domain of the nexthop domain. This security level is not
10394 an appropriate default for systems delivering mail to the Internet. </dd>
10403 # No TLS. Formerly: smtp_use_tls=no and smtp_enforce_tls=no.
10404 smtp_tls_security_level = none
10408 # Opportunistic TLS.
10409 smtp_tls_security_level = may
10410 # Postfix ≥ 2.6:
10411 # Do not tweak opportunistic ciphers unless it is essential
10412 # to do so (if a security vulnerability is found in the SSL library that
10413 # can be mitigated by disabling a particular protocol or raising the
10414 # cipher grade from "export" to "low" or "medium").
10415 smtp_tls_ciphers = export
10416 smtp_tls_protocols = !SSLv2
10420 # Mandatory (high-grade) TLS encryption.
10421 smtp_tls_security_level = encrypt
10422 smtp_tls_mandatory_ciphers = high
10426 # Mandatory TLS verification of hostname or nexthop domain.
10427 smtp_tls_security_level = verify
10428 smtp_tls_mandatory_ciphers = high
10429 smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
10433 # Secure channel TLS with exact nexthop name match.
10434 smtp_tls_security_level = secure
10435 smtp_tls_mandatory_protocols = TLSv1
10436 smtp_tls_mandatory_ciphers = high
10437 smtp_tls_secure_cert_match = nexthop
10441 # Certificate fingerprint verification (Postfix ≥ 2.5).
10442 # The CA-less "fingerprint" security level only scales to a limited
10443 # number of destinations. As a global default rather than a per-site
10444 # setting, this is practical when mail for all recipients is sent
10445 # to a central mail hub.
10446 relayhost = [mailhub.example.com]
10447 smtp_tls_security_level = fingerprint
10448 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
10449 smtp_tls_mandatory_ciphers = high
10450 smtp_tls_fingerprint_cert_match =
10451 3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
10452 EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
10455 <p> This feature is available in Postfix 2.3 and later. </p>
10457 %PARAM smtpd_milters
10459 <p> A list of Milter (mail filter) applications for new mail that
10460 arrives via the Postfix smtpd(8) server. See the MILTER_README
10461 document for details. </p>
10463 <p> This feature is available in Postfix 2.3 and later. </p>
10465 %PARAM non_smtpd_milters
10467 <p> A list of Milter (mail filter) applications for new mail that
10468 does not arrive via the Postfix smtpd(8) server. This includes local
10469 submission via the sendmail(1) command line, new mail that arrives
10470 via the Postfix qmqpd(8) server, and old mail that is re-injected
10471 into the queue with "postsuper -r". See the MILTER_README document
10474 <p> This feature is available in Postfix 2.3 and later. </p>
10476 %PARAM milter_protocol 6
10478 <p> The mail filter protocol version and optional protocol extensions
10479 for communication with a Milter application; prior to Postfix 2.6
10480 the default protocol is 2. Postfix
10481 sends this version number during the initial protocol handshake.
10482 It should match the version number that is expected by the mail
10483 filter application (or by its Milter library). </p>
10485 <p>Protocol versions: </p>
10489 <dt>2</dt> <dd>Use Sendmail 8 mail filter protocol version 2 (default
10490 with Sendmail version 8.11 .. 8.13 and Postfix version 2.3 ..
10493 <dt>3</dt> <dd>Use Sendmail 8 mail filter protocol version 3.</dd>
10495 <dt>4</dt> <dd>Use Sendmail 8 mail filter protocol version 4.</dd>
10497 <dt>6</dt> <dd>Use Sendmail 8 mail filter protocol version 6 (default
10498 with Sendmail version 8.14 and Postfix version 2.6).</dd>
10502 <p>Protocol extensions: </p>
10506 <dt>no_header_reply</dt> <dd> Specify this when the Milter application
10507 will not reply for each individual message header.</dd>
10511 <p> This feature is available in Postfix 2.3 and later. </p>
10513 %PARAM milter_default_action tempfail
10515 <p> The default action when a Milter (mail filter) application is
10516 unavailable or mis-configured. Specify one of the following: </p>
10520 <dt>accept</dt> <dd>Proceed as if the mail filter was not present.
10523 <dt>reject</dt> <dd>Reject all further commands in this session
10524 with a permanent status code.</dd>
10526 <dt>tempfail</dt> <dd>Reject all further commands in this session
10527 with a temporary status code. </dd>
10529 <dt>quarantine</dt> <dd>Like "accept", but freeze the message in
10530 the "hold" queue. Available with Postfix 2.6 and later. </dd>
10534 <p> This feature is available in Postfix 2.3 and later. </p>
10536 %PARAM milter_connect_timeout 30s
10538 <p> The time limit for connecting to a Milter (mail filter)
10539 application, and for negotiating protocol options. </p>
10541 <p> Specify a non-zero time value (an integral value plus an optional
10542 one-letter suffix that specifies the time unit). </p>
10544 <p> Time units: s (seconds), m (minutes), h (hours), d (days), w
10545 (weeks). The default time unit is s (seconds). </p>
10547 <p> This feature is available in Postfix 2.3 and later. </p>
10549 %PARAM milter_command_timeout 30s
10551 <p> The time limit for sending an SMTP command to a Milter (mail
10552 filter) application, and for receiving the response. </p>
10554 <p> Specify a non-zero time value (an integral value plus an optional
10555 one-letter suffix that specifies the time unit). </p>
10557 <p> Time units: s (seconds), m (minutes), h (hours), d (days), w
10558 (weeks). The default time unit is s (seconds). </p>
10560 <p> This feature is available in Postfix 2.3 and later. </p>
10562 %PARAM milter_content_timeout 300s
10564 <p> The time limit for sending message content to a Milter (mail
10565 filter) application, and for receiving the response. </p>
10567 <p> Specify a non-zero time value (an integral value plus an optional
10568 one-letter suffix that specifies the time unit). </p>
10570 <p> Time units: s (seconds), m (minutes), h (hours), d (days), w
10571 (weeks). The default time unit is s (seconds). </p>
10573 <p> This feature is available in Postfix 2.3 and later. </p>
10575 %PARAM milter_connect_macros see "postconf -d" output
10577 <p> The macros that are sent to Milter (mail filter) applications
10578 after completion of an SMTP connection. See MILTER_README
10579 for a list of available macro names and their meanings. </p>
10581 <p> This feature is available in Postfix 2.3 and later. </p>
10583 %PARAM milter_helo_macros see "postconf -d" output
10585 <p> The macros that are sent to Milter (mail filter) applications
10586 after the SMTP HELO or EHLO command. See
10587 MILTER_README for a list of available macro names and their meanings.
10590 <p> This feature is available in Postfix 2.3 and later. </p>
10592 %PARAM milter_mail_macros see "postconf -d" output
10594 <p> The macros that are sent to Milter (mail filter) applications
10595 after the SMTP MAIL FROM command. See MILTER_README
10596 for a list of available macro names and their meanings. </p>
10598 <p> This feature is available in Postfix 2.3 and later. </p>
10600 %PARAM milter_rcpt_macros see "postconf -d" output
10602 <p> The macros that are sent to Milter (mail filter) applications
10603 after the SMTP RCPT TO command. See MILTER_README
10604 for a list of available macro names and their meanings. </p>
10606 <p> This feature is available in Postfix 2.3 and later. </p>
10608 %PARAM milter_data_macros see "postconf -d" output
10610 <p> The macros that are sent to version 4 or higher Milter (mail
10611 filter) applications after the SMTP DATA command. See MILTER_README
10612 for a list of available macro names and their meanings. </p>
10614 <p> This feature is available in Postfix 2.3 and later. </p>
10616 %PARAM milter_end_of_header_macros see "postconf -d" output
10618 <p> The macros that are sent to Milter (mail filter) applications
10619 after the end of the message header. See MILTER_README for a list
10620 of available macro names and their meanings. </p>
10622 <p> This feature is available in Postfix 2.5 and later. </p>
10624 %PARAM milter_end_of_data_macros see "postconf -d" output
10626 <p> The macros that are sent to Milter (mail filter) applications
10627 after the message end-of-data. See MILTER_README for a list of
10628 available macro names and their meanings. </p>
10630 <p> This feature is available in Postfix 2.3 and later. </p>
10632 %PARAM milter_unknown_command_macros see "postconf -d" output
10634 <p> The macros that are sent to version 3 or higher Milter (mail
10635 filter) applications after an unknown SMTP command. See MILTER_README
10636 for a list of available macro names and their meanings. </p>
10638 <p> This feature is available in Postfix 2.3 and later. </p>
10640 %PARAM milter_macro_daemon_name $myhostname
10642 <p> The {daemon_name} macro value for Milter (mail filter) applications.
10643 See MILTER_README for a list of available macro names and their
10646 <p> This feature is available in Postfix 2.3 and later. </p>
10648 %PARAM milter_macro_v $mail_name $mail_version
10650 <p> The {v} macro value for Milter (mail filter) applications.
10651 See MILTER_README for a list of available macro names and their
10654 <p> This feature is available in Postfix 2.3 and later. </p>
10656 %PARAM smtpd_tls_mandatory_ciphers medium
10658 <p> The minimum TLS cipher grade that the Postfix SMTP server
10659 will use with mandatory TLS encryption. Cipher types listed in
10660 smtpd_tls_mandatory_exclude_ciphers or smtpd_tls_exclude_ciphers are
10661 excluded from the base definition of the selected cipher grade. See
10662 smtpd_tls_ciphers for cipher controls that apply to opportunistic
10665 <p> The following cipher grades are supported: </p>
10668 <dt><b>export</b></dt>
10669 <dd> Enable the mainstream "EXPORT" grade or better OpenSSL ciphers.
10670 This is the most appropriate setting for public MX hosts, and is always
10671 used with opportunistic TLS encryption. The underlying cipherlist
10672 is specified via the tls_export_cipherlist configuration parameter,
10673 which you are strongly encouraged to not change. The default value
10674 of tls_export_cipherlist includes anonymous ciphers, but these are
10675 automatically filtered out if the server is configured to ask for
10676 client certificates. If you must always exclude anonymous ciphers,
10677 set "smtpd_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers
10678 only when TLS is enforced, set "smtpd_tls_mandatory_exclude_ciphers =
10681 <dt><b>low</b></dt>
10682 <dd> Enable the mainstream "LOW" grade or better OpenSSL ciphers. The
10683 underlying cipherlist is specified via the tls_low_cipherlist
10684 configuration parameter, which you are strongly encouraged to
10685 not change. The default value of tls_low_cipherlist includes
10686 anonymous ciphers, but these are automatically filtered out if the
10687 server is configured to ask for client certificates. If you must
10688 always exclude anonymous ciphers, set "smtpd_tls_exclude_ciphers =
10689 aNULL". To exclude anonymous ciphers only when TLS is enforced, set
10690 "smtpd_tls_mandatory_exclude_ciphers = aNULL". </dd>
10692 <dt><b>medium</b></dt>
10693 <dd> Enable the mainstream "MEDIUM" grade or better OpenSSL ciphers. These
10694 are essentially the 128-bit or stronger ciphers. This is the default
10695 minimum strength for mandatory TLS encryption. MSAs that enforce
10696 TLS and have clients that do not support any "MEDIUM" or "HIGH"
10697 grade ciphers, may need to configure a weaker ("low" or "export")
10698 minimum cipher grade. The underlying cipherlist is specified via the
10699 tls_medium_cipherlist configuration parameter, which you are strongly
10700 encouraged to not change. The default value of tls_medium_cipherlist
10701 includes anonymous ciphers, but these are automatically filtered out if
10702 the server is configured to ask for client certificates. If you must
10703 always exclude anonymous ciphers, set "smtpd_tls_exclude_ciphers =
10704 aNULL". To exclude anonymous ciphers only when TLS is enforced, set
10705 "smtpd_tls_mandatory_exclude_ciphers = aNULL". </dd>
10707 <dt><b>high</b></dt>
10708 <dd> Enable only the mainstream "HIGH" grade OpenSSL ciphers. The
10709 underlying cipherlist is specified via the tls_high_cipherlist
10710 configuration parameter, which you are strongly encouraged to
10711 not change. The default value of tls_high_cipherlist includes
10712 anonymous ciphers, but these are automatically filtered out if the
10713 server is configured to ask for client certificates. If you must
10714 always exclude anonymous ciphers, set "smtpd_tls_exclude_ciphers =
10715 aNULL". To exclude anonymous ciphers only when TLS is enforced, set
10716 "smtpd_tls_mandatory_exclude_ciphers = aNULL". </dd>
10718 <dt><b>null</b></dt>
10719 <dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication
10720 without encryption. This setting is only appropriate in the rare
10721 case that all clients are prepared to use NULL ciphers (not normally
10722 enabled in TLS clients). The underlying cipherlist is specified via the
10723 tls_null_cipherlist configuration parameter, which you are strongly
10724 encouraged to not change. The default value of tls_null_cipherlist
10725 excludes anonymous ciphers (OpenSSL 0.9.8 has NULL ciphers that offer
10726 data integrity without encryption or authentication). </dd>
10730 <p> This feature is available in Postfix 2.3 and later. </p>
10732 %PARAM smtpd_tls_exclude_ciphers
10734 <p> List of ciphers or cipher types to exclude from the SMTP server
10735 cipher list at all TLS security levels. Excluding valid ciphers
10736 can create interoperability problems. DO NOT exclude ciphers unless it
10737 is essential to do so. This is not an OpenSSL cipherlist; it is a simple
10738 list separated by whitespace and/or commas. The elements are a single
10739 cipher, or one or more "+" separated cipher properties, in which case
10740 only ciphers matching <b>all</b> the properties are excluded. </p>
10742 <p> Examples (some of these will cause problems): </p>
10746 smtpd_tls_exclude_ciphers = aNULL
10747 smtpd_tls_exclude_ciphers = MD5, DES
10748 smtpd_tls_exclude_ciphers = DES+MD5
10749 smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
10750 smtpd_tls_exclude_ciphers = kEDH+aRSA
10754 <p> The first setting disables anonymous ciphers. The next setting
10755 disables ciphers that use the MD5 digest algorithm or the (single) DES
10756 encryption algorithm. The next setting disables ciphers that use MD5 and
10757 DES together. The next setting disables the two ciphers "AES256-SHA"
10758 and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
10759 key exchange with RSA authentication. </p>
10761 <p> This feature is available in Postfix 2.3 and later. </p>
10763 %PARAM smtpd_tls_mandatory_exclude_ciphers
10765 <p> Additional list of ciphers or cipher types to exclude from the
10766 SMTP server cipher list at mandatory TLS security levels. This list
10767 works in addition to the exclusions listed with smtpd_tls_exclude_ciphers
10768 (see there for syntax details). </p>
10770 <p> This feature is available in Postfix 2.3 and later. </p>
10772 %PARAM smtp_tls_mandatory_ciphers medium
10774 <p> The minimum TLS cipher grade that the Postfix SMTP client will
10776 mandatory TLS encryption. The default value "medium" is suitable
10777 for most destinations with which you may want to enforce TLS, and
10778 is beyond the reach of today's crypt-analytic methods. See
10779 smtp_tls_policy_maps for information on how to configure ciphers
10780 on a per-destination basis. </p>
10782 <p> The following cipher grades are supported: </p>
10785 <dt><b>export</b></dt>
10786 <dd> Enable the mainstream "EXPORT" grade or better OpenSSL
10787 ciphers. This is always used for opportunistic encryption. It is
10788 not recommended for mandatory encryption unless you must enforce TLS
10789 with "crippled" peers. The underlying cipherlist is specified via the
10790 tls_export_cipherlist configuration parameter, which you are strongly
10791 encouraged to not change. The default value of tls_export_cipherlist
10792 includes anonymous ciphers, but these are automatically filtered out if
10793 the client is configured to verify server certificates. If you must
10794 exclude anonymous ciphers also at the "encrypt" security level, set
10795 "smtp_tls_mandatory_exclude_ciphers = aNULL". </dd>
10797 <dt><b>low</b></dt>
10798 <dd> Enable the mainstream "LOW" grade or better OpenSSL ciphers. This
10799 setting is only appropriate for internal mail servers. The underlying
10800 cipherlist is specified via the tls_low_cipherlist configuration
10801 parameter, which you are strongly encouraged to not change. The default
10802 value of tls_low_cipherlist includes anonymous ciphers, but these are
10803 automatically filtered out if the client is configured to verify server
10804 certificates. If you must exclude anonymous ciphers also at the "encrypt"
10805 security level, set "smtp_tls_mandatory_exclude_ciphers = aNULL". </dd>
10807 <dt><b>medium</b></dt>
10808 <dd> Enable the mainstream "MEDIUM" grade or better OpenSSL ciphers.
10809 The underlying cipherlist is specified via the tls_medium_cipherlist
10810 configuration parameter, which you are strongly encouraged to not change.
10811 The default value of tls_medium_cipherlist includes anonymous ciphers,
10812 but these are automatically filtered out if the client is configured to
10813 verify server certificates. If you must exclude anonymous ciphers also
10814 at the "encrypt" security level, set "smtp_tls_mandatory_exclude_ciphers
10817 <dt><b>high</b></dt>
10818 <dd> Enable only the mainstream "HIGH" grade OpenSSL ciphers. This
10819 setting is appropriate when all mandatory TLS destinations support
10820 some of "HIGH" grade ciphers, this is not uncommon. The underlying
10821 cipherlist is specified via the tls_high_cipherlist configuration
10822 parameter, which you are strongly encouraged to not change. The default
10823 value of tls_high_cipherlist includes anonymous ciphers, but these are
10824 automatically filtered out if the client is configured to verify server
10825 certificates. If you must exclude anonymous ciphers also at the "encrypt"
10826 security level, set "smtp_tls_mandatory_exclude_ciphers = aNULL". </dd>
10828 <dt><b>null</b></dt>
10829 <dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication
10830 without encryption. This setting is only appropriate in the rare case
10831 that all servers are prepared to use NULL ciphers (not normally enabled
10832 in TLS servers). A plausible use-case is an LMTP server listening on a
10833 UNIX-domain socket that is configured to support "NULL" ciphers. The
10834 underlying cipherlist is specified via the tls_null_cipherlist
10835 configuration parameter, which you are strongly encouraged to not
10836 change. The default value of tls_null_cipherlist excludes anonymous
10837 ciphers (OpenSSL 0.9.8 has NULL ciphers that offer data integrity without
10838 encryption or authentication). </dd>
10842 <p> This feature is available in Postfix 2.3 and later. </p>
10844 %PARAM smtp_tls_exclude_ciphers
10846 <p> List of ciphers or cipher types to exclude from the Postfix
10848 list at all TLS security levels. This is not an OpenSSL cipherlist, it is
10849 a simple list separated by whitespace and/or commas. The elements are a
10850 single cipher, or one or more "+" separated cipher properties, in which
10851 case only ciphers matching <b>all</b> the properties are excluded. </p>
10853 <p> Examples (some of these will cause problems): </p>
10857 smtp_tls_exclude_ciphers = aNULL
10858 smtp_tls_exclude_ciphers = MD5, DES
10859 smtp_tls_exclude_ciphers = DES+MD5
10860 smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5
10861 smtp_tls_exclude_ciphers = kEDH+aRSA
10865 <p> The first setting, disables anonymous ciphers. The next setting
10866 disables ciphers that use the MD5 digest algorithm or the (single) DES
10867 encryption algorithm. The next setting disables ciphers that use MD5 and
10868 DES together. The next setting disables the two ciphers "AES256-SHA"
10869 and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH"
10870 key exchange with RSA authentication. </p>
10872 <p> This feature is available in Postfix 2.3 and later. </p>
10874 %PARAM smtp_tls_mandatory_exclude_ciphers
10876 <p> Additional list of ciphers or cipher types to exclude from the
10877 SMTP client cipher list at mandatory TLS security levels. This list
10878 works in addition to the exclusions listed with smtp_tls_exclude_ciphers
10879 (see there for syntax details). </p>
10881 <p> Starting with Postfix 2.6, the mandatory cipher exclusions can be
10882 specified on a per-destination basis via the TLS policy "exclude"
10883 attribute. See smtp_tls_policy_maps for notes and examples. </p>
10885 <p> This feature is available in Postfix 2.3 and later. </p>
10887 %PARAM tls_high_cipherlist ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH
10889 <p> The OpenSSL cipherlist for "HIGH" grade ciphers. This defines
10890 the meaning of the "high" setting in smtpd_tls_mandatory_ciphers,
10891 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are
10892 strongly encouraged to not change this setting. </p>
10894 <p> This feature is available in Postfix 2.3 and later. </p>
10896 %PARAM tls_medium_cipherlist ALL:!EXPORT:!LOW:+RC4:@STRENGTH
10898 <p> The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This
10899 defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers,
10900 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is
10901 the default cipherlist for mandatory TLS encryption in the TLS
10902 client (with anonymous ciphers disabled when verifying server
10903 certificates). You are strongly encouraged to not change this
10906 <p> This feature is available in Postfix 2.3 and later. </p>
10908 %PARAM tls_low_cipherlist ALL:!EXPORT:+RC4:@STRENGTH
10910 <p> The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines
10911 the meaning of the "low" setting in smtpd_tls_mandatory_ciphers,
10912 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are
10913 strongly encouraged to not change this setting. </p>
10915 <p> This feature is available in Postfix 2.3 and later. </p>
10917 %PARAM tls_export_cipherlist ALL:+RC4:@STRENGTH
10919 <p> The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This
10920 defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers,
10921 smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is
10922 the cipherlist for the opportunistic ("may") TLS client security
10923 level and is the default cipherlist for the SMTP server. You are
10924 strongly encouraged to not change this setting. </p>
10926 <p> This feature is available in Postfix 2.3 and later. </p>
10928 %PARAM tls_null_cipherlist eNULL:!aNULL
10930 <p> The OpenSSL cipherlist for "NULL" grade ciphers that provide
10931 authentication without encryption. This defines the meaning of the "null"
10932 setting in smtpd_mandatory_tls_ciphers, smtp_tls_mandatory_ciphers and
10933 lmtp_tls_mandatory_ciphers. You are strongly encouraged to not
10934 change this setting. </p>
10936 <p> This feature is available in Postfix 2.3 and later. </p>
10938 %PARAM lmtp_tls_mandatory_ciphers
10940 <p> The LMTP-specific version of the smtp_tls_mandatory_ciphers
10941 configuration parameter. See there for details. </p>
10943 <p> This feature is available in Postfix 2.3 and later. </p>
10945 %PARAM lmtp_tls_exclude_ciphers
10947 <p> The LMTP-specific version of the smtp_tls_exclude_ciphers
10948 configuration parameter. See there for details. </p>
10950 <p> This feature is available in Postfix 2.3 and later. </p>
10952 %PARAM lmtp_tls_mandatory_exclude_ciphers
10954 <p> The LMTP-specific version of the smtp_tls_mandatory_exclude_ciphers
10955 configuration parameter. See there for details. </p>
10957 <p> This feature is available in Postfix 2.3 and later. </p>
10959 %PARAM smtpd_tls_security_level
10961 <p> The SMTP TLS security level for the Postfix SMTP server; when
10962 a non-empty value is specified, this overrides the obsolete parameters
10963 smtpd_use_tls and smtpd_enforce_tls. This parameter is ignored with
10964 "smtpd_tls_wrappermode = yes". </p>
10966 <p> Specify one of the following security levels: </p>
10970 <dt><b>none</b></dt> <dd> TLS will not be used. </dd>
10972 <dt><b>may</b></dt> <dd> Opportunistic TLS: announce STARTTLS support
10973 to SMTP clients, but do not require that clients use TLS encryption.
10976 <dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption: announce
10977 STARTTLS support to SMTP clients, and require that clients use TLS
10978 encryption. According to RFC 2487 this MUST NOT be applied in case
10979 of a publicly-referenced SMTP server. Instead, this option should
10980 be used only on dedicated servers. </dd>
10984 <p> Note 1: the "fingerprint", "verify" and "secure" levels are not
10986 The Postfix SMTP server logs a warning and uses "encrypt" instead.
10987 To verify SMTP client certificates, see TLS_README for a discussion
10988 of the smtpd_tls_ask_ccert, smtpd_tls_req_ccert, and permit_tls_clientcerts
10991 <p> Note 2: The parameter setting "smtpd_tls_security_level =
10992 encrypt" implies "smtpd_tls_auth_only = yes".</p>
10994 <p> Note 3: when invoked via "sendmail -bs", Postfix will never
10995 offer STARTTLS due to insufficient privileges to access the server
10996 private key. This is intended behavior.</p>
10998 <p> This feature is available in Postfix 2.3 and later. </p>
11000 %PARAM internal_mail_filter_classes
11002 <p> What categories of Postfix-generated mail are subject to
11003 before-queue content inspection by non_smtpd_milters, header_checks
11004 and body_checks. Specify zero or more of the following, separated
11005 by whitespace or comma. </p>
11009 <dt><b>bounce</b></dt> <dd> Inspect the content of delivery
11010 status notifications. </dd>
11012 <dt><b>notify</b></dt> <dd> Inspect the content of postmaster
11013 notifications by the smtp(8) and smtpd(8) processes. </dd>
11017 <p> NOTE: It's generally not safe to enable content inspection of
11018 Postfix-generated email messages. The user is warned. </p>
11020 <p> This feature is available in Postfix 2.3 and later. </p>
11022 %PARAM smtpd_tls_always_issue_session_ids yes
11024 <p> Force the Postfix SMTP server to issue a TLS session id, even
11025 when TLS session caching is turned off (smtpd_tls_session_cache_database
11026 is empty). This behavior is compatible with Postfix < 2.3. </p>
11028 <p> With Postfix 2.3 and later the Postfix SMTP server can disable
11029 session id generation when TLS session caching is turned off. This
11030 keeps clients from caching sessions that almost certainly cannot
11033 <p> By default, the Postfix SMTP server always generates TLS session
11034 ids. This works around a known defect in mail client applications
11035 such as MS Outlook, and may also prevent interoperability issues
11036 with other MTAs. </p>
11041 smtpd_tls_always_issue_session_ids = no
11044 <p> This feature is available in Postfix 2.3 and later. </p>
11046 %PARAM smtp_pix_workarounds disable_esmtp, delay_dotcrlf
11048 <p> A list that specifies zero or more workarounds for CISCO PIX
11049 firewall bugs. These workarounds are implemented by the Postfix
11050 SMTP client. Workaround names are separated by comma or space, and
11051 are case insensitive. This parameter setting can be overruled with
11052 per-destination smtp_pix_workaround_maps settings. </p>
11056 <dt><b>delay_dotcrlf</b><dd> Insert a delay before sending
11057 ".<CR><LF>" after the end of the message content. The
11058 delay is subject to the smtp_pix_workaround_delay_time and
11059 smtp_pix_workaround_threshold_time parameter settings. </dd>
11061 <dt><b>disable_esmtp</b><dd> Disable all extended SMTP commands:
11062 send HELO instead of EHLO. </dd>
11066 <p> This feature is available in Postfix 2.4 and later. The default
11067 settings are backwards compatible with earlier Postfix versions.
11070 %PARAM smtp_pix_workaround_maps
11072 <p> Lookup tables, indexed by the remote SMTP server address, with
11073 per-destination workarounds for CISCO PIX firewall bugs. The table
11074 is not indexed by hostname for consistency with
11075 smtp_discard_ehlo_keyword_address_maps. </p>
11077 <p> This feature is available in Postfix 2.4 and later. </p>
11079 %PARAM lmtp_pix_workarounds
11081 <p> The LMTP-specific version of the smtp_pix_workaround
11082 configuration parameter. See there for details. </p>
11084 <p> This feature is available in Postfix 2.4 and later. </p>
11086 %PARAM smtp_tls_fingerprint_digest md5
11088 <p> The message digest algorithm used to construct remote SMTP server
11089 certificate fingerprints. At the "fingerprint" TLS security level
11090 (<b>smtp_tls_security_level</b> = fingerprint), the server certificate is
11091 verified by directly matching its <i>fingerprint</i>. The fingerprint
11092 is the message digest of the server certificate using the selected
11093 algorithm. With a digest algorithm resistant to "second pre-image"
11094 attacks, it is not feasible to create a new public key and a matching
11095 certificate that has the same fingerprint. </p>
11097 <p> The default algorithm is <b>md5</b>; this is consistent with
11098 the backwards compatible setting of the digest used to verify client
11099 certificates in the SMTP server. </p>
11101 <p> The best practice algorithm is now <b>sha1</b>. Recent advances in hash
11102 function cryptanalysis have led to md5 being deprecated in favor of sha1.
11103 However, as long as there are no known "second pre-image" attacks
11104 against md5, its use in this context can still be considered safe.
11107 <p> While additional digest algorithms are often available with OpenSSL's
11108 libcrypto, only those used by libssl in SSL cipher suites are available to
11109 Postfix. For now this means just md5 or sha1. </p>
11111 <p> To find the fingerprint of a specific certificate file, with a
11112 specific digest algorithm, run:
11117 $ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem
11121 <p> The text to the right of "=" sign is the desired fingerprint.
11126 $ openssl x509 -noout -fingerprint -sha1 -in cert.pem
11127 SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
11131 <p> This feature is available in Postfix 2.5 and later. </p>
11133 %PARAM smtp_tls_fingerprint_cert_match
11135 <p> List of acceptable remote SMTP server certificate fingerprints
11136 for the "fingerprint" TLS security level (<b>smtp_tls_security_level</b> =
11137 fingerprint). At this security level, certificate authorities are
11138 not used, and certificate expiration times are ignored. Instead,
11139 server certificates are verified directly via their "fingerprint". The
11140 fingerprint is a message digest of the server certificate. The digest
11141 algorithm is selected via the <b>smtp_tls_fingerprint_digest</b>
11144 <p> When an <b>smtp_tls_policy_maps</b> table entry specifies the
11145 "fingerprint" security level, any "match" attributes in that entry specify
11146 the list of valid fingerprints for the corresponding destination. Multiple
11147 fingerprints can be combined with a "|" delimiter in a single match
11148 attribute, or multiple match attributes can be employed. </p>
11150 <p> Example: Certificate fingerprint verification with internal mailhub.
11151 Two matching fingerprints are listed. The relayhost may be multiple
11152 physical hosts behind a load-balancer, each with its own private/public
11153 key and self-signed certificate. Alternatively, a single relayhost may
11154 be in the process of switching from one set of private/public keys to
11155 another, and both keys are trusted just prior to the transition. </p>
11159 relayhost = [mailhub.example.com]
11160 smtp_tls_security_level = fingerprint
11161 smtp_tls_fingerprint_digest = md5
11162 smtp_tls_fingerprint_cert_match =
11163 3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
11164 EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
11168 <p> Example: Certificate fingerprint verification with selected destinations.
11169 As in the example above, we show two matching fingerprints: </p>
11173 /etc/postfix/main.cf:
11174 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
11175 smtp_tls_fingerprint_digest = md5
11181 /etc/postfix/tls_policy:
11182 example.com fingerprint
11183 match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1
11184 match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35
11188 <p> This feature is available in Postfix 2.5 and later. </p>
11190 %PARAM lmtp_tls_fingerprint_cert_match
11192 <p> The LMTP-specific version of the smtp_tls_fingerprint_cert_match
11193 configuration parameter. See there for details. </p>
11195 <p> This feature is available in Postfix 2.5 and later. </p>
11197 %PARAM lmtp_tls_fingerprint_digest md5
11199 <p> The LMTP-specific version of the smtp_tls_fingerprint_digest
11200 configuration parameter. See there for details. </p>
11202 <p> This feature is available in Postfix 2.5 and later. </p>
11204 %PARAM smtpd_tls_fingerprint_digest md5
11206 <p> The message digest algorithm used to construct client-certificate
11207 fingerprints for <b>check_ccert_access</b> and
11208 <b>permit_tls_clientcerts</b>. The default algorithm is <b>md5</b>,
11209 for backwards compatibility with Postfix releases prior to 2.5.
11212 <p> The best practice algorithm is now <b>sha1</b>. Recent advances in hash
11213 function cryptanalysis have led to md5 being deprecated in favor of sha1.
11214 However, as long as there are no known "second pre-image" attacks
11215 against md5, its use in this context can still be considered safe.
11218 <p> While additional digest algorithms are often available with OpenSSL's
11219 libcrypto, only those used by libssl in SSL cipher suites are available to
11220 Postfix. For now this means just md5 or sha1. </p>
11222 <p> To find the fingerprint of a specific certificate file, with a
11223 specific digest algorithm, run: </p>
11227 $ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem
11231 <p> The text to the right of "=" sign is the desired fingerprint.
11236 $ openssl x509 -noout -fingerprint -sha1 -in cert.pem
11237 SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
11241 <p> Example: client-certificate access table, with sha1 fingerprints: </p>
11245 /etc/postfix/main.cf:
11246 smtpd_tls_fingerprint_digest = sha1
11247 smtpd_client_restrictions =
11248 check_ccert_access hash:/etc/postfix/access,
11252 /etc/postfix/access:
11253 # Action folded to next line...
11254 AF:88:7C:AD:51:95:6F:36:96:F6:01:FB:2E:48:CD:AB:49:25:A2:3B
11256 85:16:78:FD:73:6E:CE:70:E0:31:5F:0D:3C:C8:6D:C4:2C:24:59:E1
11257 permit_auth_destination
11261 <p> This feature is available in Postfix 2.5 and later. </p>
11263 %PARAM lmtp_pix_workaround_maps
11265 <p> The LMTP-specific version of the smtp_pix_workaround_maps
11266 configuration parameter. See there for details. </p>
11268 <p> This feature is available in Postfix 2.4 and later. </p>
11270 %PARAM detect_8bit_encoding_header yes
11272 <p> Automatically detect 8BITMIME body content by looking at
11273 Content-Transfer-Encoding: message headers; historically, this
11274 behavior was hard-coded to be "always on". </p>
11276 <p> This feature is available in Postfix 2.5 and later. </p>
11278 %PARAM send_cyrus_sasl_authzid no
11280 <p> When authenticating to a remote SMTP or LMTP server with the
11281 default setting "no", send no SASL authoriZation ID (authzid); send
11282 only the SASL authentiCation ID (authcid) plus the authcid's password.
11285 <p> The non-default setting "yes" enables the behavior of older
11286 Postfix versions. These always send a SASL authzid that is equal
11287 to the SASL authcid, but this causes inter-operability problems
11288 with some SMTP servers. </p>
11290 <p> This feature is available in Postfix 2.4.4 and later. </p>
11292 %PARAM smtpd_client_port_logging no
11294 <p> Enable logging of the remote SMTP client port in addition to
11295 the hostname and IP address. The logging format is "host[address]:port".
11298 <p> This feature is available in Postfix 2.5 and later. </p>
11300 %PARAM qmqpd_client_port_logging no
11302 <p> Enable logging of the remote QMQP client port in addition to
11303 the hostname and IP address. The logging format is "host[address]:port".
11306 <p> This feature is available in Postfix 2.5 and later. </p>
11308 %PARAM smtp_tls_protocols !SSLv2
11310 <p> List of TLS protocols that the Postfix SMTP client will exclude or
11311 include with opportunistic TLS encryption. Starting with Postfix 2.6,
11312 the Postfix SMTP client will by default not use the obsolete SSLv2
11315 <p> In main.cf the values are separated by whitespace, commas or
11316 colons. In the policy table (see smtp_tls_policy_maps) the only valid
11317 separator is colon. An empty value means allow all protocols. The valid
11318 protocol names, (see <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3"
11321 <p> To include a protocol list its name, to exclude it, prefix the name
11322 with a "!" character. To exclude SSLv2 even for opportunistic TLS set
11323 "smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set
11324 "smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to
11325 include, is supported, but not recommended. OpenSSL provides no mechanisms
11326 for excluding protocols not known at compile-time. If Postfix is linked
11327 against an OpenSSL library that supports additional protocol versions,
11328 they cannot be excluded using either syntax. </p>
11333 smtp_tls_protocols = !SSLv2, !SSLv3
11336 <p> This feature is available in Postfix 2.6 and later. </p>
11338 %PARAM smtpd_tls_protocols
11340 <p> List of TLS protocols that the Postfix SMTP server will exclude
11341 or include with opportunistic TLS encryption. This parameter SHOULD be
11342 left at its default empty value, allowing all protocols to be used with
11343 opportunistic TLS. </p>
11345 <p> In main.cf the values are separated by whitespace, commas or
11346 colons. An empty value means allow all protocols. The valid protocol
11347 names, (see <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" and
11348 "TLSv1". In smtp_tls_policy_maps table entries, "protocols" attribute
11349 values are separated by a colon. </p>
11351 <p> To include a protocol list its name, to exclude it, prefix the name
11352 with a "!" character. To exclude SSLv2 even for opportunistic TLS set
11353 "smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set
11354 "smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to
11355 include, is supported, but not recommended. OpenSSL provides no mechanisms
11356 for excluding protocols not known at compile-time. If Postfix is linked
11357 against an OpenSSL library that supports additional protocol versions,
11358 they cannot be excluded using either syntax. </p>
11362 smtpd_tls_protocols = !SSLv2
11365 <p> This feature is available in Postfix 2.6 and later. </p>
11367 %PARAM lmtp_tls_protocols
11369 <p> The LMTP-specific version of the smtp_tls_protocols configuration
11370 parameter. See there for details. </p>
11372 <p> This feature is available in Postfix 2.6 and later. </p>
11374 %PARAM smtp_tls_ciphers export
11376 <p> The minimum TLS cipher grade that the Postfix SMTP client
11377 will use with opportunistic TLS encryption. Cipher types listed in
11378 smtp_tls_exclude_ciphers are excluded from the base definition of
11379 the selected cipher grade. The default value "export" ensures maximum
11380 inter-operability. Because encryption is optional, stronger controls
11381 are not appropriate, and this setting SHOULD NOT be changed unless the
11382 change is essential. </p>
11384 <p> When TLS is mandatory the cipher grade is chosen via the
11385 smtp_tls_mandatory_ciphers configuration parameter, see there for syntax
11386 details. See smtp_tls_policy_maps for information on how to configure
11387 ciphers on a per-destination basis. </p>
11391 smtp_tls_ciphers = export
11394 <p> This feature is available in Postfix 2.6 and later. With earlier Postfix
11395 releases only the smtp_tls_mandatory_ciphers parameter is implemented,
11396 and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p>
11398 %PARAM smtpd_tls_ciphers export
11400 <p> The minimum TLS cipher grade that the Postfix SMTP server
11401 will use with opportunistic TLS encryption. Cipher types listed in
11402 smtpd_tls_exclude_ciphers are excluded from the base definition of
11403 the selected cipher grade. The default value "export" ensures maximum
11404 inter-operability. Because encryption is optional, stronger controls
11405 are not appropriate, and this setting SHOULD NOT be changed unless the
11406 change is essential. </p>
11408 <p> When TLS is mandatory the cipher grade is chosen via the
11409 smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax
11414 smtpd_tls_ciphers = export
11417 <p> This feature is available in Postfix 2.6 and later. With earlier Postfix
11418 releases only the smtpd_tls_mandatory_ciphers parameter is implemented,
11419 and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p>
11421 %PARAM lmtp_tls_ciphers export
11423 <p> The LMTP-specific version of the smtp_tls_ciphers configuration
11424 parameter. See there for details. </p>
11426 <p> This feature is available in Postfix 2.6 and later. </p>
11428 %PARAM tls_eecdh_strong_curve prime256v1
11430 <p> The elliptic curve used by the SMTP server for sensibly strong
11431 ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
11432 server when "smtpd_tls_eecdh_grade = strong". The phrase "sensibly
11433 strong" means approximately 128-bit security based on best known
11434 attacks. The selected curve must be implemented by OpenSSL (as
11435 reported by ecparam(1) with the "-list_curves" option) and be one
11436 of the curves listed in Section 5.1.1 of RFC 4492. You should not
11437 generally change this setting. </p>
11439 <p> This default curve is specified in NSA "Suite B" Cryptography
11440 (see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for
11441 information classified as SECRET. </p>
11443 <p> Note: elliptic curve names are poorly standardized; different
11444 standards groups are assigning different names to the same underlying
11445 curves. The curve with the X9.62 name "prime256v1" is also known
11446 under the SECG name "secp256r1", but OpenSSL does not recognize the
11449 <p> This feature is available in Postfix 2.6 and later, when it is
11450 compiled and linked with OpenSSL 0.9.9 or later. </p>
11452 %PARAM tls_eecdh_ultra_curve secp384r1
11454 <p> The elliptic curve used by the SMTP server for maximally strong
11455 ephemeral ECDH key exchange. This curve is used by the Postfix SMTP
11456 server when "smtpd_tls_eecdh_grade = ultra". The phrase "maximally
11457 strong" means approximately 192-bit security based on best known attacks.
11458 This additional strength comes at a significant computational cost, most
11459 users should instead set "smtpd_tls_eecdh_grade = strong". The selected
11460 curve must be implemented by OpenSSL (as reported by ecparam(1) with the
11461 "-list_curves" option) and be one of the curves listed in Section 5.1.1
11462 of RFC 4492. You should not generally change this setting. </p>
11464 <p> This default "ultra" curve is specified in NSA "Suite B" Cryptography
11465 (see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for information
11466 classified as TOP SECRET. </p>
11468 <p> This feature is available in Postfix 2.6 and later, when it is
11469 compiled and linked with OpenSSL 0.9.9 or later. </p>
11471 %PARAM smtpd_tls_eecdh_grade see "postconf -d" output
11473 <p> The Postfix SMTP server security grade for ephemeral elliptic-curve
11474 Diffie-Hellman (EECDH) key exchange. </p>
11476 <p> The available choices are: </p>
11480 <dt><b>none</b></dt> <dd> Don't use EECDH. Ciphers based on EECDH key
11481 exchange will be disabled. This is the default in official Postfix
11482 releases (mail_version = major.minor.patchlevel). </dd>
11484 <dt><b>strong</b></dt> <dd> Use EECDH with approximately 128
11485 bits of security at a reasonable computational cost. This is the
11486 current best-practice trade-off between security and computational
11487 efficiency. This is the default in Postfix snapshot releases
11488 (mail_version = major.minor-releasedate). </dd>
11490 <dt><b>ultra</b></dt> <dd> Use EECDH with approximately 192 bits of
11491 security at computational cost that is approximately twice as high
11492 as 128 bit strength ECC. Barring significant progress in attacks on
11493 elliptic curve crypto-systems, the "strong" curve is sufficient for most
11498 <p> This feature is available in Postfix 2.6 and later, when it is
11499 compiled and linked with OpenSSL 0.9.9 or later. </p>
11501 %PARAM smtpd_tls_eccert_file
11503 <p> File with the Postfix SMTP server ECDSA certificate in PEM format.
11504 This file may also contain the Postfix SMTP server private ECDSA key. </p>
11506 <p> See the discussion under smtpd_tls_cert_file for more details. </p>
11511 smtpd_tls_eccert_file = /etc/postfix/ecdsa-scert.pem
11514 <p> This feature is available in Postfix 2.6 and later, when Postfix is
11515 compiled and linked with OpenSSL 0.9.9 or later. </p>
11517 %PARAM smtpd_tls_eckey_file $smtpd_tls_eccert_file
11519 <p> File with the Postfix SMTP server ECDSA private key in PEM format.
11520 This file may be combined with the Postfix SMTP server ECDSA certificate
11521 file specified with $smtpd_tls_eccert_file. </p>
11523 <p> The private key must be accessible without a pass-phrase, i.e. it
11524 must not be encrypted. File permissions should grant read-only
11525 access to the system superuser account ("root"), and no access
11526 to anyone else. </p>
11528 <p> This feature is available in Postfix 2.6 and later, when Postfix is
11529 compiled and linked with OpenSSL 0.9.9 or later. </p>
11531 %PARAM smtp_tls_eccert_file
11533 <p> File with the Postfix SMTP client ECDSA certificate in PEM format.
11534 This file may also contain the Postfix SMTP client ECDSA private key. </p>
11536 <p> See the discussion under smtp_tls_cert_file for more details.
11542 smtp_tls_eccert_file = /etc/postfix/ecdsa-ccert.pem
11545 <p> This feature is available in Postfix 2.6 and later, when Postfix is
11546 compiled and linked with OpenSSL 0.9.9 or later. </p>
11548 %PARAM smtp_tls_eckey_file $smtp_tls_eccert_file
11550 <p> File with the Postfix SMTP client ECDSA private key in PEM format.
11551 This file may be combined with the Postfix SMTP client ECDSA
11552 certificate file specified with $smtp_tls_eccert_file. </p>
11554 <p> The private key must be accessible without a pass-phrase, i.e. it
11555 must not be encrypted. File permissions should grant read-only
11556 access to the system superuser account ("root"), and no access
11557 to anyone else. </p>
11559 <p> This feature is available in Postfix 2.6 and later, when Postfix is
11560 compiled and linked with OpenSSL 0.9.9 or later. </p>
11562 %PARAM lmtp_tls_eccert_file
11564 <p> The LMTP-specific version of the smtp_tls_eccert_file configuration
11565 parameter. See there for details. </p>
11567 <p> This feature is available in Postfix 2.6 and later, when Postfix is
11568 compiled and linked with OpenSSL 0.9.9 or later. </p>
11570 %PARAM lmtp_tls_eckey_file
11572 <p> The LMTP-specific version of the smtp_tls_eckey_file configuration
11573 parameter. See there for details. </p>
11575 <p> This feature is available in Postfix 2.6 and later, when Postfix is
11576 compiled and linked with OpenSSL 0.9.9 or later. </p>
11578 %PARAM smtp_header_checks
11580 <p> Restricted header_checks(5) tables for the Postfix SMTP client.
11581 These tables are searched while mail is being delivered. Actions
11582 that change the delivery time or destination are not available.
11585 <p> This feature is available in Postfix 2.5 and later. </p>
11587 %PARAM smtp_mime_header_checks
11589 <p> Restricted mime_header_checks(5) tables for the Postfix SMTP
11590 client. These tables are searched while mail is being delivered.
11591 Actions that change the delivery time or destination are not
11594 <p> This feature is available in Postfix 2.5 and later. </p>
11596 %PARAM smtp_nested_header_checks
11598 <p> Restricted nested_header_checks(5) tables for the Postfix SMTP
11599 client. These tables are searched while mail is being delivered.
11600 Actions that change the delivery time or destination are not
11603 <p> This feature is available in Postfix 2.5 and later. </p>
11605 %PARAM smtp_body_checks
11607 <p> Restricted body_checks(5) tables for the Postfix SMTP client.
11608 These tables are searched while mail is being delivered. Actions
11609 that change the delivery time or destination are not available.
11612 <p> This feature is available in Postfix 2.5 and later. </p>
11614 %PARAM destination_concurrency_feedback_debug no
11616 <p> Make the queue manager's feedback algorithm verbose for performance
11617 analysis purposes. </p>
11619 <p> This feature is available in Postfix 2.5 and later. </p>
11621 %PARAM default_destination_concurrency_failed_cohort_limit 1
11623 <p> How many pseudo-cohorts must suffer connection or handshake
11624 failure before a specific destination is considered unavailable
11625 (and further delivery is suspended). Specify zero to disable this
11626 feature. A destination's pseudo-cohort failure count is reset each
11627 time a delivery completes without connection or handshake failure
11628 for that specific destination. </p>
11630 <p> A pseudo-cohort is the number of deliveries equal to a destination's
11631 delivery concurrency. </p>
11633 <p> Use <i>transport</i>_destination_concurrency_failed_cohort_limit to specify
11634 a transport-specific override, where <i>transport</i> is the master.cf
11635 name of the message delivery transport. </p>
11637 <p> This feature is available in Postfix 2.5. The default setting
11638 is compatible with earlier Postfix versions. </p>
11640 %PARAM default_destination_concurrency_negative_feedback 1
11642 <p> The per-destination amount of delivery concurrency negative
11643 feedback, after a delivery completes with a connection or handshake
11644 failure. Feedback values are in the range 0..1 inclusive. With
11645 negative feedback, concurrency is decremented at the beginning of
11646 a sequence of length 1/feedback. This is unlike positive feedback,
11647 where concurrency is incremented at the end of a sequence of length
11650 <p> As of Postfix version 2.5, negative feedback cannot reduce
11651 delivery concurrency to zero. Instead, a destination is marked
11652 dead (further delivery suspended) after the failed pseudo-cohort
11653 count reaches $default_destination_concurrency_failed_cohort_limit
11654 (or $<i>transport</i>_destination_concurrency_failed_cohort_limit).
11655 To make the scheduler completely immune to connection or handshake
11656 failures, specify a zero feedback value and a zero failed pseudo-cohort
11659 <p> Specify one of the following forms: </p>
11663 <dt> <b><i>number</i> </b> </dt>
11665 <dt> <b><i>number</i> / <i>number</i> </b> </dt>
11667 <dd> Constant feedback. The value must be in the range 0..1 inclusive.
11668 The default setting of "1" is compatible with Postfix versions
11669 before 2.5, where a destination's delivery concurrency is throttled
11670 down to zero (and further delivery suspended) after a single failed
11671 pseudo-cohort. </dd>
11673 <dt> <b><i>number</i> / concurrency </b> </dt>
11675 <dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
11676 The <i>number</i> must be in the range 0..1 inclusive. With
11677 <i>number</i> equal to "1", a destination's delivery concurrency
11678 is decremented by 1 after each failed pseudo-cohort. </dd>
11682 <dt> <b><i>number</i> / sqrt_concurrency </b> </dt>
11684 <dd> Variable feedback of "<i>number</i> / sqrt(delivery concurrency)".
11685 The <i>number</i> must be in the range 0..1 inclusive. This setting
11686 may be removed in a future version. </dd>
11692 <p> A pseudo-cohort is the number of deliveries equal to a destination's
11693 delivery concurrency. </p>
11695 <p> Use <i>transport</i>_destination_concurrency_negative_feedback
11696 to specify a transport-specific override, where <i>transport</i>
11698 name of the message delivery transport. </p>
11700 <p> This feature is available in Postfix 2.5. The default setting
11701 is compatible with earlier Postfix versions. </p>
11703 %PARAM default_destination_concurrency_positive_feedback 1
11705 <p> The per-destination amount of delivery concurrency positive
11706 feedback, after a delivery completes without connection or handshake
11707 failure. Feedback values are in the range 0..1 inclusive. The
11708 concurrency increases until it reaches the per-destination maximal
11709 concurrency limit. With positive feedback, concurrency is incremented
11710 at the end of a sequence with length 1/feedback. This is unlike
11711 negative feedback, where concurrency is decremented at the start
11712 of a sequence of length 1/feedback. </p>
11714 <p> Specify one of the following forms: </p>
11718 <dt> <b><i>number</i> </b> </dt>
11720 <dt> <b><i>number</i> / <i>number</i> </b> </dt>
11722 <dd> Constant feedback. The value must be in the range 0..1
11723 inclusive. The default setting of "1" is compatible with Postfix
11724 versions before 2.5, where a destination's delivery concurrency
11725 doubles after each successful pseudo-cohort. </dd>
11727 <dt> <b><i>number</i> / concurrency </b> </dt>
11729 <dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
11730 The <i>number</i> must be in the range 0..1 inclusive. With
11731 <i>number</i> equal to "1", a destination's delivery concurrency
11732 is incremented by 1 after each successful pseudo-cohort. </dd>
11736 <dt> <b><i>number</i> / sqrt_concurrency </b> </dt>
11738 <dd> Variable feedback of "<i>number</i> / sqrt(delivery concurrency)".
11739 The <i>number</i> must be in the range 0..1 inclusive. This setting
11740 may be removed in a future version. </dd>
11746 <p> A pseudo-cohort is the number of deliveries equal to a destination's
11747 delivery concurrency. </p>
11749 <p> Use <i>transport</i>_destination_concurrency_positive_feedback
11750 to specify a transport-specific override, where <i>transport</i>
11751 is the master.cf name of the message delivery transport. </p>
11753 <p> This feature is available in Postfix 2.5 and later. </p>
11755 %PARAM transport_destination_concurrency_failed_cohort_limit $default_destination_concurrency_failed_cohort_limit
11757 <p> A transport-specific override for the
11758 default_destination_concurrency_failed_cohort_limit parameter value,
11759 where <i>transport</i> is the master.cf name of the message delivery
11762 <p> This feature is available in Postfix 2.5 and later. </p>
11764 %PARAM transport_destination_concurrency_positive_feedback $default_destination_concurrency_positive_feedback
11766 <p> A transport-specific override for the
11767 default_destination_concurrency_positive_feedback parameter value,
11768 where <i>transport</i> is the master.cf name of the message delivery
11771 <p> This feature is available in Postfix 2.5 and later. </p>
11773 %PARAM transport_destination_concurrency_negative_feedback $default_destination_concurrency_negative_feedback
11775 <p> A transport-specific override for the
11776 default_destination_concurrency_negative_feedback parameter value,
11777 where <i>transport</i> is the master.cf name of the message delivery
11780 <p> This feature is available in Postfix 2.5 and later. </p>
11782 %PARAM transport_initial_destination_concurrency $initial_destination_concurrency
11784 <p> A transport-specific override for the initial_destination_concurrency
11785 parameter value, where <i>transport</i> is the master.cf name of
11786 the message delivery transport. </p>
11788 <p> This feature is available in Postfix 2.5 and later. </p>
11790 %PARAM transport_destination_concurrency_limit $default_destination_concurrency_limit
11792 <p> A transport-specific override for the
11793 default_destination_concurrency_limit parameter value, where
11794 <i>transport</i> is the master.cf name of the message delivery
11797 %PARAM transport_destination_recipient_limit $default_destination_recipient_limit
11799 <p> A transport-specific override for the
11800 default_destination_recipient_limit parameter value, where
11801 <i>transport</i> is the master.cf name of the message delivery
11804 %PARAM transport_time_limit $command_time_limit
11806 <p> A transport-specific override for the command_time_limit parameter
11807 value, where <i>transport</i> is the master.cf name of the message
11808 delivery transport. </p>
11810 %PARAM transport_delivery_slot_cost $default_delivery_slot_cost
11812 <p> A transport-specific override for the default_delivery_slot_cost
11813 parameter value, where <i>transport</i> is the master.cf name of
11814 the message delivery transport. </p>
11816 %PARAM transport_delivery_slot_loan $default_delivery_slot_loan
11818 <p> A transport-specific override for the default_delivery_slot_loan
11819 parameter value, where <i>transport</i> is the master.cf name of
11820 the message delivery transport. </p>
11822 %PARAM transport_delivery_slot_discount $default_delivery_slot_discount
11824 <p> A transport-specific override for the default_delivery_slot_discount
11825 parameter value, where <i>transport</i> is the master.cf name of
11826 the message delivery transport. </p>
11828 %PARAM transport_minimum_delivery_slots $default_minimum_delivery_slots
11830 <p> A transport-specific override for the default_minimum_delivery_slots
11831 parameter value, where <i>transport</i> is the master.cf name of
11832 the message delivery transport. </p>
11834 %PARAM transport_recipient_limit $default_recipient_limit
11836 <p> A transport-specific override for the default_recipient_limit
11837 parameter value, where <i>transport</i> is the master.cf name of
11838 the message delivery transport. </p>
11840 %PARAM transport_extra_recipient_limit $default_extra_recipient_limit
11842 <p> A transport-specific override for the default_extra_recipient_limit
11843 parameter value, where <i>transport</i> is the master.cf name of
11844 the message delivery transport. </p>
11846 %PARAM transport_recipient_refill_limit $default_recipient_refill_limit
11848 <p> A transport-specific override for the default_recipient_refill_limit
11849 parameter value, where <i>transport</i> is the master.cf name of
11850 the message delivery transport. </p>
11852 <p> This feature is available in Postfix 2.4 and later. </p>
11854 %PARAM transport_recipient_refill_delay $default_recipient_refill_delay
11856 <p> A transport-specific override for the default_recipient_refill_delay
11857 parameter value, where <i>transport</i> is the master.cf name of
11858 the message delivery transport. </p>
11860 <p> This feature is available in Postfix 2.4 and later. </p>
11862 %PARAM default_destination_rate_delay 0s
11864 <p> The default amount of delay that is inserted between individual
11865 deliveries to the same destination; with per-destination recipient
11866 limit > 1, a destination is a domain, otherwise it is a recipient.
11869 <p> To enable the delay, specify a non-zero time value (an integral
11870 value plus an optional one-letter suffix that specifies the time
11873 <p> Time units: s (seconds), m (minutes), h (hours), d (days), w
11874 (weeks). The default time unit is s (seconds). </p>
11876 <p> NOTE: the delay is enforced by the queue manager. The delay
11877 timer state does not survive "postfix reload" or "postfix stop".
11880 <p> Use <i>transport</i>_destination_rate_delay to specify a
11881 transport-specific override, where <i>transport</i> is the master.cf
11882 name of the message delivery transport.
11885 <p> This feature is available in Postfix 2.5 and later. </p>
11887 %PARAM transport_destination_rate_delay $default_destination_rate_delay
11889 <p> A transport-specific override for the default_destination_rate_delay
11890 parameter value, where <i>transport</i> is the master.cf name of
11891 the message delivery transport. </p>
11893 <p> This feature is available in Postfix 2.5 and later. </p>
11895 %PARAM data_directory see "postconf -d" output
11897 <p> The directory with Postfix-writable data files (for example:
11898 caches, pseudo-random numbers). This directory must be owned by
11899 the mail_owner account, and must not be shared with non-Postfix
11902 <p> This feature is available in Postfix 2.5 and later. </p>
11906 <p> This feature is documented in the STRESS_README document. </p>
11908 <p> This feature is available in Postfix 2.5 and later. </p>
11910 %PARAM smtp_sasl_auth_soft_bounce yes
11912 <p> When a remote SMTP server rejects a SASL authentication request
11913 with a 535 reply code, defer mail delivery instead of returning
11914 mail as undeliverable. The latter behavior was hard-coded prior to
11915 Postfix version 2.5. </p>
11917 <p> Note: the setting "yes" overrides the global soft_bounce
11918 parameter, but the setting "no" does not. </p>
11923 # Default as of Postfix 2.5
11924 smtp_sasl_auth_soft_bounce = yes
11925 # The old hard-coded default
11926 smtp_sasl_auth_soft_bounce = no
11929 <p> This feature is available in Postfix 2.5 and later. </p>
11931 %PARAM smtp_sasl_auth_cache_name
11933 <p> An optional table to prevent repeated SASL authentication
11934 failures with the same remote SMTP server hostname, username and
11935 password. Each table (key, value) pair contains a server name, a
11936 username and password, and the full server response. This information
11937 is stored when a remote SMTP server rejects an authentication attempt
11938 with a 535 reply code. As long as the smtp_sasl_password_maps
11939 information does no change, and as long as the smtp_sasl_auth_cache_name
11940 information does not expire (see smtp_sasl_auth_cache_time) the
11941 Postfix SMTP client avoids SASL authentication attempts with the
11942 same server, username and password, and instead bounces or defers
11943 mail as controlled with the smtp_sasl_auth_soft_bounce configuration
11946 <p> Use a per-destination delivery concurrency of 1 (for example,
11947 "smtp_destination_concurrency_limit = 1",
11948 "relay_destination_concurrency_limit = 1", etc.), otherwise multiple
11949 delivery agents may experience a login failure at the same time.
11952 <p> The table must be accessed via the proxywrite service, i.e. the
11953 map name must start with "proxy:". The table should be stored under
11954 the directory specified with the data_directory parameter. </p>
11956 <p> This feature uses cryptographic hashing to protect plain-text
11957 passwords, and requires that Postfix is compiled with TLS support.
11963 smtp_sasl_auth_cache_name = proxy:btree:/var/db/postfix/sasl_auth_cache
11966 <p> This feature is available in Postfix 2.5 and later. </p>
11968 %PARAM smtp_sasl_auth_cache_time 90d
11970 <p> The maximal age of an smtp_sasl_auth_cache_name entry before it
11973 <p> This feature is available in Postfix 2.5 and later. </p>
11975 %PARAM lmtp_sasl_auth_soft_bounce yes
11977 <p> The LMTP-specific version of the smtp_sasl_auth_soft_bounce
11978 configuration parameter. See there for details. </p>
11980 <p> This feature is available in Postfix 2.5 and later. </p>
11982 %PARAM lmtp_sasl_auth_cache_name
11984 <p> The LMTP-specific version of the smtp_sasl_auth_cache_name
11985 configuration parameter. See there for details. </p>
11987 <p> This feature is available in Postfix 2.5 and later. </p>
11989 %PARAM lmtp_sasl_auth_cache_time 90d
11991 <p> The LMTP-specific version of the smtp_sasl_auth_cache_time
11992 configuration parameter. See there for details. </p>
11994 <p> This feature is available in Postfix 2.5 and later. </p>
11996 %PARAM unverified_sender_reject_reason
11998 <p> The Postfix SMTP server's reply when rejecting mail with
11999 reject_unverified_sender. Do not include the numeric SMTP reply
12000 code or the enhanced status code. By default, the response includes
12001 actual address verification details.
12006 unverified_sender_reject_reason = Sender address lookup failed
12009 <p> This feature is available in Postfix 2.6 and later. </p>
12011 %PARAM unverified_recipient_reject_reason
12013 <p> The Postfix SMTP server's reply when rejecting mail with
12014 reject_unverified_recipient. Do not include the numeric SMTP reply
12015 code or the enhanced status code. By default, the response includes
12016 actual address verification details.
12021 unverified_recipient_reject_reason = Recipient address lookup failed
12024 <p> This feature is available in Postfix 2.6 and later. </p>
12026 %PARAM strict_mailbox_ownership yes
12028 <p> Defer delivery when a mailbox file is not owned by its recipient.
12029 The default setting is not backwards compatible. </p>
12031 <p> This feature is available in Postfix 2.5.3 and later. </p>
12033 %PARAM proxymap_service_name proxymap
12035 <p> The name of the proxymap read-only table lookup service. This
12036 service is normally implemented by the proxymap(8) daemon. </p>
12038 <p> This feature is available in Postfix 2.6 and later. </p>
12040 %PARAM proxywrite_service_name proxywrite
12042 <p> The name of the proxywrite read-write table lookup service.
12043 This service is normally implemented by the proxymap(8) daemon.
12046 <p> This feature is available in Postfix 2.6 and later. </p>
12048 %PARAM master_service_disable
12050 <p> Selectively disable master(8) listener ports by service type
12051 or by service name and type. Specify a list of service types
12052 ("inet", "unix", "fifo", or "pass") or "name.type" tuples, where
12053 "name" is the first field of a master.cf entry and "type" is a
12054 service type. As with other Postfix matchlists, a search stops at
12055 the first match. Specify "!pattern" to exclude a service from the
12056 list. By default, all master(8) listener ports are enabled. </p>
12058 <p> Note: this feature does not support "/file/name" or "type:table"
12059 patterns, nor does it support wildcards such as "*" or "all". This
12060 is intentional. </p>
12065 # Turn on all master(8) listener ports (the default).
12066 master_service_disable =
12067 # Turn off only the main SMTP listener port.
12068 master_service_disable = smtp.inet
12069 # Turn off all TCP/IP listener ports.
12070 master_service_disable = inet
12071 # Turn off all TCP/IP listener ports except "foo".
12072 master_service_disable = !foo.inet, inet
12075 <p> This feature is available in Postfix 2.6 and later. </p>
12077 %PARAM tcp_windowsize 0
12079 <p> An optional workaround for routers that break TCP window scaling.
12080 Specify a value > 0 and < 65536 to enable this feature. With
12081 Postfix TCP servers (smtpd(8), qmqpd(8)), this feature is implemented
12082 by the Postfix master(8) daemon. </p>
12084 <p> To change this parameter without stopping Postfix, you need to
12085 first terminate all Postfix TCP servers: </p>
12089 # postconf -e master_service_disable=inet
12094 <p> This immediately terminates all processes that accept network
12095 connections. Next, you enable Postfix TCP servers with the updated
12096 tcp_windowsize setting: </p>
12100 # postconf -e tcp_windowsize=65535 master_service_disable=
12105 <p> If you skip these steps with a running Postfix system, then the
12106 tcp_windowsize change will work only for Postfix TCP clients (smtp(8),
12109 <p> This feature is available in Postfix 2.6 and later. </p>
12111 %PARAM multi_instance_directories
12113 <p> An optional list of non-default Postfix configuration directories;
12114 these directories belong to additional Postfix instances that share
12115 the Postfix executable files and documentation with the default
12116 Postfix instance, and that are started, stopped, etc., together
12117 with the default Postfix instance. Specify a list of pathnames
12118 separated by comma or whitespace. </p>
12120 <p> When $multi_instance_directories is empty, the postfix(1) command
12121 runs in single-instance mode and operates on a single Postfix
12122 instance only. Otherwise, the postfix(1) command runs in multi-instance
12123 mode and invokes the multi-instance manager specified with the
12124 multi_instance_wrapper parameter. The multi-instance manager in
12125 turn executes postfix(1) commands for the default instance and for
12126 all Postfix instances in $multi_instance_directories. </p>
12128 <p> Currently, this parameter setting is ignored except for the
12129 default main.cf file. </p>
12131 <p> This feature is available in Postfix 2.6 and later. </p>
12133 %PARAM multi_instance_wrapper
12135 <p> The pathname of a multi-instance manager command that the
12136 postfix(1) command invokes when the multi_instance_directories
12137 parameter value is non-empty. The pathname may be followed by
12138 initial command arguments separated by whitespace; shell
12139 metacharacters such as quotes are not supported in this context.
12142 <p> The postfix(1) command invokes the manager command with the
12143 postfix(1) non-option command arguments on the manager command line,
12144 and with all installation configuration parameters exported into
12145 the manager command process environment. The manager command in
12146 turn invokes the postfix(1) command for individual Postfix instances
12147 as "postfix -c <i>config_directory</i> <i>command</i>". </p>
12149 <p> This feature is available in Postfix 2.6 and later. </p>
12151 %PARAM multi_instance_group
12153 <p> The optional instance group name of this Postfix instance. A
12154 group identifies closely-related Postfix instances that the
12155 multi-instance manager can start, stop, etc., as a unit. This
12156 parameter is reserved for the multi-instance manager. </p>
12158 <p> This feature is available in Postfix 2.6 and later. </p>
12160 %PARAM multi_instance_name
12162 <p> The optional instance name of this Postfix instance. This name
12163 becomes also the default value for the syslog_name parameter. </p>
12165 <p> This feature is available in Postfix 2.6 and later. </p>
12167 %PARAM multi_instance_enable no
12169 <p> Allow this Postfix instance to be started, stopped, etc., by a
12170 multi-instance manager. By default, new instances are created in
12171 a safe state that prevents them from being started inadvertently.
12172 This parameter is reserved for the multi-instance manager. </p>
12174 <p> This feature is available in Postfix 2.6 and later. </p>
12176 %PARAM reject_tempfail_action defer_if_permit
12178 <p> The Postfix SMTP server's action when a reject-type restriction
12179 fails due to a temporary error condition. Specify "defer" to defer
12180 the remote SMTP client request immediately. With the default
12181 "defer_if_permit" action, the Postfix SMTP server continues to look
12182 for opportunities to reject mail, and defers the client request
12183 only if it would otherwise be accepted. </p>
12185 <p> For finer control, see: unverified_recipient_tempfail_action,
12186 unverified_sender_tempfail_action, unknown_address_tempfail_action,
12187 and unknown_helo_hostname_tempfail_action. </p>
12189 <p> This feature is available in Postfix 2.6 and later. </p>
12191 %PARAM unverified_recipient_tempfail_action $reject_tempfail_action
12193 <p> The Postfix SMTP server's action when reject_unverified_recipient
12194 fails due to a temporary error condition. Specify "defer" to defer
12195 the remote SMTP client request immediately. With the default
12196 "defer_if_permit" action, the Postfix SMTP server continues to look
12197 for opportunities to reject mail, and defers the client request
12198 only if it would otherwise be accepted. </p>
12200 <p> This feature is available in Postfix 2.6 and later. </p>
12202 %PARAM unverified_sender_tempfail_action $reject_tempfail_action
12204 <p> The Postfix SMTP server's action when reject_unverified_sender
12205 fails due to a temporary error condition. Specify "defer" to defer
12206 the remote SMTP client request immediately. With the default
12207 "defer_if_permit" action, the Postfix SMTP server continues to look
12208 for opportunities to reject mail, and defers the client request
12209 only if it would otherwise be accepted. </p>
12211 <p> This feature is available in Postfix 2.6 and later. </p>
12213 %PARAM unknown_address_tempfail_action $reject_tempfail_action
12215 <p> The Postfix SMTP server's action when reject_unknown_sender_domain
12216 or reject_unknown_recipient_domain fail due to a temporary error
12217 condition. Specify "defer" to defer the remote SMTP client request
12218 immediately. With the default "defer_if_permit" action, the Postfix
12219 SMTP server continues to look for opportunities to reject mail, and
12220 defers the client request only if it would otherwise be accepted.
12223 <p> This feature is available in Postfix 2.6 and later. </p>
12225 %PARAM unknown_helo_hostname_tempfail_action $reject_tempfail_action
12227 <p> The Postfix SMTP server's action when reject_unknown_helo_hostname
12228 fails due to an temporary error condition. Specify "defer" to defer
12229 the remote SMTP client request immediately. With the default
12230 "defer_if_permit" action, the Postfix SMTP server continues to look
12231 for opportunities to reject mail, and defers the client request
12232 only if it would otherwise be accepted. </p>
12234 <p> This feature is available in Postfix 2.6 and later. </p>
12236 %PARAM postmulti_start_commands start
12238 <p> The postfix(1) commands that the postmulti(1) instance manager treats
12239 as "start" commands. For these commands, disabled instances are "checked"
12240 rather than "started", and failure to "start" a member instance of an
12241 instance group will abort the start-up of later instances. </p>
12243 <p> This feature is available in Postfix 2.6 and later. </p>
12245 %PARAM postmulti_stop_commands see "postconf -d" output
12247 <p> The postfix(1) commands that the postmulti(1) instance manager treats
12248 as "stop" commands. For these commands, disabled instances are skipped,
12249 and enabled instances are processed in reverse order. </p>
12251 <p> This feature is available in Postfix 2.6 and later. </p>
12253 %PARAM postmulti_control_commands reload flush
12255 <p> The postfix(1) commands that the postmulti(1) instance manager
12256 treats as "control" commands, that operate on running instances. For
12257 these commands, disabled instances are skipped. </p>
12259 <p> This feature is available in Postfix 2.6 and later. </p>
12261 %PARAM lmtp_assume_final no
12263 <p> When an LMTP server announces no DSN support, assume that the
12264 server performs final delivery, and send "delivered" delivery status
12265 notifications instead of "relayed". The default setting is backwards
12266 compatible to avoid the infinetisimal possibility of breaking
12267 existing LMTP-based content filters. </p>
12269 %PARAM always_add_missing_headers no
12271 <p> Always add (Resent-) From:, To:, Date: or Message-ID: headers
12272 when not present. Postfix 2.6 and later add these headers only
12273 when clients match the local_header_rewrite_clients parameter
12274 setting. Earlier Postfix versions always add these headers; this
12275 may break DKIM signatures that cover non-existent headers. </p>