2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 01:49:47 +00:00

postfix-3.10-20240603

This commit is contained in:
Wietse Z Venema 2024-06-03 00:00:00 -05:00 committed by Viktor Dukhovni
parent 3a7fa9f6e4
commit 3bd5858b32
17 changed files with 253 additions and 117 deletions

View File

@ -28047,3 +28047,30 @@ Apologies for any names omitted.
queue file, log not only the 'new' name in the incoming
queue, but also log the 'old' name in the maildrop queue.
File: pickup/pickup.c.
20240422
Cleanup: improved warning text when a local alias contains
a domain. File: postalias/postalias.c.
20240502
Documentation: clarified the spawn(8) manpage BUGS section.
File: spawn/spawn.c.
20240504
Documentation: clarified some text in the Postfix overview.
File: proto/OVERVIEW.html.
20240603
Documentation: with "smtpd_tls_security_level = encrypt",
clarified what commands the Postfix will accept during the
plaintext phase. File: proto/postconf.proto.
Documentation: ugly javascript workaround for
Google Chrome scrolling to the wrong location with
'<a name=' and '<a id=' tags in postconf.5.html. See
https://support.google.com/chrome/thread/11993079. File:
proto/postconf.html.prolog.

View File

@ -109,8 +109,8 @@ unnumbered names inside shaded areas represent Postfix queues.
error(8) delivery agents are special: they discard or bounce all mail, and
are not shown in the figure above.
The queue manager maintains a small active queue with the messages that it
has opened for delivery. The active queue acts as a limited window on
The queue manager maintains a limited active queue with the messages that
it has opened for delivery. The active queue acts as a limited window on
potentially large incoming or deferred queues. The limited active queue
prevents the queue manager from running out of memory under heavy load.
@ -126,11 +126,13 @@ unnumbered names inside shaded areas represent Postfix queues.
relocated(5) table for recipients whose address has changed; mail for such
recipients is returned to the sender with an explanation.
* The smtp(8) client looks up a list of mail exchangers for the destination
host, sorts the list by preference, and tries each server in turn until it
finds a server that responds. It then encapsulates the sender, recipient
and message content as required by the SMTP protocol; this includes
conversion of 8-bit MIME to 7-bit encoding.
* The smtp(8) client looks up a list of SMTP servers for the destination(s)
in a delivery request, sorts the list by preference, and tries each server
in turn until it has delivered or bounced all recipients in the delivery
request. It encapsulates the sender, recipients and message content as
required by the SMTP protocol; this includes message body conversion from
8-bit MIME to 7-bit encoding, but does not include RFC 2047 header
encoding.
* The lmtp(8) client speaks a protocol similar to SMTP that is optimized for
delivery to mailbox servers such as Cyrus. The advantage of this setup is
@ -158,10 +160,11 @@ unnumbered names inside shaded areas represent Postfix queues.
* The pipe(8) mailer is the outbound interface to other mail processing
systems (the Postfix sendmail(1) command being the inbound interface). The
interface is UNIX compatible: it provides information on the command line
and on the standard input stream, and expects a process exit status code as
defined in <sysexits.h>. Examples of delivery via the pipe(8) mailer are in
the MAILDROP_README and UUCP_README documents.
interface is UNIX compatible: the pipe(8) mailer provides information to a
child process command line, environment variables, and standard input
stream, and expects a child process exit status code as defined in
<sysexits.h>. Examples of delivery via the pipe(8) mailer are in the
FILTER_README, MAILDROP_README, and UUCP_README documents.
PPoossttffiixx bbeehhiinndd tthhee sscceenneess
@ -237,11 +240,12 @@ queues.
message
logfiles
* The flush(8) servers maintain per-destination logs and implement both ETRN
and "sendmail -qRdestination", as described in the ETRN_README document.
This moves selected queue files from the deferred queue back to the
incoming queue and requests their delivery. The flush(8) service is
available with Postfix version 1.0 and later.
* The flush(8) servers maintain per-destination logs and implement "sendmail
-qRsite", "sendmail -qIqueueid" "postqueue -s site", "postqueue -
i queueid", and ETRN as described in the ETRN_README document. This moves
selected queue files from the deferred queue back to the incoming queue and
requests their delivery. The flush(8) service is available with Postfix
version 1.0 and later.
incoming
^
@ -298,14 +302,7 @@ queues.
connection setup and improves message delivery rates. After a Postfix smtp
(8) client connects to a remote SMTP server and sends plaintext EHLO and
STARTTLS commands, the smtp(8) client inserts a tlsproxy(8) process into
the connection as shown below.
After the mail transaction completes, the Postfix smtp(8) client gives the
smtp(8)-to-tlsproxy(8) connection to the scache(8) server, which keeps the
connection open for a limited amount of time. The smtp(8) client continues
with some other mail delivery request. Meanwhile, any Postfix smtp(8)
client can ask the scache(8) server for that cached connection and reuse it
for mail delivery.
the connection as shown in the top of the figure below.
/-- smtp(8) --> tlsproxy(8) --> Internet
@ -318,6 +315,13 @@ queues.
scache(8)
After the mail transaction completes, the Postfix smtp(8) client gives the
smtp(8)-to-tlsproxy(8) connection to the scache(8) server, which keeps the
connection open for a limited amount of time. The smtp(8) client continues
with some other mail delivery request. Meanwhile, any Postfix smtp(8)
client can ask the scache(8) server for that cached connection and reuse it
for mail delivery.
* The showq(8) servers list the Postfix queue status. This is the queue
listing service that does the work for the mailq(1) and postqueue(1)
commands.

View File

@ -6,6 +6,22 @@ Wish list:
Disable -DSNAPSHOT and -DNONPROD in makedefs.
Many master.cf services don't expect wakeup calls, resulting
in weird warnings. Maybe the master daemon could signal the
wakeup intent through a child process command-line option,
so that the child can log "do not enable wakeups". Or the
client could announce to the xxx_server-main() skeleton
whether it wants wakeups. Or the child process could
special-case messages that consist only of a "W". We're not
using FIFOs anymore, and trigger servers could use a proper
(attribute, value) protocol.
"postconf -d" should not complain about a missing master.cf
file.
qmgr_message.c should do the right thing when the
double_bounce_sender value contains @.
migrate rbl -> dnsbl
migrate smtpd_sasl_tls_security_options to "noanonymous"

View File

@ -329,7 +329,7 @@ or more recipient addresses. The <a href="discard.8.html">discard(8)</a> and <a
agents are special: they discard or bounce all mail, and are not
shown in the figure above. </p>
<p> The queue manager maintains a small <a href="QSHAPE_README.html#active_queue">active queue</a> with the
<p> The queue manager maintains a limited <a href="QSHAPE_README.html#active_queue">active queue</a> with the
messages that it has opened for delivery. The <a href="QSHAPE_README.html#active_queue">active queue</a> acts as
a limited window on potentially large <a href="QSHAPE_README.html#incoming_queue">incoming</a> or <a href="QSHAPE_README.html#deferred_queue">deferred queues</a>.
The limited <a href="QSHAPE_README.html#active_queue">active queue</a> prevents the queue manager from running
@ -349,12 +349,13 @@ can be specified with the optional <a href="transport.5.html">transport(5)</a> t
for recipients whose address has changed; mail for such recipients is
returned to the sender with an explanation. </p>
<li> <p> The <a href="smtp.8.html">smtp(8)</a> client looks up a list of mail exchangers for
the destination host, sorts the list by preference, and tries each
server in turn until it finds a server that responds. It then
encapsulates the sender, recipient and message content as required
by the SMTP protocol; this includes conversion of 8-bit MIME to
7-bit encoding. </p>
<li> <p> The <a href="smtp.8.html">smtp(8)</a> client looks up a list of SMTP servers for
the destination(s) in a delivery request, sorts the list by preference,
and tries each server in turn until it has delivered or bounced all
recipients in the delivery request. It encapsulates the sender,
recipients and message content as required by the SMTP protocol;
this includes message body conversion from 8-bit MIME to 7-bit
encoding, but does not include <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a> header encoding. </p>
<li> <p> The <a href="lmtp.8.html">lmtp(8)</a> client speaks a protocol similar to SMTP that
is optimized for delivery to mailbox servers such as Cyrus. The
@ -384,10 +385,12 @@ small domains on a single machine. This is described in the
<li> <p> The <a href="pipe.8.html">pipe(8)</a> mailer is the outbound interface to other mail
processing systems (the Postfix <a href="sendmail.1.html">sendmail(1)</a> command being the
inbound interface). The interface is UNIX compatible: it provides
information on the command line and on the standard input stream,
and expects a process exit status code as defined in &lt;sysexits.h&gt;.
Examples of delivery via the <a href="pipe.8.html">pipe(8)</a> mailer are in the <a href="MAILDROP_README.html">MAILDROP_README</a>
inbound interface). The interface is UNIX compatible: the <a href="pipe.8.html">pipe(8)</a>
mailer provides information to a child process command line,
environment variables, and standard input stream, and expects a
child process exit status code as defined in &lt;sysexits.h&gt;.
Examples of delivery via the <a href="pipe.8.html">pipe(8)</a> mailer are in the <a href="FILTER_README.html">FILTER_README</a>,
<a href="MAILDROP_README.html">MAILDROP_README</a>,
and <a href="UUCP_README.html">UUCP_README</a> documents.
</ul>
@ -502,7 +505,9 @@ Per- <br> message<br> logfiles </td> </tr>
</table>
<li> <p> The <a href="flush.8.html">flush(8)</a> servers maintain per-destination logs and
implement both ETRN and "sendmail -qRdestination", as described
implement "sendmail -qR<i>site</i>", "sendmail -qI<i>queueid</i>"
"postqueue -s <i>site</i>", "postqueue -i <i>queueid</i>", and ETRN
as described
in the <a href="ETRN_README.html">ETRN_README</a> document. This moves selected queue files from
the <a href="QSHAPE_README.html#deferred_queue">deferred queue</a> back to the <a href="QSHAPE_README.html#incoming_queue">incoming queue</a> and requests their
delivery. The <a href="flush.8.html">flush(8)</a> service is available with Postfix version
@ -586,15 +591,7 @@ the overhead of connection setup and improves message delivery
rates. After a Postfix <a href="smtp.8.html">smtp(8)</a> client connects to a remote SMTP
server and sends plaintext EHLO and STARTTLS commands, the <a href="smtp.8.html">smtp(8)</a>
client inserts a <a href="tlsproxy.8.html">tlsproxy(8)</a> process into the connection as shown
below. </p>
<p> After the mail transaction completes, the Postfix <a href="smtp.8.html">smtp(8)</a> client
gives the <a href="smtp.8.html">smtp(8)</a>-to-<a href="tlsproxy.8.html">tlsproxy(8)</a> connection to the <a href="scache.8.html">scache(8)</a>
server, which keeps the connection open for a limited amount of
time. The <a href="smtp.8.html">smtp(8)</a> client continues with some other mail delivery
request. Meanwhile, any Postfix <a href="smtp.8.html">smtp(8)</a> client can ask the <a href="scache.8.html">scache(8)</a>
server for that cached connection and reuse it for mail delivery.
</p>
in the top of the figure below. </p>
<table>
@ -619,6 +616,14 @@ bgcolor="#f0f0ff"> <a href="scache.8.html">scache(8)</a> </td> </tr>
</table>
<p> After the mail transaction completes, the Postfix <a href="smtp.8.html">smtp(8)</a> client
gives the <a href="smtp.8.html">smtp(8)</a>-to-<a href="tlsproxy.8.html">tlsproxy(8)</a> connection to the <a href="scache.8.html">scache(8)</a>
server, which keeps the connection open for a limited amount of
time. The <a href="smtp.8.html">smtp(8)</a> client continues with some other mail delivery
request. Meanwhile, any Postfix <a href="smtp.8.html">smtp(8)</a> client can ask the <a href="scache.8.html">scache(8)</a>
server for that cached connection and reuse it for mail delivery.
</p>
<li> <p> The <a href="showq.8.html">showq(8)</a> servers list the Postfix queue status. This
is the queue listing service that does the work for the <a href="mailq.1.html">mailq(1)</a>
and <a href="postqueue.1.html">postqueue(1)</a> commands. </p>

View File

@ -10,6 +10,21 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
<script type="text/javascript">
// Kludge for https://support.google.com/chrome/thread/11993079
const isChrome = /Chrome/.test(navigator.userAgent)
&& /Google Inc/.test(navigator.vendor);
const hash = window.location.hash;
if (hash && isChrome) {
setTimeout(function() {
window.location.hash = "";
window.location.hash = hash;
}, 1000);
}
</script>
</head>
<body>
@ -2903,13 +2918,20 @@ precision. </p>
<ul>
<li> a = time from message arrival to last <a href="QSHAPE_README.html#active_queue">active queue</a> entry
<li> a = Time from message arrival to last <a href="QSHAPE_README.html#active_queue">active queue</a> entry.
<li> b = time from last <a href="QSHAPE_README.html#active_queue">active queue</a> entry to connection setup
<li> b = Time from last <a href="QSHAPE_README.html#active_queue">active queue</a> entry to the beginning of
connection setup.
<li> c = time in connection setup, including DNS, EHLO and STARTTLS
<li> c = Time in connection setup. With SMTP, that is the time
before sending the MAIL FROM command: with a new connection, that
includes DNS lookups, and protocol handshakes with TCP, EHLO, and
STARTTLS; with a reused connection, that includes DNS lookups,
connection cache lookup by domain or IP address, and a liveness
probe with RSET.
<li> d = time in message transmission
<li> d = Time in message transmission. With SMTP, that starts with
sending MAIL FROM.
</ul>
@ -15852,9 +15874,13 @@ restriction lists" for a discussion of evaluation context and time.
(default: no)</b></DT><DD>
<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients,
and require that clients use TLS encryption. According to <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a>
and reject all plaintext commands except HELO, EHLO, XCLIENT,
STARTTLS, NOOP, QUIT, and (Postfix &ge; 3.9) HELP.
According to <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a>
this MUST NOT be applied in case of a publicly-referenced SMTP
server. This option is therefore off by default. </p>
server. Instead, this should be used on dedicated servers, for
example submission (port 587). This option is therefore off by
default. </p>
<p> Note 1: "<a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a> = yes" implies "<a href="postconf.5.html#smtpd_tls_auth_only">smtpd_tls_auth_only</a> = yes". </p>
@ -19166,10 +19192,11 @@ to remote SMTP clients, but do not require that clients use TLS encryption.
</dd>
<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption: announce
STARTTLS support to remote SMTP clients, and require that clients use TLS
encryption. According to <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a> this MUST NOT be applied in case
of a publicly-referenced SMTP server. Instead, this option should
be used only on dedicated servers. </dd>
STARTTLS support to remote SMTP clients, and reject all plaintext
commands except HELO, EHLO, XCLIENT, STARTTLS, NOOP, QUIT, and (Postfix
&ge; 3.9) HELP. According to <a href="https://tools.ietf.org/html/rfc2487">RFC 2487</a> this MUST NOT be applied in case
of a publicly-referenced SMTP server. Instead, this should be used
on dedicated servers, for example submission (port 587). </dd>
</dl>

View File

@ -44,62 +44,63 @@ SPAWN(8) SPAWN(8)
interpreter.
<b>BUGS</b>
In order to enforce standard Postfix process resource controls, the
<a href="spawn.8.html"><b>spawn</b>(8)</a> daemon runs only one external command at a time. As such, it
presents a noticeable overhead by wasting precious process resources.
The <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon is expected to be replaced by a more structural
In order to enforce standard Postfix process resource controls, each
<a href="spawn.8.html"><b>spawn</b>(8)</a> daemon process runs only one external command, and blocks
until the command terminates or a time limit is reached. As such, it
presents a noticeable overhead by wasting precious process resources.
The <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon is expected to be replaced by a more structural
solution.
<b>DIAGNOSTICS</b>
The <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon reports abnormal child exits. Problems are logged
The <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon reports abnormal child exits. Problems are logged
to <b>syslogd</b>(8) or <a href="postlogd.8.html"><b>postlogd</b>(8)</a>.
<b>SECURITY</b>
This program needs root privilege in order to execute external commands
as the specified user. It is therefore security sensitive. However the
<a href="spawn.8.html"><b>spawn</b>(8)</a> daemon does not talk to the external command and thus is not
<a href="spawn.8.html"><b>spawn</b>(8)</a> daemon does not talk to the external command and thus is not
vulnerable to data-driven attacks.
<b>CONFIGURATION PARAMETERS</b>
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically as <a href="spawn.8.html"><b>spawn</b>(8)</a> processes
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically as <a href="spawn.8.html"><b>spawn</b>(8)</a> processes
run for only a limited amount of time. Use the command "<b>postfix reload</b>"
to speed up a change.
The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
more details including examples.
In the text below, <i>transport</i> is the first field of the entry in the
In the text below, <i>transport</i> is the first field of the entry in the
<a href="master.5.html"><b>master.cf</b></a> file.
<b>RESOURCE AND RATE CONTROL</b>
<b><a href="postconf.5.html#transport_time_limit">transport_time_limit</a> ($<a href="postconf.5.html#command_time_limit">command_time_limit</a>)</b>
A transport-specific override for the <a href="postconf.5.html#command_time_limit">command_time_limit</a> parame-
ter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message
ter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the message
delivery transport.
<b>MISCELLANEOUS</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>
How much time a Postfix daemon process may take to handle a
How much time a Postfix daemon process may take to handle a
request before it is terminated by a built-in watchdog timer.
<b><a href="postconf.5.html#export_environment">export_environment</a> (see 'postconf -d' output)</b>
The list of environment variables that a Postfix process will
The list of environment variables that a Postfix process will
export to non-Postfix processes.
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
The time limit for sending or receiving information over an
The time limit for sending or receiving information over an
internal communication channel.
<b><a href="postconf.5.html#mail_owner">mail_owner</a> (postfix)</b>
The UNIX system account that owns the Postfix queue and most
The UNIX system account that owns the Postfix queue and most
Postfix daemon processes.
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
The maximum amount of time that an idle Postfix daemon process
The maximum amount of time that an idle Postfix daemon process
waits for an incoming connection before terminating voluntarily.
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
@ -119,7 +120,7 @@ SPAWN(8) SPAWN(8)
The syslog facility of Postfix logging.
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
A prefix that is prepended to the process name in syslog
A prefix that is prepended to the process name in syslog
records, so that, for example, "smtpd" becomes "prefix/smtpd".
Available in Postfix 3.3 and later:

View File

@ -1893,13 +1893,20 @@ precision.
.PP
The format of the "delays=a/b/c/d" logging is as follows:
.IP \(bu
a = time from message arrival to last active queue entry
a = Time from message arrival to last active queue entry.
.IP \(bu
b = time from last active queue entry to connection setup
b = Time from last active queue entry to the beginning of
connection setup.
.IP \(bu
c = time in connection setup, including DNS, EHLO and STARTTLS
c = Time in connection setup. With SMTP, that is the time
before sending the MAIL FROM command: with a new connection, that
includes DNS lookups, and protocol handshakes with TCP, EHLO, and
STARTTLS; with a reused connection, that includes DNS lookups,
connection cache lookup by domain or IP address, and a liveness
probe with RSET.
.IP \(bu
d = time in message transmission
d = Time in message transmission. With SMTP, that starts with
sending MAIL FROM.
.br
.PP
This feature is available in Postfix 2.3 and later.
@ -10971,9 +10978,13 @@ This feature is available in Postfix 2.2 and later.
See smtpd_data_restrictions for details and limitations.
.SH smtpd_enforce_tls (default: no)
Mandatory TLS: announce STARTTLS support to remote SMTP clients,
and require that clients use TLS encryption. According to RFC 2487
and reject all plaintext commands except HELO, EHLO, XCLIENT,
STARTTLS, NOOP, QUIT, and (Postfix >= 3.9) HELP.
According to RFC 2487
this MUST NOT be applied in case of a publicly\-referenced SMTP
server. This option is therefore off by default.
server. Instead, this should be used on dedicated servers, for
example submission (port 587). This option is therefore off by
default.
.PP
Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes".
.PP
@ -13702,10 +13713,11 @@ to remote SMTP clients, but do not require that clients use TLS encryption.
.br
.IP "\fBencrypt\fR"
Mandatory TLS encryption: announce
STARTTLS support to remote SMTP clients, and require that clients use TLS
encryption. According to RFC 2487 this MUST NOT be applied in case
of a publicly\-referenced SMTP server. Instead, this option should
be used only on dedicated servers.
STARTTLS support to remote SMTP clients, and reject all plaintext
commands except HELO, EHLO, XCLIENT, STARTTLS, NOOP, QUIT, and (Postfix
>= 3.9) HELP. According to RFC 2487 this MUST NOT be applied in case
of a publicly\-referenced SMTP server. Instead, this should be used
on dedicated servers, for example submission (port 587).
.br
.br
.PP

View File

@ -47,7 +47,9 @@ shell meta characters by a shell command interpreter.
.ad
.fi
In order to enforce standard Postfix process resource controls,
the \fBspawn\fR(8) daemon runs only one external command at a time.
each \fBspawn\fR(8) daemon process runs only one external
command, and blocks until the command terminates or a time
limit is reached.
As such, it presents a noticeable overhead by wasting precious
process resources. The \fBspawn\fR(8) daemon is expected to be
replaced by a more structural solution.

View File

@ -329,7 +329,7 @@ or more recipient addresses. The discard(8) and error(8) delivery
agents are special: they discard or bounce all mail, and are not
shown in the figure above. </p>
<p> The queue manager maintains a small active queue with the
<p> The queue manager maintains a limited active queue with the
messages that it has opened for delivery. The active queue acts as
a limited window on potentially large incoming or deferred queues.
The limited active queue prevents the queue manager from running
@ -349,12 +349,13 @@ trivial-rewrite(8) server optionally queries the relocated(5) table
for recipients whose address has changed; mail for such recipients is
returned to the sender with an explanation. </p>
<li> <p> The smtp(8) client looks up a list of mail exchangers for
the destination host, sorts the list by preference, and tries each
server in turn until it finds a server that responds. It then
encapsulates the sender, recipient and message content as required
by the SMTP protocol; this includes conversion of 8-bit MIME to
7-bit encoding. </p>
<li> <p> The smtp(8) client looks up a list of SMTP servers for
the destination(s) in a delivery request, sorts the list by preference,
and tries each server in turn until it has delivered or bounced all
recipients in the delivery request. It encapsulates the sender,
recipients and message content as required by the SMTP protocol;
this includes message body conversion from 8-bit MIME to 7-bit
encoding, but does not include RFC 2047 header encoding. </p>
<li> <p> The lmtp(8) client speaks a protocol similar to SMTP that
is optimized for delivery to mailbox servers such as Cyrus. The
@ -384,10 +385,12 @@ VIRTUAL_README document. </p>
<li> <p> The pipe(8) mailer is the outbound interface to other mail
processing systems (the Postfix sendmail(1) command being the
inbound interface). The interface is UNIX compatible: it provides
information on the command line and on the standard input stream,
and expects a process exit status code as defined in &lt;sysexits.h&gt;.
Examples of delivery via the pipe(8) mailer are in the MAILDROP_README
inbound interface). The interface is UNIX compatible: the pipe(8)
mailer provides information to a child process command line,
environment variables, and standard input stream, and expects a
child process exit status code as defined in &lt;sysexits.h&gt;.
Examples of delivery via the pipe(8) mailer are in the FILTER_README,
MAILDROP_README,
and UUCP_README documents.
</ul>
@ -502,7 +505,9 @@ Per- <br> message<br> logfiles </td> </tr>
</table>
<li> <p> The flush(8) servers maintain per-destination logs and
implement both ETRN and "sendmail -qRdestination", as described
implement "sendmail -qR<i>site</i>", "sendmail -qI<i>queueid</i>"
"postqueue -s <i>site</i>", "postqueue -i <i>queueid</i>", and ETRN
as described
in the ETRN_README document. This moves selected queue files from
the deferred queue back to the incoming queue and requests their
delivery. The flush(8) service is available with Postfix version
@ -586,15 +591,7 @@ the overhead of connection setup and improves message delivery
rates. After a Postfix smtp(8) client connects to a remote SMTP
server and sends plaintext EHLO and STARTTLS commands, the smtp(8)
client inserts a tlsproxy(8) process into the connection as shown
below. </p>
<p> After the mail transaction completes, the Postfix smtp(8) client
gives the smtp(8)-to-tlsproxy(8) connection to the scache(8)
server, which keeps the connection open for a limited amount of
time. The smtp(8) client continues with some other mail delivery
request. Meanwhile, any Postfix smtp(8) client can ask the scache(8)
server for that cached connection and reuse it for mail delivery.
</p>
in the top of the figure below. </p>
<table>
@ -619,6 +616,14 @@ bgcolor="#f0f0ff"> scache(8) </td> </tr>
</table>
<p> After the mail transaction completes, the Postfix smtp(8) client
gives the smtp(8)-to-tlsproxy(8) connection to the scache(8)
server, which keeps the connection open for a limited amount of
time. The smtp(8) client continues with some other mail delivery
request. Meanwhile, any Postfix smtp(8) client can ask the scache(8)
server for that cached connection and reuse it for mail delivery.
</p>
<li> <p> The showq(8) servers list the Postfix queue status. This
is the queue listing service that does the work for the mailq(1)
and postqueue(1) commands. </p>

View File

@ -10,6 +10,21 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
<script type="text/javascript">
// Kludge for https://support.google.com/chrome/thread/11993079
const isChrome = /Chrome/.test(navigator.userAgent)
&& /Google Inc/.test(navigator.vendor);
const hash = window.location.hash;
if (hash && isChrome) {
setTimeout(function() {
window.location.hash = "";
window.location.hash = hash;
}, 1000);
}
</script>
</head>
<body>

View File

@ -9856,9 +9856,13 @@ Postfix 2.3 and later use smtpd_tls_security_level instead. </p>
%PARAM smtpd_enforce_tls no
<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients,
and require that clients use TLS encryption. According to RFC 2487
and reject all plaintext commands except HELO, EHLO, XCLIENT,
STARTTLS, NOOP, QUIT, and (Postfix &ge; 3.9) HELP.
According to RFC 2487
this MUST NOT be applied in case of a publicly-referenced SMTP
server. This option is therefore off by default. </p>
server. Instead, this should be used on dedicated servers, for
example submission (port 587). This option is therefore off by
default. </p>
<p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p>
@ -10794,13 +10798,20 @@ precision. </p>
<ul>
<li> a = time from message arrival to last active queue entry
<li> a = Time from message arrival to last active queue entry.
<li> b = time from last active queue entry to connection setup
<li> b = Time from last active queue entry to the beginning of
connection setup.
<li> c = time in connection setup, including DNS, EHLO and STARTTLS
<li> c = Time in connection setup. With SMTP, that is the time
before sending the MAIL FROM command: with a new connection, that
includes DNS lookups, and protocol handshakes with TCP, EHLO, and
STARTTLS; with a reused connection, that includes DNS lookups,
connection cache lookup by domain or IP address, and a liveness
probe with RSET.
<li> d = time in message transmission
<li> d = Time in message transmission. With SMTP, that starts with
sending MAIL FROM.
</ul>
@ -12683,10 +12694,11 @@ to remote SMTP clients, but do not require that clients use TLS encryption.
</dd>
<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption: announce
STARTTLS support to remote SMTP clients, and require that clients use TLS
encryption. According to RFC 2487 this MUST NOT be applied in case
of a publicly-referenced SMTP server. Instead, this option should
be used only on dedicated servers. </dd>
STARTTLS support to remote SMTP clients, and reject all plaintext
commands except HELO, EHLO, XCLIENT, STARTTLS, NOOP, QUIT, and (Postfix
&ge; 3.9) HELP. According to RFC 2487 this MUST NOT be applied in case
of a publicly-referenced SMTP server. Instead, this should be used
on dedicated servers, for example submission (port 587). </dd>
</dl>

View File

@ -1603,3 +1603,4 @@ Hamid
LLC
Maadani
GTEST
javascript

View File

@ -123,3 +123,5 @@ proto proto aliases proto virtual proto ADDRESS_REWRITING_README html
or unimplemented commands File smtpd smtpd c
proto proto mysql_table proto pgsql_table proto ldap_table
File pickup pickup c
a domain File postalias postalias c
File spawn spawn c

View File

@ -374,3 +374,8 @@ srv
viktor
MONGODB
MongoDB
qIqueueid
Dextrous
ar
liveness
superset

View File

@ -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 "20240422"
#define MAIL_RELEASE_DATE "20240603"
#define MAIL_VERSION_NUMBER "3.10"
#ifdef SNAPSHOT

View File

@ -429,7 +429,7 @@ static void postalias(char *map_type, char *path_name, int postalias_flags,
* alias database is being built, so we're guessing a bit.
*/
if (tok822_rfind_type(colon, '@') || tok822_rfind_type(colon, '%')) {
msg_warn("%s, line %d: name must be local",
msg_warn("%s, line %d: name must be local and have no domain",
VSTREAM_PATH(source_fp), lineno);
tok822_free_tree(tok_list);
continue;

View File

@ -37,7 +37,9 @@
/* shell meta characters by a shell command interpreter.
/* BUGS
/* In order to enforce standard Postfix process resource controls,
/* the \fBspawn\fR(8) daemon runs only one external command at a time.
/* each \fBspawn\fR(8) daemon process runs only one external
/* command, and blocks until the command terminates or a time
/* limit is reached.
/* As such, it presents a noticeable overhead by wasting precious
/* process resources. The \fBspawn\fR(8) daemon is expected to be
/* replaced by a more structural solution.