mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-30 05:38:06 +00:00
postfix-2.12-20140928
This commit is contained in:
parent
32ab76f45f
commit
30e06f4e22
7
postfix/.indent.pro
vendored
7
postfix/.indent.pro
vendored
@ -1,4 +1,3 @@
|
||||
-TDICT_UNION
|
||||
-TABOUNCE
|
||||
-TADDR_MATCH_LIST
|
||||
-TADDR_PATTERN
|
||||
@ -12,6 +11,9 @@
|
||||
-TASN1_INTEGER
|
||||
-TASN1_OBJECT
|
||||
-TATTR_CLNT
|
||||
-TATTR_OVER_INT
|
||||
-TATTR_OVER_STR
|
||||
-TATTR_OVER_TIME
|
||||
-TATTR_TABLE
|
||||
-TAUTHORITY_KEYID
|
||||
-TAUTO_CLNT
|
||||
@ -56,6 +58,7 @@
|
||||
-TCONFIG_STR_TABLE
|
||||
-TCONFIG_TIME_FN_TABLE
|
||||
-TCONFIG_TIME_TABLE
|
||||
-TCONST_CHAR_STAR
|
||||
-TCRYPTO_EX_DATA
|
||||
-TCTABLE
|
||||
-TCTABLE_ENTRY
|
||||
@ -119,6 +122,7 @@
|
||||
-TDICT_TCP
|
||||
-TDICT_TEXT
|
||||
-TDICT_THASH
|
||||
-TDICT_UNION
|
||||
-TDICT_UNIX
|
||||
-TDNS_FIXED
|
||||
-TDNS_REPLY
|
||||
@ -298,6 +302,7 @@
|
||||
-TSMTPD_CMD
|
||||
-TSMTPD_DEFER
|
||||
-TSMTPD_ENDPT_LOOKUP_INFO
|
||||
-TSMTPD_POLICY_CLNT
|
||||
-TSMTPD_PROXY
|
||||
-TSMTPD_RBL_EXPAND_CONTEXT
|
||||
-TSMTPD_RBL_STATE
|
||||
|
@ -20445,3 +20445,64 @@ Apologies for any names omitted.
|
||||
domain names in permit_mx_backup, check_mumble_{a,mx,ns}_access
|
||||
and reject_unknown_{sender,recipient}_domain. Mark Martinec.
|
||||
File: smtpd/smtpd_check.c.
|
||||
|
||||
20140925
|
||||
|
||||
Cleanup: support for per-Milter settings, for example:
|
||||
smtpd_milters = {inet:host:port, default_action=accept,
|
||||
...}. Specify the Milter endpoint address followed by zero
|
||||
or more attribute=value pairs separated by comma or space.
|
||||
The supported attributes are command_timeout, connect_timeout,
|
||||
content_timeout, default_action, and protocol. These have
|
||||
the same names as the corresponding main.cf parameters,
|
||||
minus the "milter_" prefix. Files: global/mail_conf_over.c,
|
||||
global/mail_conf_str.c, global/mail_conf_time.c,
|
||||
global/mail_conf.h, milter/milters.c.
|
||||
|
||||
20140927
|
||||
|
||||
Cleanup: specify { name = value } in per-Milter settings, to support
|
||||
space around the "=" or comma/space within the value. Files:
|
||||
global/attr_over.[hc].
|
||||
|
||||
Cleanup: "postconf -n" now only shows config_directory when
|
||||
an override is in effect (environment, -c or -o).
|
||||
|
||||
Cleanup: support for master.cf arguments inside {}, to
|
||||
protect arguments that contain whitespace. File:
|
||||
master/master_ent.c, postconf/postconf_master.c,
|
||||
postconf/test59.ref.
|
||||
|
||||
Cleanup: support for per-policy client settings, for example:
|
||||
check_policy_service {inet:host:port, default_action=dunno,
|
||||
timeout=50s, ...}. Specify the policy server endpoint address
|
||||
followed by zero or more attribute=value pairs separated
|
||||
by comma or space. Specify { name = value } for attributes
|
||||
that contain whitespace; otherwise, space is not allowed
|
||||
around the "=". The supported attributes are default_action,
|
||||
max_idle, max_ttl, request_limit, retry_delay, timeout, and
|
||||
try_limit. These have the same names as the corresponding
|
||||
main.cf parameters, minus the "smtpd_policy_service_" prefix.
|
||||
Files: global/mail_conf_int.c, global/mail_conf.h,
|
||||
global/attr_override.[hc], smtpd/smtpd_check.c.
|
||||
|
||||
20140928
|
||||
|
||||
Cleanup: extpar.c module to reduce code duplication. Files:
|
||||
global/attr_override.c, master/master_ent.c, milter/milter.c,
|
||||
postconf/postconf_dbms.c, postconf/postconf_master.c,
|
||||
smtpd/smtpd_check.c, util/extpar.c, util/stringops.h.
|
||||
|
||||
Cleanup: the table-driven code for per-Milter and per-policy
|
||||
overrides now updates stack-based variables, instead of
|
||||
(ugh) statically-allocated variables. Files:
|
||||
global/attr_override.[hc], smtpd/smtpd_check.c, milter/milter.c.
|
||||
|
||||
Documentation: added advanced configuration sections for
|
||||
how to use per-Milter and per-policy settings. Files:
|
||||
proto/SMTPD_POLICY_README.html, proto/MILTER_README.html.
|
||||
|
||||
Cleanup: force LANG=C to prevent groff from outputting
|
||||
non-ASCII cruft into the HTML-ized manpages. Files:
|
||||
html/Makefile.in, proto/Makefile.in, many HTML output
|
||||
files.
|
||||
|
@ -1,7 +1,7 @@
|
||||
SHELL = /bin/sh
|
||||
WARN = -Wmissing-prototypes -Wformat -Wno-comment
|
||||
OPTS = 'WARN=$(WARN)'
|
||||
DIRS = src/util src/global src/dns src/tls src/xsasl src/milter src/master \
|
||||
DIRS = src/util src/global src/dns src/tls src/xsasl src/master src/milter \
|
||||
src/postfix src/fsstone src/smtpstone \
|
||||
src/sendmail src/error src/pickup src/cleanup src/smtpd src/local \
|
||||
src/trivial-rewrite src/qmgr src/oqmgr src/smtp src/bounce \
|
||||
|
@ -142,10 +142,9 @@ Please specify a userid value that isn't used for other applications (not
|
||||
CCoonnffiigguurriinngg PPoossttffiixx
|
||||
|
||||
Like Sendmail, Postfix has a lot of configuration options that control how it
|
||||
talks to Milter applications. With the initial Postfix Milter protocol
|
||||
implementation, many options are global, that is, they apply to all Milter
|
||||
applications. Future Postfix versions may support per-Milter timeouts, per-
|
||||
Milter error handling, etc.
|
||||
talks to Milter applications. Besides global options that apply to all Milter
|
||||
applications, Postfix 2.12 and later support per-Milter timeouts, per-Milter
|
||||
error handling, etc.
|
||||
|
||||
Information in this section:
|
||||
|
||||
@ -154,6 +153,7 @@ Information in this section:
|
||||
* Milter error handling
|
||||
* Milter protocol version
|
||||
* Milter protocol timeouts
|
||||
* Different settings for different Milter applications
|
||||
* Sendmail macro emulation
|
||||
|
||||
SSMMTTPP--OOnnllyy MMiilltteerr aapppplliiccaattiioonnss
|
||||
@ -263,6 +263,9 @@ the message in the "hold" queue, and is available with Postfix 2.6 or later.
|
||||
# or quarantine (Postfix 2.6 or later).
|
||||
milter_default_action = tempfail
|
||||
|
||||
See "Different settings for different Milter applications" for advanced
|
||||
configuration options.
|
||||
|
||||
MMiilltteerr pprroottooccooll vveerrssiioonn
|
||||
|
||||
As Postfix is not built with the Sendmail libmilter library, you may need to
|
||||
@ -298,6 +301,9 @@ The remedy is to lower the Postfix milter_protocol version number. Postfix 2.8
|
||||
and later will automatically turn off protocol features that the application's
|
||||
libmilter library does not expect.
|
||||
|
||||
See "Different settings for different Milter applications" for advanced
|
||||
configuration options.
|
||||
|
||||
MMiilltteerr pprroottooccooll ttiimmeeoouuttss
|
||||
|
||||
Postfix uses different time limits at different Milter protocol stages. The
|
||||
@ -319,6 +325,38 @@ lookups. However, if you increase the above timeouts too much, remote SMTP
|
||||
clients may hang up and mail may be delivered multiple times. This is an
|
||||
inherent problem with before-queue filtering.
|
||||
|
||||
See "Different settings for different Milter applications" for advanced
|
||||
configuration options.
|
||||
|
||||
DDiiffffeerreenntt sseettttiinnggss ffoorr ddiiffffeerreenntt MMiilltteerr aapppplliiccaattiioonnss
|
||||
|
||||
The previous sections list a number of Postfix main.cf parameters that control
|
||||
time limits and other settings for all Postfix Milter clients. This is
|
||||
sufficient for simple configurations. With more complex configurations it
|
||||
becomes desirable to have different settings for different Milter clients. This
|
||||
is supported with Postfix 2.12 and later.
|
||||
|
||||
The following example shows a "non-critical" Milter client with a short connect
|
||||
timeout, and with "accept" as default action when the service is unvailable.
|
||||
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_milters = { inet:host:port,
|
||||
3 connect_timeout=10s, default_action=accept }
|
||||
|
||||
Instead of a server endpoint, we now have a list enclosed in {}.
|
||||
|
||||
* Line 2: The first item in the list is the server endpoint. This supports
|
||||
the exact same "inet" and "unix" syntax as described earlier.
|
||||
|
||||
* Line 3: The remainder of the list contains per-Milter settings. These
|
||||
settings override global main.cf parameters, and have the same name as
|
||||
those parameters, without the "milter_" prefix.
|
||||
|
||||
Inside the list, syntax is similar to what we already know from main.cf: items
|
||||
separated by space or comma. There is one difference: yyoouu mmuusstt eenncclloossee aa
|
||||
sseettttiinngg iinn ppaarreenntthheesseess,, aass iinn ""{{ nnaammee == vvaalluuee }}"",, iiff yyoouu wwaanntt ttoo hhaavvee ssppaaccee
|
||||
wwiitthhiinn aa vvaalluuee oorr aarroouunndd ""=="".
|
||||
|
||||
SSeennddmmaaiill mmaaccrroo eemmuullaattiioonn
|
||||
|
||||
Postfix emulates a limited number of Sendmail macros, as shown in the table.
|
||||
|
@ -26,7 +26,8 @@ incoming SMTP connections.
|
||||
This document covers the following topics:
|
||||
|
||||
* Policy protocol description
|
||||
* Policy client/server configuration
|
||||
* Simple policy client/server configuration
|
||||
* Advanced policy client configuration
|
||||
* Example: greylist policy server
|
||||
* Greylisting mail from frequently forged domains
|
||||
* Greylisting all your mail
|
||||
@ -166,7 +167,7 @@ In case of trouble the policy server must not send a reply. Instead the server
|
||||
must log a warning and disconnect. Postfix will retry the request at some later
|
||||
time.
|
||||
|
||||
PPoolliiccyy cclliieenntt//sseerrvveerr ccoonnffiigguurraattiioonn
|
||||
SSiimmppllee ppoolliiccyy cclliieenntt//sseerrvveerr ccoonnffiigguurraattiioonn
|
||||
|
||||
The Postfix delegated policy client can connect to a TCP socket or to a UNIX-
|
||||
domain socket. Examples:
|
||||
@ -283,6 +284,52 @@ protocol:
|
||||
the service name of the master.cf entry for the policy daemon service. In
|
||||
the above examples, the service name is "policy" or "127.0.0.1:9998".
|
||||
|
||||
AAddvvaanncceedd ppoolliiccyy cclliieenntt ccoonnffiigguurraattiioonn
|
||||
|
||||
The previous section lists a number of Postfix main.cf parameters that control
|
||||
time limits and other settings for all policy clients. This is sufficient for
|
||||
simple configurations. With more complex configurations it becomes desirable to
|
||||
have different settings per policy client. This is supported with Postfix 2.12
|
||||
and later.
|
||||
|
||||
The following example shows a "non-critical" policy service with a short
|
||||
timeout, and with "DUNNO" as default action when the service is unvailable. The
|
||||
"DUNNO" action causes Postfix to ignore the result.
|
||||
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_recipient_restrictions =
|
||||
3 ...
|
||||
4 reject_unauth_destination
|
||||
5 check_policy_service { inet:host:port,
|
||||
6 timeout=10s, default_action=DUNNO }
|
||||
8 ...
|
||||
|
||||
Instead of a server endpoint, we now have a list enclosed in {}.
|
||||
|
||||
* Line 5: The first item in the list is the server endpoint. This supports
|
||||
the exact same "inet" and "unix" syntax as described earlier.
|
||||
|
||||
* Line 6: The remainder of the list contains per-client settings. These
|
||||
settings override global main.cf parameters, and have the same name as
|
||||
those parameters, without the "smtpd_policy_service_" prefix.
|
||||
|
||||
Inside the list, syntax is similar to what we already know from main.cf: items
|
||||
separated by space or comma. There is one difference: yyoouu mmuusstt eenncclloossee aa
|
||||
sseettttiinngg iinn ppaarreenntthheesseess,, aass iinn ""{{ nnaammee == vvaalluuee }}"",, iiff yyoouu wwaanntt ttoo hhaavvee ssppaaccee
|
||||
wwiitthhiinn aa vvaalluuee oorr aarroouunndd ""=="". This comes in handy when different policy servers
|
||||
require different default actions with different SMTP status codes or text:
|
||||
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_recipient_restrictions =
|
||||
3 ...
|
||||
4 reject_unauth_destination
|
||||
5 check_policy_service {
|
||||
6 inet:host:port1,
|
||||
7 { default_action = 451 4.3.5 See http://www.example.com/
|
||||
support1 }
|
||||
8 }
|
||||
9 ...
|
||||
|
||||
EExxaammppllee:: ggrreeyylliisstt ppoolliiccyy sseerrvveerr
|
||||
|
||||
Greylisting is a defense against junk email that is described at http://
|
||||
|
@ -41,6 +41,48 @@ Maintainers may also benefit from the makedefs documentation
|
||||
(mantools/srctoman - makedefs | nroff -man | less) with information
|
||||
about build options that are not described in the INSTALL instructions.
|
||||
|
||||
Major changes with snapshot 20140928
|
||||
====================================
|
||||
|
||||
Support for per-Milter settings that override main.cf parameters.
|
||||
For details see the section "Advanced policy client configuration"
|
||||
in the SMTPD_POLICY_README document.
|
||||
|
||||
Here is an example that uses both old and new syntax:
|
||||
|
||||
smtpd_milters = { inet:127.0.0.1:port1, default_action=accept, ... },
|
||||
inet:127.0.0.1:port2, ...
|
||||
|
||||
The per-milter settings are specified as attribute=value pairs
|
||||
separated by comma or space; specify { name = value } to allow
|
||||
spaces around the "=" or within an attribute value.
|
||||
|
||||
The supported attribute names are: command_timeout, connect_timeout,
|
||||
content_timeout, default_action, and protocol. These have the same
|
||||
names as the corresponding main.cf parameters, without the "milter_"
|
||||
prefix.
|
||||
|
||||
Support for per-policy service settings that override main.cf
|
||||
parameters. For details see the section "Different settings for
|
||||
different Milter applications" in the MILTER_README document.
|
||||
|
||||
Here is an example that uses both old and new syntax:
|
||||
|
||||
smtpd_recipient_restrictions = ...
|
||||
check_policy_service { inet:127.0.0.1:port3, default_action=DUNNO }
|
||||
check_policy_service inet:127.0.0.1:port4
|
||||
...
|
||||
|
||||
The per-policy service settings are specified as attribute=value pairs
|
||||
separated by comma or space; specify { name = value } to allow
|
||||
spaces around the "=" or within an attribute value.
|
||||
|
||||
The supported attribute names are: default_action, max_idle, max_ttl,
|
||||
request_limit, retry_delay, timeout, try_limit. These have the same
|
||||
names as the corresponding main.cf parameters, without the
|
||||
"smtpd_policy_service_" prefix.
|
||||
|
||||
|
||||
Major changes with snapshot 20140921
|
||||
====================================
|
||||
|
||||
|
@ -13,11 +13,18 @@ Wish list:
|
||||
|
||||
up-convert myhostname to UTF-8 in MIME boundary strings?
|
||||
|
||||
Eliminate code duplication between pcf_print_master_field()
|
||||
and pcf_print_master_entry().
|
||||
|
||||
Introduce constants to replace all the ad-hoc ", \t\r\n"
|
||||
etc. for tokenization. That will have to go into an "util"
|
||||
file because match_strings(3), dict_pipe(3) and dict_random(3)
|
||||
depend on these definitions.
|
||||
|
||||
Error reporting: see if pcf_check_master_entry() and children
|
||||
can return error descriptions instread of terminating with
|
||||
a fatal error.
|
||||
|
||||
Make sure that proxy: can handle random:, pipe:, and other
|
||||
multimaps.
|
||||
|
||||
|
@ -285,9 +285,8 @@ applications (not "postfix", not "www", etc.). </p>
|
||||
<h2><a name="config">Configuring Postfix</a></h2>
|
||||
|
||||
<p> Like Sendmail, Postfix has a lot of configuration options that
|
||||
control how it talks to Milter applications. With the initial Postfix
|
||||
Milter protocol implementation, many options are global, that is,
|
||||
they apply to all Milter applications. Future Postfix versions may
|
||||
control how it talks to Milter applications. Besides global options
|
||||
that apply to all Milter applications, Postfix 2.12 and later
|
||||
support per-Milter timeouts, per-Milter error handling, etc. </p>
|
||||
|
||||
<p> Information in this section: </p>
|
||||
@ -304,6 +303,9 @@ support per-Milter timeouts, per-Milter error handling, etc. </p>
|
||||
|
||||
<li><a href="#timeouts">Milter protocol timeouts</a>
|
||||
|
||||
<li><a href="#per-milter">Different settings for different Milter
|
||||
applications </a>
|
||||
|
||||
<li><a href="#macros">Sendmail macro emulation</a>
|
||||
|
||||
</ul>
|
||||
@ -449,6 +451,9 @@ in the "<a href="QSHAPE_README.html#hold_queue">hold" queue</a>, and is availabl
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> See "<a href="#per-milter">Different settings for different
|
||||
Milter applications</a>" for advanced configuration options. </p>
|
||||
|
||||
<h3><a name="version">Milter protocol version</a></h3>
|
||||
|
||||
<p> As Postfix is not built with the Sendmail libmilter library,
|
||||
@ -499,6 +504,9 @@ number. Postfix 2.8 and later will automatically turn off protocol
|
||||
features that the application's libmilter library does not expect.
|
||||
</p>
|
||||
|
||||
<p> See "<a href="#per-milter">Different settings for different
|
||||
Milter applications</a>" for advanced configuration options. </p>
|
||||
|
||||
<h3><a name="timeouts">Milter protocol timeouts</a></h3>
|
||||
|
||||
<p> Postfix uses different time limits at different Milter protocol
|
||||
@ -532,6 +540,52 @@ too much, remote SMTP clients may hang up and mail may be delivered
|
||||
multiple times. This is an inherent problem with before-queue
|
||||
filtering. </p>
|
||||
|
||||
<p> See "<a href="#per-milter">Different settings for different
|
||||
Milter applications</a>" for advanced configuration options. </p>
|
||||
|
||||
<h3><a name="per-milter">Different settings for different Milter
|
||||
applications </a></h3>
|
||||
|
||||
<p> The previous sections list a number of Postfix <a href="postconf.5.html">main.cf</a> parameters
|
||||
that control time limits and other settings for all Postfix Milter
|
||||
clients. This is sufficient for simple configurations. With more
|
||||
complex configurations it becomes desirable to have different
|
||||
settings for different Milter clients. This is supported with Postfix
|
||||
2.12 and later. </p>
|
||||
|
||||
<p> The following example shows a "non-critical" Milter client with
|
||||
a short connect timeout, and with "accept" as default action when
|
||||
the service is unvailable. </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
2 <a href="postconf.5.html#smtpd_milters">smtpd_milters</a> = { inet:host:port,
|
||||
3 connect_timeout=10s, default_action=accept }
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Instead of a server endpoint, we now have a list enclosed in {}. </p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 2: The first item in the list is the server endpoint.
|
||||
This supports the exact same "inet" and "unix" syntax as described
|
||||
earlier. </p>
|
||||
|
||||
<li> <p> Line 3: The remainder of the list contains per-Milter
|
||||
settings. These settings override global <a href="postconf.5.html">main.cf</a> parameters, and
|
||||
have the same name as those parameters, without the "milter_" prefix.
|
||||
</p>
|
||||
|
||||
</ul>
|
||||
|
||||
<p> Inside the list, syntax is similar to what we already know from
|
||||
<a href="postconf.5.html">main.cf</a>: items separated by space or comma. There is one difference:
|
||||
<b>you must enclose a setting in parentheses, as in "{ name = value
|
||||
}", if you want to have space within a value or around "="</b>.
|
||||
</p>
|
||||
|
||||
<h3><a name="macros">Sendmail macro emulation</a></h3>
|
||||
|
||||
<p> Postfix emulates a limited number of Sendmail macros, as shown
|
||||
|
@ -26,7 +26,7 @@ CONFIG = access.5.html aliases.5.html canonical.5.html relocated.5.html \
|
||||
OTHER = postfix-manuals.html
|
||||
AWK = awk '{ print; if (NR == 2) print ".pl 99999\n.ll 78" }'
|
||||
MAN2HTML = man2html -t "Postfix manual - `IFS=.; set \`echo $@\`; echo \"$$1($$2)\"`"
|
||||
NROFF = GROFF_NO_SGR=1 nroff
|
||||
NROFF = LANG=C GROFF_NO_SGR=1 nroff
|
||||
|
||||
update: $(DAEMONS) $(COMMANDS) $(CONFIG) $(OTHER)
|
||||
|
||||
|
@ -47,7 +47,9 @@ multiple times, for up to $<a href="postconf.5.html#max_use">max_use</a> incomin
|
||||
|
||||
<li><a href="#protocol">Policy protocol description</a>
|
||||
|
||||
<li><a href="#client_config">Policy client/server configuration</a>
|
||||
<li><a href="#client_config">Simple policy client/server configuration</a>
|
||||
|
||||
<li><a href="#advanced">Advanced policy client configuration</a>
|
||||
|
||||
<li><a href="#greylist">Example: greylist policy server</a>
|
||||
|
||||
@ -229,7 +231,7 @@ the request permanently. </p>
|
||||
Instead the server must log a warning and disconnect. Postfix will
|
||||
retry the request at some later time. </p>
|
||||
|
||||
<h2><a name="client_config">Policy client/server configuration</a></h2>
|
||||
<h2><a name="client_config">Simple policy client/server configuration</a></h2>
|
||||
|
||||
<p> The Postfix delegated policy client can connect to a TCP socket
|
||||
or to a UNIX-domain socket. Examples: </p>
|
||||
@ -380,6 +382,67 @@ examples, the service name is "policy" or "127.0.0.1:9998". </p>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2><a name="advanced">Advanced policy client configuration</a></h2>
|
||||
|
||||
<p> The previous section lists a number of Postfix <a href="postconf.5.html">main.cf</a> parameters
|
||||
that control time limits and other settings for all policy clients.
|
||||
This is sufficient for simple configurations. With more complex
|
||||
configurations it becomes desirable to have different settings per
|
||||
policy client. This is supported with Postfix 2.12 and later. </p>
|
||||
|
||||
<p> The following example shows a "non-critical" policy service
|
||||
with a short timeout, and with "DUNNO" as default action when the
|
||||
service is unvailable. The "DUNNO" action causes Postfix to ignore
|
||||
the result. </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
2 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
3 ...
|
||||
4 <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
5 <a href="postconf.5.html#check_policy_service">check_policy_service</a> { inet:host:port,
|
||||
6 timeout=10s, default_action=DUNNO }
|
||||
8 ...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Instead of a server endpoint, we now have a list enclosed in {}. </p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 5: The first item in the list is the server endpoint.
|
||||
This supports the exact same "inet" and "unix" syntax as described
|
||||
earlier. </p>
|
||||
|
||||
<li> <p> Line 6: The remainder of the list contains per-client
|
||||
settings. These settings override global <a href="postconf.5.html">main.cf</a> parameters,
|
||||
and have the same name as those parameters, without the
|
||||
"smtpd_policy_service_" prefix. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
<p> Inside the list, syntax is similar to what we already know from
|
||||
<a href="postconf.5.html">main.cf</a>: items separated by space or comma. There is one difference:
|
||||
<b>you must enclose a setting in parentheses, as in "{ name = value
|
||||
}", if you want to have space within a value or around "="</b>.
|
||||
This comes in handy when different policy servers require different
|
||||
default actions with different SMTP status codes or text: </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
2 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
3 ...
|
||||
4 <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
5 <a href="postconf.5.html#check_policy_service">check_policy_service</a> {
|
||||
6 inet:host:port1,
|
||||
7 { default_action = 451 4.3.5 See <a href="http://www.example.com/support1">http://www.example.com/support1</a> }
|
||||
8 }
|
||||
9 ...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<h2><a name="greylist">Example: greylist policy server</a></h2>
|
||||
|
||||
<p> Greylisting is a defense against junk email that is described at
|
||||
|
@ -16,16 +16,16 @@ BOUNCE(5) BOUNCE(5)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix <a href="bounce.8.html"><b>bounce</b>(8)</a> server produces delivery status notification
|
||||
(DSN) messages for undeliverable mail, delayed mail, successful deliv‐
|
||||
(DSN) messages for undeliverable mail, delayed mail, successful deliv-
|
||||
ery or address verification requests.
|
||||
|
||||
By default, these notifications are generated from built-in templates
|
||||
with message headers and message text. Sites can override the built-in
|
||||
information by specifying a bounce template file with the <b>bounce_tem</b>‐‐
|
||||
<b>plate_file</b> configuration parameter.
|
||||
information by specifying a bounce template file with the <b><a href="postconf.5.html#bounce_template_file">bounce_tem</a>-</b>
|
||||
<b><a href="postconf.5.html#bounce_template_file">plate_file</a></b> configuration parameter.
|
||||
|
||||
This document describes the general procedure to create a bounce tem‐
|
||||
plate file, followed by the specific details of bounce template for‐
|
||||
This document describes the general procedure to create a bounce tem-
|
||||
plate file, followed by the specific details of bounce template for-
|
||||
mats.
|
||||
|
||||
<b>GENERAL PROCEDURE</b>
|
||||
@ -44,7 +44,7 @@ BOUNCE(5) BOUNCE(5)
|
||||
expansion of time value parameters that appear in the delayed mail
|
||||
notification text.
|
||||
|
||||
Once the result is satisfactory, copy the template to the Postfix con‐
|
||||
Once the result is satisfactory, copy the template to the Postfix con-
|
||||
figuration directory and specify in <a href="postconf.5.html">main.cf</a> something like:
|
||||
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
@ -53,13 +53,13 @@ BOUNCE(5) BOUNCE(5)
|
||||
<b>TEMPLATE FILE FORMAT</b>
|
||||
The template file can specify templates for failed mail, delayed mail,
|
||||
successful delivery or for address verification. These templates are
|
||||
named <b>failure_template</b>, <b>delay_template</b>, <b>success_template</b> and <b>ver</b>‐‐
|
||||
named <b>failure_template</b>, <b>delay_template</b>, <b>success_template</b> and <b>ver-</b>
|
||||
<b>ify_template</b>, respectively. You can but do not have to specify all
|
||||
four templates in a bounce template file.
|
||||
|
||||
Each template starts with "<i>template</i><b>_</b><i>name</i> <b>=</b> <<<b>EOF</b>" and ends with a line
|
||||
that contains the word "<b>EOF</b>" only. You can change the word EOF, but you
|
||||
can't enclose it in quotes as with the shell or with Perl (<i>tem‐</i>
|
||||
can't enclose it in quotes as with the shell or with Perl (<i>tem-</i>
|
||||
<i>plate</i><b>_</b><i>name</i> <b>=</b> <<<b>'EOF'</b>). Here is an example:
|
||||
|
||||
# The failure template is used for undeliverable mail.
|
||||
@ -83,16 +83,16 @@ BOUNCE(5) BOUNCE(5)
|
||||
The mail system
|
||||
EOF
|
||||
|
||||
The usage and specification of bounce templates is subject to the fol‐
|
||||
The usage and specification of bounce templates is subject to the fol-
|
||||
lowing restrictions:
|
||||
|
||||
· No special meaning is given to the backslash character or to
|
||||
<b>o</b> No special meaning is given to the backslash character or to
|
||||
leading whitespace; these are always taken literally.
|
||||
|
||||
· Inside the << context, the "$" character is special. To produce
|
||||
<b>o</b> Inside the << context, the "$" character is special. To produce
|
||||
a "$" character as output, specify "$$".
|
||||
|
||||
· Outside the << context, lines beginning with "#" are ignored, as
|
||||
<b>o</b> Outside the << context, lines beginning with "#" are ignored, as
|
||||
are empty lines, and lines consisting of whitespace only.
|
||||
|
||||
Examples of all templates can be found in the file <b>bounce.cf.default</b> in
|
||||
@ -100,7 +100,7 @@ BOUNCE(5) BOUNCE(5)
|
||||
|
||||
<b>TEMPLATE HEADER FORMAT</b>
|
||||
The first portion of a bounce template consists of optional template
|
||||
headers. Some become message headers in the delivery status notifica‐
|
||||
headers. Some become message headers in the delivery status notifica-
|
||||
tion; some control the formatting of that notification. Headers not
|
||||
specified in a template will be left at their default value.
|
||||
|
||||
@ -114,26 +114,26 @@ BOUNCE(5) BOUNCE(5)
|
||||
notification.
|
||||
|
||||
<b>Subject:</b>
|
||||
The subject in the message header of the delivery status notifi‐
|
||||
The subject in the message header of the delivery status notifi-
|
||||
cation that is returned to the sender.
|
||||
|
||||
<b>Postmaster-Subject:</b>
|
||||
The subject that will be used in Postmaster copies of undeliver‐
|
||||
The subject that will be used in Postmaster copies of undeliver-
|
||||
able or delayed mail notifications. These copies are sent under
|
||||
control of the <a href="postconf.5.html#notify_classes">notify_classes</a> configuration parameter.
|
||||
|
||||
The usage and specification of template message headers is subject to
|
||||
the following restrictions:
|
||||
|
||||
· Template message header names can be specified in upper case,
|
||||
<b>o</b> Template message header names can be specified in upper case,
|
||||
lower case or mixed case. Postfix always produces bounce message
|
||||
header labels of the form "<b>From:</b>" and "<b>Subject:</b>".
|
||||
|
||||
· Template message headers must not span multiple lines.
|
||||
<b>o</b> Template message headers must not span multiple lines.
|
||||
|
||||
· Template message headers do not support $parameter expansions.
|
||||
<b>o</b> Template message headers do not support $parameter expansions.
|
||||
|
||||
· Template message headers must contain ASCII characters only, and
|
||||
<b>o</b> Template message headers must contain ASCII characters only, and
|
||||
must not contain ASCII null characters.
|
||||
|
||||
<b>TEMPLATE MESSAGE TEXT FORMAT</b>
|
||||
@ -154,14 +154,14 @@ BOUNCE(5) BOUNCE(5)
|
||||
<b><a href="postconf.5.html#delay_warning_time">delay_warning_time</a></b> for possible <i>suffix</i> values.
|
||||
|
||||
<b><a href="postconf.5.html#mydomain">mydomain</a></b>
|
||||
Expands into the value of the <b><a href="postconf.5.html#mydomain">mydomain</a></b> parameter. With "smt‐
|
||||
Expands into the value of the <b><a href="postconf.5.html#mydomain">mydomain</a></b> parameter. With "smt-
|
||||
putf8_enable = yes", this replaces ACE labels (xn--mumble) with
|
||||
their UTF-8 equivalent.
|
||||
|
||||
This feature is available in Postfix 2.12.
|
||||
|
||||
<b><a href="postconf.5.html#myhostname">myhostname</a></b>
|
||||
Expands into the value of the <b><a href="postconf.5.html#myhostname">myhostname</a></b> parameter. With "smt‐
|
||||
Expands into the value of the <b><a href="postconf.5.html#myhostname">myhostname</a></b> parameter. With "smt-
|
||||
putf8_enable = yes", this replaces ACE labels (xn--mumble) with
|
||||
their UTF-8 equivalent.
|
||||
|
||||
@ -170,13 +170,13 @@ BOUNCE(5) BOUNCE(5)
|
||||
The usage and specification of template message text is subject to the
|
||||
following restrictions:
|
||||
|
||||
· The template message text is not sent in Postmaster copies of
|
||||
<b>o</b> The template message text is not sent in Postmaster copies of
|
||||
delivery status notifications.
|
||||
|
||||
· If the template message text contains non-ASCII characters,
|
||||
<b>o</b> If the template message text contains non-ASCII characters,
|
||||
Postfix requires that the <b>Charset:</b> template header is updated.
|
||||
Specify an appropriate superset of US-ASCII. A superset is
|
||||
needed because Postfix appends ASCII text after the message tem‐
|
||||
needed because Postfix appends ASCII text after the message tem-
|
||||
plate when it sends a delivery status notification.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -13,7 +13,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
<b>bounce</b> [generic Postfix daemon options]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon maintains per-message log files with delivery sta‐
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon maintains per-message log files with delivery sta-
|
||||
tus information. Each log file is named after the queue file that it
|
||||
corresponds to, and is kept in a queue subdirectory named after the
|
||||
service name in the <a href="master.5.html"><b>master.cf</b></a> file (either <b>bounce</b>, <b>defer</b> or <b>trace</b>).
|
||||
@ -21,15 +21,15 @@ BOUNCE(8) BOUNCE(8)
|
||||
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon processes two types of service requests:
|
||||
|
||||
· Append a recipient (non-)delivery status record to a per-message
|
||||
<b>o</b> Append a recipient (non-)delivery status record to a per-message
|
||||
log file.
|
||||
|
||||
· Enqueue a delivery status notification message, with a copy of a
|
||||
<b>o</b> Enqueue a delivery status notification message, with a copy of a
|
||||
per-message log file and of the corresponding message. When the
|
||||
delivery status notification message is enqueued successfully,
|
||||
the per-message log file is deleted.
|
||||
|
||||
The software does a best notification effort. A non-delivery notifica‐
|
||||
The software does a best notification effort. A non-delivery notifica-
|
||||
tion is sent even when the log file or the original message cannot be
|
||||
read.
|
||||
|
||||
@ -70,8 +70,8 @@ BOUNCE(8) BOUNCE(8)
|
||||
Postfix versions before 2.0.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_notice_recipient">bounce_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications with the message head‐
|
||||
ers of mail that Postfix did not deliver and of SMTP conversa‐
|
||||
The recipient of postmaster notifications with the message head-
|
||||
ers of mail that Postfix did not deliver and of SMTP conversa-
|
||||
tion transcripts of mail that Postfix did not receive.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a> (50000)</b>
|
||||
@ -82,7 +82,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
Pathname of a configuration file with bounce message templates.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -90,7 +90,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_notice_recipient">delay_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications with the message head‐
|
||||
The recipient of postmaster notifications with the message head-
|
||||
ers of mail that cannot be delivered within $<a href="postconf.5.html#delay_warning_time">delay_warning_time</a>
|
||||
time units.
|
||||
|
||||
@ -140,13 +140,13 @@ BOUNCE(8) BOUNCE(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix 2.12 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -18,28 +18,28 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
The <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon always performs the following transformations:
|
||||
|
||||
· Insert missing message headers: (<b>Resent-</b>) <b>From:</b>, <b>To:</b>, <b>Message-</b>
|
||||
<b>o</b> Insert missing message headers: (<b>Resent-</b>) <b>From:</b>, <b>To:</b>, <b>Message-</b>
|
||||
<b>Id:</b>, and <b>Date:</b>.
|
||||
|
||||
· Transform envelope and header addresses to the standard
|
||||
<i>user@fully-qualified-domain</i> form that is expected by other Post‐
|
||||
<b>o</b> Transform envelope and header addresses to the standard
|
||||
<i>user@fully-qualified-domain</i> form that is expected by other Post-
|
||||
fix programs. This task is delegated to the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a>
|
||||
daemon.
|
||||
|
||||
· Eliminate duplicate envelope recipient addresses.
|
||||
<b>o</b> Eliminate duplicate envelope recipient addresses.
|
||||
|
||||
The following address transformations are optional:
|
||||
|
||||
· Optionally, rewrite all envelope and header addresses according
|
||||
<b>o</b> Optionally, rewrite all envelope and header addresses according
|
||||
to the mappings specified in the <a href="canonical.5.html"><b>canonical</b>(5)</a> lookup tables.
|
||||
|
||||
· Optionally, masquerade envelope sender addresses and message
|
||||
<b>o</b> Optionally, masquerade envelope sender addresses and message
|
||||
header addresses (i.e. strip host or domain information below
|
||||
all domains listed in the <b><a href="postconf.5.html#masquerade_domains">masquerade_domains</a></b> parameter, except
|
||||
for user names listed in <b><a href="postconf.5.html#masquerade_exceptions">masquerade_exceptions</a></b>). By default,
|
||||
address masquerading does not affect envelope recipients.
|
||||
|
||||
· Optionally, expand envelope recipients according to information
|
||||
<b>o</b> Optionally, expand envelope recipients according to information
|
||||
found in the <a href="virtual.5.html"><b>virtual</b>(5)</a> lookup tables.
|
||||
|
||||
The <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon performs sanity checks on the content of each
|
||||
@ -107,7 +107,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b><a href="postconf.5.html#header_checks">header_checks</a> (empty)</b>
|
||||
Optional lookup tables for content inspection of primary non-
|
||||
MIME message headers, as specified in the <a href="header_checks.5.html"><b>header_checks</b>(5)</a> man‐
|
||||
MIME message headers, as specified in the <a href="header_checks.5.html"><b>header_checks</b>(5)</a> man-
|
||||
ual page.
|
||||
|
||||
Available in Postfix version 2.0 and later:
|
||||
@ -122,18 +122,18 @@ CLEANUP(8) CLEANUP(8)
|
||||
page.
|
||||
|
||||
<b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a> ($<a href="postconf.5.html#header_checks">header_checks</a>)</b>
|
||||
Optional lookup tables for content inspection of non-MIME mes‐
|
||||
Optional lookup tables for content inspection of non-MIME mes-
|
||||
sage headers in attached messages, as described in the
|
||||
<a href="header_checks.5.html"><b>header_checks</b>(5)</a> manual page.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#message_reject_characters">message_reject_characters</a> (empty)</b>
|
||||
The set of characters that Postfix will reject in message con‐
|
||||
The set of characters that Postfix will reject in message con-
|
||||
tent.
|
||||
|
||||
<b><a href="postconf.5.html#message_strip_characters">message_strip_characters</a> (empty)</b>
|
||||
The set of characters that Postfix will remove from message con‐
|
||||
The set of characters that Postfix will remove from message con-
|
||||
tent.
|
||||
|
||||
<b>BEFORE QUEUE MILTER CONTROLS</b>
|
||||
@ -147,7 +147,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
does not arrive via the Postfix <a href="smtpd.8.html"><b>smtpd</b>(8)</a> server.
|
||||
|
||||
<b><a href="postconf.5.html#milter_protocol">milter_protocol</a> (6)</b>
|
||||
The mail filter protocol version and optional protocol exten‐
|
||||
The mail filter protocol version and optional protocol exten-
|
||||
sions for communication with a Milter application; prior to
|
||||
Postfix 2.6 the default protocol is 2.
|
||||
|
||||
@ -156,14 +156,14 @@ CLEANUP(8) CLEANUP(8)
|
||||
unavailable or mis-configured.
|
||||
|
||||
<b><a href="postconf.5.html#milter_macro_daemon_name">milter_macro_daemon_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
The {daemon_name} macro value for Milter (mail filter) applica‐
|
||||
The {daemon_name} macro value for Milter (mail filter) applica-
|
||||
tions.
|
||||
|
||||
<b><a href="postconf.5.html#milter_macro_v">milter_macro_v</a> ($<a href="postconf.5.html#mail_name">mail_name</a> $<a href="postconf.5.html#mail_version">mail_version</a>)</b>
|
||||
The {v} macro value for Milter (mail filter) applications.
|
||||
|
||||
<b><a href="postconf.5.html#milter_connect_timeout">milter_connect_timeout</a> (30s)</b>
|
||||
The time limit for connecting to a Milter (mail filter) applica‐
|
||||
The time limit for connecting to a Milter (mail filter) applica-
|
||||
tion, and for negotiating protocol options.
|
||||
|
||||
<b><a href="postconf.5.html#milter_command_timeout">milter_command_timeout</a> (30s)</b>
|
||||
@ -233,7 +233,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
Reject mail with 8-bit text in message headers.
|
||||
|
||||
<b><a href="postconf.5.html#strict_8bitmime_body">strict_8bitmime_body</a> (no)</b>
|
||||
Reject 8-bit message body text without 8-bit MIME content encod‐
|
||||
Reject 8-bit message body text without 8-bit MIME content encod-
|
||||
ing information.
|
||||
|
||||
<b><a href="postconf.5.html#strict_mime_encoding_domain">strict_mime_encoding_domain</a> (no)</b>
|
||||
@ -243,7 +243,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#detect_8bit_encoding_header">detect_8bit_encoding_header</a> (yes)</b>
|
||||
Automatically detect 8BITMIME body content by looking at Con‐
|
||||
Automatically detect 8BITMIME body content by looking at Con-
|
||||
tent-Transfer-Encoding: message headers; historically, this
|
||||
behavior was hard-coded to be "always on".
|
||||
|
||||
@ -293,8 +293,8 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b><a href="postconf.5.html#masquerade_exceptions">masquerade_exceptions</a> (empty)</b>
|
||||
Optional list of user names that are not subjected to address
|
||||
masquerading, even when their address matches $masquer‐
|
||||
ade_domains.
|
||||
masquerading, even when their address matches $<a href="postconf.5.html#masquerade_domains">masquer</a>-
|
||||
<a href="postconf.5.html#masquerade_domains">ade_domains</a>.
|
||||
|
||||
<b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b>
|
||||
What address lookup tables copy an address extension from the
|
||||
@ -325,7 +325,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
mapping.
|
||||
|
||||
<b><a href="postconf.5.html#sender_canonical_classes">sender_canonical_classes</a> (envelope_sender, header_sender)</b>
|
||||
What addresses are subject to <a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> address map‐
|
||||
What addresses are subject to <a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> address map-
|
||||
ping.
|
||||
|
||||
<b><a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> (empty)</b>
|
||||
@ -335,7 +335,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
<b><a href="postconf.5.html#duplicate_filter_limit">duplicate_filter_limit</a> (1000)</b>
|
||||
The maximal number of addresses remembered by the address dupli‐
|
||||
The maximal number of addresses remembered by the address dupli-
|
||||
cate filter for <a href="aliases.5.html"><b>aliases</b>(5)</a> or <a href="virtual.5.html"><b>virtual</b>(5)</a> alias expansion, or for
|
||||
<a href="showq.8.html"><b>showq</b>(8)</a> queue displays.
|
||||
|
||||
@ -382,7 +382,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -390,7 +390,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#delay_warning_time">delay_warning_time</a> (0h)</b>
|
||||
@ -434,7 +434,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix version 2.1 and later:
|
||||
|
@ -13,7 +13,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
<b>bounce</b> [generic Postfix daemon options]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon maintains per-message log files with delivery sta‐
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon maintains per-message log files with delivery sta-
|
||||
tus information. Each log file is named after the queue file that it
|
||||
corresponds to, and is kept in a queue subdirectory named after the
|
||||
service name in the <a href="master.5.html"><b>master.cf</b></a> file (either <b>bounce</b>, <b>defer</b> or <b>trace</b>).
|
||||
@ -21,15 +21,15 @@ BOUNCE(8) BOUNCE(8)
|
||||
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon processes two types of service requests:
|
||||
|
||||
· Append a recipient (non-)delivery status record to a per-message
|
||||
<b>o</b> Append a recipient (non-)delivery status record to a per-message
|
||||
log file.
|
||||
|
||||
· Enqueue a delivery status notification message, with a copy of a
|
||||
<b>o</b> Enqueue a delivery status notification message, with a copy of a
|
||||
per-message log file and of the corresponding message. When the
|
||||
delivery status notification message is enqueued successfully,
|
||||
the per-message log file is deleted.
|
||||
|
||||
The software does a best notification effort. A non-delivery notifica‐
|
||||
The software does a best notification effort. A non-delivery notifica-
|
||||
tion is sent even when the log file or the original message cannot be
|
||||
read.
|
||||
|
||||
@ -70,8 +70,8 @@ BOUNCE(8) BOUNCE(8)
|
||||
Postfix versions before 2.0.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_notice_recipient">bounce_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications with the message head‐
|
||||
ers of mail that Postfix did not deliver and of SMTP conversa‐
|
||||
The recipient of postmaster notifications with the message head-
|
||||
ers of mail that Postfix did not deliver and of SMTP conversa-
|
||||
tion transcripts of mail that Postfix did not receive.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a> (50000)</b>
|
||||
@ -82,7 +82,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
Pathname of a configuration file with bounce message templates.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -90,7 +90,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_notice_recipient">delay_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications with the message head‐
|
||||
The recipient of postmaster notifications with the message head-
|
||||
ers of mail that cannot be delivered within $<a href="postconf.5.html#delay_warning_time">delay_warning_time</a>
|
||||
time units.
|
||||
|
||||
@ -140,13 +140,13 @@ BOUNCE(8) BOUNCE(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix 2.12 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -20,12 +20,12 @@ FLUSH(8) FLUSH(8)
|
||||
process manager.
|
||||
|
||||
The record is implemented as a per-destination logfile with as contents
|
||||
the queue IDs of deferred mail. A logfile is append-only, and is trun‐
|
||||
the queue IDs of deferred mail. A logfile is append-only, and is trun-
|
||||
cated when delivery is requested for the corresponding destination. A
|
||||
destination is the part on the right-hand side of the right-most <b>@</b> in
|
||||
an email address.
|
||||
|
||||
Per-destination logfiles of deferred mail are maintained only for eli‐
|
||||
Per-destination logfiles of deferred mail are maintained only for eli-
|
||||
gible destinations. The list of eligible destinations is specified with
|
||||
the <b><a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a></b> configuration parameter, which defaults to
|
||||
<b>$<a href="postconf.5.html#relay_domains">relay_domains</a></b>.
|
||||
@ -37,7 +37,7 @@ FLUSH(8) FLUSH(8)
|
||||
queue ID is queued for the specified destination.
|
||||
|
||||
<b>send_site</b> <i>sitename</i>
|
||||
Request delivery of mail that is queued for the specified desti‐
|
||||
Request delivery of mail that is queued for the specified desti-
|
||||
nation.
|
||||
|
||||
<b>send_file</b> <i>queueid</i>
|
||||
@ -67,7 +67,7 @@ FLUSH(8) FLUSH(8)
|
||||
Fast flush logfiles are truncated only after a "send" request, not when
|
||||
mail is actually delivered, and therefore can accumulate outdated or
|
||||
redundant data. In order to maintain sanity, "refresh" must be executed
|
||||
periodically. This can be automated with a suitable wakeup timer set‐
|
||||
periodically. This can be automated with a suitable wakeup timer set-
|
||||
ting in the <a href="master.5.html"><b>master.cf</b></a> configuration file.
|
||||
|
||||
Upon receipt of a request to deliver mail for an eligible destination,
|
||||
@ -86,7 +86,7 @@ FLUSH(8) FLUSH(8)
|
||||
more details including examples.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -94,7 +94,7 @@ FLUSH(8) FLUSH(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> ($<a href="postconf.5.html#relay_domains">relay_domains</a>)</b>
|
||||
Optional list of destinations that are eligible for per-destina‐
|
||||
Optional list of destinations that are eligible for per-destina-
|
||||
tion logfiles with mail that is queued to those destinations.
|
||||
|
||||
<b><a href="postconf.5.html#fast_flush_refresh_time">fast_flush_refresh_time</a> (12h)</b>
|
||||
@ -102,7 +102,7 @@ FLUSH(8) FLUSH(8)
|
||||
"fast flush" logfile needs to be refreshed.
|
||||
|
||||
<b><a href="postconf.5.html#fast_flush_purge_time">fast_flush_purge_time</a> (7d)</b>
|
||||
The time after which an empty per-destination "fast flush" log‐
|
||||
The time after which an empty per-destination "fast flush" log-
|
||||
file is deleted.
|
||||
|
||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||
@ -136,7 +136,7 @@ FLUSH(8) FLUSH(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -14,7 +14,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix SMTP+LMTP client implements the SMTP and LMTP mail delivery
|
||||
protocols. It processes message delivery requests from the queue man‐
|
||||
protocols. It processes message delivery requests from the queue man-
|
||||
ager. Each request specifies a queue file, a sender address, a domain
|
||||
or host to deliver to, and recipient information. This program expects
|
||||
to be run from the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
@ -46,7 +46,7 @@ SMTP(8) SMTP(8)
|
||||
<i>domainname</i>
|
||||
|
||||
<i>domainname</i>:<i>port</i>
|
||||
Look up the mail exchangers for the specified domain, and con‐
|
||||
Look up the mail exchangers for the specified domain, and con-
|
||||
nect to the specified port (default: <b>smtp</b>).
|
||||
|
||||
[<i>hostname</i>]
|
||||
@ -59,7 +59,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
[<i>address</i>]:<i>port</i>
|
||||
Connect to the host at the specified address, and connect to the
|
||||
specified port (default: <b>smtp</b>). An IPv6 address must be format‐
|
||||
specified port (default: <b>smtp</b>). An IPv6 address must be format-
|
||||
ted as [<b>ipv6</b>:<i>address</i>].
|
||||
|
||||
<b>LMTP DESTINATION SYNTAX</b>
|
||||
@ -115,7 +115,7 @@ SMTP(8) SMTP(8)
|
||||
files are marked so that the queue manager can move them to the <b>corrupt</b>
|
||||
queue for further inspection.
|
||||
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas‐
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
|
||||
ter is notified of bounces, protocol problems, and of other trouble.
|
||||
|
||||
<b>BUGS</b>
|
||||
@ -133,7 +133,7 @@ SMTP(8) SMTP(8)
|
||||
there is no support for TLS, and connections are cached in-process,
|
||||
making it ineffective when the client is used for multiple domains.
|
||||
|
||||
Most smtp_<i>xxx</i> configuration parameters have an lmtp_<i>xxx</i> "mirror" param‐
|
||||
Most smtp_<i>xxx</i> configuration parameters have an lmtp_<i>xxx</i> "mirror" param-
|
||||
eter for the equivalent LMTP feature. This document describes only
|
||||
those LMTP-related parameters that aren't simply "mirror" parameters.
|
||||
|
||||
@ -244,7 +244,7 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#send_cyrus_sasl_authzid">send_cyrus_sasl_authzid</a> (no)</b>
|
||||
When authenticating to a remote SMTP or LMTP server with the
|
||||
default setting "no", send no SASL authoriZation ID (authzid);
|
||||
send only the SASL authentiCation ID (authcid) plus the auth‐
|
||||
send only the SASL authentiCation ID (authcid) plus the auth-
|
||||
cid's password.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
@ -266,7 +266,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> (0)</b>
|
||||
An optional workaround for routers that break TCP window scal‐
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
ing.
|
||||
|
||||
Available in Postfix version 2.8 and later:
|
||||
@ -280,7 +280,7 @@ SMTP(8) SMTP(8)
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes‐
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a> (no)</b>
|
||||
@ -296,7 +296,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||
Optional filter for the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent to change the
|
||||
delivery status code or explanatory text of successful or unsuc‐
|
||||
delivery status code or explanatory text of successful or unsuc-
|
||||
cessful deliveries.
|
||||
|
||||
<b>MIME PROCESSING CONTROLS</b>
|
||||
@ -323,13 +323,13 @@ SMTP(8) SMTP(8)
|
||||
Enable SASL authentication in the Postfix SMTP client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_password_maps">smtp_sasl_password_maps</a> (empty)</b>
|
||||
Optional Postfix SMTP client lookup tables with one user‐
|
||||
Optional Postfix SMTP client lookup tables with one user-
|
||||
name:password entry per remote hostname or domain, or sender
|
||||
address when sender-dependent authentication is enabled.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
||||
Postfix SMTP client SASL security options; as of Postfix 2.3 the
|
||||
list of available features depends on the SASL client implemen‐
|
||||
list of available features depends on the SASL client implemen-
|
||||
tation that is selected with <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
@ -343,7 +343,7 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a> (no)</b>
|
||||
Enable sender-dependent authentication in the Postfix SMTP
|
||||
client; this is available only with SASL authentication, and
|
||||
disables SMTP connection caching to ensure that mail from dif‐
|
||||
disables SMTP connection caching to ensure that mail from dif-
|
||||
ferent senders will use the appropriate credentials.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
||||
@ -358,7 +358,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> (empty)</b>
|
||||
An optional table to prevent repeated SASL authentication fail‐
|
||||
An optional table to prevent repeated SASL authentication fail-
|
||||
ures with the same remote SMTP server hostname, username and
|
||||
password.
|
||||
|
||||
@ -397,7 +397,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
||||
A file containing CA certificates of root CAs trusted to sign
|
||||
either remote SMTP server certificates or intermediate CA cer‐
|
||||
either remote SMTP server certificates or intermediate CA cer-
|
||||
tificates.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
||||
@ -418,7 +418,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
||||
Additional list of ciphers or cipher types to exclude from the
|
||||
Postfix SMTP client cipher list at mandatory TLS security lev‐
|
||||
Postfix SMTP client cipher list at mandatory TLS security lev-
|
||||
els.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
||||
@ -439,7 +439,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> (empty)</b>
|
||||
Optional lookup tables with the Postfix SMTP client TLS security
|
||||
policy by next-hop destination; when a non-empty value is speci‐
|
||||
policy by next-hop destination; when a non-empty value is speci-
|
||||
fied, this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> (!SSLv2)</b>
|
||||
@ -488,8 +488,8 @@ SMTP(8) SMTP(8)
|
||||
|
||||
Available in Postfix version 2.4 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($smtp_sasl_tls_secu</b>‐‐
|
||||
<b>rity_options)</b>
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_secu</a>-</b>
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">rity_options</a>)</b>
|
||||
The SASL authentication security options that the Postfix SMTP
|
||||
client uses for TLS encrypted SMTP sessions with a verified
|
||||
server certificate.
|
||||
@ -498,8 +498,8 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> (empty)</b>
|
||||
List of acceptable remote SMTP server certificate fingerprints
|
||||
for the "fingerprint" TLS security level (<b>smtp_tls_secu</b>‐‐
|
||||
<b>rity_level</b> = fingerprint).
|
||||
for the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_secu</a>-</b>
|
||||
<b><a href="postconf.5.html#smtp_tls_security_level">rity_level</a></b> = fingerprint).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (md5)</b>
|
||||
The message digest algorithm used to construct remote SMTP
|
||||
@ -516,18 +516,18 @@ SMTP(8) SMTP(8)
|
||||
use with opportunistic TLS encryption.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> (empty)</b>
|
||||
File with the Postfix SMTP client ECDSA certificate in PEM for‐
|
||||
File with the Postfix SMTP client ECDSA certificate in PEM for-
|
||||
mat.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> ($<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b>
|
||||
File with the Postfix SMTP client ECDSA private key in PEM for‐
|
||||
File with the Postfix SMTP client ECDSA private key in PEM for-
|
||||
mat.
|
||||
|
||||
Available in Postfix version 2.7 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a> (no)</b>
|
||||
Try to detect a mail hijacking attack based on a TLS protocol
|
||||
vulnerability (CVE-2009-3555), where an attacker prepends mali‐
|
||||
vulnerability (CVE-2009-3555), where an attacker prepends mali-
|
||||
cious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client
|
||||
TLS session.
|
||||
|
||||
@ -572,7 +572,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> (empty)</b>
|
||||
Optional lookup tables with the Postfix SMTP client TLS usage
|
||||
policy by next-hop destination and by remote SMTP server host‐
|
||||
policy by next-hop destination and by remote SMTP server host-
|
||||
name.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
||||
@ -580,17 +580,17 @@ SMTP(8) SMTP(8)
|
||||
cipher list.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
<b><a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> ($default_destination_concur</b>‐‐
|
||||
<b>rency_limit)</b>
|
||||
The maximal number of parallel deliveries to the same destina‐
|
||||
<b><a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concur</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
||||
The maximal number of parallel deliveries to the same destina-
|
||||
tion via the smtp message delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_destination_recipient_limit">smtp_destination_recipient_limit</a> ($<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b>
|
||||
The maximal number of recipients per message for the smtp mes‐
|
||||
The maximal number of recipients per message for the smtp mes-
|
||||
sage delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
||||
The Postfix SMTP client time limit for completing a TCP connec‐
|
||||
The Postfix SMTP client time limit for completing a TCP connec-
|
||||
tion, or zero (use the operating system built-in time limit).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_helo_timeout">smtp_helo_timeout</a> (300s)</b>
|
||||
@ -603,7 +603,7 @@ SMTP(8) SMTP(8)
|
||||
and for receiving the initial remote LMTP server response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_xforward_timeout">smtp_xforward_timeout</a> (300s)</b>
|
||||
The Postfix SMTP client time limit for sending the XFORWARD com‐
|
||||
The Postfix SMTP client time limit for sending the XFORWARD com-
|
||||
mand, and for receiving the remote SMTP server response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
||||
@ -663,7 +663,7 @@ SMTP(8) SMTP(8)
|
||||
has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> (300s)</b>
|
||||
The amount of time during which Postfix will use an SMTP connec‐
|
||||
The amount of time during which Postfix will use an SMTP connec-
|
||||
tion repeatedly.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a> (2s)</b>
|
||||
@ -673,7 +673,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#connection_cache_protocol_timeout">connection_cache_protocol_timeout</a> (5s)</b>
|
||||
Time limit for connection cache connect, send or receive opera‐
|
||||
Time limit for connection cache connect, send or receive opera-
|
||||
tions.
|
||||
|
||||
Available in Postfix version 2.9 and later:
|
||||
@ -682,7 +682,7 @@ SMTP(8) SMTP(8)
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes‐
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
Available in Postfix version 2.11 and later:
|
||||
@ -700,7 +700,7 @@ SMTP(8) SMTP(8)
|
||||
in <a href="http://tools.ietf.org/html/rfc6531">RFC 6531</a>..6533.
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>TROUBLE SHOOTING CONTROLS</b>
|
||||
@ -715,7 +715,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications about mail delivery
|
||||
problems that are caused by policy, resource, software or proto‐
|
||||
problems that are caused by policy, resource, software or proto-
|
||||
col errors.
|
||||
|
||||
<b><a href="postconf.5.html#internal_mail_filter_classes">internal_mail_filter_classes</a> (empty)</b>
|
||||
@ -732,7 +732,7 @@ SMTP(8) SMTP(8)
|
||||
detects a "mail loops back to myself" error condition.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -740,7 +740,7 @@ SMTP(8) SMTP(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
||||
@ -760,7 +760,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_assume_final">lmtp_assume_final</a> (no)</b>
|
||||
When a remote LMTP server announces no DSN support, assume that
|
||||
the server performs final delivery, and send "delivered" deliv‐
|
||||
the server performs final delivery, and send "delivered" deliv-
|
||||
ery status notifications instead of "relayed".
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
||||
@ -815,7 +815,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available with Postfix 2.2 and earlier:
|
||||
|
@ -19,7 +19,7 @@ LOCAL(8) LOCAL(8)
|
||||
to, and one or more recipients. This program expects to be run from
|
||||
the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
|
||||
The <a href="local.8.html"><b>local</b>(8)</a> daemon updates queue files and marks recipients as fin‐
|
||||
The <a href="local.8.html"><b>local</b>(8)</a> daemon updates queue files and marks recipients as fin-
|
||||
ished, or it informs the queue manager that delivery should be tried
|
||||
again at a later time. Delivery status reports are sent to the
|
||||
<a href="bounce.8.html"><b>bounce</b>(8)</a>, <a href="defer.8.html"><b>defer</b>(8)</a> or <a href="trace.8.html"><b>trace</b>(8)</a> daemon as appropriate.
|
||||
@ -41,15 +41,15 @@ LOCAL(8) LOCAL(8)
|
||||
Upon delivery, the local delivery agent tries each pathname in the list
|
||||
until a file is found.
|
||||
|
||||
Delivery via ~/.<b>forward</b> files is done with the privileges of the recip‐
|
||||
Delivery via ~/.<b>forward</b> files is done with the privileges of the recip-
|
||||
ient. Thus, ~/.<b>forward</b> like files must be readable by the recipient,
|
||||
and their parent directory needs to have "execute" permission for the
|
||||
recipient.
|
||||
|
||||
The <b><a href="postconf.5.html#forward_path">forward_path</a></b> parameter is subject to interpolation of <b>$user</b> (recip‐
|
||||
The <b><a href="postconf.5.html#forward_path">forward_path</a></b> parameter is subject to interpolation of <b>$user</b> (recip-
|
||||
ient username), <b>$home</b> (recipient home directory), <b>$shell</b> (recipient
|
||||
shell), <b>$recipient</b> (complete recipient address), <b>$extension</b> (recipient
|
||||
address extension), <b>$domain</b> (recipient domain), <b>$local</b> (entire recipi‐
|
||||
address extension), <b>$domain</b> (recipient domain), <b>$local</b> (entire recipi-
|
||||
ent address localpart) and <b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>.</b> The forms
|
||||
<i>${name?value}</i> and <i>${name:value}</i> expand conditionally to <i>value</i> when
|
||||
<i>$name</i> is (is not) defined. Characters that may have special meaning to
|
||||
@ -57,14 +57,14 @@ LOCAL(8) LOCAL(8)
|
||||
acceptable characters is specified with the <b><a href="postconf.5.html#forward_expansion_filter">forward_expansion_filter</a></b>
|
||||
configuration parameter.
|
||||
|
||||
An alias or ~/.<b>forward</b> file may list any combination of external com‐
|
||||
An alias or ~/.<b>forward</b> file may list any combination of external com-
|
||||
mands, destination file names, <b>:include:</b> directives, or mail addresses.
|
||||
See <a href="aliases.5.html"><b>aliases</b>(5)</a> for a precise description. Each line in a user's .<b>for</b>‐‐
|
||||
See <a href="aliases.5.html"><b>aliases</b>(5)</a> for a precise description. Each line in a user's .<b>for-</b>
|
||||
<b>ward</b> file has the same syntax as the right-hand part of an alias.
|
||||
|
||||
When an address is found in its own alias expansion, delivery is made
|
||||
to the user instead. When a user is listed in the user's own ~/.<b>forward</b>
|
||||
file, delivery is made to the user's mailbox instead. An empty ~/.<b>for</b>‐‐
|
||||
file, delivery is made to the user's mailbox instead. An empty ~/.<b>for-</b>
|
||||
<b>ward</b> file means do not forward mail.
|
||||
|
||||
In order to prevent the mail system from using up unreasonable amounts
|
||||
@ -72,7 +72,7 @@ LOCAL(8) LOCAL(8)
|
||||
are broken up into chunks of length <b><a href="postconf.5.html#line_length_limit">line_length_limit</a></b>.
|
||||
|
||||
While expanding aliases, ~/.<b>forward</b> files, and so on, the program
|
||||
attempts to avoid duplicate deliveries. The <b><a href="postconf.5.html#duplicate_filter_limit">duplicate_filter_limit</a></b> con‐
|
||||
attempts to avoid duplicate deliveries. The <b><a href="postconf.5.html#duplicate_filter_limit">duplicate_filter_limit</a></b> con-
|
||||
figuration parameter limits the number of remembered recipients.
|
||||
|
||||
<b>MAIL FORWARDING</b>
|
||||
@ -98,16 +98,16 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
Mailbox delivery can be delegated to an external command specified with
|
||||
the <b><a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a></b> and <b><a href="postconf.5.html#mailbox_command">mailbox_command</a></b> configuration parameters.
|
||||
The command executes with the privileges of the recipient user (excep‐
|
||||
The command executes with the privileges of the recipient user (excep-
|
||||
tions: secondary groups are not enabled; in case of delivery as root,
|
||||
the command executes with the privileges of <b><a href="postconf.5.html#default_privs">default_privs</a></b>).
|
||||
|
||||
Mailbox delivery can be delegated to alternative message transports
|
||||
specified in the <a href="master.5.html"><b>master.cf</b></a> file. The <b><a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a></b> and <b>mail</b>‐‐
|
||||
<b>box_transport</b> configuration parameters specify an optional message
|
||||
specified in the <a href="master.5.html"><b>master.cf</b></a> file. The <b><a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a></b> and <b><a href="postconf.5.html#mailbox_transport">mail</a>-</b>
|
||||
<b><a href="postconf.5.html#mailbox_transport">box_transport</a></b> configuration parameters specify an optional message
|
||||
transport that is to be used for all local recipients, regardless of
|
||||
whether they are found in the UNIX passwd database. The <b>fall</b>‐‐
|
||||
<b>back_transport_maps</b> and <b><a href="postconf.5.html#fallback_transport">fallback_transport</a></b> parameters specify an
|
||||
whether they are found in the UNIX passwd database. The <b><a href="postconf.5.html#fallback_transport_maps">fall</a>-</b>
|
||||
<b><a href="postconf.5.html#fallback_transport_maps">back_transport_maps</a></b> and <b><a href="postconf.5.html#fallback_transport">fallback_transport</a></b> parameters specify an
|
||||
optional message transport for recipients that are not found in the
|
||||
<a href="aliases.5.html">aliases(5)</a> or UNIX passwd database.
|
||||
|
||||
@ -117,7 +117,7 @@ LOCAL(8) LOCAL(8)
|
||||
to Postfix, prepends an optional <b>Delivered-To:</b> header with the final
|
||||
envelope recipient address, prepends a <b>Return-Path:</b> header with the
|
||||
envelope sender address, prepends a > character to lines beginning with
|
||||
"<b>From</b> ", and appends an empty line. The mailbox is locked for exclu‐
|
||||
"<b>From</b> ", and appends an empty line. The mailbox is locked for exclu-
|
||||
sive access while delivery is in progress. In case of problems, an
|
||||
attempt is made to truncate the mailbox to its original length.
|
||||
|
||||
@ -129,23 +129,23 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
<b>EXTERNAL COMMAND DELIVERY</b>
|
||||
The <b><a href="postconf.5.html#allow_mail_to_commands">allow_mail_to_commands</a></b> configuration parameter restricts delivery
|
||||
to external commands. The default setting (<b>alias, forward</b>) forbids com‐
|
||||
to external commands. The default setting (<b>alias, forward</b>) forbids com-
|
||||
mand destinations in <b>:include:</b> files.
|
||||
|
||||
Optionally, the process working directory is changed to the path speci‐
|
||||
Optionally, the process working directory is changed to the path speci-
|
||||
fied with <b><a href="postconf.5.html#command_execution_directory">command_execution_directory</a></b> (Postfix 2.2 and later). Failure
|
||||
to change directory causes mail to be deferred.
|
||||
|
||||
The <b><a href="postconf.5.html#command_execution_directory">command_execution_directory</a></b> parameter value is subject to interpo‐
|
||||
The <b><a href="postconf.5.html#command_execution_directory">command_execution_directory</a></b> parameter value is subject to interpo-
|
||||
lation of <b>$user</b> (recipient username), <b>$home</b> (recipient home directory),
|
||||
<b>$shell</b> (recipient shell), <b>$recipient</b> (complete recipient address),
|
||||
<b>$extension</b> (recipient address extension), <b>$domain</b> (recipient domain),
|
||||
<b>$local</b> (entire recipient address localpart) and <b>$<a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a>.</b>
|
||||
The forms <i>${name?value}</i> and <i>${name:value}</i> expand conditionally to <i>value</i>
|
||||
when <i>$name</i> is (is not) defined. Characters that may have special mean‐
|
||||
when <i>$name</i> is (is not) defined. Characters that may have special mean-
|
||||
ing to the shell or file system are replaced by underscores. The list
|
||||
of acceptable characters is specified with the <b>execution_direc</b>‐‐
|
||||
<b>tory_expansion_filter</b> configuration parameter.
|
||||
of acceptable characters is specified with the <b><a href="postconf.5.html#execution_directory_expansion_filter">execution_direc</a>-</b>
|
||||
<b><a href="postconf.5.html#execution_directory_expansion_filter">tory_expansion_filter</a></b> configuration parameter.
|
||||
|
||||
The command is executed directly where possible. Assistance by the
|
||||
shell (<b>/bin/sh</b> on UNIX systems) is used only when the command contains
|
||||
@ -154,7 +154,7 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
A limited amount of command output (standard output and standard error)
|
||||
is captured for inclusion with non-delivery status reports. A command
|
||||
is forcibly terminated if it does not complete within <b>com</b>‐‐
|
||||
is forcibly terminated if it does not complete within <b>com-</b>
|
||||
<b>mand_time_limit</b> seconds. Command exit status codes are expected to
|
||||
follow the conventions defined in <<b>sysexits.h</b>>. Exit status 0 means
|
||||
normal successful completion.
|
||||
@ -164,9 +164,9 @@ LOCAL(8) LOCAL(8)
|
||||
command output begins with an enhanced status code, this status code
|
||||
takes precedence over the non-zero exit status.
|
||||
|
||||
A limited amount of message context is exported via environment vari‐
|
||||
A limited amount of message context is exported via environment vari-
|
||||
ables. Characters that may have special meaning to the shell are
|
||||
replaced by underscores. The list of acceptable characters is speci‐
|
||||
replaced by underscores. The list of acceptable characters is speci-
|
||||
fied with the <b><a href="postconf.5.html#command_expansion_filter">command_expansion_filter</a></b> configuration parameter.
|
||||
|
||||
<b>SHELL</b> The recipient user's login shell.
|
||||
@ -195,7 +195,7 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
<b>SENDER</b> The entire sender address.
|
||||
|
||||
Additional remote client information is made available via the follow‐
|
||||
Additional remote client information is made available via the follow-
|
||||
ing environment variables:
|
||||
|
||||
<b>CLIENT_ADDRESS</b>
|
||||
@ -241,7 +241,7 @@ LOCAL(8) LOCAL(8)
|
||||
<b>/</b> for <b>qmail</b>-compatible <b>maildir</b> delivery.
|
||||
|
||||
The <b><a href="postconf.5.html#allow_mail_to_files">allow_mail_to_files</a></b> configuration parameter restricts delivery to
|
||||
external files. The default setting (<b>alias, forward</b>) forbids file des‐
|
||||
external files. The default setting (<b>alias, forward</b>) forbids file des-
|
||||
tinations in <b>:include:</b> files.
|
||||
|
||||
In the case of UNIX-style mailbox delivery, the <a href="local.8.html"><b>local</b>(8)</a> daemon
|
||||
@ -266,7 +266,7 @@ LOCAL(8) LOCAL(8)
|
||||
to separate address extensions from local recipient names.
|
||||
|
||||
For example, with "<b><a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> = +</b>", mail for <i>name</i>+<i>foo</i> is
|
||||
delivered to the alias <i>name</i>+<i>foo</i> or to the alias <i>name</i>, to the destina‐
|
||||
delivered to the alias <i>name</i>+<i>foo</i> or to the alias <i>name</i>, to the destina-
|
||||
tions listed in ~<i>name</i>/.<b>forward</b>+<i>foo</i> or in ~<i>name</i>/.<b>forward</b>, to the mailbox
|
||||
owned by the user <i>name</i>, or it is sent back as undeliverable.
|
||||
|
||||
@ -287,13 +287,13 @@ LOCAL(8) LOCAL(8)
|
||||
files are marked so that the queue manager can move them to the <b>corrupt</b>
|
||||
queue afterwards.
|
||||
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas‐
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
|
||||
ter is notified of bounces and of other trouble.
|
||||
|
||||
<b>SECURITY</b>
|
||||
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent needs a dual personality 1) to access the
|
||||
private Postfix queue and IPC mechanisms, 2) to impersonate the recipi‐
|
||||
ent and deliver to recipient-specified files or commands. It is there‐
|
||||
private Postfix queue and IPC mechanisms, 2) to impersonate the recipi-
|
||||
ent and deliver to recipient-specified files or commands. It is there-
|
||||
fore security sensitive.
|
||||
|
||||
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent disallows regular expression substitution
|
||||
@ -307,11 +307,11 @@ LOCAL(8) LOCAL(8)
|
||||
<b>BUGS</b>
|
||||
For security reasons, the message delivery status of external commands
|
||||
or of external files is never checkpointed to file. As a result, the
|
||||
program may occasionally deliver more than once to a command or exter‐
|
||||
program may occasionally deliver more than once to a command or exter-
|
||||
nal file. Better safe than sorry.
|
||||
|
||||
Mutually-recursive aliases or ~/.<b>forward</b> files are not detected early.
|
||||
The resulting mail forwarding loop is broken by the use of the <b>Deliv</b>‐‐
|
||||
The resulting mail forwarding loop is broken by the use of the <b>Deliv-</b>
|
||||
<b>ered-To:</b> message header.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
@ -333,8 +333,8 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
<b><a href="postconf.5.html#owner_request_special">owner_request_special</a> (yes)</b>
|
||||
Give special treatment to owner-listname and listname-request
|
||||
address localparts: don't split such addresses when the recipi‐
|
||||
ent_delimiter is set to "-".
|
||||
address localparts: don't split such addresses when the <a href="postconf.5.html#recipient_delimiter">recipi</a>-
|
||||
<a href="postconf.5.html#recipient_delimiter">ent_delimiter</a> is set to "-".
|
||||
|
||||
<b><a href="postconf.5.html#sun_mailtool_compatibility">sun_mailtool_compatibility</a> (no)</b>
|
||||
Obsolete SUN mailtool compatibility feature.
|
||||
@ -350,7 +350,7 @@ LOCAL(8) LOCAL(8)
|
||||
Available in Postfix version 2.5.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#strict_mailbox_ownership">strict_mailbox_ownership</a> (yes)</b>
|
||||
Defer delivery when a mailbox file is not owned by its recipi‐
|
||||
Defer delivery when a mailbox file is not owned by its recipi-
|
||||
ent.
|
||||
|
||||
<b><a href="postconf.5.html#reset_owner_alias">reset_owner_alias</a> (no)</b>
|
||||
@ -368,8 +368,8 @@ LOCAL(8) LOCAL(8)
|
||||
<b>DELIVERY METHOD CONTROLS</b>
|
||||
The precedence of <a href="local.8.html"><b>local</b>(8)</a> delivery methods 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>, mail_spool_direc‐
|
||||
tory, <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>.
|
||||
<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_direc</a>-
|
||||
<a href="postconf.5.html#mail_spool_directory">tory</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>.
|
||||
|
||||
<b><a href="postconf.5.html#alias_maps">alias_maps</a> (see 'postconf -d' output)</b>
|
||||
The alias databases that are used for <a href="local.8.html"><b>local</b>(8)</a> delivery.
|
||||
@ -444,16 +444,16 @@ LOCAL(8) LOCAL(8)
|
||||
Time limit for delivery to external commands.
|
||||
|
||||
<b><a href="postconf.5.html#duplicate_filter_limit">duplicate_filter_limit</a> (1000)</b>
|
||||
The maximal number of addresses remembered by the address dupli‐
|
||||
The maximal number of addresses remembered by the address dupli-
|
||||
cate filter for <a href="aliases.5.html"><b>aliases</b>(5)</a> or <a href="virtual.5.html"><b>virtual</b>(5)</a> alias expansion, or for
|
||||
<a href="showq.8.html"><b>showq</b>(8)</a> queue displays.
|
||||
|
||||
<b><a href="postconf.5.html#local_destination_concurrency_limit">local_destination_concurrency_limit</a> (2)</b>
|
||||
The maximal number of parallel deliveries via the local mail
|
||||
delivery transport to the same recipient (when "local_destina‐
|
||||
tion_recipient_limit = 1") or the maximal number of parallel
|
||||
deliveries to the same local domain (when "local_destina‐
|
||||
tion_recipient_limit > 1").
|
||||
delivery transport to the same recipient (when "<a href="postconf.5.html#local_destination_recipient_limit">local_destina</a>-
|
||||
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> = 1") or the maximal number of parallel
|
||||
deliveries to the same local domain (when "<a href="postconf.5.html#local_destination_recipient_limit">local_destina</a>-
|
||||
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> > 1").
|
||||
|
||||
<b><a href="postconf.5.html#local_destination_recipient_limit">local_destination_recipient_limit</a> (1)</b>
|
||||
The maximal number of recipients per message delivery via the
|
||||
@ -472,8 +472,8 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
<b><a href="postconf.5.html#command_expansion_filter">command_expansion_filter</a> (see 'postconf -d' output)</b>
|
||||
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
||||
in $name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_command</a> and $command_execu‐
|
||||
tion_directory.
|
||||
in $name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_command</a> and $<a href="postconf.5.html#command_execution_directory">command_execu</a>-
|
||||
<a href="postconf.5.html#command_execution_directory">tion_directory</a>.
|
||||
|
||||
<b><a href="postconf.5.html#default_privs">default_privs</a> (nobody)</b>
|
||||
The default rights used by the <a href="local.8.html"><b>local</b>(8)</a> delivery agent for
|
||||
@ -492,12 +492,12 @@ LOCAL(8) LOCAL(8)
|
||||
Available in Postfix version 2.5.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#strict_mailbox_ownership">strict_mailbox_ownership</a> (yes)</b>
|
||||
Defer delivery when a mailbox file is not owned by its recipi‐
|
||||
Defer delivery when a mailbox file is not owned by its recipi-
|
||||
ent.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -505,7 +505,7 @@ LOCAL(8) LOCAL(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#export_environment">export_environment</a> (see 'postconf -d' output)</b>
|
||||
@ -517,7 +517,7 @@ LOCAL(8) LOCAL(8)
|
||||
internal communication channel.
|
||||
|
||||
<b><a href="postconf.5.html#local_command_shell">local_command_shell</a> (empty)</b>
|
||||
Optional shell program for <a href="local.8.html"><b>local</b>(8)</a> delivery to non-Postfix com‐
|
||||
Optional shell program for <a href="local.8.html"><b>local</b>(8)</a> delivery to non-Postfix com-
|
||||
mand.
|
||||
|
||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||
@ -529,7 +529,7 @@ LOCAL(8) LOCAL(8)
|
||||
process will service before terminating voluntarily.
|
||||
|
||||
<b><a href="postconf.5.html#prepend_delivered_header">prepend_delivered_header</a> (command, file, forward)</b>
|
||||
The message delivery contexts where the Postfix <a href="local.8.html"><b>local</b>(8)</a> deliv‐
|
||||
The message delivery contexts where the Postfix <a href="local.8.html"><b>local</b>(8)</a> deliv-
|
||||
ery agent prepends a Delivered-To: message header with the
|
||||
address that the mail was delivered to.
|
||||
|
||||
@ -560,7 +560,7 @@ LOCAL(8) LOCAL(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -19,7 +19,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>sendmail -I</b>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> command implements the Postfix to Sendmail com‐
|
||||
The Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> command implements the Postfix to Sendmail com-
|
||||
patibility interface. For the sake of compatibility with existing
|
||||
applications, some Sendmail command-line options are recognized but
|
||||
silently ignored.
|
||||
@ -29,7 +29,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
arranges for delivery. Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> relies on the <a href="postdrop.1.html"><b>postdrop</b>(1)</a>
|
||||
command to create a queue file in the <b>maildrop</b> directory.
|
||||
|
||||
Specific command aliases are provided for other common modes of opera‐
|
||||
Specific command aliases are provided for other common modes of opera-
|
||||
tion:
|
||||
|
||||
<b>mailq</b> List the mail queue. Each entry shows the queue file ID, message
|
||||
@ -41,7 +41,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>*</b> The message is in the <b>active</b> queue, i.e. the message is
|
||||
selected for delivery.
|
||||
|
||||
<b>!</b> The message is in the <b>hold</b> queue, i.e. no further deliv‐
|
||||
<b>!</b> The message is in the <b>hold</b> queue, i.e. no further deliv-
|
||||
ery attempt will be made until the mail is taken off
|
||||
hold.
|
||||
|
||||
@ -51,7 +51,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>newaliases</b>
|
||||
Initialize the alias database. If no input file is specified
|
||||
(with the <b>-oA</b> option, see below), the program processes the
|
||||
file(s) specified with the <b><a href="postconf.5.html#alias_database">alias_database</a></b> configuration parame‐
|
||||
file(s) specified with the <b><a href="postconf.5.html#alias_database">alias_database</a></b> configuration parame-
|
||||
ter. If no alias database type is specified, the program uses
|
||||
the type specified with the <b><a href="postconf.5.html#default_database_type">default_database_type</a></b> configuration
|
||||
parameter. This mode of operation is implemented by running the
|
||||
@ -87,7 +87,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> command above.
|
||||
|
||||
<b>-bl</b> Go into daemon mode. To accept only local connections as with
|
||||
Sendmail´s <b>-bl</b> option, specify "<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in
|
||||
Sendmail's <b>-bl</b> option, specify "<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in
|
||||
the Postfix <a href="postconf.5.html"><b>main.cf</b></a> configuration file.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for delivery. This is
|
||||
@ -118,12 +118,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
before 2.3.
|
||||
|
||||
With all Postfix versions, you can specify a directory pathname
|
||||
with the MAIL_CONFIG environment variable to override the loca‐
|
||||
with the MAIL_CONFIG environment variable to override the loca-
|
||||
tion of configuration files.
|
||||
|
||||
<b>-F</b> <i>full</i><b>_</b><i>name</i>
|
||||
Set the sender full name. This overrides the NAME environment
|
||||
variable, and is used only with messages that have no <b>From:</b> mes‐
|
||||
variable, and is used only with messages that have no <b>From:</b> mes-
|
||||
sage header.
|
||||
|
||||
<b>-f</b> <i>sender</i>
|
||||
@ -132,8 +132,8 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
the <b>Errors-To:</b> message header overrides the error return
|
||||
address.
|
||||
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial user submis‐
|
||||
sion. Either do not rewrite addresses at all, or update incom‐
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial user submis-
|
||||
sion. Either do not rewrite addresses at all, or update incom-
|
||||
plete addresses with the domain information specified with
|
||||
<b><a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a></b>.
|
||||
|
||||
@ -145,7 +145,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> command above.
|
||||
|
||||
<b>-i</b> When reading a message from standard input, don´t treat a line
|
||||
<b>-i</b> When reading a message from standard input, don't treat a line
|
||||
with only a <b>.</b> character as the end of input.
|
||||
|
||||
<b>-L</b> <i>label</i> (ignored)
|
||||
@ -179,17 +179,17 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>-o7</b> (ignored)
|
||||
|
||||
<b>-o8</b> (ignored)
|
||||
To send 8-bit or binary content, use an appropriate MIME encap‐
|
||||
To send 8-bit or binary content, use an appropriate MIME encap-
|
||||
sulation and specify the appropriate <b>-B</b> command-line option.
|
||||
|
||||
<b>-oi</b> When reading a message from standard input, don´t treat a line
|
||||
<b>-oi</b> When reading a message from standard input, don't treat a line
|
||||
with only a <b>.</b> character as the end of input.
|
||||
|
||||
<b>-om</b> (ignored)
|
||||
The sender is never eliminated from alias etc. expansions.
|
||||
|
||||
<b>-o</b> <i>x value</i> (ignored)
|
||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configuration parame‐
|
||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configuration parame-
|
||||
ter in <a href="postconf.5.html"><b>main.cf</b></a> instead.
|
||||
|
||||
<b>-r</b> <i>sender</i>
|
||||
@ -209,25 +209,25 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is implemented by exe‐
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is implemented by exe-
|
||||
cuting the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command.
|
||||
|
||||
Warning: flushing undeliverable mail frequently will result in
|
||||
poor delivery performance of all other mail.
|
||||
|
||||
<b>-q</b><i>interval</i> (ignored)
|
||||
The interval between queue runs. Use the <b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a></b> config‐
|
||||
The interval between queue runs. Use the <b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a></b> config-
|
||||
uration parameter instead.
|
||||
|
||||
<b>-qI</b><i>queueid</i>
|
||||
Schedule immediate delivery of mail with the specified queue ID.
|
||||
This option is implemented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> com‐
|
||||
This option is implemented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> com-
|
||||
mand, and is available with Postfix version 2.4 and later.
|
||||
|
||||
<b>-qR</b><i>site</i>
|
||||
Schedule immediate delivery of all mail that is queued for the
|
||||
named <i>site</i>. This option accepts only <i>site</i> names that are eligi‐
|
||||
ble for the "fast flush" service, and is implemented by execut‐
|
||||
named <i>site</i>. This option accepts only <i>site</i> names that are eligi-
|
||||
ble for the "fast flush" service, and is implemented by execut-
|
||||
ing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command. See <a href="flush.8.html"><b>flush</b>(8)</a> for more information
|
||||
about the "fast flush" service.
|
||||
|
||||
@ -262,12 +262,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>-XV</b><i>xy</i> (Postfix 2.2 and earlier: <b>-V</b><i>xy</i>)
|
||||
As <b>-XV</b>, but uses <i>x</i> and <i>y</i> as the VERP delimiter characters,
|
||||
instead of the characters specified with the <b>default_verp_delim</b>‐‐
|
||||
<b>iters</b> configuration parameter.
|
||||
instead of the characters specified with the <b><a href="postconf.5.html#default_verp_delimiters">default_verp_delim</a>-</b>
|
||||
<b><a href="postconf.5.html#default_verp_delimiters">iters</a></b> configuration parameter.
|
||||
|
||||
<b>-v</b> Send an email report of the first delivery attempt (Postfix ver‐
|
||||
sions 2.1 and later). Mail delivery always happens in the back‐
|
||||
ground. When multiple <b>-v</b> options are given, enable verbose log‐
|
||||
<b>-v</b> Send an email report of the first delivery attempt (Postfix ver-
|
||||
sions 2.1 and later). Mail delivery always happens in the back-
|
||||
ground. When multiple <b>-v</b> options are given, enable verbose log-
|
||||
ging for debugging purposes.
|
||||
|
||||
<b>-X</b> <i>log</i><b>_</b><i>file</i> (ignored)
|
||||
@ -297,9 +297,9 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
no <b>From:</b> message header. See also the <b>-F</b> option above.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro‐
|
||||
gram. The text below provides only a parameter summary. See <b>post</b>‐‐
|
||||
<b>conf</b>(5) for more details including examples.
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro-
|
||||
gram. The text below provides only a parameter summary. See <a href="postconf.5.html"><b>post-</b></a>
|
||||
<a href="postconf.5.html"><b>conf</b>(5)</a> for more details including examples.
|
||||
|
||||
<b>COMPATIBILITY CONTROLS</b>
|
||||
Available with Postfix 2.9 and later:
|
||||
@ -335,8 +335,8 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
List of users who are authorized to view the queue.
|
||||
|
||||
<b><a href="postconf.5.html#authorized_submit_users">authorized_submit_users</a> (<a href="DATABASE_README.html#types">static</a>:anyone)</b>
|
||||
List of users who are authorized to submit mail with the <b>send</b>‐‐
|
||||
<b>mail</b>(1) command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com‐
|
||||
List of users who are authorized to submit mail with the <a href="sendmail.1.html"><b>send-</b></a>
|
||||
<a href="sendmail.1.html"><b>mail</b>(1)</a> command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com-
|
||||
mand).
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
@ -363,7 +363,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
the Postfix "fast flush" service.
|
||||
|
||||
<b><a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> ($<a href="postconf.5.html#relay_domains">relay_domains</a>)</b>
|
||||
Optional list of destinations that are eligible for per-destina‐
|
||||
Optional list of destinations that are eligible for per-destina-
|
||||
tion logfiles with mail that is queued to those destinations.
|
||||
|
||||
<b>VERP CONTROLS</b>
|
||||
@ -386,7 +386,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
The location of all postfix administrative commands.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_directory">daemon_directory</a> (see 'postconf -d' output)</b>
|
||||
@ -417,7 +417,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -19,7 +19,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>sendmail -I</b>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> command implements the Postfix to Sendmail com‐
|
||||
The Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> command implements the Postfix to Sendmail com-
|
||||
patibility interface. For the sake of compatibility with existing
|
||||
applications, some Sendmail command-line options are recognized but
|
||||
silently ignored.
|
||||
@ -29,7 +29,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
arranges for delivery. Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> relies on the <a href="postdrop.1.html"><b>postdrop</b>(1)</a>
|
||||
command to create a queue file in the <b>maildrop</b> directory.
|
||||
|
||||
Specific command aliases are provided for other common modes of opera‐
|
||||
Specific command aliases are provided for other common modes of opera-
|
||||
tion:
|
||||
|
||||
<b>mailq</b> List the mail queue. Each entry shows the queue file ID, message
|
||||
@ -41,7 +41,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>*</b> The message is in the <b>active</b> queue, i.e. the message is
|
||||
selected for delivery.
|
||||
|
||||
<b>!</b> The message is in the <b>hold</b> queue, i.e. no further deliv‐
|
||||
<b>!</b> The message is in the <b>hold</b> queue, i.e. no further deliv-
|
||||
ery attempt will be made until the mail is taken off
|
||||
hold.
|
||||
|
||||
@ -51,7 +51,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>newaliases</b>
|
||||
Initialize the alias database. If no input file is specified
|
||||
(with the <b>-oA</b> option, see below), the program processes the
|
||||
file(s) specified with the <b><a href="postconf.5.html#alias_database">alias_database</a></b> configuration parame‐
|
||||
file(s) specified with the <b><a href="postconf.5.html#alias_database">alias_database</a></b> configuration parame-
|
||||
ter. If no alias database type is specified, the program uses
|
||||
the type specified with the <b><a href="postconf.5.html#default_database_type">default_database_type</a></b> configuration
|
||||
parameter. This mode of operation is implemented by running the
|
||||
@ -87,7 +87,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> command above.
|
||||
|
||||
<b>-bl</b> Go into daemon mode. To accept only local connections as with
|
||||
Sendmail´s <b>-bl</b> option, specify "<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in
|
||||
Sendmail's <b>-bl</b> option, specify "<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in
|
||||
the Postfix <a href="postconf.5.html"><b>main.cf</b></a> configuration file.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for delivery. This is
|
||||
@ -118,12 +118,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
before 2.3.
|
||||
|
||||
With all Postfix versions, you can specify a directory pathname
|
||||
with the MAIL_CONFIG environment variable to override the loca‐
|
||||
with the MAIL_CONFIG environment variable to override the loca-
|
||||
tion of configuration files.
|
||||
|
||||
<b>-F</b> <i>full</i><b>_</b><i>name</i>
|
||||
Set the sender full name. This overrides the NAME environment
|
||||
variable, and is used only with messages that have no <b>From:</b> mes‐
|
||||
variable, and is used only with messages that have no <b>From:</b> mes-
|
||||
sage header.
|
||||
|
||||
<b>-f</b> <i>sender</i>
|
||||
@ -132,8 +132,8 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
the <b>Errors-To:</b> message header overrides the error return
|
||||
address.
|
||||
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial user submis‐
|
||||
sion. Either do not rewrite addresses at all, or update incom‐
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial user submis-
|
||||
sion. Either do not rewrite addresses at all, or update incom-
|
||||
plete addresses with the domain information specified with
|
||||
<b><a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a></b>.
|
||||
|
||||
@ -145,7 +145,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> command above.
|
||||
|
||||
<b>-i</b> When reading a message from standard input, don´t treat a line
|
||||
<b>-i</b> When reading a message from standard input, don't treat a line
|
||||
with only a <b>.</b> character as the end of input.
|
||||
|
||||
<b>-L</b> <i>label</i> (ignored)
|
||||
@ -179,17 +179,17 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>-o7</b> (ignored)
|
||||
|
||||
<b>-o8</b> (ignored)
|
||||
To send 8-bit or binary content, use an appropriate MIME encap‐
|
||||
To send 8-bit or binary content, use an appropriate MIME encap-
|
||||
sulation and specify the appropriate <b>-B</b> command-line option.
|
||||
|
||||
<b>-oi</b> When reading a message from standard input, don´t treat a line
|
||||
<b>-oi</b> When reading a message from standard input, don't treat a line
|
||||
with only a <b>.</b> character as the end of input.
|
||||
|
||||
<b>-om</b> (ignored)
|
||||
The sender is never eliminated from alias etc. expansions.
|
||||
|
||||
<b>-o</b> <i>x value</i> (ignored)
|
||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configuration parame‐
|
||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configuration parame-
|
||||
ter in <a href="postconf.5.html"><b>main.cf</b></a> instead.
|
||||
|
||||
<b>-r</b> <i>sender</i>
|
||||
@ -209,25 +209,25 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is implemented by exe‐
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is implemented by exe-
|
||||
cuting the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command.
|
||||
|
||||
Warning: flushing undeliverable mail frequently will result in
|
||||
poor delivery performance of all other mail.
|
||||
|
||||
<b>-q</b><i>interval</i> (ignored)
|
||||
The interval between queue runs. Use the <b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a></b> config‐
|
||||
The interval between queue runs. Use the <b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a></b> config-
|
||||
uration parameter instead.
|
||||
|
||||
<b>-qI</b><i>queueid</i>
|
||||
Schedule immediate delivery of mail with the specified queue ID.
|
||||
This option is implemented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> com‐
|
||||
This option is implemented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> com-
|
||||
mand, and is available with Postfix version 2.4 and later.
|
||||
|
||||
<b>-qR</b><i>site</i>
|
||||
Schedule immediate delivery of all mail that is queued for the
|
||||
named <i>site</i>. This option accepts only <i>site</i> names that are eligi‐
|
||||
ble for the "fast flush" service, and is implemented by execut‐
|
||||
named <i>site</i>. This option accepts only <i>site</i> names that are eligi-
|
||||
ble for the "fast flush" service, and is implemented by execut-
|
||||
ing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command. See <a href="flush.8.html"><b>flush</b>(8)</a> for more information
|
||||
about the "fast flush" service.
|
||||
|
||||
@ -262,12 +262,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>-XV</b><i>xy</i> (Postfix 2.2 and earlier: <b>-V</b><i>xy</i>)
|
||||
As <b>-XV</b>, but uses <i>x</i> and <i>y</i> as the VERP delimiter characters,
|
||||
instead of the characters specified with the <b>default_verp_delim</b>‐‐
|
||||
<b>iters</b> configuration parameter.
|
||||
instead of the characters specified with the <b><a href="postconf.5.html#default_verp_delimiters">default_verp_delim</a>-</b>
|
||||
<b><a href="postconf.5.html#default_verp_delimiters">iters</a></b> configuration parameter.
|
||||
|
||||
<b>-v</b> Send an email report of the first delivery attempt (Postfix ver‐
|
||||
sions 2.1 and later). Mail delivery always happens in the back‐
|
||||
ground. When multiple <b>-v</b> options are given, enable verbose log‐
|
||||
<b>-v</b> Send an email report of the first delivery attempt (Postfix ver-
|
||||
sions 2.1 and later). Mail delivery always happens in the back-
|
||||
ground. When multiple <b>-v</b> options are given, enable verbose log-
|
||||
ging for debugging purposes.
|
||||
|
||||
<b>-X</b> <i>log</i><b>_</b><i>file</i> (ignored)
|
||||
@ -297,9 +297,9 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
no <b>From:</b> message header. See also the <b>-F</b> option above.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro‐
|
||||
gram. The text below provides only a parameter summary. See <b>post</b>‐‐
|
||||
<b>conf</b>(5) for more details including examples.
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro-
|
||||
gram. The text below provides only a parameter summary. See <a href="postconf.5.html"><b>post-</b></a>
|
||||
<a href="postconf.5.html"><b>conf</b>(5)</a> for more details including examples.
|
||||
|
||||
<b>COMPATIBILITY CONTROLS</b>
|
||||
Available with Postfix 2.9 and later:
|
||||
@ -335,8 +335,8 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
List of users who are authorized to view the queue.
|
||||
|
||||
<b><a href="postconf.5.html#authorized_submit_users">authorized_submit_users</a> (<a href="DATABASE_README.html#types">static</a>:anyone)</b>
|
||||
List of users who are authorized to submit mail with the <b>send</b>‐‐
|
||||
<b>mail</b>(1) command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com‐
|
||||
List of users who are authorized to submit mail with the <a href="sendmail.1.html"><b>send-</b></a>
|
||||
<a href="sendmail.1.html"><b>mail</b>(1)</a> command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com-
|
||||
mand).
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
@ -363,7 +363,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
the Postfix "fast flush" service.
|
||||
|
||||
<b><a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> ($<a href="postconf.5.html#relay_domains">relay_domains</a>)</b>
|
||||
Optional list of destinations that are eligible for per-destina‐
|
||||
Optional list of destinations that are eligible for per-destina-
|
||||
tion logfiles with mail that is queued to those destinations.
|
||||
|
||||
<b>VERP CONTROLS</b>
|
||||
@ -386,7 +386,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
The location of all postfix administrative commands.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_directory">daemon_directory</a> (see 'postconf -d' output)</b>
|
||||
@ -417,7 +417,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -14,11 +14,11 @@ OQMGR(8) OQMGR(8)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The <a href="qmgr.8.html"><b>oqmgr</b>(8)</a> daemon awaits the arrival of incoming mail and arranges
|
||||
for its delivery via Postfix delivery processes. The actual mail rout‐
|
||||
ing strategy is delegated to the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> daemon. This pro‐
|
||||
for its delivery via Postfix delivery processes. The actual mail rout-
|
||||
ing strategy is delegated to the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> daemon. This pro-
|
||||
gram expects to be run from the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
|
||||
Mail addressed to the local <b>double-bounce</b> address is logged and dis‐
|
||||
Mail addressed to the local <b>double-bounce</b> address is logged and dis-
|
||||
carded. This stops potential loops caused by undeliverable bounce
|
||||
notifications.
|
||||
|
||||
@ -56,7 +56,7 @@ OQMGR(8) OQMGR(8)
|
||||
These files are maintained by the <a href="defer.8.html"><b>defer</b>(8)</a> daemon.
|
||||
|
||||
<b>trace</b> Per-recipient status information as requested with the Postfix
|
||||
"<b>sendmail -v</b>" or "<b>sendmail -bv</b>" command. These files are main‐
|
||||
"<b>sendmail -v</b>" or "<b>sendmail -bv</b>" command. These files are main-
|
||||
tained by the <a href="trace.8.html"><b>trace</b>(8)</a> daemon.
|
||||
|
||||
The <a href="qmgr.8.html"><b>oqmgr</b>(8)</a> daemon is responsible for asking the <a href="bounce.8.html"><b>bounce</b>(8)</a>, <a href="defer.8.html"><b>defer</b>(8)</a>
|
||||
@ -72,14 +72,14 @@ OQMGR(8) OQMGR(8)
|
||||
heavy load.
|
||||
|
||||
<b>fairness</b>
|
||||
When the <b>active</b> queue has room, the queue manager takes one mes‐
|
||||
When the <b>active</b> queue has room, the queue manager takes one mes-
|
||||
sage from the <a href="QSHAPE_README.html#incoming_queue"><b>incoming</b> queue</a> and one from the <b>deferred</b> queue.
|
||||
This prevents a large mail backlog from blocking the delivery of
|
||||
new mail.
|
||||
|
||||
<b>slow start</b>
|
||||
This strategy eliminates "thundering herd" problems by slowly
|
||||
adjusting the number of parallel deliveries to the same destina‐
|
||||
adjusting the number of parallel deliveries to the same destina-
|
||||
tion.
|
||||
|
||||
<b>round robin</b>
|
||||
@ -89,17 +89,17 @@ OQMGR(8) OQMGR(8)
|
||||
|
||||
<b>exponential backoff</b>
|
||||
Mail that cannot be delivered upon the first attempt is
|
||||
deferred. The time interval between delivery attempts is dou‐
|
||||
deferred. The time interval between delivery attempts is dou-
|
||||
bled after each attempt.
|
||||
|
||||
<b>destination status cache</b>
|
||||
The queue manager avoids unnecessary delivery attempts by main‐
|
||||
taining a short-term, in-memory list of unreachable destina‐
|
||||
The queue manager avoids unnecessary delivery attempts by main-
|
||||
taining a short-term, in-memory list of unreachable destina-
|
||||
tions.
|
||||
|
||||
<b>TRIGGERS</b>
|
||||
On an idle system, the queue manager waits for the arrival of trigger
|
||||
events, or it waits for a timer to go off. A trigger is a one-byte mes‐
|
||||
events, or it waits for a timer to go off. A trigger is a one-byte mes-
|
||||
sage. Depending on the message received, the queue manager performs
|
||||
one of the following actions (the message is followed by the symbolic
|
||||
constant used internally by the software):
|
||||
@ -137,28 +137,28 @@ OQMGR(8) OQMGR(8)
|
||||
<a href="http://tools.ietf.org/html/rfc3464">RFC 3464</a> (Delivery status notifications)
|
||||
|
||||
<b>SECURITY</b>
|
||||
The <a href="qmgr.8.html"><b>oqmgr</b>(8)</a> daemon is not security sensitive. It reads single-charac‐
|
||||
The <a href="qmgr.8.html"><b>oqmgr</b>(8)</a> daemon is not security sensitive. It reads single-charac-
|
||||
ter messages from untrusted local users, and thus may be susceptible to
|
||||
denial of service attacks. The <a href="qmgr.8.html"><b>oqmgr</b>(8)</a> daemon does not talk to the
|
||||
outside world, and it can be run at fixed low privilege in a chrooted
|
||||
environment.
|
||||
|
||||
<b>DIAGNOSTICS</b>
|
||||
Problems and transactions are logged to the <b>syslog</b>(8) daemon. Cor‐
|
||||
rupted message files are saved to the <b>corrupt</b> queue for further inspec‐
|
||||
Problems and transactions are logged to the <b>syslog</b>(8) daemon. Cor-
|
||||
rupted message files are saved to the <b>corrupt</b> queue for further inspec-
|
||||
tion.
|
||||
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas‐
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
|
||||
ter is notified of bounces and of other trouble.
|
||||
|
||||
<b>BUGS</b>
|
||||
A single queue manager process has to compete for disk access with mul‐
|
||||
A single queue manager process has to compete for disk access with mul-
|
||||
tiple front-end processes such as <a href="cleanup.8.html"><b>cleanup</b>(8)</a>. A sudden burst of inbound
|
||||
mail can negatively impact outbound delivery rates.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are not picked up automatically, as <a href="qmgr.8.html"><b>oqmgr</b>(8)</a> is a
|
||||
persistent process. Use the command "<b>postfix reload</b>" after a configura‐
|
||||
persistent process. Use the command "<b>postfix reload</b>" after a configura-
|
||||
tion change.
|
||||
|
||||
The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
|
||||
@ -207,15 +207,15 @@ OQMGR(8) OQMGR(8)
|
||||
The default maximal number of parallel deliveries to the same
|
||||
destination.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> ($default_destination_concur</b>‐‐
|
||||
<b>rency_limit)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concur</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#transport_initial_destination_concurrency"><i>transport</i>_initial_destination_concurrency</a> ($initial_destination_concur</b>‐‐
|
||||
<b>rency)</b>
|
||||
Initial concurrency for delivery via the named message <i>trans‐</i>
|
||||
<b><a href="postconf.5.html#transport_initial_destination_concurrency"><i>transport</i>_initial_destination_concurrency</a> ($<a href="postconf.5.html#initial_destination_concurrency">initial_destination_concur</a>-</b>
|
||||
<b><a href="postconf.5.html#initial_destination_concurrency">rency</a>)</b>
|
||||
Initial concurrency for delivery via the named message <i>trans-</i>
|
||||
<i>port</i>.
|
||||
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a> (1)</b>
|
||||
@ -223,30 +223,30 @@ OQMGR(8) OQMGR(8)
|
||||
failure before a specific destination is considered unavailable
|
||||
(and further delivery is suspended).
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> ($default_desti</b>‐‐
|
||||
<b>nation_concurrency_failed_cohort_limit)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_desti</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">nation_concurrency_failed_cohort_limit</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_negative_feedback">default_destination_concurrency_negative_feedback</a> (1)</b>
|
||||
The per-destination amount of delivery concurrency negative
|
||||
feedback, after a delivery completes with a connection or hand‐
|
||||
feedback, after a delivery completes with a connection or hand-
|
||||
shake failure.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a> ($default_destina</b>‐‐
|
||||
<b>tion_concurrency_negative_feedback)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a> ($<a href="postconf.5.html#default_destination_concurrency_negative_feedback">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_negative_feedback">tion_concurrency_negative_feedback</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_positive_feedback">default_destination_concurrency_positive_feedback</a> (1)</b>
|
||||
The per-destination amount of delivery concurrency positive
|
||||
feedback, after a delivery completes without connection or hand‐
|
||||
feedback, after a delivery completes without connection or hand-
|
||||
shake failure.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a> ($default_destina</b>‐‐
|
||||
<b>tion_concurrency_positive_feedback)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a> ($<a href="postconf.5.html#default_destination_concurrency_positive_feedback">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_positive_feedback">tion_concurrency_positive_feedback</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b><a href="postconf.5.html#destination_concurrency_feedback_debug">destination_concurrency_feedback_debug</a> (no)</b>
|
||||
Make the queue manager's feedback algorithm verbose for perfor‐
|
||||
Make the queue manager's feedback algorithm verbose for perfor-
|
||||
mance analysis purposes.
|
||||
|
||||
<b>RECIPIENT SCHEDULING CONTROLS</b>
|
||||
@ -266,15 +266,15 @@ OQMGR(8) OQMGR(8)
|
||||
|
||||
<b><a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a> (5d)</b>
|
||||
Consider a message as undeliverable, when delivery fails with a
|
||||
temporary error, and the time in the queue has reached the maxi‐
|
||||
mal_queue_lifetime limit.
|
||||
temporary error, and the time in the queue has reached the <a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-
|
||||
<a href="postconf.5.html#maximal_queue_lifetime">mal_queue_lifetime</a> limit.
|
||||
|
||||
<b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a> (300s)</b>
|
||||
The time between <a href="QSHAPE_README.html#deferred_queue">deferred queue</a> scans by the queue manager;
|
||||
prior to Postfix 2.4 the default value was 1000s.
|
||||
|
||||
<b><a href="postconf.5.html#transport_retry_time">transport_retry_time</a> (60s)</b>
|
||||
The time between attempts by the Postfix queue manager to con‐
|
||||
The time between attempts by the Postfix queue manager to con-
|
||||
tact a malfunctioning message delivery transport.
|
||||
|
||||
Available in Postfix version 2.1 and later:
|
||||
@ -289,7 +289,7 @@ OQMGR(8) OQMGR(8)
|
||||
<b><a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a> (0s)</b>
|
||||
The default amount of delay that is inserted between individual
|
||||
deliveries to the same destination; the resulting behavior
|
||||
depends on the value of the corresponding per-destination recip‐
|
||||
depends on the value of the corresponding per-destination recip-
|
||||
ient limit.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> $<a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a></b>
|
||||
@ -301,12 +301,12 @@ OQMGR(8) OQMGR(8)
|
||||
a request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#qmgr_ipc_timeout">qmgr_ipc_timeout</a> (60s)</b>
|
||||
The time limit for the queue manager to send or receive informa‐
|
||||
The time limit for the queue manager to send or receive informa-
|
||||
tion over an internal communication channel.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#defer_transports">defer_transports</a> (empty)</b>
|
||||
@ -314,11 +314,11 @@ OQMGR(8) OQMGR(8)
|
||||
mail unless someone issues "<b>sendmail -q</b>" or equivalent.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#helpful_warnings">helpful_warnings</a> (yes)</b>
|
||||
Log warnings about problematic configuration settings, and pro‐
|
||||
Log warnings about problematic configuration settings, and pro-
|
||||
vide helpful suggestions.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
@ -335,7 +335,7 @@ OQMGR(8) OQMGR(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix version 2.12 and later:
|
||||
|
@ -14,6 +14,10 @@ PCRE_TABLE(5) PCRE_TABLE(5)
|
||||
|
||||
<b>postmap -q - <a href="pcre_table.5.html">pcre</a>:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
||||
|
||||
<b>postmap -hmq - <a href="pcre_table.5.html">pcre</a>:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
||||
|
||||
<b>postmap -bmq - <a href="pcre_table.5.html">pcre</a>:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix mail system uses optional tables for address rewriting,
|
||||
mail routing, or access control. These tables are usually in <b>dbm</b> or <b>db</b>
|
||||
@ -28,7 +32,9 @@ PCRE_TABLE(5) PCRE_TABLE(5)
|
||||
use the "<b>postconf -m</b>" command.
|
||||
|
||||
To test lookup tables, use the "<b>postmap -q</b>" command as described in the
|
||||
SYNOPSIS above.
|
||||
SYNOPSIS above. Use "<b>postmap -hmq -</b> <<i>file</i>" for <a href="header_checks.5.html">header_checks(5)</a> pat-
|
||||
terns, and "<b>postmap -bmq -</b> <<i>file</i>" for <a href="header_checks.5.html">body_checks(5)</a> (Postfix 2.6 and
|
||||
later).
|
||||
|
||||
<b>COMPATIBILITY</b>
|
||||
With Postfix version 2.2 and earlier specify "<b>postmap -fq</b>" to query a
|
||||
|
@ -52,12 +52,12 @@ PICKUP(8) PICKUP(8)
|
||||
specified <i>transport:destination</i>.
|
||||
|
||||
<b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b>
|
||||
Enable or disable recipient validation, built-in content filter‐
|
||||
Enable or disable recipient validation, built-in content filter-
|
||||
ing, or address mapping.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||
@ -90,7 +90,7 @@ PICKUP(8) PICKUP(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -55,16 +55,16 @@ POSTCONF(1) POSTCONF(1)
|
||||
<b>postconf -a</b>|<b>-A</b>|<b>-l</b>|<b>-m</b> [<b>-v</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
By default, the <a href="postconf.1.html"><b>postconf</b>(1)</a> command displays the values of <a href="postconf.5.html"><b>main.cf</b></a> con‐
|
||||
By default, the <a href="postconf.1.html"><b>postconf</b>(1)</a> command displays the values of <a href="postconf.5.html"><b>main.cf</b></a> con-
|
||||
figuration parameters, and warns about possible mis-typed parameter
|
||||
names (Postfix 2.9 and later). It can also change <a href="postconf.5.html"><b>main.cf</b></a> configura‐
|
||||
names (Postfix 2.9 and later). It can also change <a href="postconf.5.html"><b>main.cf</b></a> configura-
|
||||
tion parameter values, or display other configuration information about
|
||||
the Postfix mail system.
|
||||
|
||||
Options:
|
||||
|
||||
<b>-a</b> List the available SASL server plug-in types. The SASL plug-in
|
||||
type is selected with the <b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b> configuration parame‐
|
||||
type is selected with the <b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b> configuration parame-
|
||||
ter by specifying one of the names listed below.
|
||||
|
||||
<b>cyrus</b> This server plug-in is available when Postfix is built
|
||||
@ -78,7 +78,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
This feature is available with Postfix 2.3 and later.
|
||||
|
||||
<b>-A</b> List the available SASL client plug-in types. The SASL plug-in
|
||||
type is selected with the <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b> or <b><a href="postconf.5.html#lmtp_sasl_type">lmtp_sasl_type</a></b> con‐
|
||||
type is selected with the <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b> or <b><a href="postconf.5.html#lmtp_sasl_type">lmtp_sasl_type</a></b> con-
|
||||
figuration parameters by specifying one of the names listed
|
||||
below.
|
||||
|
||||
@ -88,8 +88,8 @@ POSTCONF(1) POSTCONF(1)
|
||||
This feature is available with Postfix 2.3 and later.
|
||||
|
||||
<b>-b</b> [<i>template</i><b>_</b><i>file</i>]
|
||||
Display the message text that appears at the beginning of deliv‐
|
||||
ery status notification (DSN) messages, replacing $<b>name</b> expres‐
|
||||
Display the message text that appears at the beginning of deliv-
|
||||
ery status notification (DSN) messages, replacing $<b>name</b> expres-
|
||||
sions with actual values as described in <a href="bounce.5.html"><b>bounce</b>(5)</a>.
|
||||
|
||||
To override the built-in templates, specify a template file name
|
||||
@ -125,29 +125,29 @@ POSTCONF(1) POSTCONF(1)
|
||||
|
||||
This feature is available with Postfix 2.9 and later.
|
||||
|
||||
<b>-d</b> Print <a href="postconf.5.html"><b>main.cf</b></a> default parameter settings instead of actual set‐
|
||||
<b>-d</b> Print <a href="postconf.5.html"><b>main.cf</b></a> default parameter settings instead of actual set-
|
||||
tings. Specify <b>-df</b> to fold long lines for human readability
|
||||
(Postfix 2.9 and later).
|
||||
|
||||
<b>-e</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and update parameter set‐
|
||||
<b>-e</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and update parameter set-
|
||||
tings with the "<i>name=value</i>" pairs on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command
|
||||
line.
|
||||
|
||||
With <b>-M</b>, edit the <a href="master.5.html"><b>master.cf</b></a> configuration file, and replace one
|
||||
or more service entries with new values as specified with "<i>ser‐</i>
|
||||
or more service entries with new values as specified with "<i>ser-</i>
|
||||
<i>vice/type=value</i>" on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
|
||||
|
||||
With <b>-F</b>, edit the <a href="master.5.html"><b>master.cf</b></a> configuration file, and replace one
|
||||
or more service fields with new values as specied with "<i>ser‐</i>
|
||||
<i>vice/type/field=value</i>" on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. Cur‐
|
||||
rently, the "command" field contains the command name and com‐
|
||||
or more service fields with new values as specied with "<i>ser-</i>
|
||||
<i>vice/type/field=value</i>" on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. Cur-
|
||||
rently, the "command" field contains the command name and com-
|
||||
mand arguments. this may change in the near future, so that the
|
||||
"command" field contains only the command name, and a new "argu‐
|
||||
"command" field contains only the command name, and a new "argu-
|
||||
ments" pseudofield contains the command arguments.
|
||||
|
||||
With <b>-P</b>, edit the <a href="master.5.html"><b>master.cf</b></a> configuration file, and add or
|
||||
update one or more service parameter settings (-o parame‐
|
||||
ter=value settings) with new values as specied with "<i>ser‐</i>
|
||||
update one or more service parameter settings (-o parame-
|
||||
ter=value settings) with new values as specied with "<i>ser-</i>
|
||||
<i>vice/type/parameter=value</i>" on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
|
||||
|
||||
In all cases the file is copied to a temporary file then renamed
|
||||
@ -166,8 +166,8 @@ POSTCONF(1) POSTCONF(1)
|
||||
and all fields), formatted as one "<i>service/type/field=value</i>" per
|
||||
line. Specify <b>-Ff</b> to fold long lines.
|
||||
|
||||
Specify one or more "<i>service/type/field</i>" instances on the <b>post</b>‐‐
|
||||
<b>conf</b>(1) command line to limit the output to fields of interest.
|
||||
Specify one or more "<i>service/type/field</i>" instances on the <a href="postconf.1.html"><b>post-</b></a>
|
||||
<a href="postconf.1.html"><b>conf</b>(1)</a> command line to limit the output to fields of interest.
|
||||
Trailing parameter name or service type fields that are omitted
|
||||
will be handled as "*" wildcard fields.
|
||||
|
||||
@ -176,7 +176,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
<b>-h</b> Show parameter or attribute values without the "<i>name</i> = " label
|
||||
that normally precedes the value.
|
||||
|
||||
<b>-l</b> List the names of all supported mailbox locking methods. Post‐
|
||||
<b>-l</b> List the names of all supported mailbox locking methods. Post-
|
||||
fix supports the following methods:
|
||||
|
||||
<b>flock</b> A kernel-based advisory locking method for local files
|
||||
@ -188,21 +188,21 @@ POSTCONF(1) POSTCONF(1)
|
||||
|
||||
<b>dotlock</b>
|
||||
An application-level locking method. An application locks
|
||||
a file named <i>filename</i> by creating a file named <i>file‐</i>
|
||||
a file named <i>filename</i> by creating a file named <i>file-</i>
|
||||
<i>name</i><b>.lock</b>. The application is expected to remove its own
|
||||
lock file, as well as stale lock files that were left
|
||||
behind after abnormal program termination.
|
||||
|
||||
<b>-m</b> List the names of all supported lookup table types. In Postfix
|
||||
configuration files, lookup tables are specified as <i>type</i><b>:</b><i>name</i>,
|
||||
where <i>type</i> is one of the types listed below. The table <i>name</i> syn‐
|
||||
tax depends on the lookup table type as described in the DATA‐
|
||||
<a href="BASE_README.html">BASE_README</a> document.
|
||||
where <i>type</i> is one of the types listed below. The table <i>name</i> syn-
|
||||
tax depends on the lookup table type as described in the <a href="DATABASE_README.html">DATA</a>-
|
||||
<a href="DATABASE_README.html">BASE_README</a> document.
|
||||
|
||||
<b>btree</b> A sorted, balanced tree structure. Available on systems
|
||||
with support for Berkeley DB databases.
|
||||
|
||||
<b>cdb</b> A read-optimized structure with no support for incremen‐
|
||||
<b>cdb</b> A read-optimized structure with no support for incremen-
|
||||
tal updates. Available on systems with support for CDB
|
||||
databases.
|
||||
|
||||
@ -210,19 +210,19 @@ POSTCONF(1) POSTCONF(1)
|
||||
Domain Routing (CIDR) patterns. This is described in
|
||||
<a href="cidr_table.5.html"><b>cidr_table</b>(5)</a>.
|
||||
|
||||
<b>dbm</b> An indexed file type based on hashing. Available on sys‐
|
||||
<b>dbm</b> An indexed file type based on hashing. Available on sys-
|
||||
tems with support for DBM databases.
|
||||
|
||||
<b>environ</b>
|
||||
The UNIX process environment array. The lookup key is the
|
||||
variable name. Originally implemented for testing, some‐
|
||||
variable name. Originally implemented for testing, some-
|
||||
one may find this useful someday.
|
||||
|
||||
<b>fail</b> A table that reliably fails all requests. The lookup ta‐
|
||||
ble name is used for logging. This table exists to sim‐
|
||||
<b>fail</b> A table that reliably fails all requests. The lookup ta-
|
||||
ble name is used for logging. This table exists to sim-
|
||||
plify Postfix error tests.
|
||||
|
||||
<b>hash</b> An indexed file type based on hashing. Available on sys‐
|
||||
<b>hash</b> An indexed file type based on hashing. Available on sys-
|
||||
tems with support for Berkeley DB databases.
|
||||
|
||||
<b>internal</b>
|
||||
@ -230,23 +230,23 @@ POSTCONF(1) POSTCONF(1)
|
||||
when a process terminates.
|
||||
|
||||
<b>lmdb</b> OpenLDAP LMDB database (a memory-mapped, persistent
|
||||
file). Available on systems with support for LMDB data‐
|
||||
file). Available on systems with support for LMDB data-
|
||||
bases. This is described in <a href="lmdb_table.5.html"><b>lmdb_table</b>(5)</a>.
|
||||
|
||||
<b>ldap</b> (read-only)
|
||||
LDAP database client. This is described in <a href="ldap_table.5.html"><b>ldap_table</b>(5)</a>.
|
||||
|
||||
<b>memcache</b>
|
||||
Memcache database client. This is described in <b>mem</b>‐‐
|
||||
<b>cache_table</b>(5).
|
||||
Memcache database client. This is described in <a href="memcache_table.5.html"><b>mem-</b></a>
|
||||
<a href="memcache_table.5.html"><b>cache_table</b>(5)</a>.
|
||||
|
||||
<b>mysql</b> (read-only)
|
||||
MySQL database client. Available on systems with support
|
||||
for MySQL databases. This is described in <b>mysql_ta</b>‐‐
|
||||
<b>ble</b>(5).
|
||||
for MySQL databases. This is described in <a href="mysql_table.5.html"><b>mysql_ta-</b></a>
|
||||
<a href="mysql_table.5.html"><b>ble</b>(5)</a>.
|
||||
|
||||
<b>pcre</b> (read-only)
|
||||
A lookup table based on Perl Compatible Regular Expres‐
|
||||
A lookup table based on Perl Compatible Regular Expres-
|
||||
sions. The file format is described in <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
|
||||
|
||||
<b>pgsql</b> (read-only)
|
||||
@ -268,7 +268,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
databases. The table name syntax is <i>type</i><b>:</b><i>name</i>.
|
||||
|
||||
<b>randmap</b> (read-only)
|
||||
An in-memory table that performs random selection. Exam‐
|
||||
An in-memory table that performs random selection. Exam-
|
||||
ple: "<b><a href="DATABASE_README.html#types">randmap</a>:{</b><i>result</i><b>_</b><i>1, ..., result</i><b>_</b><i>n</i><b>}</b>". Each table
|
||||
query returns a random choice from the specified results.
|
||||
The first and last characters of the "<a href="DATABASE_README.html#types">randmap</a>:" table
|
||||
@ -279,12 +279,12 @@ POSTCONF(1) POSTCONF(1)
|
||||
A lookup table based on regular expressions. The file
|
||||
format is described in <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a>.
|
||||
|
||||
<b>sdbm</b> An indexed file type based on hashing. Available on sys‐
|
||||
<b>sdbm</b> An indexed file type based on hashing. Available on sys-
|
||||
tems with support for SDBM databases.
|
||||
|
||||
<b>socketmap</b> (read-only)
|
||||
Sendmail-style socketmap client. The table name is
|
||||
<b>inet</b>:<i>host</i>:<i>port</i>:<i>name</i> for a TCP/IP server, or <b>unix</b>:<i>path‐</i>
|
||||
<b>inet</b>:<i>host</i>:<i>port</i>:<i>name</i> for a TCP/IP server, or <b>unix</b>:<i>path-</i>
|
||||
<i>name</i>:<i>name</i> for a UNIX-domain server. This is described in
|
||||
<a href="socketmap_table.5.html"><b>socketmap_table</b>(5)</a>.
|
||||
|
||||
@ -293,7 +293,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
|
||||
<b>static</b> (read-only)
|
||||
A table that always returns its name as lookup result.
|
||||
For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b> always returns the string <b>foo</b>‐‐
|
||||
For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b> always returns the string <b>foo-</b>
|
||||
<b>bar</b> as lookup result.
|
||||
|
||||
<b>tcp</b> (read-only)
|
||||
@ -329,7 +329,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
<b>-M</b> Show <a href="master.5.html"><b>master.cf</b></a> file contents instead of <a href="postconf.5.html"><b>main.cf</b></a> file contents.
|
||||
Specify <b>-Mf</b> to fold long lines for human readability.
|
||||
|
||||
Specify zero or more arguments, each with a <i>service-name</i> or <i>ser‐</i>
|
||||
Specify zero or more arguments, each with a <i>service-name</i> or <i>ser-</i>
|
||||
<i>vice-name/service-type</i> pair, where <i>service-name</i> is the first
|
||||
field of a <a href="master.5.html">master.cf</a> entry and <i>service-type</i> is one of (<b>inet</b>,
|
||||
<b>unix</b>, <b>fifo</b>, or <b>pass</b>).
|
||||
@ -358,8 +358,8 @@ POSTCONF(1) POSTCONF(1)
|
||||
|
||||
This feature is available with Postfix 2.11 and later.
|
||||
|
||||
<b>-P</b> Show <a href="master.5.html"><b>master.cf</b></a> service parameter settings (by default all ser‐
|
||||
vices and all parameters). formatted as one "<i>ser‐</i>
|
||||
<b>-P</b> Show <a href="master.5.html"><b>master.cf</b></a> service parameter settings (by default all ser-
|
||||
vices and all parameters). formatted as one "<i>ser-</i>
|
||||
<i>vice/type/parameter=value</i>" per line. Specify <b>-Pf</b> to fold long
|
||||
lines.
|
||||
|
||||
@ -394,7 +394,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
This feature is available with Postfix 2.10 and later.
|
||||
|
||||
<b>-X</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and remove the parameters
|
||||
named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. Specify a list of param‐
|
||||
named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. Specify a list of param-
|
||||
eter names, not "<i>name=value</i>" pairs.
|
||||
|
||||
With <b>-M</b>, edit the <a href="master.5.html"><b>master.cf</b></a> configuration file, and remove one
|
||||
@ -403,22 +403,22 @@ POSTCONF(1) POSTCONF(1)
|
||||
|
||||
With <b>-P</b>, edit the <a href="master.5.html"><b>master.cf</b></a> configuration file, and remove one
|
||||
or more service parameter settings (-o parameter=value settings)
|
||||
as specied with "<i>service/type/parameter</i>" on the <a href="postconf.1.html"><b>postconf</b>(1)</a> com‐
|
||||
as specied with "<i>service/type/parameter</i>" on the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
|
||||
mand line.
|
||||
|
||||
In all cases the file is copied to a temporary file then renamed
|
||||
into place. Specify quotes to protect special characters on the
|
||||
<a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
|
||||
|
||||
There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera‐
|
||||
There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera-
|
||||
tion.
|
||||
|
||||
This feature is available with Postfix 2.10 and later. Support
|
||||
for -M and -P was added with Postfix 2.11.
|
||||
|
||||
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment out the parame‐
|
||||
ters named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line, so that those param‐
|
||||
eters revert to their default values. Specify a list of parame‐
|
||||
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment out the parame-
|
||||
ters named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line, so that those param-
|
||||
eters revert to their default values. Specify a list of parame-
|
||||
ter names, not "<i>name=value</i>" pairs.
|
||||
|
||||
With <b>-M</b>, edit the <a href="master.5.html"><b>master.cf</b></a> configuration file, and comment out
|
||||
@ -429,7 +429,7 @@ POSTCONF(1) POSTCONF(1)
|
||||
into place. Specify quotes to protect special characters on the
|
||||
<a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
|
||||
|
||||
There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera‐
|
||||
There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera-
|
||||
tion.
|
||||
|
||||
This feature is available with Postfix 2.6 and later. Support
|
||||
@ -443,14 +443,14 @@ POSTCONF(1) POSTCONF(1)
|
||||
Directory with Postfix configuration files.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro‐
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro-
|
||||
gram.
|
||||
|
||||
The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
|
||||
more details including examples.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a> (empty)</b>
|
||||
|
@ -48,15 +48,15 @@ POSTDROP(1) POSTDROP(1)
|
||||
of set-group ID privileges, a non-standard directory is allowed
|
||||
only if:
|
||||
|
||||
· The name is listed in the standard <a href="postconf.5.html"><b>main.cf</b></a> file with the
|
||||
<b>o</b> The name is listed in the standard <a href="postconf.5.html"><b>main.cf</b></a> file with the
|
||||
<b><a href="postconf.5.html#alternate_config_directories">alternate_config_directories</a></b> configuration parameter.
|
||||
|
||||
· The command is invoked by the super-user.
|
||||
<b>o</b> The command is invoked by the super-user.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro‐
|
||||
gram. The text below provides only a parameter summary. See <b>post</b>‐‐
|
||||
<b>conf</b>(5) for more details including examples.
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro-
|
||||
gram. The text below provides only a parameter summary. See <a href="postconf.5.html"><b>post-</b></a>
|
||||
<a href="postconf.5.html"><b>conf</b>(5)</a> for more details including examples.
|
||||
|
||||
<b><a href="postconf.5.html#alternate_config_directories">alternate_config_directories</a> (empty)</b>
|
||||
A list of non-default Postfix configuration directories that may
|
||||
@ -64,7 +64,7 @@ POSTDROP(1) POSTDROP(1)
|
||||
via the MAIL_CONFIG environment parameter.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#import_environment">import_environment</a> (see 'postconf -d' output)</b>
|
||||
@ -79,7 +79,7 @@ POSTDROP(1) POSTDROP(1)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b><a href="postconf.5.html#trigger_timeout">trigger_timeout</a> (10s)</b>
|
||||
@ -89,8 +89,8 @@ POSTDROP(1) POSTDROP(1)
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#authorized_submit_users">authorized_submit_users</a> (<a href="DATABASE_README.html#types">static</a>:anyone)</b>
|
||||
List of users who are authorized to submit mail with the <b>send</b>‐‐
|
||||
<b>mail</b>(1) command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com‐
|
||||
List of users who are authorized to submit mail with the <a href="sendmail.1.html"><b>send-</b></a>
|
||||
<a href="sendmail.1.html"><b>mail</b>(1)</a> command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com-
|
||||
mand).
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -15,7 +15,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server provides additional protection against
|
||||
mail server overload. One <a href="postscreen.8.html"><b>postscreen</b>(8)</a> process handles multiple
|
||||
inbound SMTP connections, and decides which clients may talk to a Post‐
|
||||
inbound SMTP connections, and decides which clients may talk to a Post-
|
||||
fix SMTP server process. By keeping spambots away, <a href="postscreen.8.html"><b>postscreen</b>(8)</a>
|
||||
leaves more SMTP server processes available for legitimate clients, and
|
||||
delays the onset of server overload conditions.
|
||||
@ -23,9 +23,9 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
This program should not be used on SMTP ports that receive mail from
|
||||
end-user clients (MUAs). In a typical deployment, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> handles
|
||||
the MX service on TCP port 25, while MUA clients submit mail via the
|
||||
<b>submission</b> service on TCP port 587 which requires client authentica‐
|
||||
<b>submission</b> service on TCP port 587 which requires client authentica-
|
||||
tion. Alternatively, a site could set up a dedicated, non-postscreen,
|
||||
"port 25" server that provides <b>submission</b> service and client authenti‐
|
||||
"port 25" server that provides <b>submission</b> service and client authenti-
|
||||
cation, but no MX service.
|
||||
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a> maintains a temporary whitelist for clients that have
|
||||
@ -34,9 +34,9 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
Postfix SMTP server process. This minimizes the overhead for legitimate
|
||||
mail.
|
||||
|
||||
By default, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> logs statistics and hands off every connec‐
|
||||
By default, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> logs statistics and hands off every connec-
|
||||
tion to a Postfix SMTP server process, while excluding clients in
|
||||
<a href="postconf.5.html#mynetworks">mynetworks</a> from all tests (primarily, to avoid problems with non-stan‐
|
||||
<a href="postconf.5.html#mynetworks">mynetworks</a> from all tests (primarily, to avoid problems with non-stan-
|
||||
dard SMTP implementations in network appliances). This mode is useful
|
||||
for non-destructive testing.
|
||||
|
||||
@ -46,7 +46,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
information.
|
||||
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a> is not an SMTP proxy; this is intentional. The purpose
|
||||
is to keep spambots away from Postfix SMTP server processes, while min‐
|
||||
is to keep spambots away from Postfix SMTP server processes, while min-
|
||||
imizing overhead for legitimate traffic.
|
||||
|
||||
<b>SECURITY</b>
|
||||
@ -85,7 +85,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
the "live" connection to a Postfix SMTP server process in the middle of
|
||||
a session. Instead, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> defers attempts to deliver mail with
|
||||
a 4XX status, and waits for the client to disconnect. When the client
|
||||
connects again, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> will allow the client to talk to a Post‐
|
||||
connects again, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> will allow the client to talk to a Post-
|
||||
fix SMTP server process (provided that the whitelist status has not
|
||||
expired). <a href="postscreen.8.html"><b>postscreen</b>(8)</a> mitigates the impact of this limitation by
|
||||
giving the "after 220 server greeting" tests a long expiration time.
|
||||
@ -98,7 +98,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
|
||||
more details including examples.
|
||||
|
||||
NOTE: Some <a href="postscreen.8.html"><b>postscreen</b>(8)</a> parameters implement stress-dependent behav‐
|
||||
NOTE: Some <a href="postscreen.8.html"><b>postscreen</b>(8)</a> parameters implement stress-dependent behav-
|
||||
ior. This is supported only when the default parameter value is
|
||||
stress-dependent (that is, it looks like ${stress?{X}:{Y}}, or it is
|
||||
the $<i>name</i> of an smtpd parameter with a stress-dependent default).
|
||||
@ -109,8 +109,8 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
<b><a href="postconf.5.html#postscreen_command_filter">postscreen_command_filter</a> ($<a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a>)</b>
|
||||
A mechanism to transform commands from remote SMTP clients.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_discard_ehlo_keyword_address_maps">postscreen_discard_ehlo_keyword_address_maps</a> ($smtpd_discard_ehlo_key</b>‐‐
|
||||
<b>word_address_maps)</b>
|
||||
<b><a href="postconf.5.html#postscreen_discard_ehlo_keyword_address_maps">postscreen_discard_ehlo_keyword_address_maps</a> ($<a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_key</a>-</b>
|
||||
<b><a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">word_address_maps</a>)</b>
|
||||
Lookup tables, indexed by the remote SMTP client address, with
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server will not send in the
|
||||
@ -155,7 +155,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_blacklist_action">postscreen_blacklist_action</a> (ignore)</b>
|
||||
The action that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> takes when a remote SMTP client is
|
||||
permanently blacklisted with the <a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a> parame‐
|
||||
permanently blacklisted with the <a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a> parame-
|
||||
ter.
|
||||
|
||||
<b>MAIL EXCHANGER POLICY TESTS</b>
|
||||
@ -168,12 +168,12 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_whitelist_interfaces">postscreen_whitelist_interfaces</a> (<a href="DATABASE_README.html#types">static</a>:all)</b>
|
||||
A list of local <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server IP addresses where a non-
|
||||
whitelisted remote SMTP client can obtain <a href="postscreen.8.html"><b>postscreen</b>(8)</a>'s tempo‐
|
||||
whitelisted remote SMTP client can obtain <a href="postscreen.8.html"><b>postscreen</b>(8)</a>'s tempo-
|
||||
rary whitelist status.
|
||||
|
||||
<b>BEFORE 220 GREETING TESTS</b>
|
||||
These tests are executed before the remote SMTP client receives the
|
||||
"220 servername" greeting. If no tests remain after the successful com‐
|
||||
"220 servername" greeting. If no tests remain after the successful com-
|
||||
pletion of this phase, the client will be handed off immediately to a
|
||||
Postfix SMTP server process.
|
||||
|
||||
@ -218,7 +218,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
up to 6 seconds otherwise).
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_service_name">smtpd_service_name</a> (smtpd)</b>
|
||||
The internal service that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> hands off allowed con‐
|
||||
The internal service that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> hands off allowed con-
|
||||
nections to.
|
||||
|
||||
Available in Postfix version 2.11 and later:
|
||||
@ -253,24 +253,24 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
Disable the SMTP VRFY command in the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> daemon.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_forbidden_commands">postscreen_forbidden_commands</a> ($<a href="postconf.5.html#smtpd_forbidden_commands">smtpd_forbidden_commands</a>)</b>
|
||||
List of commands that the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server considers in vio‐
|
||||
List of commands that the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server considers in vio-
|
||||
lation of the SMTP protocol.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_helo_required">postscreen_helo_required</a> ($<a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a>)</b>
|
||||
Require that a remote SMTP client sends HELO or EHLO before com‐
|
||||
Require that a remote SMTP client sends HELO or EHLO before com-
|
||||
mencing a MAIL transaction.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_non_smtp_command_action">postscreen_non_smtp_command_action</a> (drop)</b>
|
||||
The action that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> takes when a remote SMTP client
|
||||
sends non-SMTP commands as specified with the postscreen_forbid‐
|
||||
den_commands parameter.
|
||||
sends non-SMTP commands as specified with the <a href="postconf.5.html#postscreen_forbidden_commands">postscreen_forbid</a>-
|
||||
<a href="postconf.5.html#postscreen_forbidden_commands">den_commands</a> parameter.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_non_smtp_command_enable">postscreen_non_smtp_command_enable</a> (no)</b>
|
||||
Enable "non-SMTP command" tests in the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_pipelining_action">postscreen_pipelining_action</a> (enforce)</b>
|
||||
The action that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> takes when a remote SMTP client
|
||||
sends multiple commands instead of sending one command and wait‐
|
||||
sends multiple commands instead of sending one command and wait-
|
||||
ing for the server to respond.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_pipelining_enable">postscreen_pipelining_enable</a> (no)</b>
|
||||
@ -285,7 +285,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
Persistent storage for the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server decisions.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_cache_retention_time">postscreen_cache_retention_time</a> (7d)</b>
|
||||
The amount of time that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> will cache an expired tem‐
|
||||
The amount of time that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> will cache an expired tem-
|
||||
porary whitelist entry before it is removed.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_bare_newline_ttl">postscreen_bare_newline_ttl</a> (30d)</b>
|
||||
@ -313,8 +313,8 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
Upon input, long lines are chopped up into pieces of at most
|
||||
this length; upon delivery, long lines are reconstructed.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_client_connection_count_limit">postscreen_client_connection_count_limit</a> ($smtpd_client_connec</b>‐‐
|
||||
<b>tion_count_limit)</b>
|
||||
<b><a href="postconf.5.html#postscreen_client_connection_count_limit">postscreen_client_connection_count_limit</a> ($<a href="postconf.5.html#smtpd_client_connection_count_limit">smtpd_client_connec</a>-</b>
|
||||
<b><a href="postconf.5.html#smtpd_client_connection_count_limit">tion_count_limit</a>)</b>
|
||||
How many simultaneous connections any remote SMTP client is
|
||||
allowed to have with the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> daemon.
|
||||
|
||||
@ -343,7 +343,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
<b>STARTTLS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#postscreen_tls_security_level">postscreen_tls_security_level</a> ($<a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a>)</b>
|
||||
The SMTP TLS security level for the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server; when a
|
||||
non-empty value is specified, this overrides the obsolete param‐
|
||||
non-empty value is specified, this overrides the obsolete param-
|
||||
eters <a href="postconf.5.html#postscreen_use_tls">postscreen_use_tls</a> and <a href="postconf.5.html#postscreen_enforce_tls">postscreen_enforce_tls</a>.
|
||||
|
||||
<b><a href="postconf.5.html#tlsproxy_service_name">tlsproxy_service_name</a> (tlsproxy)</b>
|
||||
@ -363,11 +363,11 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#command_directory">command_directory</a> (see 'postconf -d' output)</b>
|
||||
@ -388,7 +388,7 @@ POSTSCREEN(8) POSTSCREEN(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -14,11 +14,11 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server provides read-only or read-write table lookup
|
||||
service to Postfix processes. These services are implemented with dis‐
|
||||
service to Postfix processes. These services are implemented with dis-
|
||||
tinct service names: <b>proxymap</b> and <b>proxywrite</b>, respectively. The purpose
|
||||
of these services is:
|
||||
|
||||
· To overcome chroot restrictions. For example, a chrooted SMTP
|
||||
<b>o</b> To overcome chroot restrictions. For example, a chrooted SMTP
|
||||
server needs access to the system passwd file in order to reject
|
||||
mail for non-existent local addresses, but it is not practical
|
||||
to maintain a copy of the passwd file in the chroot jail. The
|
||||
@ -27,7 +27,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> =
|
||||
<a href="proxymap.8.html">proxy</a>:unix:passwd.byname $<a href="postconf.5.html#alias_maps">alias_maps</a>
|
||||
|
||||
· To consolidate the number of open lookup tables by sharing one
|
||||
<b>o</b> To consolidate the number of open lookup tables by sharing one
|
||||
open table among multiple processes. For example, making mysql
|
||||
connections from every Postfix daemon process results in "too
|
||||
many connections" errors. The solution:
|
||||
@ -38,7 +38,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
The total number of connections is limited by the number of
|
||||
proxymap server processes.
|
||||
|
||||
· To provide single-updater functionality for lookup tables that
|
||||
<b>o</b> To provide single-updater functionality for lookup tables that
|
||||
do not reliably support multiple writers (i.e. all file-based
|
||||
tables).
|
||||
|
||||
@ -47,7 +47,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
<b>open</b> <i>maptype:mapname flags</i>
|
||||
Open the table with type <i>maptype</i> and name <i>mapname</i>, as controlled
|
||||
by <i>flags</i>. The reply includes the <i>maptype</i> dependent flags (to
|
||||
distinguish a fixed string table from a regular expression ta‐
|
||||
distinguish a fixed string table from a regular expression ta-
|
||||
ble).
|
||||
|
||||
<b>lookup</b> <i>maptype:mapname flags key</i>
|
||||
@ -101,7 +101,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server opens only tables that are approved via the
|
||||
<b><a href="postconf.5.html#proxy_read_maps">proxy_read_maps</a></b> or <b><a href="postconf.5.html#proxy_write_maps">proxy_write_maps</a></b> configuration parameters, does not
|
||||
talk to users, and can run at fixed low privilege, chrooted or not.
|
||||
However, running the proxymap server chrooted severely limits usabil‐
|
||||
However, running the proxymap server chrooted severely limits usabil-
|
||||
ity, because it can open only chrooted tables.
|
||||
|
||||
The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server is not a trusted daemon process, and must not be
|
||||
@ -113,7 +113,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
the table directly. This allows the same <a href="postconf.5.html">main.cf</a> setting to be used by
|
||||
sensitive and non-sensitive processes.
|
||||
|
||||
Postfix-writable data files should be stored under a dedicated direc‐
|
||||
Postfix-writable data files should be stored under a dedicated direc-
|
||||
tory that is writable only by the Postfix mail system, such as the
|
||||
Postfix-owned <b><a href="postconf.5.html#data_directory">data_directory</a></b>.
|
||||
|
||||
@ -131,7 +131,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
|
||||
The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> read-write service does not explicitly close lookup
|
||||
tables (even if it did, this could not be relied on, because the
|
||||
process may be terminated between table updates). The read-write ser‐
|
||||
process may be terminated between table updates). The read-write ser-
|
||||
vice should therefore not be used with tables that leave persistent
|
||||
storage in an inconsistent state between updates (for example, CDB).
|
||||
Tables that support "sync on update" should be safe (for example,
|
||||
@ -146,7 +146,7 @@ PROXYMAP(8) PROXYMAP(8)
|
||||
more details including examples.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#data_directory">data_directory</a> (see 'postconf -d' output)</b>
|
||||
|
@ -18,7 +18,7 @@ QMGR(8) QMGR(8)
|
||||
strategy is delegated to the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> daemon. This program
|
||||
expects to be run from the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
|
||||
Mail addressed to the local <b>double-bounce</b> address is logged and dis‐
|
||||
Mail addressed to the local <b>double-bounce</b> address is logged and dis-
|
||||
carded. This stops potential loops caused by undeliverable bounce
|
||||
notifications.
|
||||
|
||||
@ -56,7 +56,7 @@ QMGR(8) QMGR(8)
|
||||
These files are maintained by the <a href="defer.8.html"><b>defer</b>(8)</a> daemon.
|
||||
|
||||
<b>trace</b> Per-recipient status information as requested with the Postfix
|
||||
"<b>sendmail -v</b>" or "<b>sendmail -bv</b>" command. These files are main‐
|
||||
"<b>sendmail -v</b>" or "<b>sendmail -bv</b>" command. These files are main-
|
||||
tained by the <a href="trace.8.html"><b>trace</b>(8)</a> daemon.
|
||||
|
||||
The <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon is responsible for asking the <a href="bounce.8.html"><b>bounce</b>(8)</a>, <a href="defer.8.html"><b>defer</b>(8)</a> or
|
||||
@ -72,14 +72,14 @@ QMGR(8) QMGR(8)
|
||||
heavy load.
|
||||
|
||||
<b>fairness</b>
|
||||
When the <b>active</b> queue has room, the queue manager takes one mes‐
|
||||
When the <b>active</b> queue has room, the queue manager takes one mes-
|
||||
sage from the <a href="QSHAPE_README.html#incoming_queue"><b>incoming</b> queue</a> and one from the <b>deferred</b> queue.
|
||||
This prevents a large mail backlog from blocking the delivery of
|
||||
new mail.
|
||||
|
||||
<b>slow start</b>
|
||||
This strategy eliminates "thundering herd" problems by slowly
|
||||
adjusting the number of parallel deliveries to the same destina‐
|
||||
adjusting the number of parallel deliveries to the same destina-
|
||||
tion.
|
||||
|
||||
<b>round robin</b>
|
||||
@ -89,12 +89,12 @@ QMGR(8) QMGR(8)
|
||||
|
||||
<b>exponential backoff</b>
|
||||
Mail that cannot be delivered upon the first attempt is
|
||||
deferred. The time interval between delivery attempts is dou‐
|
||||
deferred. The time interval between delivery attempts is dou-
|
||||
bled after each attempt.
|
||||
|
||||
<b>destination status cache</b>
|
||||
The queue manager avoids unnecessary delivery attempts by main‐
|
||||
taining a short-term, in-memory list of unreachable destina‐
|
||||
The queue manager avoids unnecessary delivery attempts by main-
|
||||
taining a short-term, in-memory list of unreachable destina-
|
||||
tions.
|
||||
|
||||
<b>preemptive message scheduling</b>
|
||||
@ -104,7 +104,7 @@ QMGR(8) QMGR(8)
|
||||
|
||||
<b>TRIGGERS</b>
|
||||
On an idle system, the queue manager waits for the arrival of trigger
|
||||
events, or it waits for a timer to go off. A trigger is a one-byte mes‐
|
||||
events, or it waits for a timer to go off. A trigger is a one-byte mes-
|
||||
sage. Depending on the message received, the queue manager performs
|
||||
one of the following actions (the message is followed by the symbolic
|
||||
constant used internally by the software):
|
||||
@ -144,7 +144,7 @@ QMGR(8) QMGR(8)
|
||||
<b>SECURITY</b>
|
||||
The <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon is not security sensitive. It reads single-character
|
||||
messages from untrusted local users, and thus may be susceptible to
|
||||
denial of service attacks. The <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon does not talk to the out‐
|
||||
denial of service attacks. The <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon does not talk to the out-
|
||||
side world, and it can be run at fixed low privilege in a chrooted
|
||||
environment.
|
||||
|
||||
@ -152,16 +152,16 @@ QMGR(8) QMGR(8)
|
||||
Problems and transactions are logged to the syslog daemon. Corrupted
|
||||
message files are saved to the <b>corrupt</b> queue for further inspection.
|
||||
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas‐
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
|
||||
ter is notified of bounces and of other trouble.
|
||||
|
||||
<b>BUGS</b>
|
||||
A single queue manager process has to compete for disk access with mul‐
|
||||
A single queue manager process has to compete for disk access with mul-
|
||||
tiple front-end processes such as <a href="cleanup.8.html"><b>cleanup</b>(8)</a>. A sudden burst of inbound
|
||||
mail can negatively impact outbound delivery rates.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are not picked up automatically as <a href="qmgr.8.html"><b>qmgr</b>(8)</a> is a per‐
|
||||
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are not picked up automatically as <a href="qmgr.8.html"><b>qmgr</b>(8)</a> is a per-
|
||||
sistent process. Use the "<b>postfix reload</b>" command after a configuration
|
||||
change.
|
||||
|
||||
@ -239,15 +239,15 @@ QMGR(8) QMGR(8)
|
||||
The default maximal number of parallel deliveries to the same
|
||||
destination.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> ($default_destination_concur</b>‐‐
|
||||
<b>rency_limit)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concur</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#transport_initial_destination_concurrency"><i>transport</i>_initial_destination_concurrency</a> ($initial_destination_concur</b>‐‐
|
||||
<b>rency)</b>
|
||||
Initial concurrency for delivery via the named message <i>trans‐</i>
|
||||
<b><a href="postconf.5.html#transport_initial_destination_concurrency"><i>transport</i>_initial_destination_concurrency</a> ($<a href="postconf.5.html#initial_destination_concurrency">initial_destination_concur</a>-</b>
|
||||
<b><a href="postconf.5.html#initial_destination_concurrency">rency</a>)</b>
|
||||
Initial concurrency for delivery via the named message <i>trans-</i>
|
||||
<i>port</i>.
|
||||
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a> (1)</b>
|
||||
@ -255,38 +255,38 @@ QMGR(8) QMGR(8)
|
||||
failure before a specific destination is considered unavailable
|
||||
(and further delivery is suspended).
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> ($default_desti</b>‐‐
|
||||
<b>nation_concurrency_failed_cohort_limit)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">default_desti</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_failed_cohort_limit">nation_concurrency_failed_cohort_limit</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_negative_feedback">default_destination_concurrency_negative_feedback</a> (1)</b>
|
||||
The per-destination amount of delivery concurrency negative
|
||||
feedback, after a delivery completes with a connection or hand‐
|
||||
feedback, after a delivery completes with a connection or hand-
|
||||
shake failure.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a> ($default_destina</b>‐‐
|
||||
<b>tion_concurrency_negative_feedback)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_negative_feedback"><i>transport</i>_destination_concurrency_negative_feedback</a> ($<a href="postconf.5.html#default_destination_concurrency_negative_feedback">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_negative_feedback">tion_concurrency_negative_feedback</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_positive_feedback">default_destination_concurrency_positive_feedback</a> (1)</b>
|
||||
The per-destination amount of delivery concurrency positive
|
||||
feedback, after a delivery completes without connection or hand‐
|
||||
feedback, after a delivery completes without connection or hand-
|
||||
shake failure.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a> ($default_destina</b>‐‐
|
||||
<b>tion_concurrency_positive_feedback)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_concurrency_positive_feedback"><i>transport</i>_destination_concurrency_positive_feedback</a> ($<a href="postconf.5.html#default_destination_concurrency_positive_feedback">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_positive_feedback">tion_concurrency_positive_feedback</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b><a href="postconf.5.html#destination_concurrency_feedback_debug">destination_concurrency_feedback_debug</a> (no)</b>
|
||||
Make the queue manager's feedback algorithm verbose for perfor‐
|
||||
Make the queue manager's feedback algorithm verbose for perfor-
|
||||
mance analysis purposes.
|
||||
|
||||
<b>RECIPIENT SCHEDULING CONTROLS</b>
|
||||
<b><a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a> (50)</b>
|
||||
The default maximal number of recipients per message delivery.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_recipient_limit"><i>transport</i>_destination_recipient_limit</a> ($default_destination_recipi</b>‐‐
|
||||
<b>ent_limit)</b>
|
||||
<b><a href="postconf.5.html#transport_destination_recipient_limit"><i>transport</i>_destination_recipient_limit</a> ($<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipi</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_recipient_limit">ent_limit</a>)</b>
|
||||
Idem, for delivery via the named message <i>transport</i>.
|
||||
|
||||
<b>MESSAGE SCHEDULING CONTROLS</b>
|
||||
@ -328,15 +328,15 @@ QMGR(8) QMGR(8)
|
||||
|
||||
<b><a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a> (5d)</b>
|
||||
Consider a message as undeliverable, when delivery fails with a
|
||||
temporary error, and the time in the queue has reached the maxi‐
|
||||
mal_queue_lifetime limit.
|
||||
temporary error, and the time in the queue has reached the <a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-
|
||||
<a href="postconf.5.html#maximal_queue_lifetime">mal_queue_lifetime</a> limit.
|
||||
|
||||
<b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a> (300s)</b>
|
||||
The time between <a href="QSHAPE_README.html#deferred_queue">deferred queue</a> scans by the queue manager;
|
||||
prior to Postfix 2.4 the default value was 1000s.
|
||||
|
||||
<b><a href="postconf.5.html#transport_retry_time">transport_retry_time</a> (60s)</b>
|
||||
The time between attempts by the Postfix queue manager to con‐
|
||||
The time between attempts by the Postfix queue manager to con-
|
||||
tact a malfunctioning message delivery transport.
|
||||
|
||||
Available in Postfix version 2.1 and later:
|
||||
@ -351,7 +351,7 @@ QMGR(8) QMGR(8)
|
||||
<b><a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a> (0s)</b>
|
||||
The default amount of delay that is inserted between individual
|
||||
deliveries to the same destination; the resulting behavior
|
||||
depends on the value of the corresponding per-destination recip‐
|
||||
depends on the value of the corresponding per-destination recip-
|
||||
ient limit.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> $<a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a></b>
|
||||
@ -363,12 +363,12 @@ QMGR(8) QMGR(8)
|
||||
a request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#qmgr_ipc_timeout">qmgr_ipc_timeout</a> (60s)</b>
|
||||
The time limit for the queue manager to send or receive informa‐
|
||||
The time limit for the queue manager to send or receive informa-
|
||||
tion over an internal communication channel.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#defer_transports">defer_transports</a> (empty)</b>
|
||||
@ -376,11 +376,11 @@ QMGR(8) QMGR(8)
|
||||
mail unless someone issues "<b>sendmail -q</b>" or equivalent.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#helpful_warnings">helpful_warnings</a> (yes)</b>
|
||||
Log warnings about problematic configuration settings, and pro‐
|
||||
Log warnings about problematic configuration settings, and pro-
|
||||
vide helpful suggestions.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
@ -397,7 +397,7 @@ QMGR(8) QMGR(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix version 2.12 and later:
|
||||
|
@ -16,13 +16,13 @@ QMQP-SINK(1) QMQP-SINK(1)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
<b>qmqp-sink</b> listens on the named host (or address) and port. It receives
|
||||
messages from the network and throws them away. The purpose is to mea‐
|
||||
messages from the network and throws them away. The purpose is to mea-
|
||||
sure QMQP client performance, not protocol compliance. Connections can
|
||||
be accepted on IPv4 or IPv6 endpoints, or on UNIX-domain sockets. IPv4
|
||||
and IPv6 are the default. This program is the complement of the <a href="qmqp-source.1.html"><b>qmqp-</b></a>
|
||||
<a href="qmqp-source.1.html"><b>source</b>(1)</a> program.
|
||||
|
||||
Note: this is an unsupported test program. No attempt is made to main‐
|
||||
Note: this is an unsupported test program. No attempt is made to main-
|
||||
tain compatibility between successive versions.
|
||||
|
||||
Arguments:
|
||||
@ -36,7 +36,7 @@ QMQP-SINK(1) QMQP-SINK(1)
|
||||
<b>-c</b> Display a running counter that is updated whenever a delivery is
|
||||
completed.
|
||||
|
||||
<b>-v</b> Increase verbosity. Specify <b>-v -v</b> to see some of the QMQP con‐
|
||||
<b>-v</b> Increase verbosity. Specify <b>-v -v</b> to see some of the QMQP con-
|
||||
versation.
|
||||
|
||||
<b>-x</b> <i>time</i>
|
||||
|
@ -13,12 +13,12 @@ QMQPD(8) QMQPD(8)
|
||||
<b>qmqpd</b> [generic Postfix daemon options]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix QMQP server receives one message per connection. Each mes‐
|
||||
The Postfix QMQP server receives one message per connection. Each mes-
|
||||
sage is piped through the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon, and is placed into the
|
||||
<a href="QSHAPE_README.html#incoming_queue"><b>incoming</b> queue</a> as one single queue file. The program expects to be run
|
||||
from the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
|
||||
The QMQP server implements one access policy: only explicitly autho‐
|
||||
The QMQP server implements one access policy: only explicitly autho-
|
||||
rized client hosts are allowed to use the service.
|
||||
|
||||
<b>SECURITY</b>
|
||||
@ -34,7 +34,7 @@ QMQPD(8) QMQPD(8)
|
||||
It is therefore not possible to reject individual recipients.
|
||||
|
||||
The QMQP protocol requires the server to receive the entire message
|
||||
before replying. If a message is malformed, or if any netstring compo‐
|
||||
before replying. If a message is malformed, or if any netstring compo-
|
||||
nent is longer than acceptable, Postfix replies immediately and closes
|
||||
the connection. It is left up to the client to handle the situation.
|
||||
|
||||
@ -52,14 +52,14 @@ QMQPD(8) QMQPD(8)
|
||||
specified <i>transport:destination</i>.
|
||||
|
||||
<b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b>
|
||||
Enable or disable recipient validation, built-in content filter‐
|
||||
Enable or disable recipient validation, built-in content filter-
|
||||
ing, or address mapping.
|
||||
|
||||
<b>SMTPUTF8 CONTROLS</b>
|
||||
Preliminary SMTPUTF8 support is introduced with Postfix 2.12.
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
@ -100,7 +100,7 @@ QMQPD(8) QMQPD(8)
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -137,7 +137,7 @@ QMQPD(8) QMQPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b><a href="postconf.5.html#verp_delimiter_filter">verp_delimiter_filter</a> (-=+)</b>
|
||||
|
@ -28,7 +28,9 @@ REGEXP_TABLE(5) REGEXP_TABLE(5)
|
||||
use the "<b>postconf -m</b>" command.
|
||||
|
||||
To test lookup tables, use the "<b>postmap -q</b>" command as described in the
|
||||
SYNOPSIS above.
|
||||
SYNOPSIS above. Use "<b>postmap -hmq -</b> <<i>file</i>" for <a href="header_checks.5.html">header_checks(5)</a> pat-
|
||||
terns, and "<b>postmap -bmq -</b> <<i>file</i>" for <a href="header_checks.5.html">body_checks(5)</a> (Postfix 2.6 and
|
||||
later).
|
||||
|
||||
<b>COMPATIBILITY</b>
|
||||
With Postfix version 2.2 and earlier specify "<b>postmap -fq</b>" to query a
|
||||
|
@ -19,7 +19,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>sendmail -I</b>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> command implements the Postfix to Sendmail com‐
|
||||
The Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> command implements the Postfix to Sendmail com-
|
||||
patibility interface. For the sake of compatibility with existing
|
||||
applications, some Sendmail command-line options are recognized but
|
||||
silently ignored.
|
||||
@ -29,7 +29,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
arranges for delivery. Postfix <a href="sendmail.1.html"><b>sendmail</b>(1)</a> relies on the <a href="postdrop.1.html"><b>postdrop</b>(1)</a>
|
||||
command to create a queue file in the <b>maildrop</b> directory.
|
||||
|
||||
Specific command aliases are provided for other common modes of opera‐
|
||||
Specific command aliases are provided for other common modes of opera-
|
||||
tion:
|
||||
|
||||
<b>mailq</b> List the mail queue. Each entry shows the queue file ID, message
|
||||
@ -41,7 +41,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>*</b> The message is in the <b>active</b> queue, i.e. the message is
|
||||
selected for delivery.
|
||||
|
||||
<b>!</b> The message is in the <b>hold</b> queue, i.e. no further deliv‐
|
||||
<b>!</b> The message is in the <b>hold</b> queue, i.e. no further deliv-
|
||||
ery attempt will be made until the mail is taken off
|
||||
hold.
|
||||
|
||||
@ -51,7 +51,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>newaliases</b>
|
||||
Initialize the alias database. If no input file is specified
|
||||
(with the <b>-oA</b> option, see below), the program processes the
|
||||
file(s) specified with the <b><a href="postconf.5.html#alias_database">alias_database</a></b> configuration parame‐
|
||||
file(s) specified with the <b><a href="postconf.5.html#alias_database">alias_database</a></b> configuration parame-
|
||||
ter. If no alias database type is specified, the program uses
|
||||
the type specified with the <b><a href="postconf.5.html#default_database_type">default_database_type</a></b> configuration
|
||||
parameter. This mode of operation is implemented by running the
|
||||
@ -87,7 +87,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> command above.
|
||||
|
||||
<b>-bl</b> Go into daemon mode. To accept only local connections as with
|
||||
Sendmail´s <b>-bl</b> option, specify "<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in
|
||||
Sendmail's <b>-bl</b> option, specify "<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in
|
||||
the Postfix <a href="postconf.5.html"><b>main.cf</b></a> configuration file.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for delivery. This is
|
||||
@ -118,12 +118,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
before 2.3.
|
||||
|
||||
With all Postfix versions, you can specify a directory pathname
|
||||
with the MAIL_CONFIG environment variable to override the loca‐
|
||||
with the MAIL_CONFIG environment variable to override the loca-
|
||||
tion of configuration files.
|
||||
|
||||
<b>-F</b> <i>full</i><b>_</b><i>name</i>
|
||||
Set the sender full name. This overrides the NAME environment
|
||||
variable, and is used only with messages that have no <b>From:</b> mes‐
|
||||
variable, and is used only with messages that have no <b>From:</b> mes-
|
||||
sage header.
|
||||
|
||||
<b>-f</b> <i>sender</i>
|
||||
@ -132,8 +132,8 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
the <b>Errors-To:</b> message header overrides the error return
|
||||
address.
|
||||
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial user submis‐
|
||||
sion. Either do not rewrite addresses at all, or update incom‐
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial user submis-
|
||||
sion. Either do not rewrite addresses at all, or update incom-
|
||||
plete addresses with the domain information specified with
|
||||
<b><a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a></b>.
|
||||
|
||||
@ -145,7 +145,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> command above.
|
||||
|
||||
<b>-i</b> When reading a message from standard input, don´t treat a line
|
||||
<b>-i</b> When reading a message from standard input, don't treat a line
|
||||
with only a <b>.</b> character as the end of input.
|
||||
|
||||
<b>-L</b> <i>label</i> (ignored)
|
||||
@ -179,17 +179,17 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
<b>-o7</b> (ignored)
|
||||
|
||||
<b>-o8</b> (ignored)
|
||||
To send 8-bit or binary content, use an appropriate MIME encap‐
|
||||
To send 8-bit or binary content, use an appropriate MIME encap-
|
||||
sulation and specify the appropriate <b>-B</b> command-line option.
|
||||
|
||||
<b>-oi</b> When reading a message from standard input, don´t treat a line
|
||||
<b>-oi</b> When reading a message from standard input, don't treat a line
|
||||
with only a <b>.</b> character as the end of input.
|
||||
|
||||
<b>-om</b> (ignored)
|
||||
The sender is never eliminated from alias etc. expansions.
|
||||
|
||||
<b>-o</b> <i>x value</i> (ignored)
|
||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configuration parame‐
|
||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configuration parame-
|
||||
ter in <a href="postconf.5.html"><b>main.cf</b></a> instead.
|
||||
|
||||
<b>-r</b> <i>sender</i>
|
||||
@ -209,25 +209,25 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is implemented by exe‐
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is implemented by exe-
|
||||
cuting the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command.
|
||||
|
||||
Warning: flushing undeliverable mail frequently will result in
|
||||
poor delivery performance of all other mail.
|
||||
|
||||
<b>-q</b><i>interval</i> (ignored)
|
||||
The interval between queue runs. Use the <b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a></b> config‐
|
||||
The interval between queue runs. Use the <b><a href="postconf.5.html#queue_run_delay">queue_run_delay</a></b> config-
|
||||
uration parameter instead.
|
||||
|
||||
<b>-qI</b><i>queueid</i>
|
||||
Schedule immediate delivery of mail with the specified queue ID.
|
||||
This option is implemented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> com‐
|
||||
This option is implemented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> com-
|
||||
mand, and is available with Postfix version 2.4 and later.
|
||||
|
||||
<b>-qR</b><i>site</i>
|
||||
Schedule immediate delivery of all mail that is queued for the
|
||||
named <i>site</i>. This option accepts only <i>site</i> names that are eligi‐
|
||||
ble for the "fast flush" service, and is implemented by execut‐
|
||||
named <i>site</i>. This option accepts only <i>site</i> names that are eligi-
|
||||
ble for the "fast flush" service, and is implemented by execut-
|
||||
ing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command. See <a href="flush.8.html"><b>flush</b>(8)</a> for more information
|
||||
about the "fast flush" service.
|
||||
|
||||
@ -262,12 +262,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>-XV</b><i>xy</i> (Postfix 2.2 and earlier: <b>-V</b><i>xy</i>)
|
||||
As <b>-XV</b>, but uses <i>x</i> and <i>y</i> as the VERP delimiter characters,
|
||||
instead of the characters specified with the <b>default_verp_delim</b>‐‐
|
||||
<b>iters</b> configuration parameter.
|
||||
instead of the characters specified with the <b><a href="postconf.5.html#default_verp_delimiters">default_verp_delim</a>-</b>
|
||||
<b><a href="postconf.5.html#default_verp_delimiters">iters</a></b> configuration parameter.
|
||||
|
||||
<b>-v</b> Send an email report of the first delivery attempt (Postfix ver‐
|
||||
sions 2.1 and later). Mail delivery always happens in the back‐
|
||||
ground. When multiple <b>-v</b> options are given, enable verbose log‐
|
||||
<b>-v</b> Send an email report of the first delivery attempt (Postfix ver-
|
||||
sions 2.1 and later). Mail delivery always happens in the back-
|
||||
ground. When multiple <b>-v</b> options are given, enable verbose log-
|
||||
ging for debugging purposes.
|
||||
|
||||
<b>-X</b> <i>log</i><b>_</b><i>file</i> (ignored)
|
||||
@ -297,9 +297,9 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
no <b>From:</b> message header. See also the <b>-F</b> option above.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro‐
|
||||
gram. The text below provides only a parameter summary. See <b>post</b>‐‐
|
||||
<b>conf</b>(5) for more details including examples.
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro-
|
||||
gram. The text below provides only a parameter summary. See <a href="postconf.5.html"><b>post-</b></a>
|
||||
<a href="postconf.5.html"><b>conf</b>(5)</a> for more details including examples.
|
||||
|
||||
<b>COMPATIBILITY CONTROLS</b>
|
||||
Available with Postfix 2.9 and later:
|
||||
@ -335,8 +335,8 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
List of users who are authorized to view the queue.
|
||||
|
||||
<b><a href="postconf.5.html#authorized_submit_users">authorized_submit_users</a> (<a href="DATABASE_README.html#types">static</a>:anyone)</b>
|
||||
List of users who are authorized to submit mail with the <b>send</b>‐‐
|
||||
<b>mail</b>(1) command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com‐
|
||||
List of users who are authorized to submit mail with the <a href="sendmail.1.html"><b>send-</b></a>
|
||||
<a href="sendmail.1.html"><b>mail</b>(1)</a> command (and with the privileged <a href="postdrop.1.html"><b>postdrop</b>(1)</a> helper com-
|
||||
mand).
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
@ -363,7 +363,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
the Postfix "fast flush" service.
|
||||
|
||||
<b><a href="postconf.5.html#fast_flush_domains">fast_flush_domains</a> ($<a href="postconf.5.html#relay_domains">relay_domains</a>)</b>
|
||||
Optional list of destinations that are eligible for per-destina‐
|
||||
Optional list of destinations that are eligible for per-destina-
|
||||
tion logfiles with mail that is queued to those destinations.
|
||||
|
||||
<b>VERP CONTROLS</b>
|
||||
@ -386,7 +386,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
The location of all postfix administrative commands.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_directory">daemon_directory</a> (see 'postconf -d' output)</b>
|
||||
@ -417,7 +417,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -19,7 +19,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
SMTP messages from the network and throws them away. The purpose is to
|
||||
measure client performance, not protocol compliance.
|
||||
|
||||
<b>smtp-sink</b> may also be configured to capture each mail delivery transac‐
|
||||
<b>smtp-sink</b> may also be configured to capture each mail delivery transac-
|
||||
tion to file. Since disk latencies are large compared to network
|
||||
delays, this mode of operation can reduce the maximal performance by
|
||||
several orders of magnitude.
|
||||
@ -28,7 +28,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
domain sockets. IPv4 and IPv6 are the default. This program is the
|
||||
complement of the <a href="smtp-source.1.html"><b>smtp-source</b>(1)</a> program.
|
||||
|
||||
Note: this is an unsupported test program. No attempt is made to main‐
|
||||
Note: this is an unsupported test program. No attempt is made to main-
|
||||
tain compatibility between successive versions.
|
||||
|
||||
Arguments:
|
||||
@ -44,7 +44,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
<b>-a</b> Do not announce SASL authentication support.
|
||||
|
||||
<b>-A</b> <i>delay</i>
|
||||
Wait <i>delay</i> seconds after responding to DATA, then abort prema‐
|
||||
Wait <i>delay</i> seconds after responding to DATA, then abort prema-
|
||||
turely with a 550 reply status. Do not read further input from
|
||||
the client; this is an attempt to block the client before it
|
||||
sends ".". Specify a zero delay value to abort immediately.
|
||||
@ -57,7 +57,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
Use <i>hard-bounce-reply</i> for hard reject responses. The default
|
||||
reply is "500 5.3.0 Error: command failed".
|
||||
|
||||
<b>-c</b> Display running counters that are updated whenever an SMTP ses‐
|
||||
<b>-c</b> Display running counters that are updated whenever an SMTP ses-
|
||||
sion ends, a QUIT command is executed, or when "." is received.
|
||||
|
||||
<b>-C</b> Disable XCLIENT support.
|
||||
@ -67,7 +67,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
is created by expanding the <i>dump-template</i> via strftime(3) and
|
||||
appending a pseudo-random hexadecimal number (example:
|
||||
"%Y%m%d%H/%M." expands into "2006081203/05.809a62e3"). If the
|
||||
template contains "/" characters, missing directories are cre‐
|
||||
template contains "/" characters, missing directories are cre-
|
||||
ated automatically. The message dump format is described below.
|
||||
|
||||
Note: this option keeps one capture file open for every mail
|
||||
@ -106,7 +106,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
|
||||
<b>-m</b> <i>count</i> (default: 256)
|
||||
An upper bound on the maximal number of simultaneous connections
|
||||
that <b>smtp-sink</b> will handle. This prevents the process from run‐
|
||||
that <b>smtp-sink</b> will handle. This prevents the process from run-
|
||||
ning out of file descriptors. Excess connections will stay
|
||||
queued in the TCP/IP stack.
|
||||
|
||||
@ -122,7 +122,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
CISCO PIX system. Implies <b>-e</b>.
|
||||
|
||||
<b>-q</b> <i>command,command,...</i>
|
||||
Disconnect (without replying) after receiving one of the speci‐
|
||||
Disconnect (without replying) after receiving one of the speci-
|
||||
fied commands.
|
||||
|
||||
Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT,
|
||||
@ -131,7 +131,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
from the shell. Command names are case-insensitive.
|
||||
|
||||
<b>-Q</b> <i>command,command,...</i>
|
||||
Send a 421 reply and disconnect after receiving one of the spec‐
|
||||
Send a 421 reply and disconnect after receiving one of the spec-
|
||||
ified commands.
|
||||
|
||||
Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT,
|
||||
@ -165,7 +165,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
An optional string that is prepended to each message that is
|
||||
written to a dump file (see the dump file format description
|
||||
below). The following C escape sequences are supported: \a
|
||||
(bell), \b (backslace), \f (formfeed), \n (newline), \r (car‐
|
||||
(bell), \b (backslace), \f (formfeed), \n (newline), \r (car-
|
||||
riage return), \t (horizontal tab), \v (vertical tab), \<i>ddd</i> (up
|
||||
to three octal digits) and \\ (the backslash character).
|
||||
|
||||
@ -178,7 +178,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
window scaling implementations, specify a value > 0 and < 65536.
|
||||
|
||||
<b>-u</b> <i>username</i>
|
||||
Switch to the specified user privileges after opening the net‐
|
||||
Switch to the specified user privileges after opening the net-
|
||||
work socket and optionally changing the process root directory.
|
||||
This option is required when the process runs with super-user
|
||||
privileges. See also the <b>-R</b> option.
|
||||
@ -212,13 +212,13 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
Each dumped message contains a sequence of text lines, terminated with
|
||||
the newline character. The sequence of information is as follows:
|
||||
|
||||
· The optional string specified with the <b>-S</b> option.
|
||||
<b>o</b> The optional string specified with the <b>-S</b> option.
|
||||
|
||||
· The <b>smtp-sink</b> generated headers as documented below.
|
||||
<b>o</b> The <b>smtp-sink</b> generated headers as documented below.
|
||||
|
||||
· The message header and body as received from the SMTP client.
|
||||
<b>o</b> The message header and body as received from the SMTP client.
|
||||
|
||||
· An empty line.
|
||||
<b>o</b> An empty line.
|
||||
|
||||
The format of the <b>smtp-sink</b> generated headers is as follows:
|
||||
|
||||
@ -233,11 +233,11 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
<b>X-Helo-Args:</b> <i>text</i>
|
||||
The arguments of the last HELO or EHLO command before this mail
|
||||
delivery transaction. This record is present only if the client
|
||||
sent a recognizable HELO or EHLO command before the DATA com‐
|
||||
sent a recognizable HELO or EHLO command before the DATA com-
|
||||
mand.
|
||||
|
||||
<b>X-Mail-Args:</b> <i>text</i>
|
||||
The arguments of the MAIL command that started this mail deliv‐
|
||||
The arguments of the MAIL command that started this mail deliv-
|
||||
ery transaction. This record is present exactly once.
|
||||
|
||||
<b>X-Rcpt-Args:</b> <i>text</i>
|
||||
@ -246,8 +246,8 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
are in the order as sent by the client.
|
||||
|
||||
<b>Received:</b> <i>text</i>
|
||||
A message header for compatibility with mail processing soft‐
|
||||
ware. This three-line header marks the end of the headers pro‐
|
||||
A message header for compatibility with mail processing soft-
|
||||
ware. This three-line header marks the end of the headers pro-
|
||||
vided by <b>smtp-sink</b>, and is formatted as follows:
|
||||
|
||||
<b>from</b> <i>helo</i> <b>([</b><i>addr</i><b>])</b>
|
||||
@ -257,7 +257,7 @@ SMTP-SINK(1) SMTP-SINK(1)
|
||||
|
||||
<b>by</b> <i>host</i> <b>(smtp-sink) with</b> <i>proto</i> <b>id</b> <i>random</i><b>;</b>
|
||||
The hostname specified with the <b>-h</b> option, the client
|
||||
protocol (see <b>X-Client-Proto</b> above), and the pseudo-ran‐
|
||||
protocol (see <b>X-Client-Proto</b> above), and the pseudo-ran-
|
||||
dom portion of the per-message capture file name.
|
||||
|
||||
<i>time-stamp</i>
|
||||
|
@ -14,7 +14,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix SMTP+LMTP client implements the SMTP and LMTP mail delivery
|
||||
protocols. It processes message delivery requests from the queue man‐
|
||||
protocols. It processes message delivery requests from the queue man-
|
||||
ager. Each request specifies a queue file, a sender address, a domain
|
||||
or host to deliver to, and recipient information. This program expects
|
||||
to be run from the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
@ -46,7 +46,7 @@ SMTP(8) SMTP(8)
|
||||
<i>domainname</i>
|
||||
|
||||
<i>domainname</i>:<i>port</i>
|
||||
Look up the mail exchangers for the specified domain, and con‐
|
||||
Look up the mail exchangers for the specified domain, and con-
|
||||
nect to the specified port (default: <b>smtp</b>).
|
||||
|
||||
[<i>hostname</i>]
|
||||
@ -59,7 +59,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
[<i>address</i>]:<i>port</i>
|
||||
Connect to the host at the specified address, and connect to the
|
||||
specified port (default: <b>smtp</b>). An IPv6 address must be format‐
|
||||
specified port (default: <b>smtp</b>). An IPv6 address must be format-
|
||||
ted as [<b>ipv6</b>:<i>address</i>].
|
||||
|
||||
<b>LMTP DESTINATION SYNTAX</b>
|
||||
@ -115,7 +115,7 @@ SMTP(8) SMTP(8)
|
||||
files are marked so that the queue manager can move them to the <b>corrupt</b>
|
||||
queue for further inspection.
|
||||
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas‐
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
|
||||
ter is notified of bounces, protocol problems, and of other trouble.
|
||||
|
||||
<b>BUGS</b>
|
||||
@ -133,7 +133,7 @@ SMTP(8) SMTP(8)
|
||||
there is no support for TLS, and connections are cached in-process,
|
||||
making it ineffective when the client is used for multiple domains.
|
||||
|
||||
Most smtp_<i>xxx</i> configuration parameters have an lmtp_<i>xxx</i> "mirror" param‐
|
||||
Most smtp_<i>xxx</i> configuration parameters have an lmtp_<i>xxx</i> "mirror" param-
|
||||
eter for the equivalent LMTP feature. This document describes only
|
||||
those LMTP-related parameters that aren't simply "mirror" parameters.
|
||||
|
||||
@ -244,7 +244,7 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#send_cyrus_sasl_authzid">send_cyrus_sasl_authzid</a> (no)</b>
|
||||
When authenticating to a remote SMTP or LMTP server with the
|
||||
default setting "no", send no SASL authoriZation ID (authzid);
|
||||
send only the SASL authentiCation ID (authcid) plus the auth‐
|
||||
send only the SASL authentiCation ID (authcid) plus the auth-
|
||||
cid's password.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
@ -266,7 +266,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> (0)</b>
|
||||
An optional workaround for routers that break TCP window scal‐
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
ing.
|
||||
|
||||
Available in Postfix version 2.8 and later:
|
||||
@ -280,7 +280,7 @@ SMTP(8) SMTP(8)
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes‐
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a> (no)</b>
|
||||
@ -296,7 +296,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||
Optional filter for the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent to change the
|
||||
delivery status code or explanatory text of successful or unsuc‐
|
||||
delivery status code or explanatory text of successful or unsuc-
|
||||
cessful deliveries.
|
||||
|
||||
<b>MIME PROCESSING CONTROLS</b>
|
||||
@ -323,13 +323,13 @@ SMTP(8) SMTP(8)
|
||||
Enable SASL authentication in the Postfix SMTP client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_password_maps">smtp_sasl_password_maps</a> (empty)</b>
|
||||
Optional Postfix SMTP client lookup tables with one user‐
|
||||
Optional Postfix SMTP client lookup tables with one user-
|
||||
name:password entry per remote hostname or domain, or sender
|
||||
address when sender-dependent authentication is enabled.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
||||
Postfix SMTP client SASL security options; as of Postfix 2.3 the
|
||||
list of available features depends on the SASL client implemen‐
|
||||
list of available features depends on the SASL client implemen-
|
||||
tation that is selected with <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
@ -343,7 +343,7 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a> (no)</b>
|
||||
Enable sender-dependent authentication in the Postfix SMTP
|
||||
client; this is available only with SASL authentication, and
|
||||
disables SMTP connection caching to ensure that mail from dif‐
|
||||
disables SMTP connection caching to ensure that mail from dif-
|
||||
ferent senders will use the appropriate credentials.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
||||
@ -358,7 +358,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> (empty)</b>
|
||||
An optional table to prevent repeated SASL authentication fail‐
|
||||
An optional table to prevent repeated SASL authentication fail-
|
||||
ures with the same remote SMTP server hostname, username and
|
||||
password.
|
||||
|
||||
@ -397,7 +397,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
||||
A file containing CA certificates of root CAs trusted to sign
|
||||
either remote SMTP server certificates or intermediate CA cer‐
|
||||
either remote SMTP server certificates or intermediate CA cer-
|
||||
tificates.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
||||
@ -418,7 +418,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
||||
Additional list of ciphers or cipher types to exclude from the
|
||||
Postfix SMTP client cipher list at mandatory TLS security lev‐
|
||||
Postfix SMTP client cipher list at mandatory TLS security lev-
|
||||
els.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
||||
@ -439,7 +439,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> (empty)</b>
|
||||
Optional lookup tables with the Postfix SMTP client TLS security
|
||||
policy by next-hop destination; when a non-empty value is speci‐
|
||||
policy by next-hop destination; when a non-empty value is speci-
|
||||
fied, this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> (!SSLv2)</b>
|
||||
@ -488,8 +488,8 @@ SMTP(8) SMTP(8)
|
||||
|
||||
Available in Postfix version 2.4 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($smtp_sasl_tls_secu</b>‐‐
|
||||
<b>rity_options)</b>
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_secu</a>-</b>
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">rity_options</a>)</b>
|
||||
The SASL authentication security options that the Postfix SMTP
|
||||
client uses for TLS encrypted SMTP sessions with a verified
|
||||
server certificate.
|
||||
@ -498,8 +498,8 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> (empty)</b>
|
||||
List of acceptable remote SMTP server certificate fingerprints
|
||||
for the "fingerprint" TLS security level (<b>smtp_tls_secu</b>‐‐
|
||||
<b>rity_level</b> = fingerprint).
|
||||
for the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_secu</a>-</b>
|
||||
<b><a href="postconf.5.html#smtp_tls_security_level">rity_level</a></b> = fingerprint).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (md5)</b>
|
||||
The message digest algorithm used to construct remote SMTP
|
||||
@ -516,18 +516,18 @@ SMTP(8) SMTP(8)
|
||||
use with opportunistic TLS encryption.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> (empty)</b>
|
||||
File with the Postfix SMTP client ECDSA certificate in PEM for‐
|
||||
File with the Postfix SMTP client ECDSA certificate in PEM for-
|
||||
mat.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> ($<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b>
|
||||
File with the Postfix SMTP client ECDSA private key in PEM for‐
|
||||
File with the Postfix SMTP client ECDSA private key in PEM for-
|
||||
mat.
|
||||
|
||||
Available in Postfix version 2.7 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a> (no)</b>
|
||||
Try to detect a mail hijacking attack based on a TLS protocol
|
||||
vulnerability (CVE-2009-3555), where an attacker prepends mali‐
|
||||
vulnerability (CVE-2009-3555), where an attacker prepends mali-
|
||||
cious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client
|
||||
TLS session.
|
||||
|
||||
@ -572,7 +572,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> (empty)</b>
|
||||
Optional lookup tables with the Postfix SMTP client TLS usage
|
||||
policy by next-hop destination and by remote SMTP server host‐
|
||||
policy by next-hop destination and by remote SMTP server host-
|
||||
name.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
||||
@ -580,17 +580,17 @@ SMTP(8) SMTP(8)
|
||||
cipher list.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
<b><a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> ($default_destination_concur</b>‐‐
|
||||
<b>rency_limit)</b>
|
||||
The maximal number of parallel deliveries to the same destina‐
|
||||
<b><a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concur</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
||||
The maximal number of parallel deliveries to the same destina-
|
||||
tion via the smtp message delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_destination_recipient_limit">smtp_destination_recipient_limit</a> ($<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipient_limit</a>)</b>
|
||||
The maximal number of recipients per message for the smtp mes‐
|
||||
The maximal number of recipients per message for the smtp mes-
|
||||
sage delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
||||
The Postfix SMTP client time limit for completing a TCP connec‐
|
||||
The Postfix SMTP client time limit for completing a TCP connec-
|
||||
tion, or zero (use the operating system built-in time limit).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_helo_timeout">smtp_helo_timeout</a> (300s)</b>
|
||||
@ -603,7 +603,7 @@ SMTP(8) SMTP(8)
|
||||
and for receiving the initial remote LMTP server response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_xforward_timeout">smtp_xforward_timeout</a> (300s)</b>
|
||||
The Postfix SMTP client time limit for sending the XFORWARD com‐
|
||||
The Postfix SMTP client time limit for sending the XFORWARD com-
|
||||
mand, and for receiving the remote SMTP server response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
||||
@ -663,7 +663,7 @@ SMTP(8) SMTP(8)
|
||||
has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> (300s)</b>
|
||||
The amount of time during which Postfix will use an SMTP connec‐
|
||||
The amount of time during which Postfix will use an SMTP connec-
|
||||
tion repeatedly.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a> (2s)</b>
|
||||
@ -673,7 +673,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#connection_cache_protocol_timeout">connection_cache_protocol_timeout</a> (5s)</b>
|
||||
Time limit for connection cache connect, send or receive opera‐
|
||||
Time limit for connection cache connect, send or receive opera-
|
||||
tions.
|
||||
|
||||
Available in Postfix version 2.9 and later:
|
||||
@ -682,7 +682,7 @@ SMTP(8) SMTP(8)
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes‐
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
Available in Postfix version 2.11 and later:
|
||||
@ -700,7 +700,7 @@ SMTP(8) SMTP(8)
|
||||
in <a href="http://tools.ietf.org/html/rfc6531">RFC 6531</a>..6533.
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>TROUBLE SHOOTING CONTROLS</b>
|
||||
@ -715,7 +715,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications about mail delivery
|
||||
problems that are caused by policy, resource, software or proto‐
|
||||
problems that are caused by policy, resource, software or proto-
|
||||
col errors.
|
||||
|
||||
<b><a href="postconf.5.html#internal_mail_filter_classes">internal_mail_filter_classes</a> (empty)</b>
|
||||
@ -732,7 +732,7 @@ SMTP(8) SMTP(8)
|
||||
detects a "mail loops back to myself" error condition.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -740,7 +740,7 @@ SMTP(8) SMTP(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal point when log‐
|
||||
The maximal number of digits after the decimal point when log-
|
||||
ging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
||||
@ -760,7 +760,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_assume_final">lmtp_assume_final</a> (no)</b>
|
||||
When a remote LMTP server announces no DSN support, assume that
|
||||
the server performs final delivery, and send "delivered" deliv‐
|
||||
the server performs final delivery, and send "delivered" deliv-
|
||||
ery status notifications instead of "relayed".
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
||||
@ -815,7 +815,7 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available with Postfix 2.2 and earlier:
|
||||
|
@ -18,7 +18,7 @@ SMTPD(8) SMTPD(8)
|
||||
The SMTP server accepts network connection requests and performs zero
|
||||
or more SMTP transactions per connection. Each received message is
|
||||
piped through the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon, and is placed into the <b>incoming</b>
|
||||
queue as one single queue file. For this mode of operation, the pro‐
|
||||
queue as one single queue file. For this mode of operation, the pro-
|
||||
gram expects to be run from the <a href="master.8.html"><b>master</b>(8)</a> process manager.
|
||||
|
||||
Alternatively, the SMTP server be can run in stand-alone mode; this is
|
||||
@ -31,7 +31,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
The SMTP server implements a variety of policies for connection
|
||||
requests, and for parameters given to <b>HELO, ETRN, MAIL FROM, VRFY</b> and
|
||||
<b>RCPT TO</b> commands. They are detailed below and in the <a href="postconf.5.html"><b>main.cf</b></a> configura‐
|
||||
<b>RCPT TO</b> commands. They are detailed below and in the <a href="postconf.5.html"><b>main.cf</b></a> configura-
|
||||
tion file.
|
||||
|
||||
<b>SECURITY</b>
|
||||
@ -63,7 +63,7 @@ SMTPD(8) SMTPD(8)
|
||||
<b>DIAGNOSTICS</b>
|
||||
Problems and transactions are logged to <b>syslogd</b>(8).
|
||||
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas‐
|
||||
Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
|
||||
ter is notified of bounces, protocol problems, policy violations, and
|
||||
of other trouble.
|
||||
|
||||
@ -129,13 +129,13 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_always_issue_session_ids">smtpd_tls_always_issue_session_ids</a> (yes)</b>
|
||||
Force the Postfix SMTP server to issue a TLS session id, even
|
||||
when TLS session caching is turned off (smtpd_tls_ses‐
|
||||
sion_cache_database is empty).
|
||||
when TLS session caching is turned off (<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_ses</a>-
|
||||
<a href="postconf.5.html#smtpd_tls_session_cache_database">sion_cache_database</a> is empty).
|
||||
|
||||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> (0)</b>
|
||||
An optional workaround for routers that break TCP window scal‐
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
ing.
|
||||
|
||||
Available in Postfix version 2.7 and later:
|
||||
@ -146,8 +146,8 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 2.9 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_per_record_deadline">smtpd_per_record_deadline</a> (normal: no, overload: yes)</b>
|
||||
Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> and smtpd_start‐
|
||||
tls_timeout time limits, from a time limit per read or write
|
||||
Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> and <a href="postconf.5.html#smtpd_starttls_timeout">smtpd_start</a>-
|
||||
<a href="postconf.5.html#smtpd_starttls_timeout">tls_timeout</a> time limits, from a time limit per read or write
|
||||
system call, to a time limit to send or receive a complete
|
||||
record (an SMTP command line, SMTP response line, SMTP message
|
||||
content line, or TLS protocol message).
|
||||
@ -157,7 +157,7 @@ SMTPD(8) SMTPD(8)
|
||||
Postfix address rewriting.
|
||||
|
||||
<b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b>
|
||||
Enable or disable recipient validation, built-in content filter‐
|
||||
Enable or disable recipient validation, built-in content filter-
|
||||
ing, or address mapping.
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
@ -167,8 +167,8 @@ SMTPD(8) SMTPD(8)
|
||||
update incomplete addresses with the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or
|
||||
$<a href="postconf.5.html#mydomain">mydomain</a>; either don't rewrite message headers from other
|
||||
clients at all, or rewrite message headers and update incomplete
|
||||
addresses with the domain specified in the remote_header_re‐
|
||||
write_domain parameter.
|
||||
addresses with the domain specified in the <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_re</a>-
|
||||
<a href="postconf.5.html#remote_header_rewrite_domain">write_domain</a> parameter.
|
||||
|
||||
<b>BEFORE-SMTPD PROXY AGENT</b>
|
||||
Available in Postfix version 2.10 and later:
|
||||
@ -184,7 +184,7 @@ SMTPD(8) SMTPD(8)
|
||||
<b>AFTER QUEUE EXTERNAL CONTENT INSPECTION CONTROLS</b>
|
||||
As of version 1.0, Postfix can be configured to send new mail to an
|
||||
external content filter AFTER the mail is queued. This content filter
|
||||
is expected to inject mail back into a (Postfix or other) MTA for fur‐
|
||||
is expected to inject mail back into a (Postfix or other) MTA for fur-
|
||||
ther delivery. See the <a href="FILTER_README.html">FILTER_README</a> document for details.
|
||||
|
||||
<b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b>
|
||||
@ -194,19 +194,19 @@ SMTPD(8) SMTPD(8)
|
||||
<b>BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS</b>
|
||||
As of version 2.1, the Postfix SMTP server can be configured to send
|
||||
incoming mail to a real-time SMTP-based content filter BEFORE mail is
|
||||
queued. This content filter is expected to inject mail back into Post‐
|
||||
fix. See the <a href="SMTPD_PROXY_README.html">SMTPD_PROXY_README</a> document for details on how to config‐
|
||||
queued. This content filter is expected to inject mail back into Post-
|
||||
fix. See the <a href="SMTPD_PROXY_README.html">SMTPD_PROXY_README</a> document for details on how to config-
|
||||
ure and operate this feature.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_proxy_filter">smtpd_proxy_filter</a> (empty)</b>
|
||||
The hostname and TCP port of the mail filtering proxy server.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_proxy_ehlo">smtpd_proxy_ehlo</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
How the Postfix SMTP server announces itself to the proxy fil‐
|
||||
How the Postfix SMTP server announces itself to the proxy fil-
|
||||
ter.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_proxy_options">smtpd_proxy_options</a> (empty)</b>
|
||||
List of options that control how the Postfix SMTP server commu‐
|
||||
List of options that control how the Postfix SMTP server commu-
|
||||
nicates with a before-queue content filter.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_proxy_timeout">smtpd_proxy_timeout</a> (100s)</b>
|
||||
@ -217,15 +217,15 @@ SMTPD(8) SMTPD(8)
|
||||
As of version 2.3, Postfix supports the Sendmail version 8 Milter (mail
|
||||
filter) protocol. These content filters run outside Postfix. They can
|
||||
inspect the SMTP command stream and the message content, and can
|
||||
request modifications before mail is queued. For details see the MIL‐
|
||||
<a href="TER_README.html">TER_README</a> document.
|
||||
request modifications before mail is queued. For details see the <a href="MILTER_README.html">MIL</a>-
|
||||
<a href="MILTER_README.html">TER_README</a> document.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_milters">smtpd_milters</a> (empty)</b>
|
||||
A list of Milter (mail filter) applications for new mail that
|
||||
arrives via the Postfix <a href="smtpd.8.html"><b>smtpd</b>(8)</a> server.
|
||||
|
||||
<b><a href="postconf.5.html#milter_protocol">milter_protocol</a> (6)</b>
|
||||
The mail filter protocol version and optional protocol exten‐
|
||||
The mail filter protocol version and optional protocol exten-
|
||||
sions for communication with a Milter application; prior to
|
||||
Postfix 2.6 the default protocol is 2.
|
||||
|
||||
@ -234,14 +234,14 @@ SMTPD(8) SMTPD(8)
|
||||
unavailable or mis-configured.
|
||||
|
||||
<b><a href="postconf.5.html#milter_macro_daemon_name">milter_macro_daemon_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
The {daemon_name} macro value for Milter (mail filter) applica‐
|
||||
The {daemon_name} macro value for Milter (mail filter) applica-
|
||||
tions.
|
||||
|
||||
<b><a href="postconf.5.html#milter_macro_v">milter_macro_v</a> ($<a href="postconf.5.html#mail_name">mail_name</a> $<a href="postconf.5.html#mail_version">mail_version</a>)</b>
|
||||
The {v} macro value for Milter (mail filter) applications.
|
||||
|
||||
<b><a href="postconf.5.html#milter_connect_timeout">milter_connect_timeout</a> (30s)</b>
|
||||
The time limit for connecting to a Milter (mail filter) applica‐
|
||||
The time limit for connecting to a Milter (mail filter) applica-
|
||||
tion, and for negotiating protocol options.
|
||||
|
||||
<b><a href="postconf.5.html#milter_command_timeout">milter_command_timeout</a> (30s)</b>
|
||||
@ -291,7 +291,7 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 2.1 and later:
|
||||
|
||||
<b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b>
|
||||
Enable or disable recipient validation, built-in content filter‐
|
||||
Enable or disable recipient validation, built-in content filter-
|
||||
ing, or address mapping.
|
||||
|
||||
<b>EXTERNAL CONTENT INSPECTION CONTROLS</b>
|
||||
@ -301,7 +301,7 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 2.1 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_authorized_xforward_hosts">smtpd_authorized_xforward_hosts</a> (empty)</b>
|
||||
What remote SMTP clients are allowed to use the XFORWARD fea‐
|
||||
What remote SMTP clients are allowed to use the XFORWARD fea-
|
||||
ture.
|
||||
|
||||
<b>SASL AUTHENTICATION CONTROLS</b>
|
||||
@ -323,7 +323,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_sasl_security_options">smtpd_sasl_security_options</a> (noanonymous)</b>
|
||||
Postfix SMTP server SASL security options; as of Postfix 2.3 the
|
||||
list of available features depends on the SASL server implemen‐
|
||||
list of available features depends on the SASL server implemen-
|
||||
tation that is selected with <b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b>.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_sender_login_maps">smtpd_sender_login_maps</a> (empty)</b>
|
||||
@ -360,7 +360,7 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#cyrus_sasl_config_path">cyrus_sasl_config_path</a> (empty)</b>
|
||||
Search path for Cyrus SASL application configuration files, cur‐
|
||||
Search path for Cyrus SASL application configuration files, cur-
|
||||
rently used only to locate the $<a href="postconf.5.html#smtpd_sasl_path">smtpd_sasl_path</a>.conf file.
|
||||
|
||||
Available in Postfix version 2.11 and later:
|
||||
@ -375,7 +375,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_security_level">smtpd_tls_security_level</a> (empty)</b>
|
||||
The SMTP TLS security level for the Postfix SMTP server; when a
|
||||
non-empty value is specified, this overrides the obsolete param‐
|
||||
non-empty value is specified, this overrides the obsolete param-
|
||||
eters <a href="postconf.5.html#smtpd_use_tls">smtpd_use_tls</a> and <a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_sasl_tls_security_options">smtpd_sasl_tls_security_options</a> ($<a href="postconf.5.html#smtpd_sasl_security_options">smtpd_sasl_security_options</a>)</b>
|
||||
@ -388,25 +388,25 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_CAfile">smtpd_tls_CAfile</a> (empty)</b>
|
||||
A file containing (PEM format) CA certificates of root CAs
|
||||
trusted to sign either remote SMTP client certificates or inter‐
|
||||
trusted to sign either remote SMTP client certificates or inter-
|
||||
mediate CA certificates.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_CApath">smtpd_tls_CApath</a> (empty)</b>
|
||||
A directory containing (PEM format) CA certificates of root CAs
|
||||
trusted to sign either remote SMTP client certificates or inter‐
|
||||
trusted to sign either remote SMTP client certificates or inter-
|
||||
mediate CA certificates.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_always_issue_session_ids">smtpd_tls_always_issue_session_ids</a> (yes)</b>
|
||||
Force the Postfix SMTP server to issue a TLS session id, even
|
||||
when TLS session caching is turned off (smtpd_tls_ses‐
|
||||
sion_cache_database is empty).
|
||||
when TLS session caching is turned off (<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_ses</a>-
|
||||
<a href="postconf.5.html#smtpd_tls_session_cache_database">sion_cache_database</a> is empty).
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_ask_ccert">smtpd_tls_ask_ccert</a> (no)</b>
|
||||
Ask a remote SMTP client for a client certificate.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_auth_only">smtpd_tls_auth_only</a> (no)</b>
|
||||
When TLS encryption is optional in the Postfix SMTP server, do
|
||||
not announce or accept SASL authentication over unencrypted con‐
|
||||
not announce or accept SASL authentication over unencrypted con-
|
||||
nections.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_ccert_verifydepth">smtpd_tls_ccert_verifydepth</a> (9)</b>
|
||||
@ -445,7 +445,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_mandatory_exclude_ciphers">smtpd_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
||||
Additional list of ciphers or cipher types to exclude from the
|
||||
Postfix SMTP server cipher list at mandatory TLS security lev‐
|
||||
Postfix SMTP server cipher list at mandatory TLS security lev-
|
||||
els.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_mandatory_protocols">smtpd_tls_mandatory_protocols</a> (!SSLv2)</b>
|
||||
@ -505,11 +505,11 @@ SMTPD(8) SMTPD(8)
|
||||
use with opportunistic TLS encryption.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a> (empty)</b>
|
||||
File with the Postfix SMTP server ECDSA certificate in PEM for‐
|
||||
File with the Postfix SMTP server ECDSA certificate in PEM for-
|
||||
mat.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_eckey_file">smtpd_tls_eckey_file</a> ($<a href="postconf.5.html#smtpd_tls_eccert_file">smtpd_tls_eccert_file</a>)</b>
|
||||
File with the Postfix SMTP server ECDSA private key in PEM for‐
|
||||
File with the Postfix SMTP server ECDSA private key in PEM for-
|
||||
mat.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_tls_eecdh_grade">smtpd_tls_eecdh_grade</a> (see 'postconf -d' output)</b>
|
||||
@ -527,7 +527,7 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 2.8 and later:
|
||||
|
||||
<b><a href="postconf.5.html#tls_preempt_cipherlist">tls_preempt_cipherlist</a> (no)</b>
|
||||
With SSLv3 and later, use the Postfix SMTP server's cipher pref‐
|
||||
With SSLv3 and later, use the Postfix SMTP server's cipher pref-
|
||||
erence order instead of the remote client's cipher preference
|
||||
order.
|
||||
|
||||
@ -572,13 +572,13 @@ SMTPD(8) SMTPD(8)
|
||||
Enable stricter enforcement of the SMTPUTF8 protocol.
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>VERP SUPPORT CONTROLS</b>
|
||||
With VERP style delivery, each recipient of a message receives a cus‐
|
||||
With VERP style delivery, each recipient of a message receives a cus-
|
||||
tomized copy of the message with his/her own recipient address encoded
|
||||
in the envelope sender address. The <a href="VERP_README.html">VERP_README</a> file describes config‐
|
||||
in the envelope sender address. The <a href="VERP_README.html">VERP_README</a> file describes config-
|
||||
uration and operation details of Postfix support for variable envelope
|
||||
return path addresses. VERP style delivery is requested with the SMTP
|
||||
XVERP command or with the "sendmail -V" command-line option and is
|
||||
@ -594,13 +594,13 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 1.1 and 2.0:
|
||||
|
||||
<b><a href="postconf.5.html#authorized_verp_clients">authorized_verp_clients</a> ($<a href="postconf.5.html#mynetworks">mynetworks</a>)</b>
|
||||
What remote SMTP clients are allowed to specify the XVERP com‐
|
||||
What remote SMTP clients are allowed to specify the XVERP com-
|
||||
mand.
|
||||
|
||||
Available in Postfix version 2.1 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a> ($<a href="postconf.5.html#authorized_verp_clients">authorized_verp_clients</a>)</b>
|
||||
What remote SMTP clients are allowed to specify the XVERP com‐
|
||||
What remote SMTP clients are allowed to specify the XVERP com-
|
||||
mand.
|
||||
|
||||
<b>TROUBLE SHOOTING CONTROLS</b>
|
||||
@ -620,7 +620,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications about mail delivery
|
||||
problems that are caused by policy, resource, software or proto‐
|
||||
problems that are caused by policy, resource, software or proto-
|
||||
col errors.
|
||||
|
||||
<b><a href="postconf.5.html#internal_mail_filter_classes">internal_mail_filter_classes</a> (empty)</b>
|
||||
@ -653,7 +653,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b>KNOWN VERSUS UNKNOWN RECIPIENT CONTROLS</b>
|
||||
As of Postfix version 2.0, the SMTP server rejects mail for unknown
|
||||
recipients. This prevents the mail queue from clogging up with undeliv‐
|
||||
recipients. This prevents the mail queue from clogging up with undeliv-
|
||||
erable MAILER-DAEMON messages. Additional information on this topic is
|
||||
in the <a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a> and <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> documents.
|
||||
|
||||
@ -689,8 +689,8 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> (<a href="proxymap.8.html">proxy</a>:unix:passwd.byname $<a href="postconf.5.html#alias_maps">alias_maps</a>)</b>
|
||||
Lookup tables with all names or addresses of local recipients: a
|
||||
recipient address is local when its domain matches $mydestina‐
|
||||
tion, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
|
||||
recipient address is local when its domain matches $<a href="postconf.5.html#mydestination">mydestina</a>-
|
||||
<a href="postconf.5.html#mydestination">tion</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or $<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_local_recipient_reject_code">unknown_local_recipient_reject_code</a> (550)</b>
|
||||
The numerical Postfix SMTP server response code when a recipient
|
||||
@ -709,7 +709,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#unknown_relay_recipient_reject_code">unknown_relay_recipient_reject_code</a> (550)</b>
|
||||
The numerical Postfix SMTP server reply code when a recipient
|
||||
address matches $<a href="postconf.5.html#relay_domains">relay_domains</a>, and <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> speci‐
|
||||
address matches $<a href="postconf.5.html#relay_domains">relay_domains</a>, and <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> speci-
|
||||
fies a list of lookup tables that does not match the recipient
|
||||
address.
|
||||
|
||||
@ -727,7 +727,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#unknown_virtual_alias_reject_code">unknown_virtual_alias_reject_code</a> (550)</b>
|
||||
The Postfix SMTP server reply code when a recipient address
|
||||
matches $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, and $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> speci‐
|
||||
matches $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, and $<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> speci-
|
||||
fies a list of lookup tables that does not match the recipient
|
||||
address.
|
||||
|
||||
@ -746,7 +746,7 @@ SMTPD(8) SMTPD(8)
|
||||
<b><a href="postconf.5.html#unknown_virtual_mailbox_reject_code">unknown_virtual_mailbox_reject_code</a> (550)</b>
|
||||
The Postfix SMTP server reply code when a recipient address
|
||||
matches $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>, and $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
|
||||
specifies a list of lookup tables that does not match the recip‐
|
||||
specifies a list of lookup tables that does not match the recip-
|
||||
ient address.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
@ -758,7 +758,7 @@ SMTPD(8) SMTPD(8)
|
||||
this length; upon delivery, long lines are reconstructed.
|
||||
|
||||
<b><a href="postconf.5.html#queue_minfree">queue_minfree</a> (0)</b>
|
||||
The minimal amount of free space in bytes in the queue file sys‐
|
||||
The minimal amount of free space in bytes in the queue file sys-
|
||||
tem that is needed to receive mail.
|
||||
|
||||
<b><a href="postconf.5.html#message_size_limit">message_size_limit</a> (10240000)</b>
|
||||
@ -784,7 +784,7 @@ SMTPD(8) SMTPD(8)
|
||||
Attempt to look up the remote SMTP client hostname, and verify
|
||||
that the name matches the client IP address.
|
||||
|
||||
The per SMTP client connection count and request rate limits are imple‐
|
||||
The per SMTP client connection count and request rate limits are imple-
|
||||
mented in co-operation with the <a href="anvil.8.html"><b>anvil</b>(8)</a> service, and are available in
|
||||
Postfix version 2.2 and later.
|
||||
|
||||
@ -820,8 +820,8 @@ SMTPD(8) SMTPD(8)
|
||||
Available in Postfix version 2.9 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_per_record_deadline">smtpd_per_record_deadline</a> (normal: no, overload: yes)</b>
|
||||
Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> and smtpd_start‐
|
||||
tls_timeout time limits, from a time limit per read or write
|
||||
Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> and <a href="postconf.5.html#smtpd_starttls_timeout">smtpd_start</a>-
|
||||
<a href="postconf.5.html#smtpd_starttls_timeout">tls_timeout</a> time limits, from a time limit per read or write
|
||||
system call, to a time limit to send or receive a complete
|
||||
record (an SMTP command line, SMTP response line, SMTP message
|
||||
content line, or TLS protocol message).
|
||||
@ -885,7 +885,7 @@ SMTPD(8) SMTPD(8)
|
||||
The default action when an SMTPD policy service request fails.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_policy_service_request_limit">smtpd_policy_service_request_limit</a> (0)</b>
|
||||
The maximal number of requests per SMTPD policy service connec‐
|
||||
The maximal number of requests per SMTPD policy service connec-
|
||||
tion, or zero (no limit).
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_policy_service_try_limit">smtpd_policy_service_try_limit</a> (2)</b>
|
||||
@ -893,7 +893,7 @@ SMTPD(8) SMTPD(8)
|
||||
request before giving up.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_policy_service_retry_delay">smtpd_policy_service_retry_delay</a> (1s)</b>
|
||||
The delay between attempts to resend a failed SMTPD policy ser‐
|
||||
The delay between attempts to resend a failed SMTPD policy ser-
|
||||
vice request.
|
||||
|
||||
<b>ACCESS CONTROLS</b>
|
||||
@ -940,7 +940,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#allow_untrusted_routing">allow_untrusted_routing</a> (no)</b>
|
||||
Forward mail with sender-specified routing
|
||||
(user[@%!]remote[@%!]site) from untrusted clients to destina‐
|
||||
(user[@%!]remote[@%!]site) from untrusted clients to destina-
|
||||
tions matching $<a href="postconf.5.html#relay_domains">relay_domains</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_restriction_classes">smtpd_restriction_classes</a> (empty)</b>
|
||||
@ -991,12 +991,12 @@ SMTPD(8) SMTPD(8)
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
|
||||
|
||||
<b>SENDER AND RECIPIENT ADDRESS VERIFICATION CONTROLS</b>
|
||||
Postfix version 2.1 introduces sender and recipient address verifica‐
|
||||
Postfix version 2.1 introduces sender and recipient address verifica-
|
||||
tion. This feature is implemented by sending probe email messages that
|
||||
are not actually delivered. This feature is requested via the
|
||||
<a href="postconf.5.html#reject_unverified_sender">reject_unverified_sender</a> and <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> access
|
||||
restrictions. The status of verification probes is maintained by the
|
||||
<a href="verify.8.html"><b>verify</b>(8)</a> server. See the file <a href="ADDRESS_VERIFICATION_README.html">ADDRESS_VERIFICATION_README</a> for infor‐
|
||||
<a href="verify.8.html"><b>verify</b>(8)</a> server. See the file <a href="ADDRESS_VERIFICATION_README.html">ADDRESS_VERIFICATION_README</a> for infor-
|
||||
mation about how to configure and operate the Postfix sender/recipient
|
||||
address verification service.
|
||||
|
||||
@ -1005,7 +1005,7 @@ SMTPD(8) SMTPD(8)
|
||||
of an address verification request in progress.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_poll_delay">address_verify_poll_delay</a> (3s)</b>
|
||||
The delay between queries for the completion of an address veri‐
|
||||
The delay between queries for the completion of an address veri-
|
||||
fication request in progress.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_sender">address_verify_sender</a> ($<a href="postconf.5.html#double_bounce_sender">double_bounce_sender</a>)</b>
|
||||
@ -1018,7 +1018,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#unverified_recipient_reject_code">unverified_recipient_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response when a recipient
|
||||
address is rejected by the <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restric‐
|
||||
address is rejected by the <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restric-
|
||||
tion.
|
||||
|
||||
Available in Postfix version 2.6 and later:
|
||||
@ -1044,8 +1044,8 @@ SMTPD(8) SMTPD(8)
|
||||
fails due to a temporary error condition.
|
||||
|
||||
<b><a href="postconf.5.html#unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b>
|
||||
The Postfix SMTP server's action when reject_unverified_recipi‐
|
||||
ent fails due to a temporary error condition.
|
||||
The Postfix SMTP server's action when <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipi</a>-
|
||||
<a href="postconf.5.html#reject_unverified_recipient">ent</a> fails due to a temporary error condition.
|
||||
|
||||
Available with Postfix 2.9 and later:
|
||||
|
||||
@ -1106,7 +1106,7 @@ SMTPD(8) SMTPD(8)
|
||||
<a href="postconf.5.html#reject_unknown_client_hostname">reject_unknown_client_hostname</a> restriction.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_hostname_reject_code">unknown_hostname_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code when the host‐
|
||||
The numerical Postfix SMTP server response code when the host-
|
||||
name specified with the HELO or EHLO command is rejected by the
|
||||
<a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a> restriction.
|
||||
|
||||
@ -1118,8 +1118,8 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#multi_recipient_bounce_reject_code">multi_recipient_bounce_reject_code</a> (550)</b>
|
||||
The numerical Postfix SMTP server response code when a remote
|
||||
SMTP client request is blocked by the reject_multi_recipi‐
|
||||
ent_bounce restriction.
|
||||
SMTP client request is blocked by the <a href="postconf.5.html#reject_multi_recipient_bounce">reject_multi_recipi</a>-
|
||||
<a href="postconf.5.html#reject_multi_recipient_bounce">ent_bounce</a> restriction.
|
||||
|
||||
<b><a href="postconf.5.html#rbl_reply_maps">rbl_reply_maps</a> (empty)</b>
|
||||
Optional lookup tables with RBL response templates.
|
||||
@ -1136,8 +1136,8 @@ SMTPD(8) SMTPD(8)
|
||||
fails due to a temporary error condition.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_helo_hostname_tempfail_action">unknown_helo_hostname_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b>
|
||||
The Postfix SMTP server's action when reject_unknown_helo_host‐
|
||||
name fails due to an temporary error condition.
|
||||
The Postfix SMTP server's action when <a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_host</a>-
|
||||
<a href="postconf.5.html#reject_unknown_helo_hostname">name</a> fails due to an temporary error condition.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_address_tempfail_action">unknown_address_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b>
|
||||
The Postfix SMTP server's action when
|
||||
@ -1146,7 +1146,7 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -1157,7 +1157,7 @@ SMTPD(8) SMTPD(8)
|
||||
The location of all postfix administrative commands.
|
||||
|
||||
<b><a href="postconf.5.html#double_bounce_sender">double_bounce_sender</a> (double-bounce)</b>
|
||||
The sender address of postmaster notifications that are gener‐
|
||||
The sender address of postmaster notifications that are gener-
|
||||
ated by the mail system.
|
||||
|
||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||
@ -1184,7 +1184,7 @@ SMTPD(8) SMTPD(8)
|
||||
The internet hostname of this mail system.
|
||||
|
||||
<b><a href="postconf.5.html#mynetworks">mynetworks</a> (see 'postconf -d' output)</b>
|
||||
The list of "trusted" remote SMTP clients that have more privi‐
|
||||
The list of "trusted" remote SMTP clients that have more privi-
|
||||
leges than "strangers".
|
||||
|
||||
<b><a href="postconf.5.html#myorigin">myorigin</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
@ -1214,13 +1214,13 @@ SMTPD(8) SMTPD(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_forbidden_commands">smtpd_forbidden_commands</a> (CONNECT, GET, POST)</b>
|
||||
List of commands that cause the Postfix SMTP server to immedi‐
|
||||
List of commands that cause the Postfix SMTP server to immedi-
|
||||
ately terminate the session with a 221 code.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
@ -13,7 +13,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
<b>bounce</b> [generic Postfix daemon options]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon maintains per-message log files with delivery sta‐
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon maintains per-message log files with delivery sta-
|
||||
tus information. Each log file is named after the queue file that it
|
||||
corresponds to, and is kept in a queue subdirectory named after the
|
||||
service name in the <a href="master.5.html"><b>master.cf</b></a> file (either <b>bounce</b>, <b>defer</b> or <b>trace</b>).
|
||||
@ -21,15 +21,15 @@ BOUNCE(8) BOUNCE(8)
|
||||
|
||||
The <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon processes two types of service requests:
|
||||
|
||||
· Append a recipient (non-)delivery status record to a per-message
|
||||
<b>o</b> Append a recipient (non-)delivery status record to a per-message
|
||||
log file.
|
||||
|
||||
· Enqueue a delivery status notification message, with a copy of a
|
||||
<b>o</b> Enqueue a delivery status notification message, with a copy of a
|
||||
per-message log file and of the corresponding message. When the
|
||||
delivery status notification message is enqueued successfully,
|
||||
the per-message log file is deleted.
|
||||
|
||||
The software does a best notification effort. A non-delivery notifica‐
|
||||
The software does a best notification effort. A non-delivery notifica-
|
||||
tion is sent even when the log file or the original message cannot be
|
||||
read.
|
||||
|
||||
@ -70,8 +70,8 @@ BOUNCE(8) BOUNCE(8)
|
||||
Postfix versions before 2.0.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_notice_recipient">bounce_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications with the message head‐
|
||||
ers of mail that Postfix did not deliver and of SMTP conversa‐
|
||||
The recipient of postmaster notifications with the message head-
|
||||
ers of mail that Postfix did not deliver and of SMTP conversa-
|
||||
tion transcripts of mail that Postfix did not receive.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a> (50000)</b>
|
||||
@ -82,7 +82,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
Pathname of a configuration file with bounce message templates.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -90,7 +90,7 @@ BOUNCE(8) BOUNCE(8)
|
||||
request before it is terminated by a built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_notice_recipient">delay_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications with the message head‐
|
||||
The recipient of postmaster notifications with the message head-
|
||||
ers of mail that cannot be delivered within $<a href="postconf.5.html#delay_warning_time">delay_warning_time</a>
|
||||
time units.
|
||||
|
||||
@ -140,13 +140,13 @@ BOUNCE(8) BOUNCE(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix 2.12 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -26,9 +26,9 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
strip source routed addresses (<i>@site,@site:user@domain</i>)
|
||||
to <i>user@domain</i> form.
|
||||
|
||||
<b>remote</b> Append the domain name specified with <b>$remote_header_re</b>‐‐
|
||||
<b>write_domain</b> to incomplete addresses. Otherwise the
|
||||
result is identical to that of the <b>local</b> address rewrit‐
|
||||
<b>remote</b> Append the domain name specified with <b>$<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_re</a>-</b>
|
||||
<b><a href="postconf.5.html#remote_header_rewrite_domain">write_domain</a></b> to incomplete addresses. Otherwise the
|
||||
result is identical to that of the <b>local</b> address rewrit-
|
||||
ing context. This prevents Postfix from appending the
|
||||
local domain to spam from poorly written remote clients.
|
||||
|
||||
@ -41,11 +41,11 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
entry in the <a href="master.5.html"><b>master.cf</b></a> file.
|
||||
|
||||
<i>nexthop</i>
|
||||
The host to send to and optional delivery method informa‐
|
||||
The host to send to and optional delivery method informa-
|
||||
tion.
|
||||
|
||||
<i>recipient</i>
|
||||
The envelope recipient address that is passed on to <i>nex‐</i>
|
||||
The envelope recipient address that is passed on to <i>nex-</i>
|
||||
<i>thop</i>.
|
||||
|
||||
<i>flags</i> The address class, whether the address requires relaying,
|
||||
@ -160,8 +160,8 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
<b><a href="postconf.5.html#default_transport">default_transport</a> (smtp)</b>
|
||||
The default mail delivery transport and next-hop destination for
|
||||
destinations 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>, $virtual_mail‐
|
||||
box_domains, or $<a href="postconf.5.html#relay_domains">relay_domains</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_mail</a>-
|
||||
<a href="postconf.5.html#virtual_mailbox_domains">box_domains</a>, or $<a href="postconf.5.html#relay_domains">relay_domains</a>.
|
||||
|
||||
<b><a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> (see 'postconf -d' output)</b>
|
||||
A list of Postfix features where the pattern "example.com" also
|
||||
@ -199,7 +199,7 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
parameter setting.
|
||||
|
||||
<b>ADDRESS VERIFICATION CONTROLS</b>
|
||||
Postfix version 2.1 introduces sender and recipient address verifica‐
|
||||
Postfix version 2.1 introduces sender and recipient address verifica-
|
||||
tion. This feature is implemented by sending probe email messages that
|
||||
are not actually delivered. By default, address verification probes
|
||||
use the same route as regular mail. To override specific aspects of
|
||||
@ -207,7 +207,7 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
the following:
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_local_transport">address_verify_local_transport</a> ($<a href="postconf.5.html#local_transport">local_transport</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#local_transport">local_transport</a> parameter setting for address ver‐
|
||||
Overrides the <a href="postconf.5.html#local_transport">local_transport</a> parameter setting for address ver-
|
||||
ification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_virtual_transport">address_verify_virtual_transport</a> ($<a href="postconf.5.html#virtual_transport">virtual_transport</a>)</b>
|
||||
@ -215,7 +215,7 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
verification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_relay_transport">address_verify_relay_transport</a> ($<a href="postconf.5.html#relay_transport">relay_transport</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter setting for address ver‐
|
||||
Overrides the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter setting for address ver-
|
||||
ification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_default_transport">address_verify_default_transport</a> ($<a href="postconf.5.html#default_transport">default_transport</a>)</b>
|
||||
@ -223,30 +223,30 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
verification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_relayhost">address_verify_relayhost</a> ($<a href="postconf.5.html#relayhost">relayhost</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#relayhost">relayhost</a> parameter setting for address verifica‐
|
||||
Overrides the <a href="postconf.5.html#relayhost">relayhost</a> parameter setting for address verifica-
|
||||
tion probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_transport_maps">address_verify_transport_maps</a> ($<a href="postconf.5.html#transport_maps">transport_maps</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#transport_maps">transport_maps</a> parameter setting for address veri‐
|
||||
Overrides the <a href="postconf.5.html#transport_maps">transport_maps</a> parameter setting for address veri-
|
||||
fication probes.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_relayhost_maps">address_verify_sender_dependent_relayhost_maps</a> ($sender_depen</b>‐‐
|
||||
<b>dent_relayhost_maps)</b>
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_relayhost_maps">address_verify_sender_dependent_relayhost_maps</a> ($<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_depen</a>-</b>
|
||||
<b><a href="postconf.5.html#sender_dependent_relayhost_maps">dent_relayhost_maps</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> parameter setting
|
||||
for address verification probes.
|
||||
|
||||
Available in Postfix version 2.7 and later:
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_default_transport_maps">address_verify_sender_dependent_default_transport_maps</a> ($sender_depen</b>‐‐
|
||||
<b>dent_default_transport_maps)</b>
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_default_transport_maps">address_verify_sender_dependent_default_transport_maps</a> ($<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_depen</a>-</b>
|
||||
<b><a href="postconf.5.html#sender_dependent_default_transport_maps">dent_default_transport_maps</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> parameter
|
||||
setting for address verification probes.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -290,13 +290,13 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
Available in Postfix version 2.0 and later:
|
||||
|
||||
<b><a href="postconf.5.html#helpful_warnings">helpful_warnings</a> (yes)</b>
|
||||
Log warnings about problematic configuration settings, and pro‐
|
||||
Log warnings about problematic configuration settings, and pro-
|
||||
vide helpful suggestions.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -72,8 +72,8 @@ VERIFY(8) VERIFY(8)
|
||||
principle.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are not picked up automatically, as <a href="verify.8.html"><b>verify</b>(8)</a> pro‐
|
||||
cesses are long-lived. Use the command "<b>postfix reload</b>" after a config‐
|
||||
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are not picked up automatically, as <a href="verify.8.html"><b>verify</b>(8)</a> pro-
|
||||
cesses are long-lived. Use the command "<b>postfix reload</b>" after a config-
|
||||
uration change.
|
||||
|
||||
The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
|
||||
@ -116,7 +116,7 @@ VERIFY(8) VERIFY(8)
|
||||
Available with Postfix 2.7 and later:
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_cache_cleanup_interval">address_verify_cache_cleanup_interval</a> (12h)</b>
|
||||
The amount of time between <a href="verify.8.html"><b>verify</b>(8)</a> address verification data‐
|
||||
The amount of time between <a href="verify.8.html"><b>verify</b>(8)</a> address verification data-
|
||||
base cleanup runs.
|
||||
|
||||
<b>PROBE MESSAGE ROUTING CONTROLS</b>
|
||||
@ -125,15 +125,15 @@ VERIFY(8) VERIFY(8)
|
||||
message routing mechanisms.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_relayhost">address_verify_relayhost</a> ($<a href="postconf.5.html#relayhost">relayhost</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#relayhost">relayhost</a> parameter setting for address verifica‐
|
||||
Overrides the <a href="postconf.5.html#relayhost">relayhost</a> parameter setting for address verifica-
|
||||
tion probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_transport_maps">address_verify_transport_maps</a> ($<a href="postconf.5.html#transport_maps">transport_maps</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#transport_maps">transport_maps</a> parameter setting for address veri‐
|
||||
Overrides the <a href="postconf.5.html#transport_maps">transport_maps</a> parameter setting for address veri-
|
||||
fication probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_local_transport">address_verify_local_transport</a> ($<a href="postconf.5.html#local_transport">local_transport</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#local_transport">local_transport</a> parameter setting for address ver‐
|
||||
Overrides the <a href="postconf.5.html#local_transport">local_transport</a> parameter setting for address ver-
|
||||
ification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_virtual_transport">address_verify_virtual_transport</a> ($<a href="postconf.5.html#virtual_transport">virtual_transport</a>)</b>
|
||||
@ -141,7 +141,7 @@ VERIFY(8) VERIFY(8)
|
||||
verification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_relay_transport">address_verify_relay_transport</a> ($<a href="postconf.5.html#relay_transport">relay_transport</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter setting for address ver‐
|
||||
Overrides the <a href="postconf.5.html#relay_transport">relay_transport</a> parameter setting for address ver-
|
||||
ification probes.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_default_transport">address_verify_default_transport</a> ($<a href="postconf.5.html#default_transport">default_transport</a>)</b>
|
||||
@ -150,15 +150,15 @@ VERIFY(8) VERIFY(8)
|
||||
|
||||
Available in Postfix 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_relayhost_maps">address_verify_sender_dependent_relayhost_maps</a> ($sender_depen</b>‐‐
|
||||
<b>dent_relayhost_maps)</b>
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_relayhost_maps">address_verify_sender_dependent_relayhost_maps</a> ($<a href="postconf.5.html#sender_dependent_relayhost_maps">sender_depen</a>-</b>
|
||||
<b><a href="postconf.5.html#sender_dependent_relayhost_maps">dent_relayhost_maps</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#sender_dependent_relayhost_maps">sender_dependent_relayhost_maps</a> parameter setting
|
||||
for address verification probes.
|
||||
|
||||
Available in Postfix 2.7 and later:
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_default_transport_maps">address_verify_sender_dependent_default_transport_maps</a> ($sender_depen</b>‐‐
|
||||
<b>dent_default_transport_maps)</b>
|
||||
<b><a href="postconf.5.html#address_verify_sender_dependent_default_transport_maps">address_verify_sender_dependent_default_transport_maps</a> ($<a href="postconf.5.html#sender_dependent_default_transport_maps">sender_depen</a>-</b>
|
||||
<b><a href="postconf.5.html#sender_dependent_default_transport_maps">dent_default_transport_maps</a>)</b>
|
||||
Overrides the <a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport_maps</a> parameter
|
||||
setting for address verification probes.
|
||||
|
||||
@ -166,12 +166,12 @@ VERIFY(8) VERIFY(8)
|
||||
Preliminary SMTPUTF8 support is introduced with Postfix 2.12.
|
||||
|
||||
<b><a href="postconf.5.html#smtputf8_autodetect_classes">smtputf8_autodetect_classes</a> (sendmail, verify)</b>
|
||||
Detect that a message requires SMTPUTF8 support for the speci‐
|
||||
Detect that a message requires SMTPUTF8 support for the speci-
|
||||
fied mail origin classes.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con‐
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||
figuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
@ -196,7 +196,7 @@ VERIFY(8) VERIFY(8)
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post‐
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -11,6 +11,10 @@ format of Postfix PCRE tables
|
||||
\fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
|
||||
|
||||
\fBpostmap -q - pcre:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
|
||||
|
||||
\fBpostmap -hmq - pcre:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
|
||||
|
||||
\fBpostmap -bmq - pcre:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
@ -26,8 +30,11 @@ corresponding result is returned and the search is terminated.
|
||||
To find out what types of lookup tables your Postfix system
|
||||
supports use the "\fBpostconf -m\fR" command.
|
||||
|
||||
To test lookup tables, use the "\fBpostmap -q\fR" command as
|
||||
described in the SYNOPSIS above.
|
||||
To test lookup tables, use the "\fBpostmap -q\fR" command
|
||||
as described in the SYNOPSIS above. Use "\fBpostmap -hmq
|
||||
-\fR <\fIfile\fR" for header_checks(5) patterns, and
|
||||
"\fBpostmap -bmq -\fR <\fIfile\fR" for body_checks(5)
|
||||
(Postfix 2.6 and later).
|
||||
.SH "COMPATIBILITY"
|
||||
.na
|
||||
.nf
|
||||
|
@ -27,7 +27,10 @@ To find out what types of lookup tables your Postfix system
|
||||
supports use the "\fBpostconf -m\fR" command.
|
||||
|
||||
To test lookup tables, use the "\fBpostmap -q\fR" command
|
||||
as described in the SYNOPSIS above.
|
||||
as described in the SYNOPSIS above. Use "\fBpostmap -hmq
|
||||
-\fR <\fIfile\fR" for header_checks(5) patterns, and
|
||||
"\fBpostmap -bmq -\fR <\fIfile\fR" for body_checks(5)
|
||||
(Postfix 2.6 and later).
|
||||
.SH "COMPATIBILITY"
|
||||
.na
|
||||
.nf
|
||||
|
@ -285,9 +285,8 @@ applications (not "postfix", not "www", etc.). </p>
|
||||
<h2><a name="config">Configuring Postfix</a></h2>
|
||||
|
||||
<p> Like Sendmail, Postfix has a lot of configuration options that
|
||||
control how it talks to Milter applications. With the initial Postfix
|
||||
Milter protocol implementation, many options are global, that is,
|
||||
they apply to all Milter applications. Future Postfix versions may
|
||||
control how it talks to Milter applications. Besides global options
|
||||
that apply to all Milter applications, Postfix 2.12 and later
|
||||
support per-Milter timeouts, per-Milter error handling, etc. </p>
|
||||
|
||||
<p> Information in this section: </p>
|
||||
@ -304,6 +303,9 @@ support per-Milter timeouts, per-Milter error handling, etc. </p>
|
||||
|
||||
<li><a href="#timeouts">Milter protocol timeouts</a>
|
||||
|
||||
<li><a href="#per-milter">Different settings for different Milter
|
||||
applications </a>
|
||||
|
||||
<li><a href="#macros">Sendmail macro emulation</a>
|
||||
|
||||
</ul>
|
||||
@ -449,6 +451,9 @@ in the "hold" queue, and is available with Postfix 2.6 or later.
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> See "<a href="#per-milter">Different settings for different
|
||||
Milter applications</a>" for advanced configuration options. </p>
|
||||
|
||||
<h3><a name="version">Milter protocol version</a></h3>
|
||||
|
||||
<p> As Postfix is not built with the Sendmail libmilter library,
|
||||
@ -499,6 +504,9 @@ number. Postfix 2.8 and later will automatically turn off protocol
|
||||
features that the application's libmilter library does not expect.
|
||||
</p>
|
||||
|
||||
<p> See "<a href="#per-milter">Different settings for different
|
||||
Milter applications</a>" for advanced configuration options. </p>
|
||||
|
||||
<h3><a name="timeouts">Milter protocol timeouts</a></h3>
|
||||
|
||||
<p> Postfix uses different time limits at different Milter protocol
|
||||
@ -532,6 +540,52 @@ too much, remote SMTP clients may hang up and mail may be delivered
|
||||
multiple times. This is an inherent problem with before-queue
|
||||
filtering. </p>
|
||||
|
||||
<p> See "<a href="#per-milter">Different settings for different
|
||||
Milter applications</a>" for advanced configuration options. </p>
|
||||
|
||||
<h3><a name="per-milter">Different settings for different Milter
|
||||
applications </a></h3>
|
||||
|
||||
<p> The previous sections list a number of Postfix main.cf parameters
|
||||
that control time limits and other settings for all Postfix Milter
|
||||
clients. This is sufficient for simple configurations. With more
|
||||
complex configurations it becomes desirable to have different
|
||||
settings for different Milter clients. This is supported with Postfix
|
||||
2.12 and later. </p>
|
||||
|
||||
<p> The following example shows a "non-critical" Milter client with
|
||||
a short connect timeout, and with "accept" as default action when
|
||||
the service is unvailable. </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_milters = { inet:host:port,
|
||||
3 connect_timeout=10s, default_action=accept }
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Instead of a server endpoint, we now have a list enclosed in {}. </p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 2: The first item in the list is the server endpoint.
|
||||
This supports the exact same "inet" and "unix" syntax as described
|
||||
earlier. </p>
|
||||
|
||||
<li> <p> Line 3: The remainder of the list contains per-Milter
|
||||
settings. These settings override global main.cf parameters, and
|
||||
have the same name as those parameters, without the "milter_" prefix.
|
||||
</p>
|
||||
|
||||
</ul>
|
||||
|
||||
<p> Inside the list, syntax is similar to what we already know from
|
||||
main.cf: items separated by space or comma. There is one difference:
|
||||
<b>you must enclose a setting in parentheses, as in "{ name = value
|
||||
}", if you want to have space within a value or around "="</b>.
|
||||
</p>
|
||||
|
||||
<h3><a name="macros">Sendmail macro emulation</a></h3>
|
||||
|
||||
<p> Postfix emulates a limited number of Sendmail macros, as shown
|
||||
|
@ -102,7 +102,7 @@ AWK = awk '{ print; if (NR == 1) print ".pl 9999\n.ll 65" }'
|
||||
SRCTOMAN= ../mantools/srctoman
|
||||
POSTLINK= ../mantools/postlink
|
||||
DETAB = pr -tre
|
||||
NROFF = GROFF_NO_SGR=1 nroff
|
||||
NROFF = LANG=C GROFF_NO_SGR=1 nroff
|
||||
HT2READ = ../mantools/html2readme
|
||||
MAKEAAA = ../mantools/makereadme
|
||||
MAKESOHO= ../mantools/make_soho_readme
|
||||
|
@ -47,7 +47,9 @@ multiple times, for up to $max_use incoming SMTP connections. </p>
|
||||
|
||||
<li><a href="#protocol">Policy protocol description</a>
|
||||
|
||||
<li><a href="#client_config">Policy client/server configuration</a>
|
||||
<li><a href="#client_config">Simple policy client/server configuration</a>
|
||||
|
||||
<li><a href="#advanced">Advanced policy client configuration</a>
|
||||
|
||||
<li><a href="#greylist">Example: greylist policy server</a>
|
||||
|
||||
@ -229,7 +231,7 @@ the request permanently. </p>
|
||||
Instead the server must log a warning and disconnect. Postfix will
|
||||
retry the request at some later time. </p>
|
||||
|
||||
<h2><a name="client_config">Policy client/server configuration</a></h2>
|
||||
<h2><a name="client_config">Simple policy client/server configuration</a></h2>
|
||||
|
||||
<p> The Postfix delegated policy client can connect to a TCP socket
|
||||
or to a UNIX-domain socket. Examples: </p>
|
||||
@ -380,6 +382,67 @@ examples, the service name is "policy" or "127.0.0.1:9998". </p>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2><a name="advanced">Advanced policy client configuration</a></h2>
|
||||
|
||||
<p> The previous section lists a number of Postfix main.cf parameters
|
||||
that control time limits and other settings for all policy clients.
|
||||
This is sufficient for simple configurations. With more complex
|
||||
configurations it becomes desirable to have different settings per
|
||||
policy client. This is supported with Postfix 2.12 and later. </p>
|
||||
|
||||
<p> The following example shows a "non-critical" policy service
|
||||
with a short timeout, and with "DUNNO" as default action when the
|
||||
service is unvailable. The "DUNNO" action causes Postfix to ignore
|
||||
the result. </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_recipient_restrictions =
|
||||
3 ...
|
||||
4 reject_unauth_destination
|
||||
5 check_policy_service { inet:host:port,
|
||||
6 timeout=10s, default_action=DUNNO }
|
||||
8 ...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Instead of a server endpoint, we now have a list enclosed in {}. </p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 5: The first item in the list is the server endpoint.
|
||||
This supports the exact same "inet" and "unix" syntax as described
|
||||
earlier. </p>
|
||||
|
||||
<li> <p> Line 6: The remainder of the list contains per-client
|
||||
settings. These settings override global main.cf parameters,
|
||||
and have the same name as those parameters, without the
|
||||
"smtpd_policy_service_" prefix. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
<p> Inside the list, syntax is similar to what we already know from
|
||||
main.cf: items separated by space or comma. There is one difference:
|
||||
<b>you must enclose a setting in parentheses, as in "{ name = value
|
||||
}", if you want to have space within a value or around "="</b>.
|
||||
This comes in handy when different policy servers require different
|
||||
default actions with different SMTP status codes or text: </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_recipient_restrictions =
|
||||
3 ...
|
||||
4 reject_unauth_destination
|
||||
5 check_policy_service {
|
||||
6 inet:host:port1,
|
||||
7 { default_action = 451 4.3.5 See http://www.example.com/support1 }
|
||||
8 }
|
||||
9 ...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<h2><a name="greylist">Example: greylist policy server</a></h2>
|
||||
|
||||
<p> Greylisting is a defense against junk email that is described at
|
||||
|
@ -7,6 +7,10 @@
|
||||
# \fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
|
||||
#
|
||||
# \fBpostmap -q - pcre:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
|
||||
#
|
||||
# \fBpostmap -hmq - pcre:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
|
||||
#
|
||||
# \fBpostmap -bmq - pcre:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The Postfix mail system uses optional tables for address
|
||||
# rewriting, mail routing, or access control. These tables
|
||||
@ -20,9 +24,12 @@
|
||||
# To find out what types of lookup tables your Postfix system
|
||||
# supports use the "\fBpostconf -m\fR" command.
|
||||
#
|
||||
# To test lookup tables, use the "\fBpostmap -q\fR" command as
|
||||
# described in the SYNOPSIS above.
|
||||
# COMPATIBILITY
|
||||
# To test lookup tables, use the "\fBpostmap -q\fR" command
|
||||
# as described in the SYNOPSIS above. Use "\fBpostmap -hmq
|
||||
# -\fR <\fIfile\fR" for header_checks(5) patterns, and
|
||||
# "\fBpostmap -bmq -\fR <\fIfile\fR" for body_checks(5)
|
||||
# (Postfix 2.6 and later).
|
||||
# COMPATIBILITY
|
||||
# .ad
|
||||
# .fi
|
||||
# With Postfix version 2.2 and earlier specify "\fBpostmap
|
||||
|
@ -21,7 +21,10 @@
|
||||
# supports use the "\fBpostconf -m\fR" command.
|
||||
#
|
||||
# To test lookup tables, use the "\fBpostmap -q\fR" command
|
||||
# as described in the SYNOPSIS above.
|
||||
# as described in the SYNOPSIS above. Use "\fBpostmap -hmq
|
||||
# -\fR <\fIfile\fR" for header_checks(5) patterns, and
|
||||
# "\fBpostmap -bmq -\fR <\fIfile\fR" for body_checks(5)
|
||||
# (Postfix 2.6 and later).
|
||||
# COMPATIBILITY
|
||||
# .ad
|
||||
# .fi
|
||||
|
@ -33,7 +33,7 @@ SRCS = abounce.c anvil_clnt.c been_here.c bounce.c bounce_log.c \
|
||||
smtp_reply_footer.c safe_ultostr.c verify_sender_addr.c \
|
||||
dict_memcache.c mail_version.c memcache_proto.c server_acl.c \
|
||||
mkmap_fail.c haproxy_srvr.c dsn_filter.c dynamicmaps.c uxtext.c \
|
||||
smtputf8.c
|
||||
smtputf8.c mail_conf_over.c
|
||||
OBJS = abounce.o anvil_clnt.o been_here.o bounce.o bounce_log.o \
|
||||
canon_addr.o cfg_parser.o cleanup_strerror.o cleanup_strflags.o \
|
||||
clnt_stream.o conv_time.o db_common.o debug_peer.o debug_process.o \
|
||||
@ -68,7 +68,7 @@ OBJS = abounce.o anvil_clnt.o been_here.o bounce.o bounce_log.o \
|
||||
smtp_reply_footer.o safe_ultostr.o verify_sender_addr.o \
|
||||
dict_memcache.o mail_version.o memcache_proto.o server_acl.o \
|
||||
mkmap_fail.o haproxy_srvr.o dsn_filter.o dynamicmaps.o uxtext.o \
|
||||
smtputf8.o $(NON_PLUGIN_MAP_OBJ)
|
||||
smtputf8.o attr_override.o $(NON_PLUGIN_MAP_OBJ)
|
||||
# MAP_OBJ is for maps that may be dynamically loaded with dynamicmaps.cf.
|
||||
# When hard-linking these maps, makedefs sets NON_PLUGIN_MAP_OBJ=$(MAP_OBJ),
|
||||
# otherwise it sets the PLUGIN_* macros.
|
||||
@ -100,7 +100,8 @@ HDRS = abounce.h anvil_clnt.h been_here.h bounce.h bounce_log.h \
|
||||
fold_addr.h header_body_checks.h data_redirect.h match_service.h \
|
||||
addr_match_list.h smtp_reply_footer.h safe_ultostr.h \
|
||||
verify_sender_addr.h dict_memcache.h memcache_proto.h server_acl.h \
|
||||
haproxy_srvr.h dsn_filter.h dynamicmaps.h uxtext.h smtputf8.h
|
||||
haproxy_srvr.h dsn_filter.h dynamicmaps.h uxtext.h smtputf8.h \
|
||||
attr_override.h
|
||||
TESTSRC = rec2stream.c stream2rec.c recdump.c
|
||||
DEFS = -I. -I$(INC_DIR) -D$(SYSTYPE)
|
||||
CFLAGS = $(DEBUG) $(OPT) $(DEFS)
|
||||
@ -693,6 +694,15 @@ anvil_clnt.o: anvil_clnt.c
|
||||
anvil_clnt.o: anvil_clnt.h
|
||||
anvil_clnt.o: mail_params.h
|
||||
anvil_clnt.o: mail_proto.h
|
||||
attr_override.o: ../../include/msg.h
|
||||
attr_override.o: ../../include/stringops.h
|
||||
attr_override.o: ../../include/sys_defs.h
|
||||
attr_override.o: ../../include/vbuf.h
|
||||
attr_override.o: ../../include/vstring.h
|
||||
attr_override.o: attr_override.c
|
||||
attr_override.o: attr_override.h
|
||||
attr_override.o: conv_time.h
|
||||
attr_override.o: mail_conf.h
|
||||
been_here.o: ../../include/htable.h
|
||||
been_here.o: ../../include/msg.h
|
||||
been_here.o: ../../include/mymalloc.h
|
||||
|
205
postfix/src/global/attr_override.c
Normal file
205
postfix/src/global/attr_override.c
Normal file
@ -0,0 +1,205 @@
|
||||
/*++
|
||||
/* NAME
|
||||
/* attr_override 3
|
||||
/* SUMMARY
|
||||
/* apply name=value settings from string
|
||||
/* SYNOPSIS
|
||||
/* #include <attr_override.h>
|
||||
/*
|
||||
/* void attr_override(bp, delimiters, parens, ... ATTR_OVER_END);
|
||||
/* char *bp;
|
||||
/* const char *delimiters;
|
||||
/* const char *parens;
|
||||
/* DESCRIPTION
|
||||
/* This routine updates the values of known in-memory variables
|
||||
/* based on the name=value specifications from an input string.
|
||||
/* The input format supports parentheses around name=value to
|
||||
/* allow whitespace around "=" and within values.
|
||||
/*
|
||||
/* This may be used, for example, with client endpoint
|
||||
/* specifications or with policy tables to allow selective
|
||||
/* overrides of global main.cf parameter settings (timeouts,
|
||||
/* fall-back policies, etc.).
|
||||
/*
|
||||
/* Arguments:
|
||||
/* .IP bp
|
||||
/* Pointer to input string. The input is modified.
|
||||
/* .IP "delimiters, parens"
|
||||
/* See mystrtok(3) for description. Typical values are
|
||||
/* ", \\t\\r\\n" and "{}", respectively.
|
||||
/* .PP
|
||||
/* The parens argument is followed by a list of (key, value,
|
||||
/* value) argument triples. Each key may appear only once.
|
||||
/* The list must be terminated with ATTR_OVER_END. The following
|
||||
/* describes the keys and the expected values.
|
||||
/* .IP "ATTR_OVER_STR_TABLE, const ATTR_OVER_STR *, CONST_CHAR_STAR *"
|
||||
/* The second argument specifies a null-terminated table with
|
||||
/* attribute names and their range limits which should be the
|
||||
/* same as for the corresponding main.cf parameters. The
|
||||
/* third argument specifies a parallel table with assignment
|
||||
/* targets. The result strings are NOT copied.
|
||||
/* .IP "ATTR_OVER_TIME_TABLE, const ATTR_OVER_TIME *, int *"
|
||||
/* The second argument specifies a null-terminated table with
|
||||
/* attribute names, their default time units (leading digits
|
||||
/* are skipped), and their range limits which should be the
|
||||
/* same as for the corresponding main.cf parameters. The
|
||||
/* third argument specifies a parallel table with assignment
|
||||
/* targets.
|
||||
/* .IP "ATTR_OVER_INT_TABLE, const ATTR_OVER_INT *, int *"
|
||||
/* The second argument specifies a null-terminated table with
|
||||
/* attribute names and their range limits which should be the
|
||||
/* same as for the corresponding main.cf parameters. The
|
||||
/* third argument specifies a parallel table with assignment
|
||||
/* targets.
|
||||
/* BUGS
|
||||
/* Parallel tables may be inelegant, but the alternative (static
|
||||
/* allocation of target variables) is worse.
|
||||
/* SEE ALSO
|
||||
/* mystrtok(3), safe tokenizer
|
||||
/* extpar(3), extract text from parentheses
|
||||
/* split_nameval(3), name-value splitter
|
||||
/* DIAGNOSTICS
|
||||
/* Panic: interface violations.
|
||||
/*
|
||||
/* Fatal errors: memory allocation problem, syntax error,
|
||||
/* out-of-range error.
|
||||
/* LICENSE
|
||||
/* .ad
|
||||
/* .fi
|
||||
/* The Secure Mailer license must be distributed with this software.
|
||||
/* AUTHOR(S)
|
||||
/* Wietse Venema
|
||||
/* IBM T.J. Watson Research
|
||||
/* P.O. Box 704
|
||||
/* Yorktown Heights, NY 10598, USA
|
||||
/*--*/
|
||||
|
||||
/*
|
||||
* System library.
|
||||
*/
|
||||
#include <sys_defs.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h> /* strtol() */
|
||||
|
||||
/*
|
||||
* Utility library.
|
||||
*/
|
||||
#include <msg.h>
|
||||
#include <stringops.h>
|
||||
|
||||
/*
|
||||
* Global library.
|
||||
*/
|
||||
#include <mail_conf.h>
|
||||
#include <conv_time.h>
|
||||
#include <attr_override.h>
|
||||
|
||||
/* attr_override - apply settings from list of attribute=value pairs */
|
||||
|
||||
void attr_override(char *cp, const char *sep, const char *parens,...)
|
||||
{
|
||||
const char myname[] = "attr_override";
|
||||
va_list ap;
|
||||
int idx;
|
||||
char *nameval;
|
||||
const ATTR_OVER_INT *int_table = 0;
|
||||
const ATTR_OVER_STR *str_table = 0;
|
||||
const ATTR_OVER_TIME *time_table = 0;
|
||||
int *int_tgts = 0;
|
||||
CONST_CHAR_STAR *str_tgts = 0;
|
||||
int *time_tgts = 0;
|
||||
|
||||
/*
|
||||
* Get the lookup tables and assignment targets.
|
||||
*/
|
||||
va_start(ap, parens);
|
||||
while ((idx = va_arg(ap, int)) != 0) {
|
||||
switch (idx) {
|
||||
case ATTR_OVER_INT_TABLE:
|
||||
if (int_table)
|
||||
msg_panic("%s: multiple ATTR_OVER_INT_TABLE", myname);
|
||||
int_table = va_arg(ap, const ATTR_OVER_INT *);
|
||||
int_tgts = va_arg(ap, int *);
|
||||
break;
|
||||
case ATTR_OVER_STR_TABLE:
|
||||
if (str_table)
|
||||
msg_panic("%s: multiple ATTR_OVER_STR_TABLE", myname);
|
||||
str_table = va_arg(ap, const ATTR_OVER_STR *);
|
||||
str_tgts = va_arg(ap, CONST_CHAR_STAR *);
|
||||
break;
|
||||
case ATTR_OVER_TIME_TABLE:
|
||||
if (time_table)
|
||||
msg_panic("%s: multiple ATTR_OVER_TIME_TABLE", myname);
|
||||
time_table = va_arg(ap, const ATTR_OVER_TIME *);
|
||||
time_tgts = va_arg(ap, int *);
|
||||
break;
|
||||
default:
|
||||
msg_panic("%s: unknown argument type: %d", myname, idx);
|
||||
}
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
/*
|
||||
* Process each attribute=value override in the input string.
|
||||
*/
|
||||
while ((nameval = mystrtokq(&cp, sep, parens)) != 0) {
|
||||
int found = 0;
|
||||
char *key;
|
||||
char *value;
|
||||
const char *err;
|
||||
const ATTR_OVER_INT *ip;
|
||||
const ATTR_OVER_STR *sp;
|
||||
const ATTR_OVER_TIME *tp;
|
||||
int int_val;
|
||||
int def_unit;
|
||||
char *end;
|
||||
long longval;
|
||||
|
||||
/*
|
||||
* Split into name and value.
|
||||
*/
|
||||
/* { name = value } */
|
||||
if (*nameval == parens[0]
|
||||
&& (err = extpar(&nameval, parens, EXPAR_FLAG_NONE)) != 0)
|
||||
msg_fatal("%s in \"%s\"", err, nameval);
|
||||
if ((err = split_nameval(nameval, &key, &value)) != 0)
|
||||
msg_fatal("malformed option: %s: \"...%s...\"", err, nameval);
|
||||
|
||||
/*
|
||||
* Look up the name and apply the value.
|
||||
*/
|
||||
for (sp = str_table; sp != 0 && found == 0 && sp->name != 0; sp++) {
|
||||
if (strcmp(sp->name, key) != 0)
|
||||
continue;
|
||||
check_mail_conf_str(sp->name, value, sp->min, sp->max);
|
||||
str_tgts[sp - str_table] = value;
|
||||
found = 1;
|
||||
}
|
||||
for (ip = int_table; ip != 0 && found == 0 && ip->name != 0; ip++) {
|
||||
if (strcmp(ip->name, key) != 0)
|
||||
continue;
|
||||
/* XXX Duplicated from mail_conf_int(3). */
|
||||
errno = 0;
|
||||
int_val = longval = strtol(value, &end, 10);
|
||||
if (*value == 0 || *end != 0 || errno == ERANGE
|
||||
|| longval != int_val)
|
||||
msg_fatal("bad numerical configuration: %s = %s", key, value);
|
||||
check_mail_conf_int(key, int_val, ip->min, ip->max);
|
||||
int_tgts[ip - int_table] = int_val;
|
||||
found = 1;
|
||||
}
|
||||
for (tp = time_table; tp != 0 && found == 0 && tp->name != 0; tp++) {
|
||||
if (strcmp(tp->name, key) != 0)
|
||||
continue;
|
||||
def_unit = tp->defval[strspn(tp->defval, "0123456789")];
|
||||
if (conv_time(value, &int_val, def_unit) == 0)
|
||||
msg_fatal("%s: bad time value or unit: %s", key, value);
|
||||
check_mail_conf_time(key, int_val, tp->min, tp->max);
|
||||
time_tgts[tp - time_table] = int_val;
|
||||
found = 1;
|
||||
}
|
||||
if (found == 0)
|
||||
msg_fatal("unknown option: \"%s = %s\"", key, value);
|
||||
}
|
||||
}
|
56
postfix/src/global/attr_override.h
Normal file
56
postfix/src/global/attr_override.h
Normal file
@ -0,0 +1,56 @@
|
||||
#ifndef _ATTR_OVERRIDE_H_INCLUDED_
|
||||
#define _ATTR_OVERRIDE_H_INCLUDED_
|
||||
|
||||
/*++
|
||||
/* NAME
|
||||
/* attr_override 3h
|
||||
/* SUMMARY
|
||||
/* apply name=value settings from string
|
||||
/* SYNOPSIS
|
||||
/* #include <attr_override.h>
|
||||
/* DESCRIPTION
|
||||
/* .nf
|
||||
|
||||
/*
|
||||
* External interface.
|
||||
*/
|
||||
extern void attr_override(char *, const char *, const char *,...);
|
||||
|
||||
typedef const char *CONST_CHAR_STAR;
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
int min;
|
||||
int max;
|
||||
} ATTR_OVER_STR;
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
const char *defval;
|
||||
int min;
|
||||
int max;
|
||||
} ATTR_OVER_TIME;
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
int min;
|
||||
int max;
|
||||
} ATTR_OVER_INT;
|
||||
|
||||
#define ATTR_OVER_END 0
|
||||
#define ATTR_OVER_STR_TABLE 1
|
||||
#define ATTR_OVER_TIME_TABLE 2
|
||||
#define ATTR_OVER_INT_TABLE 3
|
||||
|
||||
/* LICENSE
|
||||
/* .ad
|
||||
/* .fi
|
||||
/* The Secure Mailer license must be distributed with this software.
|
||||
/* AUTHOR(S)
|
||||
/* Wietse Venema
|
||||
/* IBM T.J. Watson Research
|
||||
/* P.O. Box 704
|
||||
/* Yorktown Heights, NY 10598, USA
|
||||
/*--*/
|
||||
|
||||
#endif
|
@ -60,6 +60,9 @@ extern int get_mail_conf_int2(const char *, const char *, int, int, int);
|
||||
extern long get_mail_conf_long2(const char *, const char *, long, long, long);
|
||||
extern int get_mail_conf_time2(const char *, const char *, int, int, int, int);
|
||||
extern int get_mail_conf_nint2(const char *, const char *, int, int, int);
|
||||
extern void check_mail_conf_str(const char *, const char *, int, int);
|
||||
extern void check_mail_conf_time(const char *, int, int, int);
|
||||
extern void check_mail_conf_int(const char *, int, int, int);
|
||||
|
||||
/*
|
||||
* Lookup with function-call defaults.
|
||||
|
@ -34,6 +34,12 @@
|
||||
/* int defval;
|
||||
/* int min;
|
||||
/* int max;
|
||||
/*
|
||||
/* void check_mail_conf_int(name, intval, min, max)
|
||||
/* const char *name;
|
||||
/* int intval;
|
||||
/* int min;
|
||||
/* int max;
|
||||
/* DESCRIPTION
|
||||
/* This module implements configuration parameter support
|
||||
/* for integer values.
|
||||
@ -59,6 +65,9 @@
|
||||
/*
|
||||
/* get_mail_conf_int2() concatenates the two names and is otherwise
|
||||
/* identical to get_mail_conf_int().
|
||||
/*
|
||||
/* check_mail_conf_int() exits with a fatal run-time error
|
||||
/* when the integer value does not meet its requirements.
|
||||
/* DIAGNOSTICS
|
||||
/* Fatal errors: malformed numerical value.
|
||||
/* SEE ALSO
|
||||
@ -113,7 +122,7 @@ static int convert_mail_conf_int(const char *name, int *intval)
|
||||
|
||||
/* check_mail_conf_int - validate integer value */
|
||||
|
||||
static void check_mail_conf_int(const char *name, int intval, int min, int max)
|
||||
void check_mail_conf_int(const char *name, int intval, int min, int max)
|
||||
{
|
||||
if (min && intval < min)
|
||||
msg_fatal("invalid %s parameter value %d < %d", name, intval, min);
|
||||
|
@ -34,6 +34,12 @@
|
||||
/* const char *defval;
|
||||
/* int min;
|
||||
/* int max;
|
||||
/*
|
||||
/* void check_mail_conf_str(name, strval, min, max)
|
||||
/* const char *name;
|
||||
/* const char *strval;
|
||||
/* int min;
|
||||
/* int max;
|
||||
/* DESCRIPTION
|
||||
/* This module implements support for string-valued global
|
||||
/* configuration parameters.
|
||||
@ -59,6 +65,9 @@
|
||||
/*
|
||||
/* get_mail_conf_str2() concatenates the two names and is otherwise
|
||||
/* identical to get_mail_conf_str().
|
||||
/*
|
||||
/* check_mail_conf_str() exits with a fatal run-time error
|
||||
/* when the string does not meet its length requirements.
|
||||
/* DIAGNOSTICS
|
||||
/* Fatal errors: bad string length.
|
||||
/* SEE ALSO
|
||||
@ -92,8 +101,8 @@
|
||||
|
||||
/* check_mail_conf_str - validate string length */
|
||||
|
||||
static void check_mail_conf_str(const char *name, const char *strval,
|
||||
int min, int max)
|
||||
void check_mail_conf_str(const char *name, const char *strval,
|
||||
int min, int max)
|
||||
{
|
||||
ssize_t len = strlen(strval);
|
||||
|
||||
|
@ -30,6 +30,12 @@
|
||||
/* int def_unit;
|
||||
/* int min;
|
||||
/* int max;
|
||||
/*
|
||||
/* void check_mail_conf_time(name, intval, min, max)
|
||||
/* const char *name;
|
||||
/* int intval;
|
||||
/* int min;
|
||||
/* int max;
|
||||
/* DESCRIPTION
|
||||
/* This module implements configuration parameter support
|
||||
/* for time interval values. The conversion routines understand
|
||||
@ -52,6 +58,9 @@
|
||||
/* get_mail_conf_time_table() and get_mail_conf_time_fn_table() initialize
|
||||
/* lists of variables, as directed by their table arguments. A table
|
||||
/* must be terminated by a null entry.
|
||||
/*
|
||||
/* check_mail_conf_time() terminates the program with a fatal
|
||||
/* runtime error when the time does not meet its requirements.
|
||||
/* DIAGNOSTICS
|
||||
/* Fatal errors: malformed numerical value, unknown time unit.
|
||||
/* BUGS
|
||||
@ -105,7 +114,7 @@ static int convert_mail_conf_time(const char *name, int *intval, int def_unit)
|
||||
|
||||
/* check_mail_conf_time - validate integer value */
|
||||
|
||||
static void check_mail_conf_time(const char *name, int intval, int min, int max)
|
||||
void check_mail_conf_time(const char *name, int intval, int min, int max)
|
||||
{
|
||||
if (min && intval < min)
|
||||
msg_fatal("invalid %s: %d (min %d)", name, intval, min);
|
||||
@ -151,7 +160,7 @@ int get_mail_conf_time(const char *name, const char *defval, int min, int ma
|
||||
/* get_mail_conf_time2 - evaluate integer-valued configuration variable */
|
||||
|
||||
int get_mail_conf_time2(const char *name1, const char *name2,
|
||||
int defval, int def_unit, int min, int max)
|
||||
int defval, int def_unit, int min, int max)
|
||||
{
|
||||
int intval;
|
||||
char *name;
|
||||
@ -179,7 +188,7 @@ void set_mail_conf_time_int(const char *name, int value)
|
||||
{
|
||||
char buf[BUFSIZ]; /* yeah! crappy code! */
|
||||
|
||||
sprintf(buf, "%ds", value); /* yeah! more crappy code! */
|
||||
sprintf(buf, "%ds", value); /* yeah! more crappy code! */
|
||||
mail_conf_update(name, buf);
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||
* patchlevel; they change the release date only.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20140924"
|
||||
#define MAIL_RELEASE_DATE "20140928"
|
||||
#define MAIL_VERSION_NUMBER "2.12"
|
||||
|
||||
#ifdef SNAPSHOT
|
||||
|
@ -259,6 +259,7 @@ MASTER_SERV *get_master_ent()
|
||||
char *atmp;
|
||||
const char *parse_err;
|
||||
static char *saved_interfaces = 0;
|
||||
char *err;
|
||||
|
||||
if (master_fp == 0)
|
||||
msg_panic("get_master_ent: config file not open");
|
||||
@ -551,8 +552,12 @@ MASTER_SERV *get_master_ent()
|
||||
argv_add(serv->args, "-s",
|
||||
vstring_str(vstring_sprintf(junk, "%d", serv->listen_fd_count)),
|
||||
(char *) 0);
|
||||
while ((cp = mystrtok(&bufp, master_blanks)) != 0)
|
||||
while ((cp = mystrtokq(&bufp, master_blanks, "{}")) != 0) {
|
||||
if (*cp == '{' && (err = extpar(&cp, "{}", EXPAR_FLAG_STRIP)) != 0)
|
||||
msg_fatal("%s: line %d: %s",
|
||||
VSTREAM_PATH(master_fp), master_line, err);
|
||||
argv_add(serv->args, cp, (char *) 0);
|
||||
}
|
||||
argv_terminate(serv->args);
|
||||
|
||||
/*
|
||||
|
@ -83,6 +83,8 @@ depend: $(MAKES)
|
||||
milter.o: ../../include/argv.h
|
||||
milter.o: ../../include/attr.h
|
||||
milter.o: ../../include/iostuff.h
|
||||
milter.o: ../../include/mail_conf.h
|
||||
milter.o: ../../include/mail_params.h
|
||||
milter.o: ../../include/mail_proto.h
|
||||
milter.o: ../../include/msg.h
|
||||
milter.o: ../../include/mymalloc.h
|
||||
|
@ -244,6 +244,8 @@
|
||||
#include <mail_proto.h>
|
||||
#include <record.h>
|
||||
#include <rec_type.h>
|
||||
#include <mail_params.h>
|
||||
#include <attr_override.h>
|
||||
|
||||
/* Postfix Milter library. */
|
||||
|
||||
@ -532,6 +534,33 @@ void milter_disc_event(MILTERS *milters)
|
||||
m->disc_event(m);
|
||||
}
|
||||
|
||||
/*
|
||||
* Table-driven parsing of main.cf parameter overrides for specific Milters.
|
||||
* We derive the override names from the corresponding main.cf parameter
|
||||
* names by skipping the redundant "milter_" prefix.
|
||||
*
|
||||
* To avoid ugly static allocation of assignment targets, we use stack-based
|
||||
* parallel arrays which is less inelegant.
|
||||
*/
|
||||
static const ATTR_OVER_TIME time_table[] = {
|
||||
7 + VAR_MILT_CONN_TIME, DEF_MILT_CONN_TIME, 1, 0,
|
||||
7 + VAR_MILT_CMD_TIME, DEF_MILT_CMD_TIME, 1, 0,
|
||||
7 + VAR_MILT_MSG_TIME, DEF_MILT_MSG_TIME, 1, 0,
|
||||
0,
|
||||
};
|
||||
static const ATTR_OVER_STR str_table[] = {
|
||||
7 + VAR_MILT_PROTOCOL, 1, 0,
|
||||
7 + VAR_MILT_DEF_ACTION, 1, 0,
|
||||
0,
|
||||
};
|
||||
|
||||
#define conn_timeout_override time_tgts[0]
|
||||
#define cmd_timeout_override time_tgts[1]
|
||||
#define msg_timeout_override time_tgts[2]
|
||||
|
||||
#define protocol_override str_tgts[0]
|
||||
#define action_override str_tgts[1]
|
||||
|
||||
/* milter_new - create milter list */
|
||||
|
||||
MILTERS *milter_new(const char *names,
|
||||
@ -548,19 +577,53 @@ MILTERS *milter_new(const char *names,
|
||||
char *name;
|
||||
MILTER *milter;
|
||||
const char *sep = ", \t\r\n";
|
||||
const char *parens = "{}";
|
||||
int time_tgts[sizeof(time_table) / sizeof(time_table[0])];
|
||||
const char *str_tgts[sizeof(str_table) / sizeof(str_table[0])];
|
||||
|
||||
/*
|
||||
* Parse the milter list.
|
||||
*/
|
||||
milters = (MILTERS *) mymalloc(sizeof(*milters));
|
||||
if (names != 0) {
|
||||
if (names != 0 && *names != 0) {
|
||||
char *saved_names = mystrdup(names);
|
||||
char *cp = saved_names;
|
||||
char *name_override;
|
||||
char *op;
|
||||
char *err;
|
||||
|
||||
while ((name = mystrtok(&cp, sep)) != 0) {
|
||||
milter = milter8_create(name, conn_timeout, cmd_timeout,
|
||||
msg_timeout, protocol, def_action,
|
||||
milters);
|
||||
/*
|
||||
* Instantiate Milters, allowing for per-Milter overrides.
|
||||
*/
|
||||
while ((name = mystrtokq(&cp, sep, parens)) != 0) {
|
||||
if (name[0] == '{') { /* } */
|
||||
op = name;
|
||||
if ((err = extpar(&op, parens, EXPAR_FLAG_NONE)) != 0)
|
||||
msg_fatal("milter service syntax error: %s", err);
|
||||
if ((name_override = mystrtok(&op, sep)) == 0) {
|
||||
msg_fatal("empty milter definition: \"%s\"", name);
|
||||
} else {
|
||||
conn_timeout_override = conn_timeout;
|
||||
cmd_timeout_override = cmd_timeout;
|
||||
msg_timeout_override = msg_timeout;
|
||||
protocol_override = protocol;
|
||||
action_override = def_action;
|
||||
attr_override(op, sep, parens,
|
||||
ATTR_OVER_STR_TABLE, str_table, str_tgts,
|
||||
ATTR_OVER_TIME_TABLE, time_table, time_tgts,
|
||||
0);
|
||||
milter = milter8_create(name_override,
|
||||
conn_timeout_override,
|
||||
cmd_timeout_override,
|
||||
msg_timeout_override,
|
||||
protocol_override,
|
||||
action_override, milters);
|
||||
}
|
||||
} else {
|
||||
milter = milter8_create(name, conn_timeout, cmd_timeout,
|
||||
msg_timeout, protocol, def_action,
|
||||
milters);
|
||||
}
|
||||
if (head == 0) {
|
||||
head = milter;
|
||||
} else {
|
||||
|
@ -2820,7 +2820,7 @@ static MILTER8 *milter8_alloc(const char *name, int conn_timeout,
|
||||
MILTER8 *milter;
|
||||
|
||||
/*
|
||||
* Fill in the structure.
|
||||
* Fill in the structure. Note: all strings must be copied.
|
||||
*/
|
||||
milter = (MILTER8 *) mymalloc(sizeof(*milter));
|
||||
milter->m.name = mystrdup(name);
|
||||
|
@ -49,7 +49,7 @@ tests: test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 \
|
||||
test22 test23 test24 test25 test26 test27 test28 test29 test30 test4b \
|
||||
test31 test32 test33 test34 test35 test36 test37 test39 test40 test41 \
|
||||
test42 test43 test44 test45 test46 test47 test48 test49 test50 test51 \
|
||||
test52 test53 test54 test55 test56 test57 test58
|
||||
test52 test53 test54 test55 test56 test57 test58 test59
|
||||
|
||||
root_tests:
|
||||
|
||||
@ -789,6 +789,22 @@ test58: $(PROG) test58.ref
|
||||
diff test58.ref test58.tmp
|
||||
rm -f main.cf master.cf test58.tmp
|
||||
|
||||
test59: $(PROG) test59.ref
|
||||
rm -f main.cf master.cf
|
||||
touch main.cf master.cf
|
||||
echo foo unix - n n - 0 other >> master.cf
|
||||
echo bar inet - n n 0 0 other >> master.cf
|
||||
echo " -o name1=value1" >> master.cf
|
||||
echo " -o { name2 = value2a value2b }" >> master.cf
|
||||
echo " { arg1a arg1b }" >> master.cf
|
||||
echo " { arg2a arg2b }x" >> master.cf
|
||||
echo " { arg3a arg3b " >> master.cf
|
||||
echo baz unix - n n 0 0 other >> master.cf
|
||||
touch -t 197101010000 main.cf
|
||||
$(SHLIB_ENV) ./$(PROG) -Mfc. >test59.tmp 2>&1 || true
|
||||
diff test59.ref test59.tmp
|
||||
rm -f main.cf master.cf test59.tmp
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include <mac_expand.h>
|
||||
#include <dict.h>
|
||||
#include <msg.h>
|
||||
#include <mymalloc.h>
|
||||
|
||||
/* Global library. */
|
||||
|
||||
@ -151,11 +152,11 @@ static void pcf_register_dbms_helper(char *str_value,
|
||||
PCF_MASTER_ENT *local_scope)
|
||||
{
|
||||
const PCF_DBMS_INFO *dp;
|
||||
size_t len;
|
||||
char *db_type;
|
||||
char *prefix;
|
||||
static VSTRING *candidate = 0;
|
||||
const char **cpp;
|
||||
char *err;
|
||||
|
||||
/*
|
||||
* Naive parsing. We don't really know if this substring specifies a
|
||||
@ -179,31 +180,19 @@ static void pcf_register_dbms_helper(char *str_value,
|
||||
* local or global namespace.
|
||||
*/
|
||||
if (prefix != 0 && *prefix != '/' && *prefix != '.') {
|
||||
if (*prefix == '{') {
|
||||
if ((len = balpar(prefix, "{}")) > 0) {
|
||||
if (prefix[len] != 0) {
|
||||
/* XXX Encapsulate this in pcf_warn() function. */
|
||||
if (local_scope)
|
||||
msg_warn("%s:%s: syntax error after '}' in \"%s:%s\"",
|
||||
MASTER_CONF_FILE, local_scope->name_space,
|
||||
db_type, prefix);
|
||||
else
|
||||
msg_warn("%s: syntax error after '}' in \"%s:%s\"",
|
||||
MAIN_CONF_FILE, db_type, prefix);
|
||||
}
|
||||
prefix[len - 1] = 0;
|
||||
pcf_register_dbms_helper(prefix + 1, flag_parameter,
|
||||
local_scope);
|
||||
} else {
|
||||
if (*prefix == '{') { /* } */
|
||||
if ((err = extpar(&prefix, "{}", EXPAR_FLAG_NONE)) != 0) {
|
||||
/* XXX Encapsulate this in pcf_warn() function. */
|
||||
if (local_scope)
|
||||
msg_warn("%s:%s: missing '}' in parameter value: \"%s:%s\"",
|
||||
msg_warn("%s:%s: %s",
|
||||
MASTER_CONF_FILE, local_scope->name_space,
|
||||
db_type, prefix);
|
||||
err);
|
||||
else
|
||||
msg_warn("%s: missing '}' in parameter value: \"%s:%s\"",
|
||||
MAIN_CONF_FILE, db_type, prefix);
|
||||
msg_warn("%s: %s", MAIN_CONF_FILE, err);
|
||||
myfree(err);
|
||||
}
|
||||
pcf_register_dbms_helper(prefix, flag_parameter,
|
||||
local_scope);
|
||||
} else {
|
||||
for (dp = pcf_dbms_info; dp->db_type != 0; dp++) {
|
||||
if (strcmp(db_type, dp->db_type) == 0) {
|
||||
|
@ -340,10 +340,12 @@ void pcf_edit_master(int mode, int argc, char **argv)
|
||||
if (mode & PCF_EDIT_CONF) {
|
||||
if ((err = split_nameval(cp, &pattern, &req->edit_value)) != 0)
|
||||
msg_fatal("%s: \"%s\"", err, req->raw_text);
|
||||
#if 0
|
||||
if ((mode & PCF_MASTER_PARAM)
|
||||
&& req->edit_value[strcspn(req->edit_value, PCF_MASTER_BLANKS)])
|
||||
msg_fatal("whitespace in parameter value: \"%s\"",
|
||||
req->raw_text);
|
||||
#endif
|
||||
} else if (mode & (PCF_COMMENT_OUT | PCF_EDIT_EXCL)) {
|
||||
if (strchr(cp, '=') != 0)
|
||||
msg_fatal("-X or -# requires names without value");
|
||||
|
@ -192,14 +192,48 @@ static const char pcf_valid_bool_types[] = "yn-";
|
||||
|
||||
#define STR(x) vstring_str(x)
|
||||
|
||||
/* pcf_normalize_options - bring options into canonical form */
|
||||
/* pcf_extract_field - extract text from {}, trim leading/trailing blanks */
|
||||
|
||||
static void pcf_normalize_options(ARGV *argv)
|
||||
static void pcf_extract_field(ARGV *argv, int field, const char *parens)
|
||||
{
|
||||
char *arg = argv->argv[field];
|
||||
char *err;
|
||||
|
||||
if ((err = extpar(&arg, parens, EXPAR_FLAG_STRIP)) != 0) {
|
||||
msg_warn("%s: %s", MASTER_CONF_FILE, err);
|
||||
myfree(err);
|
||||
}
|
||||
argv_replace_one(argv, field, arg);
|
||||
}
|
||||
|
||||
/* pcf_normalize_nameval - normalize name = value from inside {} */
|
||||
|
||||
static void pcf_normalize_nameval(ARGV *argv, int field)
|
||||
{
|
||||
char *arg = argv->argv[field];
|
||||
char *name;
|
||||
char *value;
|
||||
const char *err;
|
||||
char *normalized;
|
||||
|
||||
if ((err = split_nameval(arg, &name, &value)) != 0) {
|
||||
msg_warn("%s: %s: \"%s\"", MASTER_CONF_FILE, err, arg);
|
||||
} else {
|
||||
normalized = concatenate(name, "=", value, (char *) 0);
|
||||
argv_replace_one(argv, field, normalized);
|
||||
myfree(normalized);
|
||||
}
|
||||
}
|
||||
|
||||
/* pcf_normalize_daemon_args - bring daemon arguments into canonical form */
|
||||
|
||||
static void pcf_normalize_daemon_args(ARGV *argv)
|
||||
{
|
||||
int field;
|
||||
char *arg;
|
||||
char *cp;
|
||||
char *junk;
|
||||
int extract_field;
|
||||
|
||||
/*
|
||||
* Normalize options to simplify later processing.
|
||||
@ -227,11 +261,25 @@ static void pcf_normalize_options(ARGV *argv)
|
||||
argv_insert_one(argv, field + 1, arg + 2);
|
||||
arg[2] = 0; /* XXX argv_replace_one() */
|
||||
field += 1;
|
||||
extract_field = (argv->argv[field][0] == '{');
|
||||
} else if (argv->argv[field + 1] != 0) {
|
||||
/* Already in "-o" "name=value" form. */
|
||||
field += 1;
|
||||
extract_field = (argv->argv[field][0] == '{');
|
||||
} else
|
||||
extract_field = 0;
|
||||
/* Extract text inside {}, optionally convert to name=value. */
|
||||
if (extract_field) {
|
||||
pcf_extract_field(argv, field, "{}");
|
||||
if (argv->argv[field - 1][1] == 'o')
|
||||
pcf_normalize_nameval(argv, field);
|
||||
}
|
||||
}
|
||||
/* Normalize non-option arguments. */
|
||||
for ( /* void */ ; argv->argv[field] != 0; field++)
|
||||
/* Extract text inside {}. */
|
||||
if (argv->argv[field][0] == '{') /* } */
|
||||
pcf_extract_field(argv, field, "{}");
|
||||
}
|
||||
|
||||
/* pcf_fix_fatal - fix multiline text before release */
|
||||
@ -322,13 +370,13 @@ const char *pcf_parse_master_entry(PCF_MASTER_ENT *masterp, const char *buf)
|
||||
*
|
||||
* XXX Do per-field sanity checks.
|
||||
*/
|
||||
argv = argv_split(buf, PCF_MASTER_BLANKS);
|
||||
argv = argv_splitq(buf, PCF_MASTER_BLANKS, "{}");
|
||||
if (argv->argc < PCF_MASTER_MIN_FIELDS) {
|
||||
argv_free(argv); /* Coverity 201311 */
|
||||
return ("bad field count");
|
||||
}
|
||||
pcf_check_master_entry(argv, buf);
|
||||
pcf_normalize_options(argv);
|
||||
pcf_normalize_daemon_args(argv);
|
||||
masterp->name_space =
|
||||
concatenate(argv->argv[0], PCF_NAMESP_SEP_STR, argv->argv[1], (char *) 0);
|
||||
masterp->argv = argv;
|
||||
@ -407,6 +455,7 @@ void pcf_print_master_entry(VSTREAM *fp, int mode, PCF_MASTER_ENT *masterp)
|
||||
int line_len;
|
||||
int field;
|
||||
int in_daemon_options;
|
||||
int need_parens;
|
||||
static int column_goal[] = {
|
||||
0, /* service */
|
||||
11, /* type */
|
||||
@ -446,6 +495,7 @@ void pcf_print_master_entry(VSTREAM *fp, int mode, PCF_MASTER_ENT *masterp)
|
||||
for ( /* void */ ; (arg = argv[field]) != 0; field++) {
|
||||
arg_len = strlen(arg);
|
||||
aval = 0;
|
||||
need_parens = 0;
|
||||
if (in_daemon_options) {
|
||||
|
||||
/*
|
||||
@ -481,8 +531,12 @@ void pcf_print_master_entry(VSTREAM *fp, int mode, PCF_MASTER_ENT *masterp)
|
||||
/*
|
||||
* Keep option and value on the same line.
|
||||
*/
|
||||
arg_len += strlen(aval) + 1;
|
||||
arg_len += strlen(aval) + 3;
|
||||
if ((need_parens = aval[strcspn(aval, PCF_MASTER_BLANKS)]) != 0)
|
||||
arg_len += 2;
|
||||
}
|
||||
} else {
|
||||
need_parens = arg[strcspn(arg, PCF_MASTER_BLANKS)];
|
||||
}
|
||||
|
||||
/*
|
||||
@ -497,10 +551,18 @@ void pcf_print_master_entry(VSTREAM *fp, int mode, PCF_MASTER_ENT *masterp)
|
||||
line_len = PCF_INDENT_LEN;
|
||||
}
|
||||
}
|
||||
if (in_daemon_options == 0 && need_parens)
|
||||
ADD_TEXT("{", 1);
|
||||
ADD_TEXT(arg, strlen(arg));
|
||||
if (in_daemon_options == 0 && need_parens)
|
||||
ADD_TEXT("}", 1);
|
||||
if (aval) {
|
||||
ADD_SPACE;
|
||||
ADD_TEXT(" ", 1);
|
||||
if (need_parens)
|
||||
ADD_TEXT("{", 1);
|
||||
ADD_TEXT(aval, strlen(aval));
|
||||
if (need_parens)
|
||||
ADD_TEXT("}", 1);
|
||||
field += 1;
|
||||
|
||||
/* Force line wrap after option with value. */
|
||||
@ -581,6 +643,7 @@ static void pcf_print_master_field(VSTREAM *fp, int mode,
|
||||
int arg_len;
|
||||
int line_len;
|
||||
int in_daemon_options;
|
||||
int need_parens;
|
||||
|
||||
/*
|
||||
* Show the field value, or the first value in the case of a multi-column
|
||||
@ -613,6 +676,7 @@ static void pcf_print_master_field(VSTREAM *fp, int mode,
|
||||
for (field += 1; (arg = argv[field]) != 0; field++) {
|
||||
arg_len = strlen(arg);
|
||||
aval = 0;
|
||||
need_parens = 0;
|
||||
if (in_daemon_options) {
|
||||
|
||||
/*
|
||||
@ -639,7 +703,11 @@ static void pcf_print_master_field(VSTREAM *fp, int mode,
|
||||
* Keep option and value on the same line.
|
||||
*/
|
||||
arg_len += strlen(aval) + 1;
|
||||
if ((need_parens = aval[strcspn(aval, PCF_MASTER_BLANKS)]) != 0)
|
||||
arg_len += 2;
|
||||
}
|
||||
} else {
|
||||
need_parens = arg[strcspn(arg, PCF_MASTER_BLANKS)];
|
||||
}
|
||||
|
||||
/*
|
||||
@ -654,10 +722,18 @@ static void pcf_print_master_field(VSTREAM *fp, int mode,
|
||||
line_len = PCF_INDENT_LEN;
|
||||
}
|
||||
}
|
||||
if (in_daemon_options == 0 && need_parens)
|
||||
ADD_TEXT("{", 1);
|
||||
ADD_TEXT(arg, strlen(arg));
|
||||
if (in_daemon_options == 0 && need_parens)
|
||||
ADD_TEXT("}", 1);
|
||||
if (aval) {
|
||||
ADD_SPACE;
|
||||
if (need_parens)
|
||||
ADD_TEXT("{", 1);
|
||||
ADD_TEXT(aval, strlen(aval));
|
||||
if (need_parens)
|
||||
ADD_TEXT("}", 1);
|
||||
field += 1;
|
||||
|
||||
/* Force line break after option with value. */
|
||||
@ -752,7 +828,8 @@ void pcf_edit_master_field(PCF_MASTER_ENT *masterp, int field,
|
||||
*/
|
||||
if (field == PCF_MASTER_FLD_CMD) {
|
||||
argv_truncate(masterp->argv, PCF_MASTER_FLD_CMD);
|
||||
argv_split_append(masterp->argv, new_value, PCF_MASTER_BLANKS);
|
||||
argv_splitq_append(masterp->argv, new_value, PCF_MASTER_BLANKS, "{}");
|
||||
pcf_normalize_daemon_args(masterp->argv);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -51,7 +51,10 @@ void pcf_set_config_dir(void)
|
||||
|
||||
if (var_config_dir)
|
||||
myfree(var_config_dir);
|
||||
var_config_dir = mystrdup((config_dir = safe_getenv(CONF_ENV_PATH)) != 0 ?
|
||||
config_dir : DEF_CONFIG_DIR); /* XXX */
|
||||
set_mail_conf_str(VAR_CONFIG_DIR, var_config_dir);
|
||||
if ((config_dir = safe_getenv(CONF_ENV_PATH)) != 0) {
|
||||
var_config_dir = mystrdup(config_dir);
|
||||
set_mail_conf_str(VAR_CONFIG_DIR, var_config_dir);
|
||||
} else {
|
||||
var_config_dir = mystrdup(DEF_CONFIG_DIR);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
./postconf: warning: main.cf: syntax error after '}' in "pipemap:{ldap:xxx, memcache:yy}x"
|
||||
./postconf: warning: main.cf: missing '}' in parameter value: "randmap:{xx"
|
||||
./postconf: warning: main.cf: syntax error after '}' in "{ldap:xxx, memcache:yy}x"
|
||||
./postconf: warning: main.cf: missing '}' in "{xx"
|
||||
config_directory = .
|
||||
mydestination = foo bar pipemap:{ldap:xxx, memcache:yy}x randmap:{xx
|
||||
xxx_domain = foo
|
||||
|
8
postfix/src/postconf/test59.ref
Normal file
8
postfix/src/postconf/test59.ref
Normal file
@ -0,0 +1,8 @@
|
||||
./postconf: warning: master.cf: syntax error after '}' in "{ arg2a arg2b }x"
|
||||
./postconf: warning: master.cf: missing '}' in "{ arg3a arg3b "
|
||||
foo unix - n n - 0 other
|
||||
bar inet - n n 0 0 other
|
||||
-o name1=value1
|
||||
-o {name2=value2a value2b}
|
||||
arg1a arg1b {arg2a arg2b} {arg3a arg3b}
|
||||
baz unix - n n 0 0 other
|
@ -278,6 +278,7 @@ smtpd_chat.o: smtpd_expand.h
|
||||
smtpd_check.o: ../../include/argv.h
|
||||
smtpd_check.o: ../../include/attr.h
|
||||
smtpd_check.o: ../../include/attr_clnt.h
|
||||
smtpd_check.o: ../../include/attr_override.h
|
||||
smtpd_check.o: ../../include/cleanup_user.h
|
||||
smtpd_check.o: ../../include/conv_time.h
|
||||
smtpd_check.o: ../../include/ctable.h
|
||||
|
@ -240,6 +240,7 @@
|
||||
#include <conv_time.h>
|
||||
#include <xtext.h>
|
||||
#include <smtp_stream.h>
|
||||
#include <attr_override.h>
|
||||
|
||||
/* Application-specific. */
|
||||
|
||||
@ -455,26 +456,124 @@ typedef struct {
|
||||
*/
|
||||
double smtpd_space_multf = 1.5;
|
||||
|
||||
/*
|
||||
* SMTPD policy client. Most attributes are ATTR_CLNT attributes.
|
||||
*/
|
||||
typedef struct {
|
||||
ATTR_CLNT *client; /* client handle */
|
||||
char *def_action; /* default action */
|
||||
} SMTPD_POLICY_CLNT;
|
||||
|
||||
/*
|
||||
* Table-driven parsing of main.cf parameter overrides for specific policy
|
||||
* clients. We derive the override names from the corresponding main.cf
|
||||
* parameter names by skipping the redundant "smtpd_policy_service_" prefix.
|
||||
*
|
||||
* To avoid ugly static allocation of assignment targets, we use stack-based
|
||||
* parallel arrays which is less inelegant.
|
||||
*/
|
||||
static const ATTR_OVER_TIME time_table[] = {
|
||||
21 + VAR_SMTPD_POLICY_TMOUT, DEF_SMTPD_POLICY_TMOUT, 1, 0,
|
||||
21 + VAR_SMTPD_POLICY_IDLE, DEF_SMTPD_POLICY_IDLE, 1, 0,
|
||||
21 + VAR_SMTPD_POLICY_TTL, DEF_SMTPD_POLICY_TTL, 1, 0,
|
||||
21 + VAR_SMTPD_POLICY_TRY_DELAY, DEF_SMTPD_POLICY_TRY_DELAY, 1, 0,
|
||||
0,
|
||||
};
|
||||
static const ATTR_OVER_INT int_table[] = {
|
||||
21 + VAR_SMTPD_POLICY_REQ_LIMIT, 0, 0,
|
||||
21 + VAR_SMTPD_POLICY_TRY_LIMIT, 1, 0,
|
||||
0,
|
||||
};
|
||||
static const ATTR_OVER_STR str_table[] = {
|
||||
21 + VAR_SMTPD_POLICY_DEF_ACTION, 1, 0,
|
||||
0,
|
||||
};
|
||||
|
||||
#define smtpd_policy_tmout time_tgts[0]
|
||||
#define smtpd_policy_idle time_tgts[1]
|
||||
#define smtpd_policy_ttl time_tgts[2]
|
||||
#define smtpd_policy_try_delay time_tgts[3]
|
||||
|
||||
#define smtpd_policy_req_limit int_tgts[0]
|
||||
#define smtpd_policy_try_limit int_tgts[1]
|
||||
|
||||
#define smtpd_policy_def_action str_tgts[0]
|
||||
|
||||
/* policy_client_register - register policy service endpoint */
|
||||
|
||||
static void policy_client_register(const char *name)
|
||||
{
|
||||
ATTR_CLNT *client;
|
||||
const char myname[] = "policy_client_register";
|
||||
SMTPD_POLICY_CLNT *policy_client;
|
||||
char *saved_name = 0;
|
||||
const char *policy_name = 0;
|
||||
char *cp;
|
||||
const char *sep = ", \t\r\n";
|
||||
const char *parens = "{}";
|
||||
char *err;
|
||||
int time_tgts[sizeof(time_table) / sizeof(time_table[0])];
|
||||
int int_tgts[sizeof(int_table) / sizeof(int_table[0])];
|
||||
const char *str_tgts[sizeof(str_table) / sizeof(str_table[0])];
|
||||
|
||||
if (policy_clnt_table == 0)
|
||||
policy_clnt_table = htable_create(1);
|
||||
|
||||
if (htable_find(policy_clnt_table, name) == 0) {
|
||||
client = attr_clnt_create(name,
|
||||
var_smtpd_policy_tmout,
|
||||
var_smtpd_policy_idle,
|
||||
var_smtpd_policy_ttl);
|
||||
attr_clnt_control(client,
|
||||
ATTR_CLNT_CTL_REQ_LIMIT, var_smtpd_policy_req_limit,
|
||||
ATTR_CLNT_CTL_TRY_LIMIT, var_smtpd_policy_try_limit,
|
||||
ATTR_CLNT_CTL_TRY_DELAY, var_smtpd_policy_try_delay,
|
||||
|
||||
/*
|
||||
* Allow per-service overrides for main.cf global settings.
|
||||
*/
|
||||
smtpd_policy_tmout = var_smtpd_policy_tmout;
|
||||
smtpd_policy_idle = var_smtpd_policy_idle;
|
||||
smtpd_policy_ttl = var_smtpd_policy_ttl;
|
||||
smtpd_policy_req_limit = var_smtpd_policy_req_limit;
|
||||
smtpd_policy_try_limit = var_smtpd_policy_try_limit;
|
||||
smtpd_policy_try_delay = var_smtpd_policy_try_delay;
|
||||
smtpd_policy_def_action = var_smtpd_policy_def_action;
|
||||
|
||||
if (*name == '{') { /* } */
|
||||
cp = saved_name = mystrdup(name);
|
||||
if ((err = extpar(&cp, parens, EXPAR_FLAG_NONE)) != 0)
|
||||
msg_fatal("policy service syntax error: %s", cp);
|
||||
if ((policy_name = mystrtok(&cp, sep)) == 0)
|
||||
msg_fatal("empty policy service: \"%s\"", name);
|
||||
attr_override(cp, sep, parens,
|
||||
ATTR_OVER_TIME_TABLE, time_table, time_tgts,
|
||||
ATTR_OVER_INT_TABLE, int_table, int_tgts,
|
||||
ATTR_OVER_STR_TABLE, str_table, str_tgts,
|
||||
0);
|
||||
} else {
|
||||
policy_name = name;
|
||||
}
|
||||
#if 0
|
||||
if (msg_verbose)
|
||||
#endif
|
||||
msg_info("%s: name=\"%s\" default_action=\"%s\" max_idle=%d "
|
||||
"max_ttl=%d request_limit=%d retry_delay=%d "
|
||||
"timeout=%d try_limit=%d",
|
||||
myname, policy_name, smtpd_policy_def_action,
|
||||
smtpd_policy_idle, smtpd_policy_ttl,
|
||||
smtpd_policy_req_limit, smtpd_policy_try_delay,
|
||||
smtpd_policy_tmout, smtpd_policy_try_limit);
|
||||
|
||||
/*
|
||||
* Create the client.
|
||||
*/
|
||||
policy_client = (SMTPD_POLICY_CLNT *) mymalloc(sizeof(*policy_client));
|
||||
policy_client->client = attr_clnt_create(policy_name,
|
||||
smtpd_policy_tmout,
|
||||
smtpd_policy_idle,
|
||||
smtpd_policy_ttl);
|
||||
|
||||
attr_clnt_control(policy_client->client,
|
||||
ATTR_CLNT_CTL_REQ_LIMIT, smtpd_policy_req_limit,
|
||||
ATTR_CLNT_CTL_TRY_LIMIT, smtpd_policy_try_limit,
|
||||
ATTR_CLNT_CTL_TRY_DELAY, smtpd_policy_try_delay,
|
||||
ATTR_CLNT_CTL_END);
|
||||
htable_enter(policy_clnt_table, name, (char *) client);
|
||||
policy_client->def_action = mystrdup(smtpd_policy_def_action);
|
||||
htable_enter(policy_clnt_table, name, (char *) policy_client);
|
||||
if (saved_name)
|
||||
myfree(saved_name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3660,7 +3759,7 @@ static int check_policy_service(SMTPD_STATE *state, const char *server,
|
||||
const char *def_acl)
|
||||
{
|
||||
static VSTRING *action = 0;
|
||||
ATTR_CLNT *policy_clnt;
|
||||
SMTPD_POLICY_CLNT *policy_clnt;
|
||||
|
||||
#ifdef USE_TLS
|
||||
VSTRING *subject_buf;
|
||||
@ -3675,7 +3774,8 @@ static int check_policy_service(SMTPD_STATE *state, const char *server,
|
||||
* Sanity check.
|
||||
*/
|
||||
if (!policy_clnt_table
|
||||
|| (policy_clnt = (ATTR_CLNT *) htable_find(policy_clnt_table, server)) == 0)
|
||||
|| (policy_clnt = (SMTPD_POLICY_CLNT *)
|
||||
htable_find(policy_clnt_table, server)) == 0)
|
||||
msg_panic("check_policy_service: no client endpoint for server %s",
|
||||
server);
|
||||
|
||||
@ -3701,7 +3801,7 @@ static int check_policy_service(SMTPD_STATE *state, const char *server,
|
||||
ENCODE_CN(issuer, issuer_buf, state->tls_context->issuer_CN);
|
||||
#endif
|
||||
|
||||
if (attr_clnt_request(policy_clnt,
|
||||
if (attr_clnt_request(policy_clnt->client,
|
||||
ATTR_FLAG_NONE, /* Query attributes. */
|
||||
ATTR_TYPE_STR, MAIL_ATTR_REQ, "smtpd_access_policy",
|
||||
ATTR_TYPE_STR, MAIL_ATTR_PROTO_STATE, state->where,
|
||||
@ -3780,7 +3880,7 @@ static int check_policy_service(SMTPD_STATE *state, const char *server,
|
||||
longjmp(smtpd_check_buf, status);
|
||||
}
|
||||
ret = check_table_result(state, server, nesting_level == 1 ?
|
||||
var_smtpd_policy_def_action :
|
||||
policy_clnt->def_action :
|
||||
DEF_SMTPD_POLICY_DEF_ACTION,
|
||||
"policy query", reply_name,
|
||||
reply_class, def_acl);
|
||||
|
@ -38,7 +38,8 @@ SRCS = alldig.c allprint.c argv.c argv_split.c attr_clnt.c attr_print0.c \
|
||||
dict_fail.c msg_rate_delay.c dict_surrogate.c warn_stat.c \
|
||||
dict_sockmap.c line_number.c recv_pass_attr.c pass_accept.c \
|
||||
poll_fd.c timecmp.c slmdb.c dict_pipe.c dict_random.c \
|
||||
valid_utf8_hostname.c midna.c argv_splitq.c balpar.c dict_union.c
|
||||
valid_utf8_hostname.c midna.c argv_splitq.c balpar.c dict_union.c \
|
||||
extpar.c
|
||||
OBJS = alldig.o allprint.o argv.o argv_split.o attr_clnt.o attr_print0.o \
|
||||
attr_print64.o attr_print_plain.o attr_scan0.o attr_scan64.o \
|
||||
attr_scan_plain.o auto_clnt.o base64_code.o basename.o binhash.o \
|
||||
@ -78,7 +79,8 @@ OBJS = alldig.o allprint.o argv.o argv_split.o attr_clnt.o attr_print0.o \
|
||||
dict_fail.o msg_rate_delay.o dict_surrogate.o warn_stat.o \
|
||||
dict_sockmap.o line_number.o recv_pass_attr.o pass_accept.o \
|
||||
poll_fd.o timecmp.o $(NON_PLUGIN_MAP_OBJ) dict_pipe.o dict_random.o \
|
||||
valid_utf8_hostname.o midna.o argv_splitq.o balpar.o dict_union.o
|
||||
valid_utf8_hostname.o midna.o argv_splitq.o balpar.o dict_union.o \
|
||||
extpar.o
|
||||
# MAP_OBJ is for maps that may be dynamically loaded with dynamicmaps.cf.
|
||||
# When hard-linking these, makedefs sets NON_PLUGIN_MAP_OBJ=$(MAP_OBJ),
|
||||
# otherwise it sets the PLUGIN_* macros.
|
||||
@ -1365,6 +1367,11 @@ exec_command.o: exec_command.c
|
||||
exec_command.o: exec_command.h
|
||||
exec_command.o: msg.h
|
||||
exec_command.o: sys_defs.h
|
||||
extpar.o: extpar.c
|
||||
extpar.o: stringops.h
|
||||
extpar.o: sys_defs.h
|
||||
extpar.o: vbuf.h
|
||||
extpar.o: vstring.h
|
||||
fifo_listen.o: fifo_listen.c
|
||||
fifo_listen.o: htable.h
|
||||
fifo_listen.o: iostuff.h
|
||||
|
@ -88,7 +88,8 @@
|
||||
/* position.
|
||||
/*
|
||||
/* argv_replace_one() replaces one string at the specified
|
||||
/* position.
|
||||
/* position. The old string is destroyed after the update is
|
||||
/* made.
|
||||
/*
|
||||
/* argv_delete() deletes the specified number of elements
|
||||
/* starting at the specified array position. The result is
|
||||
@ -291,6 +292,7 @@ void argv_insert_one(ARGV *argvp, ssize_t where, const char *arg)
|
||||
|
||||
void argv_replace_one(ARGV *argvp, ssize_t where, const char *arg)
|
||||
{
|
||||
char *temp;
|
||||
|
||||
/*
|
||||
* Sanity check.
|
||||
@ -298,8 +300,9 @@ void argv_replace_one(ARGV *argvp, ssize_t where, const char *arg)
|
||||
if (where < 0 || where >= argvp->argc)
|
||||
msg_panic("argv_replace_one bad position: %ld", (long) where);
|
||||
|
||||
myfree(argvp->argv[where]);
|
||||
temp = argvp->argv[where];
|
||||
argvp->argv[where] = mystrdup(arg);
|
||||
myfree(temp);
|
||||
}
|
||||
|
||||
/* argv_delete - remove string(s) from array */
|
||||
|
99
postfix/src/util/extpar.c
Normal file
99
postfix/src/util/extpar.c
Normal file
@ -0,0 +1,99 @@
|
||||
/*++
|
||||
/* NAME
|
||||
/* extpar 3
|
||||
/* SUMMARY
|
||||
/* extract text from parentheses
|
||||
/* SYNOPSIS
|
||||
/* #include <stringops.h>
|
||||
/*
|
||||
/* char *extpar(bp, parens, flags)
|
||||
/* char **bp;
|
||||
/* const char *parens;
|
||||
/* int flags;
|
||||
/* DESCRIPTION
|
||||
/* extpar() extracts text from an input string that is enclosed
|
||||
/* in the specified parentheses, and updates the buffer pointer
|
||||
/* to point to that text.
|
||||
/*
|
||||
/* Arguments:
|
||||
/* .IP bp
|
||||
/* Pointer to buffer pointer. Both the buffer and the buffer
|
||||
/* pointer are modified.
|
||||
/* .IP parens
|
||||
/* One matching pair of parentheses, opening parenthesis first.
|
||||
/* .IP flags
|
||||
/* EXPAR_FLAG_NONE, or the bitwise OR of one or more flags:
|
||||
/* .RS
|
||||
/* .IP EXPAR_FLAG_STRIP
|
||||
/* Skip whitespace after the opening parenthesis, and trim
|
||||
/* whitespace before the closing parenthesis.
|
||||
/* .RE
|
||||
/* DIAGNOSTICS
|
||||
/* panic: the input string does not start with the opening
|
||||
/* parenthesis.
|
||||
/*
|
||||
/* In case of error the result value is a dynamically-allocated
|
||||
/* string with a description of the problem that includes a
|
||||
/* copy of the offending input. A non-null result value should
|
||||
/* be destroyed with myfree(). The following decribes the errors
|
||||
/* and the state of the buffer and buffer pointer.
|
||||
/* .IP "missing closing parenthesis"
|
||||
/* The buffer pointer points to text as if the closing parenthesis
|
||||
/* were present.
|
||||
/* .IP "text after closing parenthesis"
|
||||
/* The buffer pointer points to text as if the offending text
|
||||
/* were not present.
|
||||
/* SEE ALSO
|
||||
/* balpar(3) determine length of string in parentheses
|
||||
/* LICENSE
|
||||
/* .ad
|
||||
/* .fi
|
||||
/* The Secure Mailer license must be distributed with this software.
|
||||
/* AUTHOR(S)
|
||||
/* Wietse Venema
|
||||
/* IBM T.J. Watson Research
|
||||
/* P.O. Box 704
|
||||
/* Yorktown Heights, NY 10598, USA
|
||||
/*--*/
|
||||
|
||||
/*
|
||||
* System library.
|
||||
*/
|
||||
#include <sys_defs.h>
|
||||
#include <ctype.h>
|
||||
|
||||
/*
|
||||
* Utility library.
|
||||
*/
|
||||
#include <msg.h>
|
||||
#include <stringops.h>
|
||||
|
||||
/* extpar - extract text from parentheses */
|
||||
|
||||
char *extpar(char **bp, const char *parens, int strip)
|
||||
{
|
||||
char *cp = *bp;
|
||||
char *err = 0;
|
||||
size_t len;
|
||||
|
||||
if (cp[0] != parens[0])
|
||||
msg_panic("extpar: no '%c' at start of text: \"%s\"", parens[0], cp);
|
||||
if ((len = balpar(cp, parens)) == 0) {
|
||||
err = concatenate("missing '", parens + 1, "' in \"",
|
||||
cp, "\"", (char *) 0);
|
||||
cp += 1;
|
||||
} else {
|
||||
if (cp[len] != 0)
|
||||
err = concatenate("syntax error after '", parens + 1, "' in \"",
|
||||
cp, "\"", (char *) 0);
|
||||
cp += 1;
|
||||
cp[len -= 2] = 0;
|
||||
}
|
||||
if (strip) {
|
||||
trimblanks(cp, len)[0] = 0;
|
||||
while (ISSPACE(*cp))
|
||||
cp++;
|
||||
}
|
||||
*bp = cp;
|
||||
return (err);
|
||||
}
|
@ -45,6 +45,10 @@ extern int allascii(const char *);
|
||||
extern const char *split_nameval(char *, char **, char **);
|
||||
extern int valid_utf8_string(const char *, ssize_t);
|
||||
extern size_t balpar(const char *, const char *);
|
||||
extern char *extpar(char **, const char *, int);
|
||||
|
||||
#define EXPAR_FLAG_NONE (0)
|
||||
#define EXPAR_FLAG_STRIP (1<<0)
|
||||
|
||||
/* LICENSE
|
||||
/* .ad
|
||||
|
Loading…
x
Reference in New Issue
Block a user