|
|
|
|
Quellcode-Bibliothek postconf.5.html
Sprache: HTML
|
|
| products/Sources/formale Sprachen/C/Postfix/html/postconf.5.html |
 |
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
"https://www.w3.org/TR/html4/loose.dtd">
< html>
< head>
< title>Postfix Configuration Parameters </ title>
< meta http-equiv= "Content-Type" content= "text/html; charset=utf-8">
< link rel= 'stylesheet' type= 'text/css' href= 'postfix-doc.css'>
< script type= "text/javascript">
// See support.google.com/chrome/thread/ 11993079
const isChrome = /Chrome/.test(navigator.userAgent)
&& /Google Inc/.test(navigator.vendor);
const hash = window.location.hash;
if (hash && isChrome) {
setTimeout(function() {
window.location.hash = "";
window.location.hash = hash;
}, 1500);
}
</ script>
</ head>
< body>
< h1>< img src= "postfix-logo.jpg" width= "203" height= "98" alt= "">Postfix Configuration Param eters </h1>
<hr>
<h2> Postfix main.cf file format </h2>
<p> The Postfix <a href="postconf.5.html">main.cf</a> configuration file specifies a very small
subset of all the parameters that control the operation of the
Postfix mail system. Parameters not explicitly specified are left
at their default values. </p>
<p> The general format of the <a href="postconf.5.html">main.cf</a> file is as follows: </p>
<ul>
<li> <p> Each logical line is in the form "parameter = value".
Whitespace around the "=" is ignored, as is whitespace at the end
of a logical line. </p>
<li> <p> Empty lines and whitespace-only lines are ignored, as are
lines whose first non-whitespace character is a `#'. </p>
<li> <p> A logical line starts with non-whitespace text. A line
that starts with whitespace continues a logical line. </p>
<li> <p> A parameter value may refer to functions or other parameters. </p>
<ul>
<li> <p> The expressions "$name" and "${name}" are recursively
replaced with the value of the named parameter. The parameter name
must contain only characters from the set [a-zA-Z0-9_].
An undefined parameter value is replaced with the empty value. </p>
<li> <p> The expressions "${name?value}" and "${name?{value}}" are
replaced with "value" when "$name" is non-empty. The parameter name
must contain only characters from the set [a-zA-Z0-9_]. These forms are
supported with Postfix versions ≥ 2.2 and ≥ 3.0, respectively.
</p>
<li> <p> The expressions "${name:value}" and "${name:{value}}" are
replaced with "value" when "$name" is empty. The parameter name must
contain only characters from the set [a-zA-Z0-9_]. These forms are
supported with Postfix versions ≥ 2.2 and ≥ 3.0, respectively.
</p>
<li> <p> The expression "${name?{value1}:{value2}}" is replaced
with "value1" when "$name" is non-empty, and with "value2" when
"$name" is empty. The "{}" is required for "value1", optional for
"value2". The parameter name must contain only characters from the
set [a-zA-Z0-9_]. This form is supported with Postfix versions
≥ 3.0. </p>
<li> <p> The first item inside "${...}" may be a relational expression
of the form: "{value3} == {value4}". Besides the "==" (equality)
operator Postfix supports "!=" (inequality), "<", "≤", "≥",
and ">". The comparison is numerical when both operands are all
digits, otherwise the comparison is lexicographical. These forms
are supported with Postfix versions ≥ 3.0. </p>
<li> <p> The expression "${name{value}}" is replaced with the result
from calling the function <i>name</i> with the argument <i>value</i>
after stripping whitespace between the "{", the value, and the "}".
An example is the <a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{} function. </p>
<li> <p> Each "value" is subject to recursive named parameter and
relational expression evaluation, except where noted. </p>
<li> <p> Whitespace before or after each "{value}" is ignored. </p>
<li> <p> Specify "$$" to produce a single "$" character. </p>
<li> <p> The legacy form "$(...)" is equivalent to the preferred
form "${...}". </p>
</ul>
<li> <p> When the same parameter is defined multiple times, only
the last instance is remembered. </p>
<li> <p> Otherwise, the order of <a href="postconf.5.html">main.cf</a> parameter definitions does
not matter. </p>
</ul>
<p> The remainder of this document is a description of all Postfix
configuration parameters. Default values are shown after the
parameter name in parentheses, and can be looked up with the
"<b>postconf -d</b>" command. </p>
<p> Note: this is not an invitation to make changes to Postfix
configuration parameters. Unnecessary changes are likely to impair
the operation of the mail system. </p>
<dl>
<DT><b><a name="2bounce_notice_recipient">2bounce_notice_recipient</a>
(default: postmaster)</b></DT><DD>
<p> The recipient of undeliverable mail that cannot be returned to
the sender. This feature is enabled with the <a href="postconf.5.html#notify_classes">notify_classes</a>
parameter. </p>
</DD>
<DT><b><a name="access_map_defer_code">access_map_defer_code</a>
(default: 450)</b></DT><DD>
<p>
The numerical Postfix SMTP server response code for
an <a href="access.5.html">access(5)</a> map "defer" action, including "<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>"
or "<a href="postconf.5.html#defer_if_reject">defer_if_reject</a>". Prior to Postfix 2.6, the response
is hard-coded as "450".
</p>
<p>
Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
</p>
<p>
This feature is available in Postfix 2.6 and later.
</p>
</DD>
<DT><b><a name="access_map_reject_code">access_map_reject_code</a>
(default: 554)</b></DT><DD>
<p>
The numerical Postfix SMTP server response code for
an <a href="access.5.html">access(5)</a> map "reject" action.
</p>
<p>
Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
</p>
</DD>
<DT><b><a name="address_verify_cache_cleanup_interval">address_verify_cache_cleanup_interval</a>
(default: 12h)</b></DT><DD>
<p> The amount of time between <a href="verify.8.html">verify(8)</a> address verification
database cleanup runs. This feature requires that the database
supports the "delete" and "sequence" operators. Specify a zero
interval to disable database cleanup. </p>
<p> After each database cleanup run, the <a href="verify.8.html">verify(8)</a> daemon logs the
number of entries that were retained and dropped. A cleanup run is
logged as "partial" when the daemon terminates early after "<b>postfix
reload</b>", "<b>postfix stop</b>", or no requests for $<a href="postconf.5.html#max_idle">max_idle</a>
seconds. </p>
<p> Specify a non-negative time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is h (hours). </p>
<p> This feature is available in Postfix 2.7. </p>
</DD>
<DT><b><a name="address_verify_default_transport">address_verify_default_transport</a>
(default: $<a href="postconf.5.html#default_transport">default_transport</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#default_transport">default_transport</a> parameter setting for address
verification probes.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_local_transport">address_verify_local_transport</a>
(default: $<a href="postconf.5.html#local_transport">local_transport</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#local_transport">local_transport</a> parameter setting for address
verification probes.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_map">address_verify_map</a>
(default: Postfix ≥ 3.11: $<a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/verify_cache; Postfix < 3.11: <a href="DATABASE_README.html#types">btree</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/verify_cache)</b></DT><DD>
<p>
Lookup table for persistent address verification status
storage. The table is maintained by the <a href="verify.8.html">verify(8)</a> service, and
is opened before the process releases privileges.
</p>
<p>
The lookup table is persistent by default (Postfix 2.7 and later).
Specify an empty table name to keep the information in volatile
memory which is lost after "<b>postfix reload</b>" or "<b>postfix
stop</b>". This is the default with Postfix version 2.6 and earlier.
</p>
<p>
Specify a location in a file system that will not fill up. If the
database becomes corrupted, the world comes to an end. To recover,
delete (NOT: truncate) the file and do "<b>postfix reload</b>".
</p>
<p> Postfix daemon processes do not use root privileges when opening
this file (Postfix 2.5 and later). The file must therefore be
stored under a Postfix-owned directory such as the <a href="postconf.5.html#data_directory">data_directory</a>.
As a migration aid, an attempt to open the file under a non-Postfix
directory is redirected to the Postfix-owned <a href="postconf.5.html#data_directory">data_directory</a>, and a
warning is logged. </p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#address_verify_map">address_verify_map</a> = $<a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/verify_cache
<a href="postconf.5.html#address_verify_map">address_verify_map</a> = <a href="lmdb_table.5.html">lmdb</a>:/var/lib/postfix/verify_cache
<a href="postconf.5.html#address_verify_map">address_verify_map</a> = <a href="DATABASE_README.html#types">btree</a>:/var/lib/postfix/verify_cache
</pre>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_negative_cache">address_verify_negative_cache</a>
(default: yes)</b></DT><DD>
<p>
Enable caching of failed address verification probe results. When
this feature is enabled, the cache may pollute quickly with garbage.
When this feature is disabled, Postfix will generate an address
probe for every lookup.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_negative_expire_time">address_verify_negative_expire_time</a>
(default: 3d)</b></DT><DD>
<p>
The time after which a failed probe expires from the address
verification cache.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is d (days). </p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_negative_refresh_time">address_verify_negative_refresh_time</a>
(default: 3h)</b></DT><DD>
<p>
The time after which a failed address verification probe needs to
be refreshed.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is h (hours). </p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_pending_request_limit">address_verify_pending_request_limit</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> A safety limit that prevents address verification requests from
overwhelming the Postfix queue. By default, the number of pending
requests is limited to 1/4 of the <a href="QSHAPE_README.html#active_queue">active queue</a> maximum size
(<a href="postconf.5.html#qmgr_message_active_limit">qmgr_message_active_limit</a>). The queue manager enforces the limit
by tempfailing requests that exceed the limit. This affects only
unknown addresses and inactive addresses that have expired, because
the <a href="verify.8.html">verify(8)</a> daemon automatically refreshes an active address
before it expires. </p>
<p> This feature is available in Postfix 3.1 and later. </p>
</DD>
<DT><b><a name="address_verify_poll_count">address_verify_poll_count</a>
(default: normal: 3, <a href="STRESS_README.html">overload</a>: 1)</b></DT><DD>
<p>
How many times to query the <a href="verify.8.html">verify(8)</a> service for the completion
of an address verification request in progress.
</p>
<p> By default, the Postfix SMTP server polls the <a href="verify.8.html">verify(8)</a> service
up to three times under non-overload conditions, and only once when
under overload. With Postfix version 2.5 and earlier, the SMTP
server always polls the <a href="verify.8.html">verify(8)</a> service up to three times by
default. </p>
<p>
Specify 1 to implement a crude form of greylisting, that is, always
defer the first delivery request for a new address.
</p>
<p>
Examples:
</p>
<pre>
# Postfix ≤ 2.6 default
<a href="postconf.5.html#address_verify_poll_count">address_verify_poll_count</a> = 3
# Poor man's greylisting
<a href="postconf.5.html#address_verify_poll_count">address_verify_poll_count</a> = 1
</pre>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_poll_delay">address_verify_poll_delay</a>
(default: 3s)</b></DT><DD>
<p>
The delay between queries for the completion of an address
verification request in progress.
</p>
<p>
The default polling delay is 3 seconds.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_positive_expire_time">address_verify_positive_expire_time</a>
(default: 31d)</b></DT><DD>
<p>
The time after which a successful probe expires from the address
verification cache.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is d (days). </p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_positive_refresh_time">address_verify_positive_refresh_time</a>
(default: 7d)</b></DT><DD>
<p>
The time after which a successful address verification probe needs
to be refreshed. The address verification status is not updated
when the probe fails (optimistic caching).
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is d (days). </p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_relay_transport">address_verify_relay_transport</a>
(default: $<a href="postconf.5.html#relay_transport">relay_transport</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter setting for address
verification probes.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_relayhost">address_verify_relayhost</a>
(default: $<a href="postconf.5.html#relayhost">relayhost</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#relayhost">relayhost</a> parameter setting for address verification
probes. This information can be overruled with the <a href="transport.5.html">transport(5)</a> table.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_sender">address_verify_sender</a>
(default: $<a href="postconf.5.html#double_bounce_sender">double_bounce_sender</a>)</b></DT><DD>
<p> The sender address to use in address verification probes; prior
to Postfix 2.5 the default was "postmaster". To
avoid problems with address probes that are sent in response to
address probes, the Postfix SMTP server excludes the probe sender
address from all SMTPD access blocks. </p>
<p>
Specify an empty value (<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> =) or <> if you want
to use the null sender address. Beware, some sites reject mail from
<>, even though RFCs require that such addresses be accepted.
</p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> = <>
<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> = postmaster@<a href="postconf.5.html#mydomain">mydomain</a>
</pre>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_sender_dependent_default_transport_maps">address_verify_sender_dependent_default_transport_maps</a>
(default: $<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a>)</b></DT><DD>
<p> Overrides the <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> parameter
setting for address verification probes. </p>
<p> This feature is available in Postfix 2.7 and later. </p>
</DD>
<DT><b><a name="address_verify_sender_dependent_relayhost_maps">address_verify_sender_dependent_relayhost_maps</a>
(default: $<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> parameter setting for address
verification probes.
</p>
<p>
This feature is available in Postfix 2.3 and later.
</p>
</DD>
<DT><b><a name="address_verify_sender_ttl">address_verify_sender_ttl</a>
(default: 0s)</b></DT><DD>
<p> The time between changes in the time-dependent portion of address
verification probe sender addresses. The time-dependent portion is
appended to the localpart of the address specified with the
<a href="postconf.5.html#address_verify_sender">address_verify_sender</a> parameter. This feature is ignored when the
probe sender addresses is the null sender, i.e. the <a href="postconf.5.html#address_verify_sender">address_verify_sender</a>
value is empty or <>. </p>
<p> Historically, the probe sender address was fixed. This has
caused such addresses to end up on spammer mailing lists, and has
resulted in wasted network and processing resources. </p>
<p> To enable time-dependent probe sender addresses, specify a
non-zero time value. Specify a value of at least several hours,
to avoid problems with senders that use greylisting. Avoid nice
TTL values, to make the result less predictable. </p>
<p> Specify a non-negative time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
<p> This feature is available in Postfix 2.9 and later. </p>
</DD>
<DT><b><a name="address_verify_service_name">address_verify_service_name</a>
(default: verify)</b></DT><DD>
<p>
The name of the <a href="verify.8.html">verify(8)</a> address verification service. This service
maintains the status of sender and/or recipient address verification
probes, and generates probes on request by other Postfix processes.
</p>
</DD>
<DT><b><a name="address_verify_transport_maps">address_verify_transport_maps</a>
(default: $<a href="postconf.5.html#transport_maps">transport_maps</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#transport_maps">transport_maps</a> parameter setting for address verification
probes.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="address_verify_virtual_transport">address_verify_virtual_transport</a>
(default: $<a href="postconf.5.html#virtual_transport">virtual_transport</a>)</b></DT><DD>
<p>
Overrides the <a href="postconf.5.html#virtual_transport">virtual_transport</a> parameter setting for address
verification probes.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="alias_database">alias_database</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The alias databases for <a href="local.8.html">local(8)</a> delivery that are updated with
"<b>newaliases</b>" or with "<b>sendmail -bi</b>".
</p>
<p>
This is a separate configuration parameter because not all the
tables specified with $<a href="postconf.5.html#alias_maps">alias_maps</a> have to be local files.
</p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#alias_database">alias_database</a> = $<a href="postconf.5.html#default_database_type">default_database_type</a>:/etc/aliases
<a href="postconf.5.html#alias_database">alias_database</a> = <a href="lmdb_table.5.html">lmdb</a>:/etc/aliases
<a href="postconf.5.html#alias_database">alias_database</a> = <a href="lmdb_table.5.html">lmdb</a>:/etc/mail/aliases
</pre>
<p> Instead of <a href="lmdb_table.5.html">lmdb</a>:, some systems use <a href="CDB_README.html">cdb</a>:, <a href="DATABASE_README.html#types">hash</a>:, or <a href="DATABASE_README.html#types">dbm</a>:. </p>
</DD>
<DT><b><a name="alias_maps">alias_maps</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
Optional lookup tables that are searched only with an email address
localpart (no domain) and that apply only to <a href="local.8.html">local(8)</a> recipients;
this is unlike <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> that are often searched with a
full email address (including domain) and that apply to all recipients:
<a href="local.8.html">local(8)</a>, virtual, and remote.
The <a href="postconf.5.html#alias_maps">alias_maps</a> table format and lookups are documented in <a href="aliases.5.html">aliases(5)</a>.
For an overview of Postfix address manipulations see the
<a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> document. </p>
<p>
Specify zero or more "type:name" lookup tables, separated by
whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
The default list is system dependent. On systems with NIS, the
default is to search the local alias database, then the NIS alias
database.
</p>
<p>
The <a href="local.8.html">local(8)</a> delivery agent disallows regular expression substitution
of $1 etc. in <a href="postconf.5.html#alias_maps">alias_maps</a>, because that would open a security hole.
</p>
<p>
The <a href="local.8.html">local(8)</a> delivery agent will silently ignore requests to use
the <a href="proxymap.8.html">proxymap(8)</a> server within <a href="postconf.5.html#alias_maps">alias_maps</a>. Instead it will open the
table directly. Before Postfix version 2.2, the <a href="local.8.html">local(8)</a> delivery
agent will terminate with a fatal error.
</p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#alias_maps">alias_maps</a> = $<a href="postconf.5.html#default_database_type">default_database_type</a>:/etc/aliases, nis:mail.aliases
<a href="postconf.5.html#alias_maps">alias_maps</a> = $<a href="postconf.5.html#default_database_type">default_database_type</a>:/etc/aliases
<a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="lmdb_table.5.html">lmdb</a>:/etc/mail/aliases
<a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="lmdb_table.5.html">lmdb</a>:/etc/aliases
</pre>
<p> Instead of <a href="lmdb_table.5.html">lmdb</a>:, some systems use <a href="CDB_README.html">cdb</a>:, <a href="DATABASE_README.html#types">hash</a>:, or <a href="DATABASE_README.html#types">dbm</a>:. </p>
<p> Execute the command "postalias <i>/path/to/aliases</i>" after you
change the aliases file, to (re)build a default-type indexed file.
Execute "postalias <i>type:/path/to/aliases</i>" to specify an explicit
type. </p>
<p> The default indexed file type is configured with the
<a href="postconf.5.html#default_database_type">default_database_type</a> parameter. To list available explicit types,
execute the command "postconf -m". </p>
<p> Configuration changes will become visible after a minute or so.
Use "postfix reload" to eliminate the delay. </p>
</DD>
<DT><b><a name="allow_mail_to_commands">allow_mail_to_commands</a>
(default: alias, forward)</b></DT><DD>
<p>
Restrict <a href="local.8.html">local(8)</a> mail delivery to external commands. The default
is to disallow delivery to "|command" in :include: files (see
<a href="aliases.5.html">aliases(5)</a> for the text that defines this terminology).
</p>
<p>
Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
in order to allow commands in <a href="aliases.5.html">aliases(5)</a>, .forward files or in
:include: files, respectively.
</p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#allow_mail_to_commands">allow_mail_to_commands</a> = alias,forward,include
</pre>
</DD>
<DT><b><a name="allow_mail_to_files">allow_mail_to_files</a>
(default: alias, forward)</b></DT><DD>
<p>
Restrict <a href="local.8.html">local(8)</a> mail delivery to external files. The default is
to disallow "/file/name" destinations in :include: files (see
<a href="aliases.5.html">aliases(5)</a> for the text that defines this terminology).
</p>
<p>
Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>,
in order to allow "/file/name" destinations in <a href="aliases.5.html">aliases(5)</a>, .forward
files and in :include: files, respectively.
</p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#allow_mail_to_files">allow_mail_to_files</a> = alias,forward,include
</pre>
</DD>
<DT><b><a name="allow_min_user">allow_min_user</a>
(default: no)</b></DT><DD>
<p>
Allow a sender or recipient address to have `-' as the first
character. By
default, this is not allowed, to avoid accidents with software that
passes email addresses via the command line. Such software
would not be able to distinguish a malicious address from a
bona fide command-line option. Although this can be prevented by
inserting a "--" option terminator into the command line, this is
difficult to enforce consistently and globally. </p>
<p> As of Postfix version 2.5, this feature is implemented by
<a href="trivial-rewrite.8.html">trivial-rewrite(8)</a>. With earlier versions this feature was implemented
by <a href="qmgr.8.html">qmgr(8)</a> and was limited to recipient addresses only. </p>
</DD>
<DT><b><a name="allow_percent_hack">allow_percent_hack</a>
(default: yes)</b></DT><DD>
<p>
Enable the rewriting of the form "user%domain" to "user@domain".
This is enabled by default.
</p>
<p> Note: as of Postfix version 2.2, message header address rewriting
happens only when one of the following conditions is true: </p>
<ul>
<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
<li> The message is received from a network client that matches
$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
<li> The message is received from the network, and the
<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
</ul>
<p> To get the behavior before Postfix version 2.2, specify
"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#allow_percent_hack">allow_percent_hack</a> = no
</pre>
</DD>
<DT><b><a name="allow_srv_lookup_fallback">allow_srv_lookup_fallback</a>
(default: no)</b></DT><DD>
<p> When SRV record lookup fails or no SRV record exists, fall back
to MX or IP address lookup as if SRV record lookup was not enabled. <p>
<p> This feature is available in Postfix 3.8 and later. </p>
</DD>
<DT><b><a name="allow_untrusted_routing">allow_untrusted_routing</a>
(default: no)</b></DT><DD>
<p>
Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
from untrusted clients to destinations matching $<a href="postconf.5.html#relay_domains">relay_domains</a>.
</p>
<p>
By default, this feature is turned off. This closes a nasty open
relay loophole where a backup MX host can be tricked into forwarding
junk mail to a primary MX host which then spams it out to the world.
</p>
<p>
This parameter also controls if non-local addresses with sender-specified
routing can match Postfix access tables. By default, such addresses
cannot match Postfix access tables, because the address is ambiguous.
</p>
</DD>
<DT><b><a name="alternate_config_directories">alternate_config_directories</a>
(default: empty)</b></DT><DD>
<p>
A list of non-default Postfix configuration directories that may
be specified with "-c <a href="postconf.5.html#config_directory">config_directory</a>" on the command line (in the
case of <a href="sendmail.1.html">sendmail(1)</a>, with the "-C" option), or via the MAIL_CONFIG
environment parameter.
</p>
<p>
This list must be specified in the default Postfix <a href="postconf.5.html">main.cf</a> file,
and will be used by set-gid Postfix commands such as <a href="postqueue.1.html">postqueue(1)</a>
and <a href="postdrop.1.html">postdrop(1)</a>.
</p>
<p>
Specify absolute pathnames, separated by comma or space. Note: $name
expansion is not supported.
</p>
</DD>
<DT><b><a name="always_add_missing_headers">always_add_missing_headers</a>
(default: no)</b></DT><DD>
<p> Always add (Resent-) From:, To:, Date: or Message-ID: headers
when not present. Postfix 2.6 and later add these headers only
when clients match the <a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> parameter
setting. Earlier Postfix versions always add these headers; this
may break DKIM signatures that cover non-existent headers.
The <a href="postconf.5.html#undisclosed_recipients_header">undisclosed_recipients_header</a> parameter setting determines
whether a To: header will be added. </p>
</DD>
<DT><b><a name="always_bcc">always_bcc</a>
(default: empty)</b></DT><DD>
<p>
Optional address that receives a "blind carbon copy" of each message
that is received by the Postfix mail system.
</p>
<p>
Note: with Postfix 2.3 and later the BCC address is added as if it
was specified with NOTIFY=NONE. The sender will not be notified
when the BCC address is undeliverable, as long as all down-stream
software implements <a href="https://tools.ietf.org/html/rfc3461">RFC 3461</a>.
</p>
<p>
Note: with Postfix 2.2 and earlier the sender will be notified
when the BCC address is undeliverable.
</p>
<p> Note: automatic BCC recipients are produced only for new mail.
To avoid mailer loops, automatic BCC recipients are not generated
after Postfix forwards mail internally, or after Postfix generates
mail itself. </p>
<p> Note: automatic BCC recipients are subject to address
canonicalization (add missing domain), <a href="postconf.5.html#canonical_maps">canonical_maps</a>, <a href="postconf.5.html#masquerade_domains">masquerade_domains</a>,
and <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>. </p>
</DD>
<DT><b><a name="anvil_rate_time_unit">anvil_rate_time_unit</a>
(default: 60s)</b></DT><DD>
<p>
The time unit over which client connection rates and other rates
are calculated.
</p>
<p>
This feature is implemented by the <a href="anvil.8.html">anvil(8)</a> service which is available
in Postfix version 2.2 and later.
</p>
<p>
The default interval is relatively short. Because of the high
frequency of updates, the <a href="anvil.8.html">anvil(8)</a> server uses volatile memory
only. Thus, information is lost whenever the process terminates.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
</DD>
<DT><b><a name="anvil_status_update_time">anvil_status_update_time</a>
(default: 600s)</b></DT><DD>
<p>
How frequently the <a href="anvil.8.html">anvil(8)</a> connection and rate limiting server
logs peak usage information.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
<p>
This feature is available in Postfix 2.2 and later.
</p>
</DD>
<DT><b><a name="append_at_myorigin">append_at_myorigin</a>
(default: yes)</b></DT><DD>
<p>
With locally submitted mail, append the string "@$<a href="postconf.5.html#myorigin">myorigin</a>" to mail
addresses without domain information. With remotely submitted mail,
append the string "@$<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a>" instead.
</p>
<p>
Note 1: this feature is enabled by default and must not be turned off.
Postfix does not support domain-less addresses.
</p>
<p> Note 2: with Postfix version 2.2, message header address rewriting
happens only when one of the following conditions is true: </p>
<ul>
<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
<li> The message is received from a network client that matches
$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
<li> The message is received from the network, and the
<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
</ul>
<p> To get the behavior before Postfix version 2.2, specify
"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
</DD>
<DT><b><a name="append_dot_mydomain">append_dot_mydomain</a>
(default: Postfix ≥ 3.0: no, Postfix < 3.0: yes)</b></DT><DD>
<p>
With locally submitted mail, append the string ".$<a href="postconf.5.html#mydomain">mydomain</a>" to
addresses that have no ".domain" information. With remotely submitted
mail, append the string ".$<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a>"
instead.
</p>
<p>
Note 1: When disabled (Postfix 3.0 and later), users will not be
able to send mail to "user@partialdomainname" but will have to
specify full domain names instead.
</p>
<p> Note 2: with Postfix version 2.2, message header address rewriting
happens only when one of the following conditions is true: </p>
<ul>
<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
<li> The message is received from a network client that matches
$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
<li> The message is received from the network, and the
<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
</ul>
<p> To get the behavior before Postfix version 2.2, specify
"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
</DD>
<DT><b><a name="application_event_drain_time">application_event_drain_time</a>
(default: 100s)</b></DT><DD>
<p>
How long the <a href="postkick.1.html">postkick(1)</a> command waits for a request to enter the
Postfix daemon process input buffer before giving up.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="authorized_flush_users">authorized_flush_users</a>
(default: <a href="DATABASE_README.html#types">static</a>:anyone)</b></DT><DD>
<p>
List of users who are authorized to flush the queue.
</p>
<p>
By default, all users are allowed to flush the queue. Access is
always granted if the invoking user is the super-user or the
$<a href="postconf.5.html#mail_owner">mail_owner</a> user. Otherwise, the real UID of the process is looked
up in the system password file, and access is granted only if the
corresponding login name is on the access list. The username
"unknown" is used for processes whose real UID is not found in the
password file. </p>
<p>
Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
separated by commas and/or whitespace. The list is matched left to
right, and the search stops on the first match. A "/file/name"
pattern is replaced
by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name
matches a lookup key (the lookup result is ignored). Continue long
lines by starting the next line with whitespace. Specify "!pattern"
to exclude a name from the list. The form "!/file/name" is supported
only in Postfix version 2.4 and later. </p>
<p>
This feature is available in Postfix 2.2 and later.
</p>
</DD>
<DT><b><a name="authorized_mailq_users">authorized_mailq_users</a>
(default: <a href="DATABASE_README.html#types">static</a>:anyone)</b></DT><DD>
<p>
List of users who are authorized to view the queue.
</p>
<p>
By default, all users are allowed to view the queue. Access is
always granted if the invoking user is the super-user or the
$<a href="postconf.5.html#mail_owner">mail_owner</a> user. Otherwise, the real UID of the process is looked
up in the system password file, and access is granted only if the
corresponding login name is on the access list. The username
"unknown" is used for processes whose real UID is not found in the
password file. </p>
<p>
Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
separated by commas and/or whitespace. The list is matched left to
right, and the search stops on the first match. A "/file/name"
pattern is replaced
by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name
matches a lookup key (the lookup result is ignored). Continue long
lines by starting the next line with whitespace. Specify "!pattern"
to exclude a user name from the list. The form "!/file/name" is
supported only in Postfix version 2.4 and later. </p>
<p>
This feature is available in Postfix 2.2 and later.
</p>
</DD>
<DT><b><a name="authorized_submit_users">authorized_submit_users</a>
(default: <a href="DATABASE_README.html#types">static</a>:anyone)</b></DT><DD>
<p>
List of users who are authorized to submit mail with the <a href="sendmail.1.html">sendmail(1)</a>
command (and with the privileged <a href="postdrop.1.html">postdrop(1)</a> helper command).
</p>
<p>
By default, all users are allowed to submit mail. Otherwise, the
real UID of the process is looked up in the system password file,
and access is granted only if the corresponding login name is on
the access list. The username "unknown" is used for processes
whose real UID is not found in the password file. To deny mail
submission access to all users specify an empty list. </p>
<p>
Specify a list of user names, "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns,
separated by commas and/or whitespace. The list is matched left to right,
and the search stops on the first match. A "/file/name" pattern is
replaced by its contents;
a "<a href="DATABASE_README.html">type:table</a>" lookup table is matched when a name matches a lookup key
(the lookup result is ignored). Continue long lines by starting the
next line with whitespace. Specify "!pattern" to exclude a user
name from the list. The form "!/file/name" is supported only in
Postfix version 2.4 and later. </p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#authorized_submit_users">authorized_submit_users</a> = !www, <a href="DATABASE_README.html#types">static</a>:all
</pre>
<p>
This feature is available in Postfix 2.2 and later.
</p>
</DD>
<DT><b><a name="authorized_verp_clients">authorized_verp_clients</a>
(default: $<a href="postconf.5.html#mynetworks">mynetworks</a>)</b></DT><DD>
<p> What remote SMTP clients are allowed to specify the XVERP command.
This command requests that mail be delivered one recipient at a
time with a per recipient return address. </p>
<p> By default, only trusted clients are allowed to specify XVERP.
</p>
<p> This parameter was introduced with Postfix version 1.1. Postfix
version 2.1 renamed this parameter to <a href="postconf.5.html#smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a>
and changed the default to none. </p>
<p> Specify a list of network/netmask patterns, separated by commas
and/or whitespace. The mask specifies the number of bits in the
network part of a host address. You can also specify hostnames or
.domain names (the initial dot causes the domain to match any name
below it), "/file/name" or "<a href="DATABASE_README.html">type:table</a>" patterns. A "/file/name"
pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>" lookup table
is matched when a table entry matches a lookup string (the lookup
result is ignored). Continue long lines by starting the next line
with whitespace. Specify "!pattern" to exclude an address or network
block from the list. The form "!/file/name" is supported only in
Postfix version 2.4 and later. </p>
<p> Note: IP version 6 address information must be specified inside
<tt>[]</tt> in the <a href="postconf.5.html#authorized_verp_clients">authorized_verp_clients</a> value, and in files
specified with "/file/name". IP version 6 addresses contain the
":" character, and would otherwise be confused with a "<a href="DATABASE_README.html">type:table</a>"
pattern. </p>
</DD>
<DT><b><a name="backwards_bounce_logfile_compatibility">backwards_bounce_logfile_compatibility</a>
(default: yes)</b></DT><DD>
<p>
Produce additional <a href="bounce.8.html">bounce(8)</a> logfile records that can be read by
Postfix versions before 2.0. The current and more extensible "name =
value" format is needed in order to implement more sophisticated
functionality.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="berkeley_db_create_buffer_size">berkeley_db_create_buffer_size</a>
(default: 16777216)</b></DT><DD>
<p>
The per-table I/O buffer size for programs that create Berkeley DB
hash or btree tables. Specify a byte count.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="berkeley_db_read_buffer_size">berkeley_db_read_buffer_size</a>
(default: 131072)</b></DT><DD>
<p>
The per-table I/O buffer size for programs that read Berkeley DB
hash or btree tables. Specify a byte count.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="best_mx_transport">best_mx_transport</a>
(default: empty)</b></DT><DD>
<p>
Where the Postfix SMTP client should deliver mail when it detects
a "mail loops back to myself" error condition. This happens when
the local MTA is the best SMTP mail exchanger for a destination
not listed in $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>, $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>,
$<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, or $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>. By default,
the Postfix SMTP client returns such mail as undeliverable.
</p>
<p>
Specify, for example, "<a href="postconf.5.html#best_mx_transport">best_mx_transport</a> = local" to pass the mail
from the Postfix SMTP client to the <a href="local.8.html">local(8)</a> delivery agent. You
can specify
any message delivery "transport" or "transport:nexthop" that is
defined in the <a href="master.5.html">master.cf</a> file. See the <a href="transport.5.html">transport(5)</a> manual page
for the syntax and meaning of "transport" or "transport:nexthop".
</p>
<p>
However, this feature is expensive because it ties up a Postfix
SMTP client process while the <a href="local.8.html">local(8)</a> delivery agent is doing its
work. It is more efficient (for Postfix) to list all <a href="VIRTUAL_README.html#canonical">hosted domains</a>
in a table or database.
</p>
</DD>
<DT><b><a name="biff">biff</a>
(default: yes)</b></DT><DD>
<p>
Whether or not to use the local <a href="postconf.5.html#biff">biff</a> service. This service sends
"new mail" notifications to users who have requested new mail
notification with the UNIX command "<a href="postconf.5.html#biff">biff</a> y".
</p>
<p>
For compatibility reasons this feature is on by default. On systems
with lots of interactive users, the <a href="postconf.5.html#biff">biff</a> service can be a performance
drain. Specify "<a href="postconf.5.html#biff">biff</a> = no" in <a href="postconf.5.html">main.cf</a> to disable.
</p>
</DD>
<DT><b><a name="body_checks">body_checks</a>
(default: empty)</b></DT><DD>
<p> Optional lookup tables for content inspection as specified in
the <a href="header_checks.5.html">body_checks(5)</a> manual page. </p>
<p> Note: with Postfix versions before 2.0, these rules inspect
all content after the primary message headers. </p>
</DD>
<DT><b><a name="body_checks_size_limit">body_checks_size_limit</a>
(default: 51200)</b></DT><DD>
<p>
How much text in a message body segment (or attachment, if you
prefer to use that term) is subjected to <a href="postconf.5.html#body_checks">body_checks</a> inspection.
The amount of text is limited to avoid scanning huge attachments.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="bounce_notice_recipient">bounce_notice_recipient</a>
(default: postmaster)</b></DT><DD>
<p>
The recipient of postmaster notifications with the message headers
of mail that Postfix did not deliver and of SMTP conversation
transcripts of mail that Postfix did not receive. This feature is
enabled with the <a href="postconf.5.html#notify_classes">notify_classes</a> parameter. </p>
</DD>
<DT><b><a name="bounce_queue_lifetime">bounce_queue_lifetime</a>
(default: 5d)</b></DT><DD>
<p>
Consider a bounce message as undeliverable, when delivery fails
with a temporary error, and the time in the queue has reached the
<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a> limit. By default, this limit is the same
as for regular mail.
</p>
<p> Specify a non-negative time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is d (days). </p>
<p>
Specify 0 when mail delivery should be tried only once.
</p>
<p>
This feature is available in Postfix 2.1 and later.
</p>
</DD>
<DT><b><a name="bounce_service_name">bounce_service_name</a>
(default: bounce)</b></DT><DD>
<p>
The name of the <a href="bounce.8.html">bounce(8)</a> service. This service maintains a record
of failed delivery attempts and generates non-delivery notifications.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="bounce_size_limit">bounce_size_limit</a>
(default: 50000)</b></DT><DD>
<p> The maximal amount of original message text that is sent in a
non-delivery notification. Specify a byte count. A message is
returned as either message/rfc822 (the complete original) or as
text/rfc822-headers (the headers only). With Postfix version 2.4
and earlier, a message is always returned as message/rfc822 and is
truncated when it exceeds the size limit.
</p>
<p> Notes: </p>
<ul>
<li> <p> If you increase this limit, then you should increase the
<a href="postconf.5.html#mime_nesting_limit">mime_nesting_limit</a> value proportionally. </p>
<li> <p> Be careful when making changes. Excessively large values
will result in the loss of non-delivery notifications, when a bounce
message size exceeds a local or remote MTA's message size limit.
</p>
</ul>
</DD>
<DT><b><a name="bounce_template_file">bounce_template_file</a>
(default: empty)</b></DT><DD>
<p> Pathname of a configuration file with bounce message templates.
These override the built-in templates of delivery status notification
(DSN) messages for undeliverable mail, delayed mail, successful
delivery, or delivery verification. The <a href="bounce.5.html">bounce(5)</a> manual page
describes how to edit and test template files. </p>
<p> Template message body text may contain $name references to
Postfix configuration parameters. The result of $name expansion can
be previewed with "<b>postconf -b <i>file_name</i></b>" before the file
is placed into the Postfix configuration directory. </p>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
<DT><b><a name="broken_sasl_auth_clients">broken_sasl_auth_clients</a>
(default: no)</b></DT><DD>
<p>
Enable interoperability with remote SMTP clients that implement an obsolete
version of the AUTH command (<a href="https://tools.ietf.org/html/rfc4954">RFC 4954</a>). Examples of such clients
are MicroSoft Outlook Express version 4 and MicroSoft Exchange
version 5.0.
</p>
<p>
Specify "<a href="postconf.5.html#broken_sasl_auth_clients">broken_sasl_auth_clients</a> = yes" to have Postfix advertise
AUTH support in a non-standard way.
</p>
</DD>
<DT><b><a name="canonical_classes">canonical_classes</a>
(default: envelope_sender, envelope_recipient, header_sender, header_recipient)</b></DT><DD>
<p> What addresses are subject to <a href="postconf.5.html#canonical_maps">canonical_maps</a> address mapping.
By default, <a href="postconf.5.html#canonical_maps">canonical_maps</a> address mapping is applied to envelope
sender and recipient addresses, and to header sender and header
recipient addresses. </p>
<p> Specify one or more of: envelope_sender, envelope_recipient,
header_sender, header_recipient </p>
<p> This feature is available in Postfix 2.2 and later. </p>
</DD>
<DT><b><a name="canonical_maps">canonical_maps</a>
(default: empty)</b></DT><DD>
<p>
Optional address mapping lookup tables for message headers and
envelopes. The mapping is applied to both sender and recipient
addresses, in both envelopes and in headers, as controlled
with the <a href="postconf.5.html#canonical_classes">canonical_classes</a> parameter. This is typically used
to clean up dirty addresses from legacy mail systems, or to replace
login names by Firstname.Lastname. The table format and lookups
are documented in <a href="canonical.5.html">canonical(5)</a>. For an overview of Postfix address
manipulations see the <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> document.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p> Note: with Postfix version 2.2, message header address mapping
happens only when message header address rewriting is enabled: </p>
<ul>
<li> The message is received with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command,
<li> The message is received from a network client that matches
$<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>,
<li> The message is received from the network, and the
<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter specifies a non-empty value.
</ul>
<p> To get the behavior before Postfix version 2.2, specify
"<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = <a href="DATABASE_README.html#types">static</a>:all". </p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#canonical_maps">canonical_maps</a> = <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/canonical
</pre>
<p> Instead of <a href="lmdb_table.5.html">lmdb</a>:, some systems use <a href="CDB_README.html">cdb</a>:, <a href="DATABASE_README.html#types">hash</a>:, or <a href="DATABASE_README.html#types">dbm</a>:. </p>
<p> Execute the command "postmap /etc/postfix/canonical" after you
change the canonical file, to (re)build a default-type indexed file.
Execute "postmap <i>type</i>:/etc/postfix/canonical" to specify an
explicit type. </p>
<p> The default indexed file type is configured with the
<a href="postconf.5.html#default_database_type">default_database_type</a> parameter. To list available explicit types,
execute the command "postconf -m". </p>
<p> Configuration changes will become visible after a minute or so.
Use "postfix reload" to eliminate the delay. </p>
</DD>
<DT><b><a name="cleanup_replace_stray_cr_lf">cleanup_replace_stray_cr_lf</a>
(default: yes)</b></DT><DD>
<p> Replace each stray <CR> or <LF> character in message
content with a space character, to prevent outbound SMTP smuggling,
and to make the evaluation of Postfix-added DKIM or other signatures
independent from how a remote mail server handles such characters.
</p>
<p> SMTP does not allow such characters unless they are part of a
<CR><LF> sequence, and different mail systems handle
such stray characters in an implementation-dependent manner. Stray
<CR> or <LF> characters could be used for outbound
SMTP smuggling, where an attacker uses a Postfix server to send
message content with a non-standard End-of-DATA sequence that
triggers inbound SMTP smuggling at a remote SMTP server.</p>
<p> The replacement happens before all other content management,
and before Postfix may add a DKIM etc. signature; if the signature
were created first, the replacement could invalidate the signature.
</p>
<p> In addition to preventing SMTP smuggling, replacing stray
<CR> or <LF> characters ensures that the result of
signature validation by later mail system will not depend on how
that mail system handles those stray characters in an
implementation-dependent manner. </p>
<p> Note: this feature is disabled with "<a href="postconf.5.html#receive_override_options">receive_override_options</a> =
<a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>". </p>
<p> This feature is available in Postfix ≥ 3.9, 3.8.5, 3.7.10,
3.6.14, and 3.5.24. </p>
</DD>
<DT><b><a name="cleanup_service_name">cleanup_service_name</a>
(default: cleanup)</b></DT><DD>
<p>
The name of the <a href="cleanup.8.html">cleanup(8)</a> service. This service rewrites addresses
into the standard form, and performs <a href="canonical.5.html">canonical(5)</a> address mapping
and <a href="virtual.5.html">virtual(5)</a> aliasing.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="command_directory">command_directory</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The location of all postfix administrative commands.
</p>
</DD>
<DT><b><a name="command_execution_directory">command_execution_directory</a>
(default: empty)</b></DT><DD>
<p> The <a href="local.8.html">local(8)</a> delivery agent working directory for delivery to
external commands. Failure to change directory causes the delivery
to be deferred. </p>
<p> The <a href="postconf.5.html#command_execution_directory">command_execution_directory</a> value is not subject to Postfix
configuration parameter $name expansion. Instead, the following
$name expansions are done on <a href="postconf.5.html#command_execution_directory">command_execution_directory</a> before the
directory is used. Expansion happens in the context
of the delivery request. The result of $name expansion is filtered
with the character set that is specified with the
<a href="postconf.5.html#execution_directory_expansion_filter">execution_directory_expansion_filter</a> parameter. </p>
<dl>
<dt><b>$user</b></dt>
<dd>The recipient's username. </dd>
<dt><b>$shell</b></dt>
<dd>The recipient's login shell pathname. </dd>
<dt><b>$home</b></dt>
<dd>The recipient's home directory. </dd>
<dt><b>$recipient</b></dt>
<dd>The full recipient address. </dd>
<dt><b>$extension</b></dt>
<dd>The optional recipient address extension. </dd>
<dt><b>$domain</b></dt>
<dd>The recipient domain. </dd>
<dt><b>$local</b></dt>
<dd>The entire recipient localpart. </dd>
<dt><b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a></b></dt>
<dd>The address extension delimiter that was found in the recipient
address (Postfix 2.11 and later), or the system-wide recipient
address extension delimiter (Postfix 2.10 and earlier). </dd>
<dt><b>${name?value}</b></dt>
<dt><b>${name?{value}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
<dt><b>${name:value}</b></dt>
<dt><b>${name:{value}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
<dt><b>${name?{value1}:{value2}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
<i>value2</i> otherwise. </dd>
</dl>
<p>
Instead of $name you can also specify ${name} or $(name).
</p>
<p> This feature is available in Postfix 2.2 and later. </p>
</DD>
<DT><b><a name="command_expansion_filter">command_expansion_filter</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
Restrict the characters that the <a href="local.8.html">local(8)</a> delivery agent allows in
$name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_command</a> and $<a href="postconf.5.html#command_execution_directory">command_execution_directory</a>.
Characters outside the
allowed set are replaced by underscores.
</p>
</DD>
<DT><b><a name="command_time_limit">command_time_limit</a>
(default: 1000s)</b></DT><DD>
<p>
Time limit for delivery to external commands. This limit is used
by the <a href="local.8.html">local(8)</a> delivery agent, and is the default time limit for
delivery by the <a href="pipe.8.html">pipe(8)</a> delivery agent.
</p>
<p>
Note: if you set this time limit to a large value you must update the
global <a href="postconf.5.html#ipc_timeout">ipc_timeout</a> parameter as well.
</p>
</DD>
<DT><b><a name="compatibility_level">compatibility_level</a>
(default: 0)</b></DT><DD>
<p> A safety net that causes Postfix to run with backwards-compatible
default settings after an upgrade to a newer Postfix version. </p>
<p> With backwards compatibility turned on (the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#compatibility_level">compatibility_level</a>
value is less than the Postfix built-in value), Postfix looks for
settings that are left at their implicit default value, and logs a
message when a backwards-compatible default setting is required.
</p>
<blockquote>
<pre>
using backwards-compatible default setting <i>name=value</i>
to [accept a specific client request]
using backwards-compatible default setting <i>name=value</i>
to [enable specific Postfix behavior]
</pre>
</blockquote>
<p> See <a href="COMPATIBILITY_README.html">COMPATIBILITY_README</a> for specific message details. If such
a message is logged in the context of a legitimate request, the
system administrator should make the backwards-compatible setting
permanent in <a href="postconf.5.html">main.cf</a> or <a href="master.5.html">master.cf</a>, for example: </p>
<blockquote>
<pre>
# <b>postconf</b> <i>name=value</i>
# <b>postfix reload</b>
</pre>
</blockquote>
<p> When no more backwards-compatible settings need to be made
permanent, the administrator should turn off backwards compatibility
by updating the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting in <a href="postconf.5.html">main.cf</a>:</p>
<blockquote>
<pre>
# <b>postconf <a href="postconf.5.html#compatibility_level">compatibility_level</a>=<i>N</i></b>
# <b>postfix reload</b>
</pre>
</blockquote>
<p> For <i>N</i> specify the number that is logged in your <a href="postfix.1.html">postfix(1)</a>
warning message: </p>
<blockquote>
<pre>
warning: To disable backwards compatibility use "postconf
<a href="postconf.5.html#compatibility_level">compatibility_level</a>=<i>N</i>" and "postfix reload"
</pre>
</blockquote>
<p> Starting with Postfix version 3.6, the compatibility level in
the above warning message is the Postfix version that introduced
the last incompatible change. The level is formatted as
<i>major.minor.patch</i>, where <i>patch</i> is usually omitted and
defaults to zero. Earlier compatibility levels are 0, 1 and 2. </p>
<p> NOTE: this also introduces support for the "<level",
"<=level", and other operators to compare compatibility levels.
With the standard operators "<", "<=", etc., compatibility
level "3.10" would be smaller than "3.9" which is undesirable. </p>
<p> This feature is available in Postfix 3.0 and later. </p>
</DD>
<DT><b><a name="config_directory">config_directory</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a>
configuration files. This can be overruled via the following
mechanisms: </p>
<ul>
<li> <p> The MAIL_CONFIG environment variable (daemon processes
and commands). </p>
<li> <p> The "-c" command-line option (commands only). </p>
</ul>
<p> With Postfix commands that run with set-gid privileges, a
<a href="postconf.5.html#config_directory">config_directory</a> override either requires root privileges, or it
requires that the directory is listed with the <a href="postconf.5.html#alternate_config_directories">alternate_config_directories</a>
parameter in the default <a href="postconf.5.html">main.cf</a> file. </p>
</DD>
<DT><b><a name="confirm_delay_cleared">confirm_delay_cleared</a>
(default: no)</b></DT><DD>
<p> After sending a "your message is delayed" notification, inform
the sender when the delay clears up. This can result in a sudden
burst of notifications at the end of a prolonged network outage,
and is therefore disabled by default. </p>
<p> See also: <a href="postconf.5.html#delay_warning_time">delay_warning_time</a>. </p>
<p> This feature is available in Postfix 3.0 and later. </p>
</DD>
<DT><b><a name="connection_cache_protocol_timeout">connection_cache_protocol_timeout</a>
(default: 5s)</b></DT><DD>
<p> Time limit for connection cache connect, send or receive
operations. The time limit is enforced in the client. </p>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
<DT><b><a name="connection_cache_service_name">connection_cache_service_name</a>
(default: scache)</b></DT><DD>
<p> The name of the <a href="scache.8.html">scache(8)</a> connection cache service. This service
maintains a limited pool of cached sessions. </p>
<p> This feature is available in Postfix 2.2 and later. </p>
</DD>
<DT><b><a name="connection_cache_status_update_time">connection_cache_status_update_time</a>
(default: 600s)</b></DT><DD>
<p> How frequently the <a href="scache.8.html">scache(8)</a> server logs usage statistics with
connection cache hit and miss rates for logical destinations and for
physical endpoints. </p>
</DD>
<DT><b><a name="connection_cache_ttl_limit">connection_cache_ttl_limit</a>
(default: 2s)</b></DT><DD>
<p> The maximal time-to-live value that the <a href="scache.8.html">scache(8)</a> connection
cache server
allows. Requests that specify a larger TTL will be stored with the
maximum allowed TTL. The purpose of this additional control is to
protect the infrastructure against careless people. The cache TTL
is already bounded by $<a href="postconf.5.html#max_idle">max_idle</a>. </p>
</DD>
<DT><b><a name="content_filter">content_filter</a>
(default: empty)</b></DT><DD>
<p> After the message is queued, send the entire message to the
specified <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in
<a href="master.5.html">master.cf</a>; the syntax of the next-hop <i>destination</i> is described
in the manual page of the corresponding delivery agent. More
information about external content filters is in the Postfix
<a href="FILTER_README.html">FILTER_README</a> file. </p>
<p> Notes: </p>
<ul>
<li> <p> This setting has lower precedence than a FILTER action
that is specified in an <a href="access.5.html">access(5)</a>, <a href="header_checks.5.html">header_checks(5)</a> or <a href="header_checks.5.html">body_checks(5)</a>
table. </p>
<li> <p> The meaning of an empty next-hop filter <i>destination</i>
is version dependent. Postfix 2.7 and later will use the recipient
domain; earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify
"<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility with Postfix
2.6 or earlier, or specify a <a href="postconf.5.html#content_filter">content_filter</a> value with an explicit
next-hop <i>destination</i>. </p>
</ul>
</DD>
<DT><b><a name="cyrus_sasl_config_path">cyrus_sasl_config_path</a>
(default: empty)</b></DT><DD>
<p> Search path for Cyrus SASL application configuration files,
currently used only to locate the $<a href="postconf.5.html#smtpd_sasl_path">smtpd_sasl_path</a>.conf file.
Specify zero or more directories separated by a colon character,
or an empty value to use Cyrus SASL's built-in search path. </p>
<p> Note: some Debian-based Postfix distributions ignore the
"<a href="postconf.5.html#cyrus_sasl_config_path">cyrus_sasl_config_path</a>" parameter setting, and force Postfix to
open the file <code>/etc/postfix/sasl/smtpd.conf</code>. </p>
<p> This feature is available in Postfix 2.5 and later when compiled
with Cyrus SASL 2.1.22 or later. </p>
</DD>
<DT><b><a name="daemon_directory">daemon_directory</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The directory with Postfix support programs and daemon programs.
These should not be invoked directly by humans. The directory must
be owned by root.
</p>
</DD>
<DT><b><a name="daemon_table_open_error_is_fatal">daemon_table_open_error_is_fatal</a>
(default: no)</b></DT><DD>
<p> How a Postfix daemon process handles errors while opening lookup
tables: gradual degradation or immediate termination. </p>
<dl>
<dt> <b> no </b> (default) </dt> <dd> <p> Gradual degradation: a
daemon process logs a message of type "error" and continues execution
with reduced functionality. Features that do not depend on the
unavailable table will work normally, while features that depend
on the table will result in a type "warning" message. <br> When
the <a href="postconf.5.html#notify_classes">notify_classes</a> parameter value contains the "data" class, the
Postfix SMTP server and client will report transcripts of sessions
with an error because a table is unavailable. </p> </dd>
<dt> <b> yes </b> (historical behavior) </dt> <dd> <p> Immediate
termination: a daemon process logs a type "fatal" message and
terminates immediately. This option reduces the number of possible
code paths through Postfix, and may therefore be slightly more
secure than the default. </p> </dd>
</dl>
<p> For the sake of sanity, the number of type "error" messages is
limited to 13 over the lifetime of a daemon process. </p>
<p> This feature is available in Postfix 2.9 and later. </p>
</DD>
<DT><b><a name="daemon_timeout">daemon_timeout</a>
(default: 18000s)</b></DT><DD>
<p> How much time a Postfix daemon process may take to handle a
request before it is terminated by a built-in watchdog timer. </p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
</DD>
<DT><b><a name="data_directory">data_directory</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> The directory with Postfix-writable data files (for example:
caches, pseudo-random numbers). This directory must be owned by
the <a href="postconf.5.html#mail_owner">mail_owner</a> account, and must not be shared with non-Postfix
software. </p>
<p> This feature is available in Postfix 2.5 and later. </p>
</DD>
<DT><b><a name="debug_peer_level">debug_peer_level</a>
(default: 2)</b></DT><DD>
<p> The increment in verbose logging level when a nexthop destination,
remote client or server name or network address matches a pattern
given with the <a href="postconf.5.html#debug_peer_list">debug_peer_list</a> parameter. </p>
<p> Per-nexthop debug logging is available in Postfix 3.6 and later. </p>
</DD>
<DT><b><a name="debug_peer_list">debug_peer_list</a>
(default: empty)</b></DT><DD>
<p> Optional list of nexthop destination, remote client or server
name or network address patterns that, if matched, cause the verbose
logging level to increase by the amount specified in $<a href="postconf.5.html#debug_peer_level">debug_peer_level</a>.
</p>
<p> Per-nexthop debug logging is available in Postfix 3.6 and later. </p>
<p> Specify domain names, network/netmask patterns, "/file/name"
patterns or "<a href="DATABASE_README.html">type:table</a>" lookup tables. The right-hand side result
from "<a href="DATABASE_README.html">type:table</a>" lookups is ignored. An IPv6 address must be enclosed
in <tt>[]</tt>. </p>
<p> Pattern matching of domain names is controlled by the presence
or absence of "<a href="postconf.5.html#debug_peer_list">debug_peer_list</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
parameter value. </p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#debug_peer_list">debug_peer_list</a> = 127.0.0.1
<a href="postconf.5.html#debug_peer_list">debug_peer_list</a> = example.com
</pre>
</DD>
<DT><b><a name="debugger_command">debugger_command</a>
(default: empty)</b></DT><DD>
<p>
The external command to execute when a Postfix daemon program is
invoked with the -D option.
</p>
<p>
Use "command .. & sleep 5" so that the debugger can attach before
the process marches on. If you use an X-based debugger, be sure to
set up your XAUTHORITY environment variable before starting Postfix.
</p>
<p>
Note: the command is subject to $name expansion, before it is
passed to the default command interpreter. Specify "$$" to
produce a single "$" character.
</p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#debugger_command">debugger_command</a> =
PATH=/usr/bin:/usr/X11R6/bin
ddd $<a href="postconf.5.html#daemon_directory">daemon_directory</a>/$<a href="postconf.5.html#process_name">process_name</a> $<a href="postconf.5.html#process_id">process_id</a> & sleep 5
</pre>
</DD>
<DT><b><a name="default_cache_db_type">default_cache_db_type</a>
(default: see 'postconf -d <a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a>' output)</b></DT><DD>
<p> The default database type for <a href="postconf.5.html#address_verify_map">address_verify_map</a> and
<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a>. Before Postfix 3.11 those caches used btree
by default. </p>
<p> This feature is available in Postfix ≥ 3.11. </p>
</DD>
<DT><b><a name="default_database_type">default_database_type</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The default database type for use in <a href="newaliases.1.html">newaliases(1)</a>, <a href="postalias.1.html">postalias(1)</a>
and <a href="postmap.1.html">postmap(1)</a> commands. On many UNIX systems the default type is
either <b>lmdb</b> or <b>hash</b>. The default setting is frozen
when the Postfix system is built.
</p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#default_database_type">default_database_type</a> = lmdb
<a href="postconf.5.html#default_database_type">default_database_type</a> = hash
</pre>
</DD>
<DT><b><a name="default_delivery_slot_cost">default_delivery_slot_cost</a>
(default: 5)</b></DT><DD>
<p>
How often the Postfix queue manager's scheduler is allowed to
preempt delivery of one message with another.
</p>
<p>
Each transport maintains a so-called "available delivery slot counter"
for each message. One message can be preempted by another one when
the other message can be delivered using no more delivery slots
(i.e., invocations of delivery agents) than the current message
counter has accumulated (or will eventually accumulate - see about
slot loans below). This parameter controls how often the counter is
incremented - it happens after each <a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a>
recipients have been delivered.
</p>
<p>
The cost of 0 is used to disable the preempting scheduling completely.
The minimum value the scheduling algorithm can use is 2 - use it
if you want to maximize the message throughput rate. Although there
is no maximum, it doesn't make much sense to use values above say
50.
</p>
<p>
The only reason why the value of 2 is not the default is the way
this parameter affects the delivery of mailing-list mail. In the
worst case, delivery can take somewhere between (cost+1/cost)
and (cost/cost-1) times more than if the preemptive scheduler was
disabled. The default value of 5 turns out to provide reasonable
message response times while making sure the mailing-list deliveries
are not extended by more than 20-25 percent even in the worst case.
</p>
<p> Use <a href="postconf.5.html#transport_delivery_slot_cost"><i>transport</i>_delivery_slot_cost</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a> = 0
<a href="postconf.5.html#default_delivery_slot_cost">default_delivery_slot_cost</a> = 2
</pre>
</DD>
<DT><b><a name="default_delivery_slot_discount">default_delivery_slot_discount</a>
(default: 50)</b></DT><DD>
<p>
The default value for transport-specific _delivery_slot_discount
settings.
</p>
<p>
This parameter speeds up the moment when a message preemption can
happen. Instead of waiting until the full amount of delivery slots
required is available, the preemption can happen when
<a href="postconf.5.html#transport_delivery_slot_discount"><i>transport</i>_delivery_slot_discount</a> percent of the required amount
plus <a href="postconf.5.html#transport_delivery_slot_loan"><i>transport</i>_delivery_slot_loan</a> still remains to be accumulated.
Note that the full amount will still have to be accumulated before
another preemption can take place later.
</p>
<p> Use <a href="postconf.5.html#transport_delivery_slot_discount"><i>transport</i>_delivery_slot_discount</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_delivery_slot_loan">default_delivery_slot_loan</a>
(default: 3)</b></DT><DD>
<p>
The default value for transport-specific _delivery_slot_loan
settings.
</p>
<p>
This parameter speeds up the moment when a message preemption can
happen. Instead of waiting until the full amount of delivery slots
required is available, the preemption can happen when
<a href="postconf.5.html#transport_delivery_slot_discount">transport_delivery_slot_discount</a> percent of the required amount
plus <a href="postconf.5.html#transport_delivery_slot_loan">transport_delivery_slot_loan</a> still remains to be accumulated.
Note that the full amount will still have to be accumulated before
another preemption can take place later.
</p>
<p> Use <a href="postconf.5.html#transport_delivery_slot_loan"><i>transport</i>_delivery_slot_loan</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_delivery_status_filter">default_delivery_status_filter</a>
(default: empty)</b></DT><DD>
<p> Optional filter in Postfix delivery agents, to replace the
delivery status code or explanatory text of successful or unsuccessful
deliveries. This allows the replacement of a temporary error status
code (4.X.X) with a permanent error status code (5.X.X) or vice
versa, but does not allow
the replacement of a successful status code (2.X.X) with an
unsuccessful status code (4.X.X or 5.X.X) or vice versa. </p>
<p> Note: the (smtp|lmtp)_delivery_status_filter is applied only
once per recipient: when delivery is successful, when delivery is
rejected with 5XX, or when there are no more alternate MX or A
destinations. Use <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> or <a href="postconf.5.html#lmtp_reply_filter">lmtp_reply_filter</a> to inspect
responses for all delivery attempts. </p>
<p> The following parameters can be used to implement a filter for
specific delivery agents: <a href="postconf.5.html#lmtp_delivery_status_filter">lmtp_delivery_status_filter</a>,
<a href="postconf.5.html#local_delivery_status_filter">local_delivery_status_filter</a>, <a href="postconf.5.html#pipe_delivery_status_filter">pipe_delivery_status_filter</a>,
<a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> or <a href="postconf.5.html#virtual_delivery_status_filter">virtual_delivery_status_filter</a>. These
parameters support the same filter syntax as described here. </p>
<p> Specify zero or more "<a href="DATABASE_README.html">type:table</a>" lookup table names, separated
by comma or whitespace. For each successful or unsuccessful delivery
to a recipient, the tables are queried in the specified order with
one line of text that is structured as follows: </p>
<blockquote>
enhanced-status-code SPACE explanatory-text
</blockquote>
<p> The first table match wins. The lookup result must have the
same structure as the query, a successful status code (2.X.X) must
be replaced with a successful status code, an unsuccessful status
code (4.X.X or 5.X.X) must be replaced with an unsuccessful status
code, and the explanatory text field must be non-empty. Other results
will result in a warning. </p>
<p> Example 1: convert specific soft TLS errors into hard errors,
by overriding the first number in the enhanced status code. </p>
<blockquote>
<pre>
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_dsn_filter
</pre>
</blockquote>
<blockquote>
<pre>
/etc/postfix/smtp_dsn_filter:
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
5$1
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
5$1
# Do not change the following into hard bounces. They may
# result from a local configuration problem.
# 4.\d+.\d+ TLS is required, but our TLS engine is unavailable
# 4.\d+.\d+ TLS is required, but unavailable
# 4.\d+.\d+ Cannot start TLS: handshake failure
</pre>
</blockquote>
<p> Example 2: censor the per-recipient delivery status text so
that it does not reveal the destination command or filename
when a remote sender requests confirmation of successful delivery.
</p>
<blockquote>
<pre>
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#local_delivery_status_filter">local_delivery_status_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/local_dsn_filter
</pre>
</blockquote>
<blockquote>
<pre>
/etc/postfix/local_dsn_filter:
/^(2\S+ delivered to file).+/ $1
/^(2\S+ delivered to command).+/ $1
</pre>
</blockquote>
<p> Notes: </p>
<ul>
<li> <p> This feature will NOT override the <a href="postconf.5.html#soft_bounce">soft_bounce</a> safety net. </p>
<li> <p> This feature will change the enhanced status code and text
that is logged to the maillog file, and that is reported to the
sender in delivery confirmation or non-delivery notifications.
</p>
</ul>
<p> This feature is available in Postfix 3.0 and later. </p>
</DD>
<DT><b><a name="default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>
(default: 1)</b></DT><DD>
<p> How many pseudo-cohorts must suffer connection or handshake
failure before a specific destination is considered unavailable
(and further delivery is suspended). Specify zero to disable this
feature. A destination's pseudo-cohort failure count is reset each
time a delivery completes without connection or handshake failure
for that specific destination. </p>
<p> A pseudo-cohort is the number of deliveries equal to a destination's
delivery concurrency. </p>
<p> Use <a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> to specify
a transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport. </p>
<p> This feature is available in Postfix 2.5. The default setting
is compatible with earlier Postfix versions. </p>
</DD>
<DT><b><a name="default_destination_concurrency_limit">default_destination_concurrency_limit</a>
(default: 20)</b></DT><DD>
<p>
The default maximal number of parallel deliveries to the same
destination. This is the default limit for delivery via the <a href="lmtp.8.html">lmtp(8)</a>,
<a href="pipe.8.html">pipe(8)</a>, <a href="smtp.8.html">smtp(8)</a> and <a href="virtual.8.html">virtual(8)</a> delivery agents.
With a per-destination recipient limit > 1, a destination is a domain,
otherwise it is a recipient.
</p>
<p> Use <a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_destination_concurrency_negative_feedback">default_destination_concurrency_negative_feedback</a>
(default: 1)</b></DT><DD>
<p> The per-destination amount of delivery concurrency negative
feedback, after a delivery completes with a connection or handshake
failure. Feedback values are in the range 0..1 inclusive. With
negative feedback, concurrency is decremented at the beginning of
a sequence of length 1/feedback. This is unlike positive feedback,
where concurrency is incremented at the end of a sequence of length
1/feedback. </p>
<p> As of Postfix version 2.5, negative feedback cannot reduce
delivery concurrency to zero. Instead, a destination is marked
dead (further delivery suspended) after the failed pseudo-cohort
count reaches $<a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>
(or $<a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a>).
To make the scheduler completely immune to connection or handshake
failures, specify a zero feedback value and a zero failed pseudo-cohort
limit. </p>
<p> Specify one of the following forms: </p>
<dl>
<dt> <b><i>number</i> </b> </dt>
<dt> <b><i>number</i> / <i>number</i> </b> </dt>
<dd> Constant feedback. The value must be in the range 0..1 inclusive.
The default setting of "1" is compatible with Postfix versions
before 2.5, where a destination's delivery concurrency is throttled
down to zero (and further delivery suspended) after a single failed
pseudo-cohort. </dd>
<dt> <b><i>number</i> / concurrency </b> </dt>
<dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
The <i>number</i> must be in the range 0..1 inclusive. With
<i>number</i> equal to "1", a destination's delivery concurrency
is decremented by 1 after each failed pseudo-cohort. </dd>
</dl>
<p> A pseudo-cohort is the number of deliveries equal to a destination's
delivery concurrency. </p>
<p> Use <a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a>
to specify a transport-specific override, where <i>transport</i>
is the <a href="master.5.html">master.cf</a>
name of the message delivery transport. </p>
<p> This feature is available in Postfix 2.5. The default setting
is compatible with earlier Postfix versions. </p>
</DD>
<DT><b><a name="default_destination_concurrency_positive_feedback">default_destination_concurrency_positive_feedback</a>
(default: 1)</b></DT><DD>
<p> The per-destination amount of delivery concurrency positive
feedback, after a delivery completes without connection or handshake
failure. Feedback values are in the range 0..1 inclusive. The
concurrency increases until it reaches the per-destination maximal
concurrency limit. With positive feedback, concurrency is incremented
at the end of a sequence with length 1/feedback. This is unlike
negative feedback, where concurrency is decremented at the start
of a sequence of length 1/feedback. </p>
<p> Specify one of the following forms: </p>
<dl>
<dt> <b><i>number</i> </b> </dt>
<dt> <b><i>number</i> / <i>number</i> </b> </dt>
<dd> Constant feedback. The value must be in the range 0..1
inclusive. The default setting of "1" is compatible with Postfix
versions before 2.5, where a destination's delivery concurrency
doubles after each successful pseudo-cohort. </dd>
<dt> <b><i>number</i> / concurrency </b> </dt>
<dd> Variable feedback of "<i>number</i> / (delivery concurrency)".
The <i>number</i> must be in the range 0..1 inclusive. With
<i>number</i> equal to "1", a destination's delivery concurrency
is incremented by 1 after each successful pseudo-cohort. </dd>
</dl>
<p> A pseudo-cohort is the number of deliveries equal to a destination's
delivery concurrency. </p>
<p> Use <a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a>
to specify a transport-specific override, where <i>transport</i>
is the <a href="master.5.html">master.cf</a> name of the message delivery transport. </p>
<p> This feature is available in Postfix 2.5 and later. </p>
</DD>
<DT><b><a name="default_destination_rate_delay">default_destination_rate_delay</a>
(default: 0s)</b></DT><DD>
<p> The default amount of delay that is inserted between individual
message deliveries to the same destination and over the same message
delivery transport. Specify a non-zero value to rate-limit those
message deliveries to at most one per $<a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a>.
</p>
<p> The resulting behavior depends on the value of the corresponding
per-destination recipient limit.
</p>
<ul>
<li> <p> With a corresponding per-destination recipient limit >
1, the rate delay specifies the time between deliveries to the
<i>same domain</i>. Different domains are delivered in parallel,
subject to the process limits specified in <a href="master.5.html">master.cf</a>. </p>
<li> <p> With a corresponding per-destination recipient limit equal
to 1, the rate delay specifies the time between deliveries to the
<i>same recipient</i>. Different recipients are delivered in
parallel, subject to the process limits specified in <a href="master.5.html">master.cf</a>.
</p>
</ul>
<p> To enable the delay, specify a non-zero time value (an integral
value plus an optional one-letter suffix that specifies the time
unit). </p>
<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
(weeks). The default time unit is s (seconds). </p>
<p> NOTE: the delay is enforced by the queue manager. The delay
timer state does not survive "<b>postfix reload</b>" or "<b>postfix
stop</b>".
</p>
<p> Use <a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
<p> NOTE: with a non-zero _destination_rate_delay, specify a
<a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> of 10
or more to prevent Postfix from deferring all mail for the same
destination after only one connection or handshake error. </p>
<p> This feature is available in Postfix 2.5 and later. </p>
</DD>
<DT><b><a name="default_destination_recipient_limit">default_destination_recipient_limit</a>
(default: 50)</b></DT><DD>
<p>
The default maximal number of recipients per message delivery.
This is the default limit for delivery via the <a href="lmtp.8.html">lmtp(8)</a>, <a href="pipe.8.html">pipe(8)</a>,
<a href="smtp.8.html">smtp(8)</a> and <a href="virtual.8.html">virtual(8)</a> delivery agents.
</p>
<p> Setting this parameter to a value of 1 affects email deliveries
as follows:</p>
<ul>
<li> <p> It changes the meaning of the corresponding per-destination
concurrency limit, from concurrency of deliveries to the <i>same
domain</i> into concurrency of deliveries to the <i>same recipient</i>.
Different recipients are delivered in parallel, subject to the
process limits specified in <a href="master.5.html">master.cf</a>. </p>
<li> <p> It changes the meaning of the corresponding per-destination
rate delay, from the delay between deliveries to the <i>same
domain</i> into the delay between deliveries to the <i>same
recipient</i>. Again, different recipients are delivered in parallel,
subject to the process limits specified in <a href="master.5.html">master.cf</a>. </p>
<li> <p> It changes the meaning of other corresponding per-destination
settings in a similar manner, from settings for delivery to the
<i>same domain</i> into settings for delivery to the <i>same
recipient</i>.
</ul>
<p> Use <a href="postconf.5.html#transport_destination_recipient_limit"><i>transport</i>_destination_recipient_limit</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_extra_recipient_limit">default_extra_recipient_limit</a>
(default: 1000)</b></DT><DD>
<p>
The default value for the extra per-transport limit imposed on the
number of in-memory recipients. This extra recipient space is
reserved for the cases when the Postfix queue manager's scheduler
preempts one message with another and suddenly needs some extra
recipient slots for the chosen message in order to avoid performance
degradation.
</p>
<p> Use <a href="postconf.5.html#transport_extra_recipient_limit"><i>transport</i>_extra_recipient_limit</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_filter_nexthop">default_filter_nexthop</a>
(default: empty)</b></DT><DD>
<p> When a <a href="postconf.5.html#content_filter">content_filter</a> or FILTER request specifies no explicit
next-hop destination, use $<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> instead; when
that value is empty, use the domain in the recipient address.
Specify "<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility
with Postfix version 2.6 and earlier, or specify an explicit next-hop
destination with each <a href="postconf.5.html#content_filter">content_filter</a> value or FILTER action. </p>
<p> This feature is available in Postfix 2.7 and later. </p>
</DD>
<DT><b><a name="default_minimum_delivery_slots">default_minimum_delivery_slots</a>
(default: 3)</b></DT><DD>
<p>
How many recipients a message must have in order to invoke the
Postfix queue manager's scheduling algorithm at all. Messages
which would never accumulate at least this many delivery slots
(subject to slot cost parameter as well) are never preempted.
</p>
<p> Use <a href="postconf.5.html#transport_minimum_delivery_slots"><i>transport</i>_minimum_delivery_slots</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_privs">default_privs</a>
(default: nobody)</b></DT><DD>
<p>
The default rights used by the <a href="local.8.html">local(8)</a> delivery agent for delivery
to an external file or command. These rights are used when delivery
is requested from an <a href="aliases.5.html">aliases(5)</a> file that is owned by <b>root</b>, or
when delivery is done on behalf of <b>root</b>. <b>DO NOT SPECIFY A
PRIVILEGED USER OR THE POSTFIX OWNER</b>.
</p>
</DD>
<DT><b><a name="default_process_limit">default_process_limit</a>
(default: 100)</b></DT><DD>
<p>
The default maximal number of Postfix child processes that provide
a given service. This limit can be overruled for specific services
in the <a href="master.5.html">master.cf</a> file.
</p>
</DD>
<DT><b><a name="default_rbl_reply">default_rbl_reply</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The default Postfix SMTP server response template for a request that is
rejected by an RBL-based restriction. This template can be overruled
by specific entries in the optional <a href="postconf.5.html#rbl_reply_maps">rbl_reply_maps</a> lookup table.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
<p>
The template does not support Postfix configuration parameter $name
substitution. Instead, it supports exactly one level of $name
substitution for the following attributes:
</p>
<dl>
<dt><b>$client</b></dt>
<dd>The client hostname and IP address, formatted as name[address]. </dd>
<dt><b>$client_address</b></dt>
<dd>The client IP address. </dd>
<dt><b>$client_name</b></dt>
<dd>The client hostname or "unknown". See <a href="postconf.5.html#reject_unknown_client_hostname">reject_unknown_client_hostname</a>
for more details. </dd>
<dt><b>$reverse_client_name</b></dt>
<dd>The client hostname from address->name lookup, or "unknown".
See <a href="postconf.5.html#reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a> for more details. </dd>
<dt><b>$helo_name</b></dt>
<dd>The hostname given in HELO or EHLO command or empty string. </dd>
<dt><b>$rbl_class</b></dt>
<dd>The denylisted entity type: Client host, Helo command, Sender
address, or Recipient address. </dd>
<dt><b>$rbl_code</b></dt>
<dd>The numerical SMTP response code, as specified with the
<a href="postconf.5.html#maps_rbl_reject_code">maps_rbl_reject_code</a> configuration parameter. Note: The numerical
SMTP response code is required, and must appear at the start of the
reply. With Postfix version 2.3 and later this information may be followed
by an <a href="https://tools.ietf.org/html/rfc3463">RFC 3463</a> enhanced status code. </dd>
<dt><b>$rbl_domain</b></dt>
<dd>The RBL domain (without any <i>=address-filter</i>) where
$rbl_what is denylisted. </dd>
<dt><b>$rbl_reason</b></dt>
<dd>The reason why $rbl_what is denylisted, or an empty string. </dd>
<dt><b>$rbl_what</b></dt>
<dd>The entity that is denylisted (an IP address, a hostname, a domain
name, or an email address whose domain was denylisted). </dd>
<dt><b>$recipient</b></dt>
<dd>The recipient address or <> in case of the null address. </dd>
<dt><b>$recipient_domain</b></dt>
<dd>The recipient domain or empty string. </dd>
<dt><b>$recipient_name</b></dt>
<dd>The recipient address localpart or <> in case of null address. </dd>
<dt><b>$sender</b></dt>
<dd>The sender address or <> in case of the null address. </dd>
<dt><b>$sender_domain</b></dt>
<dd>The sender domain or empty string. </dd>
<dt><b>$sender_name</b></dt>
<dd>The sender address localpart or <> in case of the null address. </dd>
<dt><b>${name?value}</b></dt>
<dt><b>${name?{value}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
<dt><b>${name:value}</b></dt>
<dt><b>${name:{value}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
<dt><b>${name?{value1}:{value2}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
<i>value2</i> otherwise. </dd>
</dl>
<p>
Instead of $name you can also specify ${name} or $(name).
</p>
<p> Note: when an enhanced status code is specified in an RBL reply
template, it is subject to modification. The following transformations
are needed when the same RBL response template is used for client,
helo, sender, or recipient access restrictions. </p>
<ul>
<li> <p> When rejecting a sender address, the Postfix SMTP server
will transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the
corresponding sender DSN status, and vice versa. </p>
<li> <p> When rejecting non-address information (such as the HELO
command argument or the client hostname/address), the Postfix SMTP
server will transform a sender or recipient DSN status into a generic
non-address DSN status (e.g., 4.0.0). </p>
</ul>
</DD>
<DT><b><a name="default_recipient_limit">default_recipient_limit</a>
(default: 20000)</b></DT><DD>
<p>
The default per-transport upper limit on the number of in-memory
recipients. These limits take priority over the global
<a href="postconf.5.html#qmgr_message_recipient_limit">qmgr_message_recipient_limit</a> after the message has been assigned
to the respective transports. See also <a href="postconf.5.html#default_extra_recipient_limit">default_extra_recipient_limit</a>
and <a href="postconf.5.html#qmgr_message_recipient_minimum">qmgr_message_recipient_minimum</a>.
</p>
<p> Use <a href="postconf.5.html#transport_recipient_limit"><i>transport</i>_recipient_limit</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
</DD>
<DT><b><a name="default_recipient_refill_delay">default_recipient_refill_delay</a>
(default: 5s)</b></DT><DD>
<p>
The default per-transport maximum delay between refilling recipients.
When not all message recipients fit into memory at once, keep loading
more of them at least once every this many seconds. This is used to
make sure the recipients are refilled in a timely manner even when
$<a href="postconf.5.html#default_recipient_refill_limit">default_recipient_refill_limit</a> is too high for too slow deliveries.
</p>
<p> Use <a href="postconf.5.html#transport_recipient_refill_delay"><i>transport</i>_recipient_refill_delay</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
<p> This feature is available in Postfix 2.4 and later. </p>
</DD>
<DT><b><a name="default_recipient_refill_limit">default_recipient_refill_limit</a>
(default: 100)</b></DT><DD>
<p>
The default per-transport limit on the number of recipients refilled at
once. When not all message recipients fit into memory at once, keep
loading more of them in batches of at least this many at a time. See also
$<a href="postconf.5.html#default_recipient_refill_delay">default_recipient_refill_delay</a>, which may result in recipient batches
lower than this when this limit is too high for too slow deliveries.
</p>
<p> Use <a href="postconf.5.html#transport_recipient_refill_limit"><i>transport</i>_recipient_refill_limit</a> to specify a
transport-specific override, where <i>transport</i> is the <a href="master.5.html">master.cf</a>
name of the message delivery transport.
</p>
<p> This feature is available in Postfix 2.4 and later. </p>
</DD>
<DT><b><a name="default_transport">default_transport</a>
(default: smtp)</b></DT><DD>
<p>
The default mail delivery transport and next-hop destination for
the <a href="ADDRESS_CLASS_README.html#default_domain_class">default domain</a> class: recipient domains that do not match
$<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a>,
$<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>, $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>,
or $<a href="postconf.5.html#relay_domains">relay_domains</a>. This information will not be used when
<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> returns a result, and may
be overridden with the <a href="transport.5.html">transport(5)</a> table. </p>
<p> For recipient domains in the <a href="ADDRESS_CLASS_README.html#default_domain_class">default domain</a> class: <p>
<ul>
<li> <p> In order of decreasing precedence, the delivery transport
is taken from 1) $<a href="postconf.5.html#transport_maps">transport_maps</a>, 2)
$<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> or $<a href="postconf.5.html#default_transport">default_transport</a>.
</p>
<li> <p> In order of decreasing precedence, the nexthop destination
is taken from 1) $<a href="postconf.5.html#transport_maps">transport_maps</a>, 2)
$<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> or $<a href="postconf.5.html#default_transport">default_transport</a>, 3)
$<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> or $<a href="postconf.5.html#relayhost">relayhost</a> or the recipient
domain. </p>
</ul>
<p>
Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
The <i>:nexthop</i> destination is optional; its syntax is documented
in the manual page of the corresponding delivery agent. In the case of
SMTP or LMTP, specify one or more destinations separated by comma or
whitespace (with Postfix 3.5 and later).
</p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#default_transport">default_transport</a> = uucp:relayhostname
</pre>
</DD>
<DT><b><a name="default_transport_rate_delay">default_transport_rate_delay</a>
(default: 0s)</b></DT><DD>
<p> The default amount of delay that is inserted between individual
message deliveries over the same message delivery transport,
regardless of destination. Specify a non-zero value to rate-limit
those message deliveries to at most one per $<a href="postconf.5.html#default_transport_rate_delay">default_transport_rate_delay</a>.
</p>
<p>Use <a href="postconf.5.html#transport_transport_rate_delay"><i>transport</i>_transport_rate_delay</a> to specify a
transport-specific override, where the initial <i>transport</i> is
the <a href="master.5.html">master.cf</a> name of the message delivery transport. </p>
<p> Example: throttle outbound SMTP mail to at most 3 deliveries
per minute. </p>
<pre>
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
smtp_transport_rate_delay = 20s
</pre>
<p> To enable the delay, specify a non-zero time value (an integral
value plus an optional one-letter suffix that specifies the time
unit). </p>
<p> Time units: s (seconds), m (minutes), h (hours), d (days), w
(weeks). The default time unit is s (seconds). </p>
<p> NOTE: the delay is enforced by the queue manager. </p>
<p> This feature is available in Postfix 3.1 and later. </p>
</DD>
<DT><b><a name="default_verp_delimiters">default_verp_delimiters</a>
(default: +=)</b></DT><DD>
<p> The two default VERP delimiter characters. These are used when
no explicit delimiters are specified with the SMTP XVERP command
or with the "<b>sendmail -XV</b>" command-line option (Postfix 2.2
and earlier: <b>-V</b>). Specify characters that are allowed by the
<a href="postconf.5.html#verp_delimiter_filter">verp_delimiter_filter</a> setting.
</p>
<p>
This feature is available in Postfix 1.1 and later.
</p>
</DD>
<DT><b><a name="defer_code">defer_code</a>
(default: 450)</b></DT><DD>
<p>
The numerical Postfix SMTP server response code when a remote SMTP
client request is rejected by the "defer" restriction.
</p>
<p>
Do not change this unless you have a complete understanding of <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>.
</p>
</DD>
<DT><b><a name="defer_service_name">defer_service_name</a>
(default: defer)</b></DT><DD>
<p>
The name of the defer service. This service is implemented by the
<a href="bounce.8.html">bounce(8)</a> daemon and maintains a record
of failed delivery attempts and generates non-delivery notifications.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="defer_transports">defer_transports</a>
(default: empty)</b></DT><DD>
<p>
The names of message delivery transports that should not deliver mail
unless someone issues "<b>sendmail -q</b>" or equivalent. Specify zero
or more mail delivery transport names that appear in the
first field of <a href="master.5.html">master.cf</a>.
</p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#defer_transports">defer_transports</a> = smtp
</pre>
</DD>
<DT><b><a name="delay_logging_resolution_limit">delay_logging_resolution_limit</a>
(default: 2)</b></DT><DD>
<p> The maximal number of digits after the decimal point when logging
delay values. Specify a number in the range 0..6. </p>
<p> To improve readability, delays are logged with only a limited
number of significant digits: </p>
<ul>
<li> Delays ≥ 100s are rounded off to an integral number of
seconds.
<li> Delays < 10<sup>-$<a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a></sup> are
rounded off to "0".
<li> Other delays are rounded off to two significant digits, or
fewer if the result would exceed the <a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a>.
</ul>
<p> The format of the "delays=a/b/c/d" logging is as follows: </p>
<ul>
<li> a = Time from message arrival to last <a href="QSHAPE_README.html#active_queue">active queue</a> entry.
<li> b = Time from last <a href="QSHAPE_README.html#active_queue">active queue</a> entry to the beginning of
connection setup.
<li> c = Time in connection setup. With SMTP, that is the time
before sending the MAIL FROM command: with a new connection, that
includes DNS lookups, and protocol handshakes with TCP, EHLO, and
STARTTLS; with a reused connection, that includes DNS lookups,
connection cache lookup by domain or IP address, and a liveness
probe with RSET.
<li> d = Time in message transmission. With SMTP, that starts with
sending MAIL FROM.
</ul>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
<DT><b><a name="delay_notice_recipient">delay_notice_recipient</a>
(default: postmaster)</b></DT><DD>
<p>
The recipient of postmaster notifications with the message headers
of mail that cannot be delivered within $<a href="postconf.5.html#delay_warning_time">delay_warning_time</a> time
units. </p>
<p>
See also: <a href="postconf.5.html#delay_warning_time">delay_warning_time</a>, <a href="postconf.5.html#notify_classes">notify_classes</a>.
</p>
</DD>
<DT><b><a name="delay_warning_time">delay_warning_time</a>
(default: 0h)</b></DT><DD>
<p>
The time after which the sender receives a copy of the message
headers of mail that is still queued. The <a href="postconf.5.html#confirm_delay_cleared">confirm_delay_cleared</a>
parameter controls sender notification when the delay clears up.
</p>
<p>
To enable this feature, specify a non-zero time value (an integral
value plus an optional one-letter suffix that specifies the time
unit).
</p>
<p>
Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is h (hours).
</p>
<p>
See also: <a href="postconf.5.html#delay_notice_recipient">delay_notice_recipient</a>, <a href="postconf.5.html#notify_classes">notify_classes</a>, <a href="postconf.5.html#confirm_delay_cleared">confirm_delay_cleared</a>.
</p>
</DD>
<DT><b><a name="deliver_lock_attempts">deliver_lock_attempts</a>
(default: 20)</b></DT><DD>
<p>
The maximal number of attempts to acquire an exclusive lock on a
mailbox file or <a href="bounce.8.html">bounce(8)</a> logfile.
</p>
</DD>
<DT><b><a name="deliver_lock_delay">deliver_lock_delay</a>
(default: 1s)</b></DT><DD>
<p>
The time between attempts to acquire an exclusive lock on a mailbox
file or <a href="bounce.8.html">bounce(8)</a> logfile.
</p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
</DD>
<DT><b><a name="destination_concurrency_feedback_debug">destination_concurrency_feedback_debug</a>
(default: no)</b></DT><DD>
<p> Make the queue manager's feedback algorithm verbose for performance
analysis purposes. </p>
<p> This feature is available in Postfix 2.5 and later. </p>
</DD>
<DT><b><a name="detect_8bit_encoding_header">detect_8bit_encoding_header</a>
(default: yes)</b></DT><DD>
<p> Automatically detect 8BITMIME body content by looking at
Content-Transfer-Encoding: message headers; historically, this
behavior was hard-coded to be "always on". </p>
<p> This feature is available in Postfix 2.5 and later. </p>
</DD>
<DT><b><a name="disable_dns_lookups">disable_dns_lookups</a>
(default: no)</b></DT><DD>
<p>
Disable DNS lookups in the Postfix SMTP and LMTP clients. When
disabled, hosts are looked up with the getaddrinfo() system
library routine which normally also looks in /etc/hosts. As of
Postfix 2.11, this parameter is deprecated; use <a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a>
instead.
</p>
<p>
DNS lookups are enabled by default.
</p>
</DD>
<DT><b><a name="disable_mime_input_processing">disable_mime_input_processing</a>
(default: no)</b></DT><DD>
<p>
Turn off MIME processing while receiving mail. This means that no
special treatment is given to Content-Type: message headers, and
that all text after the initial message headers is considered to
be part of the message body.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
<p>
Mime input processing is enabled by default, and is needed in order
to recognize MIME headers in message content.
</p>
</DD>
<DT><b><a name="disable_mime_output_conversion">disable_mime_output_conversion</a>
(default: no)</b></DT><DD>
<p>
Disable the conversion of 8BITMIME format to 7BIT format. Mime
output conversion is needed when the destination does not advertise
8BITMIME support.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="disable_verp_bounces">disable_verp_bounces</a>
(default: no)</b></DT><DD>
<p>
Disable sending one bounce report per recipient.
</p>
<p>
The default, one per recipient, is what ezmlm needs.
</p>
<p>
This feature is available in Postfix 1.1 and later.
</p>
</DD>
<DT><b><a name="disable_vrfy_command">disable_vrfy_command</a>
(default: no)</b></DT><DD>
<p>
Disable the SMTP VRFY command. This stops some techniques used to
harvest email addresses.
</p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#disable_vrfy_command">disable_vrfy_command</a> = no
</pre>
</DD>
<DT><b><a name="dns_ncache_ttl_fix_enable">dns_ncache_ttl_fix_enable</a>
(default: no)</b></DT><DD>
<p> Enable a workaround for future libc incompatibility. The Postfix
implementation of <a href="https://tools.ietf.org/html/rfc2308">RFC 2308</a> negative reply caching relies on the
promise that res_query() and res_search() invoke res_send(), which
returns the server response in an application buffer even if the
requested record does not exist. If this promise is broken, specify
"yes" to enable a workaround for DNS reputation lookups. </p>
<p>
This feature is available in Postfix 3.1 and later.
</p>
</DD>
<DT><b><a name="dnsblog_reply_delay">dnsblog_reply_delay</a>
(default: 0s)</b></DT><DD>
<p> A debugging aid to artificially delay DNS responses. </p>
<p> This feature is available in Postfix 2.8. </p>
</DD>
<DT><b><a name="dnsblog_service_name">dnsblog_service_name</a>
(default: dnsblog)</b></DT><DD>
<p> The name of the <a href="dnsblog.8.html">dnsblog(8)</a> service entry in <a href="master.5.html">master.cf</a>. This
service performs DNS allow/denylist lookups. </p>
<p> This feature is available in Postfix 2.8 and later. </p>
</DD>
<DT><b><a name="dnssec_probe">dnssec_probe</a>
(default: ns:.)</b></DT><DD>
<p> The DNS query type (default: "ns") and DNS query name (default:
".") that Postfix may use to determine whether DNSSEC validation
is available.
</p>
<p> Background: DNSSEC validation is needed for Postfix DANE support;
this ensures that Postfix receives TLSA records with secure TLS
server certificate info. When DNSSEC validation is unavailable,
mail deliveries using <i>opportunistic</i> DANE will not be protected
by server certificate info in TLSA records, and mail deliveries
using <i>mandatory</i> DANE will not be made at all. </p>
<p> By default, a Postfix process will send a DNSSEC probe after
1) the process made a DNS query that requested DNSSEC validation,
2) the process did not receive a DNSSEC validated response to this
query or to an earlier query, and 3) the process did not already
send a DNSSEC probe. <p>
<p> When the DNSSEC probe has no response, or when the response is
not DNSSEC validated, Postfix logs a warning that DNSSEC validation
may be unavailable. </p>
<p> Example: </p>
<pre>
warning: DNSSEC validation may be unavailable
warning: reason: <a href="postconf.5.html#dnssec_probe">dnssec_probe</a> 'ns:.' received a response that is not DNSSEC validated
warning: reason: <a href="postconf.5.html#dnssec_probe">dnssec_probe</a> 'ns:.' received no response: Server failure
</pre>
<p> Possible reasons why DNSSEC validation may be unavailable: </p>
<ul>
<li> The local /etc/resolv.conf file specifies a DNS resolver that
does not validate DNSSEC signatures (that's
$<a href="postconf.5.html#queue_directory">queue_directory</a>/etc/resolv.conf when a Postfix daemon runs in a
chroot jail).
<li> The local system library does not pass on the "DNSSEC validated"
bit to Postfix, or Postfix does not know how to ask the library to
do that.
</ul>
<p> By default, the DNSSEC probe asks for the DNS root zone NS
records, because resolvers should always have that information
cached. If Postfix runs on a network where the DNS root zone is not
reachable, specify a different probe, or specify an empty <a href="postconf.5.html#dnssec_probe">dnssec_probe</a>
value to disable the feature. </p>
<p> This feature is available in Postfix 3.6 and later. It was backported
to Postfix versions 3.5.9, 3.4.19, 3.3.16. 3.2.21. </p>
</DD>
<DT><b><a name="domain_to_ascii">domain_to_ascii</a>
(default: no default)</b></DT><DD>
<p> A function that returns the ASCII representation of its domain
name argument. If the argument contains only (7-bit) ASCII characters
(A-label form), then <a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{} will return the same value.
If the argument contains a valid non-ASCII domain name (U-label
form), then <a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{} will return the corresponding Punycode
(A-label form). Other argument values may result in a program
start-up error. </p>
<p> Examples: </p>
<ul>
<li> <p> The examples below assume that <a href="postconf.5.html#smtp_requiretls_policy">smtp_requiretls_policy</a>
contains the default setting: </p>
<pre>
<a href="postconf.5.html#smtp_requiretls_policy">smtp_requiretls_policy</a> = <a href="DATABASE_README.html#types">inline</a>:{
{ ${<a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{$<a href="postconf.5.html#mydomain">mydomain</a>}} = opportunistic },
{ .${<a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{$<a href="postconf.5.html#mydomain">mydomain</a>}} = opportunistic },
...
</pre>
<li> <p> Example 1: when <a href="postconf.5.html#mydomain">mydomain</a> contains only ASCII characters,
<a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{} returns the same value. </p>
<pre>
# postconf -o '<a href="postconf.5.html#mydomain">mydomain</a>=foo.example' -x <a href="postconf.5.html#smtp_requiretls_policy">smtp_requiretls_policy</a>
<a href="postconf.5.html#smtp_requiretls_policy">smtp_requiretls_policy</a> = <a href="DATABASE_README.html#types">inline</a>:{
{ foo.example = opportunistic },
{ .foo.example = opportunistic },
...
</pre>
<li> <p> Example 2: when <a href="postconf.5.html#mydomain">mydomain</a> contains non-ASCII characters,
<a href="postconf.5.html#domain_to_ascii">domain_to_ascii</a>{} returns the Punycode representation. </p>
<pre>
# postconf -o '<a href="postconf.5.html#mydomain">mydomain</a>=π.example' -x <a href="postconf.5.html#smtp_requiretls_policy">smtp_requiretls_policy</a>
<a href="postconf.5.html#smtp_requiretls_policy">smtp_requiretls_policy</a> = <a href="DATABASE_README.html#types">inline</a>:{
{ xn--1xa.example = opportunistic },
{ .xn--1xa.example = opportunistic },
...
</pre>
</ul>
<p> This feature is available in Postfix ≥ 3.11. </p>
</DD>
<DT><b><a name="dont_remove">dont_remove</a>
(default: 0)</b></DT><DD>
<p>
Don't remove queue files and save them to the "saved" mail queue.
This is a debugging aid. To inspect the envelope information and
content of a Postfix queue file, use the <a href="postcat.1.html">postcat(1)</a> command.
</p>
</DD>
<DT><b><a name="double_bounce_sender">double_bounce_sender</a>
(default: double-bounce)</b></DT><DD>
<p> The sender address of postmaster notifications that are generated
by the mail system. All mail to this address is silently discarded,
in order to terminate mail bounce loops. </p>
</DD>
<DT><b><a name="duplicate_filter_limit">duplicate_filter_limit</a>
(default: 1000)</b></DT><DD>
<p> The maximal number of addresses remembered by the address
duplicate filter for <a href="aliases.5.html">aliases(5)</a> or <a href="virtual.5.html">virtual(5)</a> alias expansion, or
for <a href="showq.8.html">showq(8)</a> queue displays. </p>
</DD>
<DT><b><a name="empty_address_default_transport_maps_lookup_key">empty_address_default_transport_maps_lookup_key</a>
(default: <>)</b></DT><DD>
<p> The <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> search string that
will be used instead of the null sender address. </p>
<p> This feature is available in Postfix 2.7 and later. </p>
</DD>
<DT><b><a name="empty_address_local_login_sender_maps_lookup_key">empty_address_local_login_sender_maps_lookup_key</a>
(default: <>)</b></DT><DD>
<p>
The lookup key to be used in <a href="postconf.5.html#local_login_sender_maps">local_login_sender_maps</a> tables, instead
of the null sender address.
</p>
<p> This feature is available in Postfix 3.6 and later. </p>
</DD>
<DT><b><a name="empty_address_recipient">empty_address_recipient</a>
(default: MAILER-DAEMON)</b></DT><DD>
<p>
The recipient of mail addressed to the null address. Postfix does
not accept such addresses in SMTP commands, but they may still be
created locally as the result of configuration or software error.
</p>
</DD>
<DT><b><a name="empty_address_relayhost_maps_lookup_key">empty_address_relayhost_maps_lookup_key</a>
(default: <>)</b></DT><DD>
<p> The <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> search string that will be
used instead of the null sender address. </p>
<p> This feature is available in Postfix 2.5 and later. With
earlier versions, <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> lookups were
skipped for the null sender address. </p>
</DD>
<DT><b><a name="enable_errors_to">enable_errors_to</a>
(default: no)</b></DT><DD>
<p> Report mail delivery errors to the address specified with the
non-standard Errors-To: message header, instead of the envelope
sender address (this feature is removed with Postfix version 2.2, is
turned off by default with Postfix version 2.1, and is always turned on
with older Postfix versions). </p>
</DD>
<DT><b><a name="enable_idna2003_compatibility">enable_idna2003_compatibility</a>
(default: no)</b></DT><DD>
<p> Enable 'transitional' compatibility between IDNA2003 and IDNA2008,
when converting UTF-8 domain names to/from the ASCII form that is
used for DNS lookups. Specify "yes" for compatibility with Postfix
≤ 3.1 (not recommended). This affects the conversion of domain
names that contain for example the German sz and the Greek sigma.
See <a href="https://unicode.org/cldr/utility/idna.jsp">https://unicode.org/cldr/utility/idna.jsp</a> for more examples.
</p>
<p> This feature is available in Postfix 3.2 and later. </p>
</DD>
<DT><b><a name="enable_long_queue_ids">enable_long_queue_ids</a>
(default: no)</b></DT><DD>
<p> Enable long, non-repeating, queue IDs (queue file names). The
benefit of non-repeating names is simpler logfile analysis and
easier queue migration (there is no need to run "postsuper" to
change queue file names that don't match their message file inode
number). </p>
<p> Note: see below for how to convert long queue file names to
Postfix ≤ 2.8. </p>
<p> Changing the parameter value to "yes" has the following effects:
</p>
<ul>
<li> <p> Existing queue file names are not affected. </p>
<li> <p> New queue files are created with names such as 3Pt2mN2VXxznjll.
These are encoded in a 52-character alphabet that contains digits
(0-9), upper-case letters (B-Z) and lower-case letters (b-z). For
safety reasons the vowels (AEIOUaeiou) are excluded from the alphabet.
The name format is: 6 or more characters for the time in seconds,
4 characters for the time in microseconds, the 'z'; the remainder
is the file inode number encoded in the first 51 characters of the
52-character alphabet. </p>
<li> <p> New messages have a Message-ID header with
<i>queueID</i>@<i><a href="postconf.5.html#myhostname">myhostname</a></i>. </p>
<li> <p> The mailq (postqueue -p) output has a wider Queue ID column.
The number of whitespace-separated fields is not changed. <p>
<li> <p> The <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> algorithm uses the first characters
of the queue file creation time in microseconds, after conversion
into hexadecimal representation. This produces the same queue hashing
behavior as if the queue file name was created with "<a href="postconf.5.html#enable_long_queue_ids">enable_long_queue_ids</a>
= no". </p>
</ul>
<p> Changing the parameter value to "no" has the following effects:
</p>
<ul>
<li> <p> Existing long queue file names are renamed to the short
form (while running "postfix reload" or "postsuper"). </p>
<li> <p> New queue files are created with names such as C3CD21F3E90
from a hexadecimal alphabet that contains digits (0-9) and upper-case
letters (A-F). The name format is: 5 characters for the time in
microseconds; the remainder is the file inode number. </p>
<li> <p> New messages have a Message-ID header with
<i>YYYYMMDDHHMMSS.queueid</i>@<i><a href="postconf.5.html#myhostname">myhostname</a></i>, where
<i>YYYYMMDDHHMMSS</i> are the year, month, day, hour, minute and
second.
<li> <p> The mailq (postqueue -p) output has the same format as
with Postfix ≤ 2.8. <p>
<li> <p> The <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> algorithm uses the first characters
of the queue file name, with the hexadecimal representation of the
file creation time in microseconds. </p>
</ul>
<p> Before migration to Postfix ≤ 2.8, the following commands
are required to convert long queue file names into short names: </p>
<pre>
# postfix stop
# postconf <a href="postconf.5.html#enable_long_queue_ids">enable_long_queue_ids</a>=no
# postsuper
</pre>
<p> Repeat the postsuper command until it reports no more queue file
name changes. </p>
<p> This feature is available in Postfix 2.9 and later. </p>
</DD>
<DT><b><a name="enable_original_recipient">enable_original_recipient</a>
(default: yes)</b></DT><DD>
<p> Enable support for the original recipient address after an
address is rewritten to a different address (for example with
aliasing or with canonical mapping). </p>
<p> The original recipient address is used as follows: </p>
<dl>
<dt> Final delivery </dt> <dd> With "<a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a> =
yes", the original recipient address is stored in the <b>X-Original-To</b>
message header. This header may be used to distinguish between
different recipients that share the same mailbox. </dd>
<dt> Recipient deduplication </dt> <dd> With "<a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a>
= yes", the <a href="cleanup.8.html">cleanup(8)</a> daemon performs duplicate recipient elimination
based on the content of (original recipient, maybe-rewritten
recipient) pairs. Otherwise, the <a href="cleanup.8.html">cleanup(8)</a> daemon performs duplicate
recipient elimination based only on the maybe-rewritten recipient
address. </dd>
</dl>
<p> Note: with Postfix ≤ 3.2 the "setting <a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a>
= <b>no</b>" breaks address verification for addresses that are
aliased or otherwise rewritten (Postfix is unable to store the
address verification result under the original probe destination
address; instead, it can store the result only under the rewritten
address). </p>
<p> This feature is available in Postfix 2.1 and later. Postfix
version 2.0 behaves as if this parameter is always set to <b>yes</b>.
Postfix versions before 2.0 have no support for the original recipient
address. </p>
</DD>
<DT><b><a name="enable_threaded_bounces">enable_threaded_bounces</a>
(default: no)</b></DT><DD>
<p> Enable non-delivery, success, and delay notifications that link
to the original message by including a References: and In-Reply-To:
header with the original Message-ID value. There are advantages and
disadvantages to consider. </p>
<dl>
<dt> <b> advantage </b> </dt> <dd> This allows mail readers to present
a delivery status notification in the same email thread as the original
message. </dd>
<dt> <b> disadvantage </b> </dt> <dd> This makes it easy for users to
mistakenly delete the whole email thread (all related messages),
instead of deleting only the non-delivery notification. </dd>
</dl>
<p> This feature is available in Postfix 3.6 and later. </p>
</DD>
<DT><b><a name="error_notice_recipient">error_notice_recipient</a>
(default: postmaster)</b></DT><DD>
<p> The recipient of postmaster notifications about mail delivery
problems that are caused by policy, resource, software or protocol
errors. These notifications are enabled with the <a href="postconf.5.html#notify_classes">notify_classes</a>
parameter. </p>
</DD>
<DT><b><a name="error_service_name">error_service_name</a>
(default: error)</b></DT><DD>
<p>
The name of the <a href="error.8.html">error(8)</a> pseudo delivery agent. This service always
returns mail as undeliverable.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="execution_directory_expansion_filter">execution_directory_expansion_filter</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> Restrict the characters that the <a href="local.8.html">local(8)</a> delivery agent allows
in $name expansions of $<a href="postconf.5.html#command_execution_directory">command_execution_directory</a>. Characters
outside the allowed set are replaced by underscores. </p>
<p> This feature is available in Postfix 2.2 and later. </p>
</DD>
<DT><b><a name="expand_owner_alias">expand_owner_alias</a>
(default: no)</b></DT><DD>
<p>
When delivering to an alias "<i>aliasname</i>" that has an
"owner-<i>aliasname</i>" companion alias, set the envelope sender
address to the expansion of the "owner-<i>aliasname</i>" alias.
Normally, Postfix sets the envelope sender address to the name of
the "owner-<i>aliasname</i>" alias.
</p>
</DD>
<DT><b><a name="export_environment">export_environment</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The list of environment variables that a Postfix process will export
to non-Postfix processes. The TZ variable is needed for sane
time keeping on System-V-ish systems.
</p>
<p>
Specify a list of names and/or name=value pairs, separated by
whitespace or comma. Specify "{ name=value }" to protect whitespace
or comma in parameter values (whitespace after the opening "{" and
before the closing "}"
is ignored). The form name=value is supported with Postfix version
2.1 and later; the use of {} is supported with Postfix 3.0 and
later. </p>
<p>
Example:
</p>
<pre>
<a href="postconf.5.html#export_environment">export_environment</a> = TZ PATH=/bin:/usr/bin
</pre>
</DD>
<DT><b><a name="extract_recipient_limit">extract_recipient_limit</a>
(default: 10240)</b></DT><DD>
<p>
The maximal number of recipient addresses that Postfix will extract
from message headers when mail is submitted with "<b>sendmail -t</b>".
</p>
<p>
This feature was removed in Postfix version 2.1.
</p>
</DD>
<DT><b><a name="fallback_relay">fallback_relay</a>
(default: empty)</b></DT><DD>
<p>
Optional list of relay hosts for SMTP destinations that can't be
found or that are unreachable. With Postfix 2.3 this parameter
is renamed to <a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a>. </p>
<p>
By default, mail is returned to the sender when a destination is
not found, and delivery is deferred when a destination is unreachable.
</p>
<p> The fallback relays must be SMTP destinations. Specify a domain,
host, host:port, [host]:port, [address] or [address]:port; the form
[host] turns off MX lookups. If you specify multiple SMTP
destinations, Postfix will try them in the specified order. </p>
<p> Note: before Postfix 2.2, do not use the <a href="postconf.5.html#fallback_relay">fallback_relay</a> feature
when relaying mail
for a backup or primary MX domain. Mail would loop between the
Postfix MX host and the <a href="postconf.5.html#fallback_relay">fallback_relay</a> host when the final destination
is unavailable. </p>
<ul>
<li> In <a href="postconf.5.html">main.cf</a> specify "<a href="postconf.5.html#relay_transport">relay_transport</a> = relay",
<li> In <a href="master.5.html">master.cf</a> specify "-o <a href="postconf.5.html#fallback_relay">fallback_relay</a> =" (i.e., empty) at
the end of the <tt>relay</tt> entry.
<li> In transport maps, specify "relay:<i>nexthop...</i>"
as the right-hand side for backup or primary MX domain entries.
</ul>
<p> Postfix version 2.2 and later will not use the <a href="postconf.5.html#fallback_relay">fallback_relay</a> feature
for destinations that it is MX host for.
</p>
</DD>
<DT><b><a name="fallback_transport">fallback_transport</a>
(default: empty)</b></DT><DD>
<p>
Optional message delivery transport that the <a href="local.8.html">local(8)</a> delivery
agent should use for names that are not found in the <a href="aliases.5.html">aliases(5)</a>
or UNIX password database.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
</DD>
<DT><b><a name="fallback_transport_maps">fallback_transport_maps</a>
(default: empty)</b></DT><DD>
<p> Optional lookup tables with per-recipient message delivery
transports for recipients that the <a href="local.8.html">local(8)</a> delivery agent could
not find in the <a href="aliases.5.html">aliases(5)</a> or UNIX password database. </p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
<p> For safety reasons, this feature does not allow $number
substitutions in regular expression maps. </p>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
<DT><b><a name="fast_flush_domains">fast_flush_domains</a>
(default: $<a href="postconf.5.html#relay_domains">relay_domains</a>)</b></DT><DD>
<p>
Optional list of destinations that are eligible for per-destination
logfiles with mail that is queued to those destinations.
</p>
<p>
By default, Postfix maintains "fast flush" logfiles only for
destinations that the Postfix SMTP server is willing to relay to
(i.e. the default is: "<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> = $<a href="postconf.5.html#relay_domains">relay_domains</a>"; see
the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter in the <a href="postconf.5.html">postconf(5)</a> manual).
</p>
<p> Specify a list of hosts or domains, "/file/name" patterns or
"<a href="DATABASE_README.html">type:table</a>" lookup tables, separated by commas and/or whitespace.
Continue long lines by starting the next line with whitespace. A
"/file/name" pattern is replaced by its contents; a "<a href="DATABASE_README.html">type:table</a>"
lookup table is matched when the domain or its parent domain appears
as lookup key. </p>
<p> Pattern matching of domain names is controlled by the presence
or absence of "<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a>" in the <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a>
parameter value. </p>
<p>
Specify "<a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> =" (i.e., empty) to disable the feature
altogether.
</p>
</DD>
<DT><b><a name="fast_flush_purge_time">fast_flush_purge_time</a>
(default: 7d)</b></DT><DD>
<p>
The time after which an empty per-destination "fast flush" logfile
is deleted.
</p>
<p>
You can specify the time as a number, or as a number followed by
a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
d=days, w=weeks. The default time unit is days.
</p>
</DD>
<DT><b><a name="fast_flush_refresh_time">fast_flush_refresh_time</a>
(default: 12h)</b></DT><DD>
<p>
The time after which a non-empty but unread per-destination "fast
flush" logfile needs to be refreshed. The contents of a logfile
are refreshed by requesting delivery of all messages listed in the
logfile.
</p>
<p>
You can specify the time as a number, or as a number followed by
a letter that indicates the time unit: s=seconds, m=minutes, h=hours,
d=days, w=weeks. The default time unit is hours.
</p>
</DD>
<DT><b><a name="fault_injection_code">fault_injection_code</a>
(default: 0)</b></DT><DD>
<p>
Force specific internal tests to fail, to test the handling of
errors that are difficult to reproduce otherwise.
</p>
</DD>
<DT><b><a name="flush_service_name">flush_service_name</a>
(default: flush)</b></DT><DD>
<p>
The name of the <a href="flush.8.html">flush(8)</a> service. This service maintains per-destination
logfiles with the queue file names of mail that is queued for those
destinations.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="force_mime_input_conversion">force_mime_input_conversion</a>
(default: no)</b></DT><DD>
<p> Convert body content that claims to be 8-bit into quoted-printable,
before <a href="postconf.5.html#header_checks">header_checks</a>, <a href="postconf.5.html#body_checks">body_checks</a>, Milters, and before after-queue
content filters. This feature does not affect messages that are
sent into <a href="postconf.5.html#smtpd_proxy_filter">smtpd_proxy_filter</a>. </p>
<p> The typical use case is an MTA that applies this conversion
before signing outbound messages, so that the signatures will remain
valid when a message is later delivered to an MTA that does not
announce 8BITMIME support, or when a message line exceeds the SMTP
length limit. </p>
<p> This feature is available in Postfix ≥ 3.9. </p>
</DD>
<DT><b><a name="fork_attempts">fork_attempts</a>
(default: 5)</b></DT><DD>
<p> The maximal number of attempts to fork() a child process. </p>
</DD>
<DT><b><a name="fork_delay">fork_delay</a>
(default: 1s)</b></DT><DD>
<p> The delay between attempts to fork() a child process. </p>
<p> Specify a non-zero time value (an integral value plus an optional
one-letter suffix that specifies the time unit). Time units: s
(seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds). </p>
</DD>
<DT><b><a name="forward_expansion_filter">forward_expansion_filter</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
Restrict the characters that the <a href="local.8.html">local(8)</a> delivery agent allows in
$name expansions of $<a href="postconf.5.html#forward_path">forward_path</a>. Characters outside the
allowed set are replaced by underscores.
</p>
</DD>
<DT><b><a name="forward_path">forward_path</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> The <a href="local.8.html">local(8)</a> delivery agent search list for finding a .forward
file with user-specified delivery methods. The first file that is
found is used. </p>
<p> The <a href="postconf.5.html#forward_path">forward_path</a> value is not subject to Postfix configuration
parameter $name expansion. Instead, the following $name expansions
are done on <a href="postconf.5.html#forward_path">forward_path</a> before the search actually happens.
The result of $name expansion is
filtered with the character set that is specified with the
<a href="postconf.5.html#forward_expansion_filter">forward_expansion_filter</a> parameter. </p>
<dl>
<dt><b>$user</b></dt>
<dd>The recipient's username. </dd>
<dt><b>$shell</b></dt>
<dd>The recipient's login shell pathname. </dd>
<dt><b>$home</b></dt>
<dd>The recipient's home directory. </dd>
<dt><b>$recipient</b></dt>
<dd>The full recipient address. </dd>
<dt><b>$extension</b></dt>
<dd>The optional recipient address extension. </dd>
<dt><b>$domain</b></dt>
<dd>The recipient domain. </dd>
<dt><b>$local</b></dt>
<dd>The entire recipient localpart. </dd>
<dt><b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a></b></dt>
<dd>The address extension delimiter that was found in the recipient
address (Postfix 2.11 and later), or the 'first' delimiter specified
with the system-wide recipient address extension delimiter (Postfix
3.5.22, 3.6.12, 3.7.8, 3.8.3 and later). Historically, this was
always the system-wide recipient
address extension delimiter (Postfix 2.10 and earlier). </dd>
<dt><b>${name?value}</b></dt>
<dt><b>${name?{value}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd>
<dt><b>${name:value}</b></dt>
<dt><b>${name:{value}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd>
<dt><b>${name?{value1}:{value2}}</b> (Postfix ≥ 3.0)</dt>
<dd>Expands to <i>value1</i> when <i>$name</i> is non-empty,
<i>value2</i> otherwise. </dd>
</dl>
<p>
Instead of $name you can also specify ${name} or $(name).
</p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#forward_path">forward_path</a> = /var/forward/$user
<a href="postconf.5.html#forward_path">forward_path</a> =
/var/forward/$user/.forward$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>$extension,
/var/forward/$user/.forward
</pre>
</DD>
<DT><b><a name="frozen_delivered_to">frozen_delivered_to</a>
(default: yes)</b></DT><DD>
<p> Update the <a href="local.8.html">local(8)</a> delivery agent's idea of the Delivered-To:
address (see <a href="postconf.5.html#prepend_delivered_header">prepend_delivered_header</a>) only once, at the start of
a delivery attempt; do not update the Delivered-To: address while
expanding aliases or .forward files. </p>
<p> This feature is available in Postfix 2.3 and later. With older
Postfix releases, the behavior is as if this parameter is set to
"no". The old setting can be expensive with deeply nested aliases
or .forward files. When an alias or .forward file changes the
Delivered-To: address, it ties up one queue file and one cleanup
process instance while mail is being forwarded. </p>
</DD>
<DT><b><a name="full_name_encoding_charset">full_name_encoding_charset</a>
(default: utf-8)</b></DT><DD>
<p> The character set name (also called "charset") that Postfix
will output when it automatically generates an <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a> encoded
full name. Encoding non-ASCII full names can avoid the need to use
SMTPUTF8, and therefore can avoid incompatibility with sites that
do not support SMTPUTF8. </p>
<p> The encoded names look like "=?charset?q?gibberish?=" with
quoted-printable encoding, or "=?charset?b?gibberish?=" with base64
encoding. Postfix uses quoted-printable encoding for a full name
that is short or mostly printable ASCII, and uses base64 otherwise.
</p>
<p> Background: when a message without a From: header is submitted
with the Postfix <a href="sendmail.1.html">sendmail(1)</a> command, the Postfix <a href="cleanup.8.html">cleanup(8)</a> daemon
will add a From: header and will try to use the sender's full name
specified with the Postfix <a href="sendmail.1.html">sendmail(1)</a> "-F" option, with the Postfix
<a href="sendmail.1.html">sendmail(1)</a> "NAME" environment variable, or with the GECOS field
in the UNIX password database. In the latter case, Postfix will
replace the "&" character with the login name, with a lowercase
ASCII first character converted to uppercase. </p>
<p> NOTE: Postfix does not convert between character sets. The
<a href="postconf.5.html#full_name_encoding_charset">full_name_encoding_charset</a> parameter specifies the character set
of the full name in the Postfix sendmail "-F" option, in the Postfix
sendmail "NAME" environment variable, or in the GECOS field of the
UNIX password database. The parameter value is also part of the
encoded full name, and informs a Mail User Agent how to display the
decoded gibberish. </p>
<p> Specify a valid character set name such as "utf-8" or "iso-8859-1
(specify the latter for full names that use the Latin1 encoding).
The character set name is case insensitive. When a character set
name violates <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a> syntax, Postfix will log a warning and will
skip the full name. </p>
<p> This feature is available in Postfix ≥ 3.10. </p>
</DD>
<DT><b><a name="hash_queue_depth">hash_queue_depth</a>
(default: 1)</b></DT><DD>
<p>
The number of subdirectory levels for queue directories listed with
the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> parameter. Queue hashing is implemented by
creating one or more levels of directories with one-character names.
Originally, these directory names were equal to the first characters
of the queue file name, with the hexadecimal representation of the
file creation time in microseconds. </p>
<p> With long queue file names, queue hashing produces the same
results as with short names. The file creation time in microseconds
is converted into hexadecimal form before the result is used for
queue hashing. The base 16 encoding gives finer control over the
number of subdirectories than is possible with the base 52 encoding
of long queue file names. </p>
<p>
After changing the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> or <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> parameter,
execute the command "<b>postfix reload</b>".
</p>
</DD>
<DT><b><a name="hash_queue_names">hash_queue_names</a>
(default: deferred, defer)</b></DT><DD>
<p>
The names of queue directories that are split across multiple
subdirectory levels.
</p>
<p> Before Postfix version 2.2, the default list of hashed queues
was significantly larger. Claims about improvements in file system
technology suggest that hashing of the <a href="QSHAPE_README.html#incoming_queue">incoming</a> and <a href="QSHAPE_README.html#active_queue">active queues</a>
is no longer needed. Fewer hashed directories speed up the time
needed to restart Postfix. </p>
<p>
After changing the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> or <a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> parameter,
execute the command "<b>postfix reload</b>".
</p>
</DD>
<DT><b><a name="header_address_token_limit">header_address_token_limit</a>
(default: 10240)</b></DT><DD>
<p>
The maximal number of address tokens are allowed in an address
message header. Information that exceeds the limit is discarded.
The limit is enforced by the <a href="cleanup.8.html">cleanup(8)</a> server.
</p>
</DD>
<DT><b><a name="header_checks">header_checks</a>
(default: empty)</b></DT><DD>
<p>
Optional lookup tables for content inspection of primary non-MIME
message headers, as specified in the <a href="header_checks.5.html">header_checks(5)</a> manual page.
</p>
</DD>
<DT><b><a name="header_from_format">header_from_format</a>
(default: standard)</b></DT><DD>
<p> The format of the Postfix-generated <b>From:</b> header. This
setting affects the appearance of 'full name' information when a
local program such as /bin/mail submits a message without a From:
header through the Postfix <a href="sendmail.1.html">sendmail(1)</a> command. </p>
<p> Specify one of the following: </p>
<dl>
<dt><b>standard</b> (default)</dt> <dd> Produce a header formatted
as "<b>From:</b> <i>name</i><b> <</b><i>address</i><b>></b>".
This is the default as of Postfix 3.3.</dd>
<dt><b>obsolete</b></dt> <dd>Produce a header formatted as "<b>From:</b>
<i>address</i> <b>(</b><i>name</i><b>)</b>". This is the behavior
prior to Postfix 3.3. </dd>
</dl>
<p> Notes: </p>
<ul>
<li> <p> Postfix generates the format "<b>From:</b> <i>address</i>"
when <i>name</i> information is unavailable or the envelope sender
address is empty. This is the same behavior as prior to Postfix
3.3. </p>
<li> <p> In the <b>standard</b> form, the <i>name</i> will be quoted
if it contains <b>specials</b> as defined in <a href="https://tools.ietf.org/html/rfc5322">RFC 5322</a>, or the "!%"
address operators. </p>
<li> <p> The Postfix <a href="sendmail.1.html">sendmail(1)</a> command gets <i>name</i> information
from the <b>-F</b> command-line option, from the <b>NAME</b>
environment variable, or from the UNIX password file. </p>
</ul>
<p> This feature is available in Postfix 3.3 and later. </p>
</DD>
<DT><b><a name="header_size_limit">header_size_limit</a>
(default: 102400)</b></DT><DD>
<p>
The maximal amount of memory in bytes for storing a message header.
If a header is larger, the excess is discarded. The limit is
enforced by the <a href="cleanup.8.html">cleanup(8)</a> server.
</p>
</DD>
<DT><b><a name="helpful_warnings">helpful_warnings</a>
(default: yes)</b></DT><DD>
<p>
Log warnings about problematic configuration settings, and provide
helpful suggestions.
</p>
<p>
This feature is available in Postfix 2.0 and later.
</p>
</DD>
<DT><b><a name="home_mailbox">home_mailbox</a>
(default: empty)</b></DT><DD>
<p>
Optional pathname of a mailbox file relative to a <a href="local.8.html">local(8)</a> user's
home directory.
</p>
<p>
Specify a pathname ending in "/" for qmail-style delivery.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
<p>
Examples:
</p>
<pre>
<a href="postconf.5.html#home_mailbox">home_mailbox</a> = Mailbox
<a href="postconf.5.html#home_mailbox">home_mailbox</a> = Maildir/
</pre>
</DD>
<DT><b><a name="hopcount_limit">hopcount_limit</a>
(default: 50)</b></DT><DD>
<p>
The maximal number of Received: message headers that is allowed
in the primary message headers. A message that exceeds the limit
is bounced, in order to stop a mailer loop.
</p>
</DD>
<DT><b><a name="html_directory">html_directory</a>
(default: see "postconf -d" output)</b></DT><DD>
<p>
The location of Postfix HTML files that describe how to build,
configure or operate a specific Postfix subsystem or feature.
</p>
</DD>
<DT><b><a name="ignore_mx_lookup_error">ignore_mx_lookup_error</a>
(default: no)</b></DT><DD>
<p> Ignore DNS MX lookups that produce no response. By default,
the Postfix SMTP client defers delivery and tries again after some
delay. This behavior is required by the SMTP standard. </p>
<p>
Specify "<a href="postconf.5.html#ignore_mx_lookup_error">ignore_mx_lookup_error</a> = yes" to force a DNS A record
lookup instead. This violates the SMTP standard and can result in
mis-delivery of mail.
</p>
</DD>
<DT><b><a name="ignore_srv_lookup_error">ignore_srv_lookup_error</a>
(default: no)</b></DT><DD>
<p> When SRV record lookup fails, fall back to MX or IP address
lookup as if SRV record lookup was not enabled. </p>
<p> This feature is available in Postfix 3.8 and later. </p>
</DD>
<DT><b><a name="import_environment">import_environment</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> The list of environment variables that a privileged Postfix
process will import from a non-Postfix parent process, or name=value
environment overrides. Unprivileged utilities will enforce the
name=value overrides, but otherwise will not change their process
environment. Examples of relevant environment variables: </p>
<dl>
<dt><b>TZ</b></dt>
<dd>May be needed for sane time keeping on most System-V-ish systems.
</dd>
<dt><b>DISPLAY</b></dt>
<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
<dt><b>XAUTHORITY</b></dt>
<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd>
<dt><b>MAIL_CONFIG</b></dt>
<dd>Needed to make "<b>postfix -c</b>" work. </dd>
<dt><b>POSTLOG_HOSTNAME</b></dt>
<dd>Needed to make "<b><a href="postconf.5.html#maillog_file">maillog_file</a></b>" work during daemon
process initialization. </dd>
<dt><b>POSTLOG_SERVICE</b></dt>
<dd>Needed to make "<b><a href="postconf.5.html#maillog_file">maillog_file</a></b>" work during daemon
process initialization. </dd>
<dt><b>XDG_RUNTIME_DIR</b></dt>
<dd>Needed for debugging Postfix daemons with an XDG-style debugger.
</dd>
</dl>
<p> Specify a list of names and/or name=value pairs, separated by
whitespace or comma. Specify "{ name=value }" to protect whitespace
or comma in environment variable values (whitespace after the opening "{" and
before the closing "}"
is ignored). The form name=value is supported with Postfix version
2.1 and later; the use of {} is supported with Postfix 3.0 and
later. </p>
</DD>
<DT><b><a name="in_flow_delay">in_flow_delay</a>
(default: 1s)</b></DT><DD>
<p> Time to pause before accepting a new message, when the message
arrival rate exceeds the message delivery rate. This feature is
turned on by default (it's disabled on SCO UNIX due to an SCO bug).
</p>
<p>
With the default 100 Postfix SMTP server process limit, "<a href="postconf.5.html#in_flow_delay">in_flow_delay</a>
= 1s" limits the mail inflow to 100 messages per second above the
number of messages delivered per second.
</p>
<p>
Specify 0 to disable the feature. Valid delays are 0..10.
</p>
</DD>
<DT><b><a name="inet_interfaces">inet_interfaces</a>
(default: all)</b></DT><DD>
<p> The local network interface addresses that this mail system
receives mail on. Specify "all" to receive mail on all network
interfaces (default), "loopback-only" to receive mail on loopback
network interfaces only (Postfix version 2.2 and later), or zero
or more IPv4 or IPv6 addresses (IPv6 is supported in Postfix version
2.2 and later). The parameter also controls whether Postfix will
accept mail for <tt>user@[ip.address]</tt>, and prevents Postfix
from delivering mail to a host that has equal or larger MX preference.
Specify an empty value if Postfix does not receive mail over the
network, or if all network listeners have an explicit IP address
in <a href="master.5.html">master.cf</a>. </p>
<p>
Note 1: you need to stop and start Postfix when this parameter changes.
</p>
<p> Note 2: address information may be enclosed inside <tt>[]</tt>,
but this form is not required here. </p>
<p> When <a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> and/or <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> are not
specified, the <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> setting may constrain the source IP
address for an outbound SMTP or LMTP connection as described below.
</p>
<p> The following text is specific to SMTP and IPv4. The same
reasoning applies to the IPv6 protocol, and to the Postfix LMTP
client. To disable IPv4 or IPv6 support in the Postfix SMTP and
LMTP client, use <a href="postconf.5.html#inet_protocols">inet_protocols</a>. </p>
<ul>
<li> <p> When <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> specifies one IPv4 address, and that
is not a loopback address, the Postfix SMTP client uses that as the
source address for outbound IPv4 connections. </p>
<li> <p> Otherwise, the Postfix SMTP client does not constrain the
source IPv4 address, and connects using a system-chosen source IPv4
address. This includes the cases where <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> is empty,
where it specifies <b>all</b>, or where it contains no IPv4 address,
one IPv4 address that is a loopback address, or multiple IPv4
addresses. </p>
</ul>
<p> A Postfix SMTP client may fail to reach some remote SMTP servers
when the client source IP address is constrained explicitly with
<a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> or <a href="postconf.5. | | |