]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.10-20240603
authorWietse Z Venema <wietse@porcupine.org>
Mon, 3 Jun 2024 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <ietf-dane@dukhovni.org>
Sun, 9 Jun 2024 04:31:42 +0000 (14:31 +1000)
17 files changed:
postfix/HISTORY
postfix/README_FILES/OVERVIEW
postfix/WISHLIST
postfix/html/OVERVIEW.html
postfix/html/postconf.5.html
postfix/html/spawn.8.html
postfix/man/man5/postconf.5
postfix/man/man8/spawn.8
postfix/proto/OVERVIEW.html
postfix/proto/postconf.html.prolog
postfix/proto/postconf.proto
postfix/proto/stop
postfix/proto/stop.double-history
postfix/proto/stop.spell-proto-html
postfix/src/global/mail_version.h
postfix/src/postalias/postalias.c
postfix/src/spawn/spawn.c

index c636ce03fe273ffadaac223395901ad64130f146..6d9cf025a7dc9b383b5b8cca1dc5c09426251dd2 100644 (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.
index 71976d46b6f7807de79f2db55383c053d094d965..45762f65ee03363c183117ec6806b6acb917a50f 100644 (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.
 
 P\bPo\bos\bst\btf\bfi\bix\bx b\bbe\beh\bhi\bin\bnd\bd t\bth\bhe\be s\bsc\bce\ben\bne\bes\bs
 
@@ -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.
index e2e2b8dd018f1be8787a4bb915acf7c08595cc3f..b3012592511966db0de335f663d5f9d6754f1909 100644 (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"
index 767e2f09c0fcfbc37f78524606b01dedc50b4746..eb54740f45deffa4ae9ea27f6923c1694cb516b8 100644 (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>
index 67dbfa209e8facd26b7f58ef665149b783a5e508..6b926fb671cf2d50ce89e733bc40f46753e86eed 100644 (file)
 <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>
 
index 8b2f2f1405243d5236a0bb5f192c4eb676edec70..227aff4a59d4a031addbb27166da916f0594c1e6 100644 (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:
index 67314334fa3ea8296ad894f7dd16cf61a26ab72f..02a3e008300d233667ae83f14cb2a05cec588c52 100644 (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
index 8baa440b20dad8a32163f7c292ec2a508009369d..65ced92ac571b2229213d786883d77bf6436c5e3 100644 (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.
index 64f9185f319af2c5d6e77d498fb63bebdd408482..4b7dcabc63f151514f26c2e3dbbd2b41d21ff1f7 100644 (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>
index 758623d85ab474eb94cc8211be376477bb770b88..04a9ef279593884d7490917df3d3b2d84f1eb00c 100644 (file)
 <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>
index e941e7c0b3d45d3719b1d14b418c412631d2100a..9dda8f29ece991df3c17b67d9fc19a7653189bf9 100644 (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>
 
index 1ef4ab4bf30ef91976dde1267d175faba7eee935..52f34ab433d5ba9d2fba5b5a40873b3f7e0f4969 100644 (file)
@@ -1603,3 +1603,4 @@ Hamid
 LLC
 Maadani
 GTEST
+javascript
index c09be05de82e04b06ffd178388d8fe5a8b367631..d6926f8df62bad20a9571318b93fd823497f1fc2 100644 (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 
index 79c1ce5333fc93b4889ecfdcc892071d8bbf1f1a..e76dbfa4de1a6178424db6d2ac7e8b9a86f4078d 100644 (file)
@@ -374,3 +374,8 @@ srv
 viktor
 MONGODB
 MongoDB
+qIqueueid
+Dextrous
+ar
+liveness
+superset
index feded4ed4d27e7f67bbe577cf0878d74b2085e3e..81ad5407dca708f7b31bf02f6bde42599ae800a2 100644 (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
index 72ca729988923bf9ea26d5396592d58a5f4881b0..5033f9da2fdd0e9be9ea5126127bd9fe3bd7a0f1 100644 (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;
index 686b0da15192f18f59b5f0238f09ecc38573c8f0..445329f1e645e84c98a9c1c616b2a4ff1f93e3c9 100644 (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.