]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.10-20240422
authorWietse Z Venema <wietse@porcupine.org>
Mon, 22 Apr 2024 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <ietf-dane@dukhovni.org>
Mon, 22 Apr 2024 20:09:25 +0000 (16:09 -0400)
33 files changed:
postfix/HISTORY
postfix/README_FILES/BUILTIN_FILTER_README
postfix/README_FILES/STANDARD_CONFIGURATION_README
postfix/WISHLIST
postfix/conf/aliases
postfix/conf/master.cf
postfix/conf/virtual
postfix/html/BUILTIN_FILTER_README.html
postfix/html/STANDARD_CONFIGURATION_README.html
postfix/html/aliases.5.html
postfix/html/ldap_table.5.html
postfix/html/mysql_table.5.html
postfix/html/pgsql_table.5.html
postfix/html/postconf.5.html
postfix/html/virtual.5.html
postfix/man/man5/aliases.5
postfix/man/man5/ldap_table.5
postfix/man/man5/mysql_table.5
postfix/man/man5/pgsql_table.5
postfix/man/man5/postconf.5
postfix/man/man5/virtual.5
postfix/proto/BUILTIN_FILTER_README.html
postfix/proto/STANDARD_CONFIGURATION_README.html
postfix/proto/aliases
postfix/proto/ldap_table
postfix/proto/mysql_table
postfix/proto/pgsql_table
postfix/proto/postconf.proto
postfix/proto/stop.double-history
postfix/proto/stop.spell-history
postfix/proto/virtual
postfix/src/global/mail_version.h
postfix/src/pickup/pickup.c

index acf1252199059f47a5ebbfe7826c796858f135eb..c636ce03fe273ffadaac223395901ad64130f146 100644 (file)
@@ -26245,7 +26245,7 @@ Apologies for any names omitted.
 
        Documentation: added LINUX_README sections for logging in
        a container, and for systemd logging workarounds. File:
-       proto/LINUX_README.hmtl.
+       proto/LINUX_README.html.
 
 20220126
 
@@ -28004,3 +28004,46 @@ Apologies for any names omitted.
        Documentation: added text that the read-only "service_name"
        configuration parameter was introduced in Postfix 3.3. File:
        proto/postconf.proto.
+
+20240402
+
+       Workaround: in the stock master.cf file, disable the feature
+       smtpd_forbid_unauth_pipelining in the submission and
+       submissions services, to work around a 15-year old open
+       Mozilla bug for sending a non-compliant SMTP command:"EHLO
+       we-guess.mozilla.org<CR><LF>QUIT<CR><LF>" (see
+       https://bugzilla.mozilla.org/show_bug.cgi?id=538809). File:
+       conf/master.cf.
+
+20240413
+
+       Documentation: mention in the first aliases(5) and virtual(5)
+       manpage paragraphs that alias_maps is searched only with
+       the email address localpart (no domain) and that
+       virtual_alias_maps is often queried with a full email address
+       (including domain). Add similar text to the parameter
+       descriptions for alias_maps and virtual_alias_maps. Files:
+       proto/aliases, proto/virtual.
+
+       Documentation: workaround for a load balancer paradox. When
+       a destination (relayhost, MySQL server, PostgreSQL server,
+       LDAP server) is a load balancer, and there are no alternative
+       servers, specify the load balancer multiple times. Without
+       this duplication, the Postfix client would not reconnect
+       immediately to the same load balancer after a server failure,
+       and it would defer mail. Files: proto/postconf.proto,
+       proto/mysql_table, proto/pgsql_table, proto/ldap_table.
+
+20240421
+
+       Documentation: replace the obsolete pickup service type
+       fifo with unix, and fix typos. Dilyan Palauzov. Files:
+       HISTORY< proto/BUILTIN_FILTER_README.html,
+       proto/STANDARD_CONFIGURATION_README.html
+
+20240418
+
+       Logging: when the pickup daemon logs a warning for a maildrop
+       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.
index 2ce639df538cfa1602b64efda8542bc13761be31..690db98d11dd86d47646c1d87d5aae008831a216 100644 (file)
@@ -235,7 +235,7 @@ server IP addresses in master.cf:
             -o receive_override_options=no_header_body_checks
         127.0.0.1:smtp inet  n       -       n       -       -       smtpd
             -o receive_override_options=no_header_body_checks
-        pickup         fifo  n       -       n       60      1       pickup
+        pickup         unix  n       -       n       60      1       pickup
             -o receive_override_options=no_header_body_checks
 
   * Add some firewall rule to prevent access to 1.2.3.4:smtp from the outside
index f3cdb587bb0521e142707a88195be06331887d6a..a40fb7da01276a8d1c2ec8f4a500c1abd00d2d24 100644 (file)
@@ -306,9 +306,8 @@ In some installations, there may be separate instances of Postfix processing
 inbound and outbound mail on a multi-homed firewall. The inbound Postfix
 instance has an SMTP server listening on the external firewall interface, and
 the outbound Postfix instance has an SMTP server listening on the internal
-interface. In such a configuration is it is tempting to configure
-$inet_interfaces in each instance with just the corresponding interface
-address.
+interface. In such a configuration it is tempting to configure $inet_interfaces
+in each instance with just the corresponding interface address.
 
 In most cases, using inet_interfaces in this way will not work, because as
 documented in the $inet_interfaces reference manual, the smtp(8) delivery agent
index bb053f8cb605c45634f0133be42adbadaa905c02..e2e2b8dd018f1be8787a4bb915acf7c08595cc3f 100644 (file)
@@ -6,10 +6,37 @@ Wish list:
 
        Disable -DSNAPSHOT and -DNONPROD in makedefs.
 
+       migrate rbl -> dnsbl
+
+       migrate smtpd_sasl_tls_security_options to "noanonymous"
+       (drop the "noplaintext" part).
+
+       Safety: restrict sender-dependent features to, for example,
+       mail from an authorized client (SASL, TLS, or IP address).
+       If this becomes the default then it needs to be subject to
+       comptibility_level.
+
+       Make some of the message editing features available for
+       non-Milter configurations (for example, set envelope.from
+       from primary header.from). 
+
        The postconf command needs more mongodb tests.
 
        The mongodb client needs tests.
 
+       Change Postfix SMTP debug logging to display the entire
+       input, instead of stopping at the first null byte.
+
+       SRS-friendly envelope.from output rewrite in the SMTP client.
+       TBD: before or after smtp_generic_maps. The two mechanisms
+       are unlikely to be useful in combination.
+
+       Cleanup: In documentation, replace DBM with LMDB (*.lmdb).
+
+       Cleanup: Is it time to remove SDBM support? Its iterator
+       was unusable, when the SDBM client was adopted in Postfix
+       2.2.
+
        In documentation and configuration file examples, replace
        IPv4 address prefixes from Cloud9 with 192.168.* from RFC
        1918, and replace IPv6 address prefixes with unique local
index 280c3d256c2689dbc9ac2d5f78442c230405449d..c27bce78b89a0d5b17fce43ab3c07607351b8d4c 100644 (file)
@@ -44,30 +44,36 @@ decode:             root
 # SYNOPSIS
 #        newaliases
 # 
+#        postalias -q name [file-type]:[file-name]
+# 
 # DESCRIPTION
 #        The  optional aliases(5) table (alias_maps) redirects mail
 #        for local recipients. The redirections  are  processed  by
-#        the Postfix local(8) delivery agent.
+#        the  Postfix local(8) delivery agent. This table is always
+#        searched with an email address localpart (no  domain  por-
+#        tion).
 # 
 #        This  is  unlike  virtual(5) aliasing (virtual_alias_maps)
 #        which applies to all recipients:  local(8),  virtual,  and
 #        remote, and which is implemented by the cleanup(8) daemon.
+#        That table is often searched with  a  full  email  address
+#        (including domain).
 # 
 #        Normally, the aliases(5) table is specified as a text file
-#        that  serves  as  input  to  the postalias(1) command. The
-#        result, an indexed file in dbm or db format, is  used  for
-#        fast  lookup  by  the  mail  system.  Execute  the command
-#        newaliases in order to  rebuild  the  indexed  file  after
+#        that serves as input  to  the  postalias(1)  command.  The
+#        result,  an  indexed file in dbm or db format, is used for
+#        fast lookup  by  the  mail  system.  Execute  the  command
+#        newaliases  in  order  to  rebuild  the indexed file after
 #        changing the Postfix alias database.
 # 
-#        When  the  table  is provided via other means such as NIS,
-#        LDAP or SQL, the same lookups are  done  as  for  ordinary
+#        When the table is provided via other means  such  as  NIS,
+#        LDAP  or  SQL,  the  same lookups are done as for ordinary
 #        indexed files.
 # 
-#        Alternatively,  the  table  can  be  provided  as  a regu-
-#        lar-expression map where patterns  are  given  as  regular
-#        expressions.  In  this  case,  the  lookups  are done in a
-#        slightly different way as described below  under  "REGULAR
+#        Alternatively, the  table  can  be  provided  as  a  regu-
+#        lar-expression  map  where  patterns  are given as regular
+#        expressions. In this case,  the  lookups  are  done  in  a
+#        slightly  different  way as described below under "REGULAR
 #        EXPRESSION TABLES".
 # 
 #        Users can control delivery of their own mail by setting up
@@ -81,63 +87,64 @@ decode:             root
 # 
 #                    name: value1, value2, ...
 # 
-#        o      Empty  lines and whitespace-only lines are ignored,
-#               as are lines whose first  non-whitespace  character
+#        o      Empty lines and whitespace-only lines are  ignored,
+#               as  are  lines whose first non-whitespace character
 #               is a `#'.
 # 
-#        o      A  logical  line starts with non-whitespace text. A
-#               line that starts with whitespace continues a  logi-
+#        o      A logical line starts with non-whitespace  text.  A
+#               line  that starts with whitespace continues a logi-
 #               cal line.
 # 
-#        The  name is a local address (no domain part).  Use double
-#        quotes when the name contains any special characters  such
-#        as  whitespace,  `#',  `:',  or `@'. The name is folded to
+#        The name is a local address (no domain part).  Use  double
+#        quotes  when the name contains any special characters such
+#        as whitespace, `#', `:', or `@'. The  name  is  folded  to
 #        lowercase, in order to make database lookups case insensi-
 #        tive.
 # 
-#        In  addition,  when  an  alias exists for owner-name, this
-#        will override the envelope sender address, so that  deliv-
+#        In addition, when an alias  exists  for  owner-name,  this
+#        will  override the envelope sender address, so that deliv-
 #        ery diagnostics are directed to owner-name, instead of the
-#        originator   of   the   message    (for    details,    see
-#        owner_request_special,        expand_owner_alias       and
-#        reset_owner_alias).  This  is  typically  used  to  direct
-#        delivery  errors  to the maintainer of a mailing list, who
+#        originator    of    the    message   (for   details,   see
+#        owner_request_special,       expand_owner_alias        and
+#        reset_owner_alias).   This  is  typically  used  to direct
+#        delivery errors to the maintainer of a mailing  list,  who
 #        is in a better position to deal with mailing list delivery
 #        problems than the originator of the undelivered mail.
 # 
 #        The value contains one or more of the following:
 # 
 #        address
-#               Mail  is  forwarded to address, which is compatible
+#               Mail is forwarded to address, which  is  compatible
 #               with the RFC 822 standard.
 # 
 #        /file/name
-#               Mail is appended to /file/name. For details on  how
-#               a  file  is written see the sections "EXTERNAL FILE
-#               DELIVERY" and "DELIVERY  RIGHTS"  in  the  local(8)
-#               documentation.   Delivery is not limited to regular
-#               files.  For example, to dispose of  unwanted  mail,
+#               Mail  is appended to /file/name. For details on how
+#               a file is written see the sections  "EXTERNAL  FILE
+#               DELIVERY"  and  "DELIVERY  RIGHTS"  in the local(8)
+#               documentation.  Delivery is not limited to  regular
+#               files.   For  example, to dispose of unwanted mail,
 #               deflect it to /dev/null.
 # 
 #        |command
-#               Mail  is  piped into command. Commands that contain
-#               special characters, such as whitespace,  should  be
-#               enclosed  between double quotes. For details on how
-#               a command is executed see "EXTERNAL COMMAND  DELIV-
+#               Mail is piped into command. Commands  that  contain
+#               special  characters,  such as whitespace, should be
+#               enclosed between double quotes. For details on  how
+#               a  command is executed see "EXTERNAL COMMAND DELIV-
 #               ERY" and "DELIVERY RIGHTS" in the local(8) documen-
 #               tation.
 # 
 #               When the command fails, a limited amount of command
-#               output  is  mailed  back  to  the sender.  The file
-#               /usr/include/sysexits.h defines the  expected  exit
-#               status  codes. For example, use "|exit 67" to simu-
-#               late a "user  unknown"  error,  and  "|exit  0"  to
+#               output is mailed back  to  the  sender.   The  file
+#               /usr/include/sysexits.h  defines  the expected exit
+#               status codes. For example, use "|exit 67" to  simu-
+#               late  a  "user  unknown"  error,  and  "|exit 0" to
 #               implement an expensive black hole.
 # 
 #        :include:/file/name
-#               Mail  is  sent  to  the  destinations listed in the
+#               Mail is sent to  the  destinations  listed  in  the
 #               named file.  Lines in :include: files have the same
-#               syntax as the right-hand side of alias entries.
+#               syntax  as  the  right-hand  side   of   aliases(5)
+#               entries.
 # 
 #               A  destination  can  be  any  destination  that  is
 #               described in this manual page. However, delivery to
index fd282dd29dbe61dda3c8e1528f4b3cc8bf46200a..e5e14e449f74678d21daba1162030c750a582601 100644 (file)
@@ -18,6 +18,7 @@ smtp      inet  n       -       n       -       -       smtpd
 #127.0.0.1:submission inet n -   n       -       -       smtpd
 #submission inet n       -       n       -       -       smtpd
 #  -o syslog_name=postfix/submission
+#  -o smtpd_forbid_unauth_pipelining=no
 #  -o smtpd_tls_security_level=encrypt
 #  -o smtpd_sasl_auth_enable=yes
 #  -o smtpd_tls_auth_only=yes
@@ -37,6 +38,7 @@ smtp      inet  n       -       n       -       -       smtpd
 #127.0.0.1:submissions inet n  -       n       -       -       smtpd
 #submissions     inet  n       -       n       -       -       smtpd
 #  -o syslog_name=postfix/submissions
+#  -o smtpd_forbid_unauth_pipelining=no
 #  -o smtpd_tls_wrappermode=yes
 #  -o smtpd_sasl_auth_enable=yes
 #  -o local_header_rewrite_clients=static:all
index 8200ca49bb647560da588b806128344831c6edaa..63799778c8791ebbd48548fbd375f5b65a9af6b5 100644 (file)
 #        The  optional  virtual(5) alias table (virtual_alias_maps)
 #        applies to all recipients: local(8), virtual, and  remote.
 #        This feature is implemented in the Postfix cleanup(8) dae-
-#        mon before mail is queued.
+#        mon before mail is queued.  These tables are often queried
+#        with a full email address (including domain).
 # 
-#        This is unlike the  aliases(5)  table  (alias_maps)  which
-#        applies only to local(8) recipients.
+#        This  is  unlike  the  aliases(5) table (alias_maps) which
+#        applies only to local(8) recipients. That  table  is  only
+#        queried with the email address localpart (no domain).
 # 
 #        Virtual  aliasing is recursive; to terminate recursion for
 #        a specific address, alias that address to itself.
 #        command after a configuration change.
 # 
 #        virtual_alias_maps ($virtual_maps)
-#               Optional lookup tables with aliases that  apply  to
-#               all recipients: local(8), virtual, and remote; this
-#               is unlike alias_maps that apply  only  to  local(8)
-#               recipients.
+#               Optional lookup tables that are often searched with
+#               a  full  email  address (including domain) and that
+#               apply to all  recipients:  local(8),  virtual,  and
+#               remote;  this  is  unlike  alias_maps that are only
+#               searched  with  an  email  address  localpart   (no
+#               domain) and that apply only to local(8) recipients.
 # 
 #        virtual_alias_domains ($virtual_alias_maps)
-#               Postfix  is the final destination for the specified
+#               Postfix is the final destination for the  specified
 #               list of virtual alias domains, that is, domains for
-#               which  all  addresses  are  aliased to addresses in
+#               which all addresses are  aliased  to  addresses  in
 #               other local or remote domains.
 # 
 #        propagate_unmatched_extensions (canonical, virtual)
-#               What address lookup tables copy an  address  exten-
+#               What  address  lookup tables copy an address exten-
 #               sion from the lookup key to the lookup result.
 # 
 #        Other parameters of interest:
 # 
 #        inet_interfaces (all)
-#               The  local  network  interface  addresses that this
+#               The local network  interface  addresses  that  this
 #               mail system receives mail on.
 # 
 #        mydestination  ($myhostname,  localhost.$mydomain,  local-
 #        host)
-#               The list of domains  that  are  delivered  via  the
+#               The  list  of  domains  that  are delivered via the
 #               $local_transport mail delivery transport.
 # 
 #        myorigin ($myhostname)
 #               The domain name that locally-posted mail appears to
-#               come from, and that locally posted mail  is  deliv-
+#               come  from,  and that locally posted mail is deliv-
 #               ered to.
 # 
 #        owner_request_special (yes)
 #               Enable special treatment for owner-listname entries
 #               in the aliases(5) file, and don't split owner-list-
-#               name  and  listname-request address localparts when
+#               name and listname-request address  localparts  when
 #               the recipient_delimiter is set to "-".
 # 
 #        proxy_interfaces (empty)
-#               The remote network interface  addresses  that  this
-#               mail  system  receives mail on by way of a proxy or
+#               The  remote  network  interface addresses that this
+#               mail system receives mail on by way of a  proxy  or
 #               network address translation unit.
 # 
 # SEE ALSO
 #        canonical(5), canonical address mapping
 # 
 # README FILES
-#        Use "postconf readme_directory" or  "postconf  html_direc-
+#        Use  "postconf  readme_directory" or "postconf html_direc-
 #        tory" to locate this information.
 #        ADDRESS_REWRITING_README, address rewriting guide
 #        DATABASE_README, Postfix lookup table overview
 #        VIRTUAL_README, domain hosting guide
 # 
 # LICENSE
-#        The  Secure  Mailer  license must be distributed with this
+#        The Secure Mailer license must be  distributed  with  this
 #        software.
 # 
 # AUTHOR(S)
index 31f80a8aeec0459f89378b5b71f031dbb5557055..d2c5b9caf080f331ec11cb653a6916898f12a360 100644 (file)
@@ -377,7 +377,7 @@ service with header/body filtering turned off.  </p>
         -o <a href="postconf.5.html#receive_override_options">receive_override_options</a>=<a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>
     127.0.0.1:smtp inet  n       -       n       -       -       smtpd
         -o <a href="postconf.5.html#receive_override_options">receive_override_options</a>=<a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>
-    pickup         fifo  n       -       n       60      1       pickup
+    pickup         unix  n       -       n       60      1       pickup
         -o <a href="postconf.5.html#receive_override_options">receive_override_options</a>=<a href="postconf.5.html#no_header_body_checks">no_header_body_checks</a>
 </pre>
 
index 998d1bd2c8bf42941a0189a8354c5bab96ef870d..6c5e88b3b342b6efb1d17033f722aba910120232 100644 (file)
@@ -423,7 +423,7 @@ whenever you change the transport table. </p>
 processing inbound and outbound mail on a multi-homed firewall. The
 inbound Postfix instance has an SMTP server listening on the external
 firewall interface, and the outbound Postfix instance has an SMTP server
-listening on the internal interface. In such a configuration is it is
+listening on the internal interface. In such a configuration it is
 tempting to configure $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> in each instance with just the
 corresponding interface address. </p>
 
index 79d01b4834ecd41cef92f92aa6970e102300e17e..177f3f76b544a463a4b36bab558a88e195978e0d 100644 (file)
@@ -13,14 +13,18 @@ ALIASES(5)                                                          ALIASES(5)
 <b>SYNOPSIS</b>
        <b>newaliases</b>
 
+       <b>postalias -q</b> <i>name</i> <b>[</b><i>file-type</i><b>]:[</b><i>file-name</i><b>]</b>
+
 <b>DESCRIPTION</b>
        The  optional  <a href="aliases.5.html"><b>aliases</b>(5)</a>  table  (<a href="postconf.5.html#alias_maps">alias_maps</a>) redirects mail for local
        recipients. The redirections are  processed  by  the  Postfix  <a href="local.8.html"><b>local</b>(8)</a>
-       delivery agent.
+       delivery  agent.  This  table  is always searched with an email address
+       localpart (no domain portion).
 
-       This  is  unlike <a href="virtual.5.html"><b>virtual</b>(5)</a> aliasing (<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>) which applies
-       to all recipients: <a href="local.8.html">local(8)</a>, virtual, and remote, and which  is  imple-
-       mented by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon.
+       This is unlike <a href="virtual.5.html"><b>virtual</b>(5)</a> aliasing (<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)  which  applies
+       to  all  recipients: <a href="local.8.html">local(8)</a>, virtual, and remote, and which is imple-
+       mented by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. That table is often  searched  with  a
+       full email address (including domain).
 
        Normally,  the <a href="aliases.5.html"><b>aliases</b>(5)</a> table is specified as a text file that serves
        as input to the <a href="postalias.1.html"><b>postalias</b>(1)</a> command. The result, an  indexed  file  in
@@ -94,7 +98,7 @@ ALIASES(5)                                                          ALIASES(5)
        <b>:include:</b><i>/file/name</i>
               Mail  is  sent  to  the  destinations  listed in the named file.
               Lines in <b>:include:</b> files have the same syntax as the  right-hand
-              side of alias entries.
+              side of <a href="aliases.5.html"><b>aliases</b>(5)</a> entries.
 
               A  destination  can be any destination that is described in this
               manual page. However, delivery to "|<i>command</i>" and  <i>/file/name</i>  is
index 69edb107f1378fb73c45e701d350152f24dfc535..d200cd5b3e059e53981864ab1b904ae656b708b2 100644 (file)
@@ -78,6 +78,12 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
 
                   server_host = ldap.example.com:1444
 
+              NOTE: if "server_host" specifies one load balancer and no alter-
+              native servers, specify the load balancer multiple times in  the
+              "server_host" line. Without the duplicate info, the Postfix LDAP
+              client would not reconnect immediately to the same load balancer
+              after an LDAP server failure.
+
               With OpenLDAP, a (list of) LDAP URLs can be used to specify both
               the hostname(s) and the port(s):
 
index 5063e65d0a0f3c059602e27c01a6d57994b168e2..c572cf535c8600b8ea9b486ab6574d95b95a9023 100644 (file)
@@ -61,6 +61,12 @@ MYSQL_TABLE(5)                                                  MYSQL_TABLE(5)
               TCP you have to specify
                   hosts = 127.0.0.1
 
+              NOTE:  if "hosts" specifies one load balancer and no alternative
+              servers, specify the load balancer multiple times in the "hosts"
+              line. Without the duplicate info, the Postfix MySQL client would
+              not reconnect immediately to the  same  load  balancer  after  a
+              MySQL server failure.
+
        <b>user</b>
 
        <b>password</b>
index 0b50fd1c29f88b7cb748dbeefd682b2bcb177a85..04eb91690b3f415c172789a9048b5e3da90a04da 100644 (file)
@@ -57,6 +57,12 @@ PGSQL_TABLE(5)                                                  PGSQL_TABLE(5)
               matically closed after being idle for about 1  minute,  and  are
               re-opened as necessary.
 
+              NOTE:  if "hosts" specifies one load balancer and no alternative
+              servers, specify the load balancer multiple times in the "hosts"
+              line.  Without the duplicate info, the Postfix PostgreSQL client
+              would not reconnect immediately to the same load balancer  after
+              a PostgreSQL server failure.
+
        <b>user</b>
 
        <b>password</b>
index a1a0c00633a808f64dac8f5204bb9dc31a1e222e..67dbfa209e8facd26b7f58ef665149b783a5e508 100644 (file)
@@ -612,12 +612,14 @@ Examples:
 (default: see "postconf -d" output)</b></DT><DD>
 
 <p>
-Optional lookup tables with aliases that apply only to <a href="local.8.html">local(8)</a>
-recipients; this is unlike <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> that apply to all
-recipients: <a href="local.8.html">local(8)</a>, virtual, and remote.
-The table format and lookups are documented in <a href="aliases.5.html">aliases(5)</a>. For an
-overview of Postfix address manipulations see the <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a>
-document. </p>
+Optional lookup tables that are searched only with an email address
+localpart (no domain) and that apply only to <a href="local.8.html">local(8)</a> recipients;
+this is unlike <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> that are often searched with a
+full email address (including domain) and that apply to all recipients:
+<a href="local.8.html">local(8)</a>, virtual, and remote.
+The <a href="postconf.5.html#alias_maps">alias_maps</a> table format and lookups are documented in <a href="aliases.5.html">aliases(5)</a>.
+For an overview of Postfix address manipulations see the
+<a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> document. </p>
 
 <p>
 Specify zero or more "type:name" lookup tables, separated by
@@ -10330,6 +10332,12 @@ are supported in Postfix 3.5 and later. Each destination is tried
 in the specified order.
 </p>
 
+<p> If an SMTP destination is a load balancer, and there are no
+alternative destinations, specify the load balancer multiple times.
+Without the duplicate info, the Postfix SMTP client would not
+reconnect immediately to the same load balancer after a remote SMTP
+server failure. </p>
+
 <p>
 If you're connected via UUCP, see the <a href="UUCP_README.html">UUCP_README</a> file for useful
 information.
@@ -22239,10 +22247,12 @@ This feature is available in Postfix 2.1 and later.
 (default: $<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b></DT><DD>
 
 <p>
-Optional lookup tables with aliases that apply to all recipients:
-<a href="local.8.html">local(8)</a>, virtual, and remote; this is unlike <a href="postconf.5.html#alias_maps">alias_maps</a> that apply
+Optional lookup tables that are often searched with a full email
+address (including domain) and that apply to all recipients: <a href="local.8.html">local(8)</a>,
+virtual, and remote; this is unlike <a href="postconf.5.html#alias_maps">alias_maps</a> that are only searched
+with an email address localpart (no domain) and that apply
 only to <a href="local.8.html">local(8)</a> recipients.
-The table format and lookups
+The <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> table format and lookups
 are documented in <a href="virtual.5.html">virtual(5)</a>. For an overview of Postfix address
 manipulations see the <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a> document.
 </p>
index c1c6eceaf92aec9ee96053e107eccecf82c2658b..798e644a71182d9123746abc42b3b2bdedb107f2 100644 (file)
@@ -20,10 +20,12 @@ VIRTUAL(5)                                                          VIRTUAL(5)
 <b>DESCRIPTION</b>
        The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table (<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>) applies to all
        recipients: <a href="local.8.html">local(8)</a>, virtual, and remote.  This feature is implemented
-       in the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before mail is queued.
+       in  the  Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before mail is queued.  These tables
+       are often queried with a full email address (including domain).
 
-       This  is unlike the <a href="aliases.5.html"><b>aliases</b>(5)</a> table (<a href="postconf.5.html#alias_maps">alias_maps</a>) which applies only to
-       <a href="local.8.html"><b>local</b>(8)</a> recipients.
+       This is unlike the <a href="aliases.5.html"><b>aliases</b>(5)</a> table (<a href="postconf.5.html#alias_maps">alias_maps</a>) which applies only  to
+       <a href="local.8.html"><b>local</b>(8)</a>  recipients. That table is only queried with the email address
+       localpart (no domain).
 
        Virtual aliasing is recursive; to terminate recursion  for  a  specific
        address, alias that address to itself.
@@ -231,9 +233,11 @@ VIRTUAL(5)                                                          VIRTUAL(5)
        Use the "<b>postfix reload</b>" command after a configuration change.
 
        <b><a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> ($<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b>
-              Optional  lookup  tables  with aliases that apply to all recipi-
-              ents: <a href="local.8.html"><b>local</b>(8)</a>, virtual, and remote; this is  unlike  <a href="postconf.5.html#alias_maps">alias_maps</a>
-              that apply only to <a href="local.8.html"><b>local</b>(8)</a> recipients.
+              Optional lookup tables that are often searched with a full email
+              address (including domain) and that  apply  to  all  recipients:
+              <a href="local.8.html"><b>local</b>(8)</a>,  virtual,  and  remote; this is unlike <a href="postconf.5.html#alias_maps">alias_maps</a> that
+              are only searched with an email address  localpart  (no  domain)
+              and that apply only to <a href="local.8.html"><b>local</b>(8)</a> recipients.
 
        <b><a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> ($<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)</b>
               Postfix  is the final destination for the specified list of vir-
index ed6a10fd17e3124e935ef391f0ad3750eb75d893..2a18e579e639794bbd609d545cfb67b391be42a4 100644 (file)
@@ -10,16 +10,22 @@ Postfix local alias database format
 .nf
 .fi
 \fBnewaliases\fR
+
+\fBpostalias \-q \fIname\fB [\fIfile\-type\fB]:[\fIfile\-name\fB]\fR
 .SH DESCRIPTION
 .ad
 .fi
 The optional \fBaliases\fR(5) table (alias_maps) redirects
 mail for local recipients. The redirections are processed
-by the Postfix \fBlocal\fR(8) delivery agent.
+by the Postfix \fBlocal\fR(8) delivery agent. This table
+is always searched with an email address localpart (no
+domain portion).
 
 This is unlike \fBvirtual\fR(5) aliasing (virtual_alias_maps)
 which applies to all recipients: local(8), virtual, and remote,
-and which is implemented by the \fBcleanup\fR(8) daemon.
+and which is implemented by the \fBcleanup\fR(8) daemon. That
+table is often searched with a full email address (including
+domain).
 
 Normally, the \fBaliases\fR(5) table is specified as a text file
 that serves as input to the \fBpostalias\fR(1) command. The
@@ -95,7 +101,7 @@ defines the expected exit status codes. For example, use
 .IP \fB:include:\fI/file/name\fR
 Mail is sent to the destinations listed in the named file.
 Lines in \fB:include:\fR files have the same syntax
-as the right\-hand side of alias entries.
+as the right\-hand side of \fBaliases\fR(5) entries.
 .sp
 A destination can be any destination that is described in this
 manual page. However, delivery to "|\fIcommand\fR" and
index 660f2c581e5f89541f412a9f78cf45bcfc0cbd77..7a8dfc19e404f9ac1a80dfd4b41b6b9332862194 100644 (file)
@@ -97,6 +97,12 @@ be possible to give each server in the list a different port
     server_host = ldap.example.com:1444
 .fi
 
+NOTE: if "server_host" specifies one load balancer and no
+alternative servers, specify the load balancer multiple
+times in the "server_host" line. Without the duplicate info,
+the Postfix LDAP client would not reconnect immediately to
+the same load balancer after an LDAP server failure.
+
 With OpenLDAP, a (list of) LDAP URLs can be used to specify both
 the hostname(s) and the port(s):
 
index aebb949e2e6bd955abe5e6be787923d3cb660781..d6e64e231ac07633d57ba7c71d5a8dd7ebdd434f 100644 (file)
@@ -76,6 +76,12 @@ localhost over TCP you have to specify
 .nf
     hosts = 127.0.0.1
 .fi
+
+NOTE: if "hosts" specifies one load balancer and no alternative
+servers, specify the load balancer multiple times in the
+"hosts" line. Without the duplicate info, the Postfix MySQL
+client would not reconnect immediately to the same load
+balancer after a MySQL server failure.
 .IP "\fBuser\fR"
 .IP "\fBpassword\fR"
 The user name and password to log into the mysql server.
index 869a63540893deeb1007747acc4bcdba50503743..4b4ecb12e4955218292d45e363f7ed2e3bab287f 100644 (file)
@@ -71,6 +71,12 @@ Examples:
 The hosts are tried in random order. The connections are
 automatically closed after being idle for about 1 minute,
 and are re\-opened as necessary.
+
+NOTE: if "hosts" specifies one load balancer and no alternative
+servers, specify the load balancer multiple times in the
+"hosts" line. Without the duplicate info, the Postfix
+PostgreSQL client would not reconnect immediately to the
+same load balancer after a PostgreSQL server failure.
 .IP "\fBuser\fR"
 .IP "\fBpassword\fR"
 The user name and password to log into the pgsql server.
index 38821b16bf32ff386645de92e44910d9e77dd5c7..67314334fa3ea8296ad894f7dd16cf61a26ab72f 100644 (file)
@@ -358,12 +358,14 @@ alias_database = hash:/etc/mail/aliases
 .ad
 .ft R
 .SH alias_maps (default: see "postconf \-d" output)
-Optional lookup tables with aliases that apply only to \fBlocal\fR(8)
-recipients; this is unlike virtual_alias_maps that apply to all
-recipients: \fBlocal\fR(8), virtual, and remote.
-The table format and lookups are documented in \fBaliases\fR(5). For an
-overview of Postfix address manipulations see the ADDRESS_REWRITING_README
-document.
+Optional lookup tables that are searched only with an email address
+localpart (no domain) and that apply only to \fBlocal\fR(8) recipients;
+this is unlike virtual_alias_maps that are often searched with a
+full email address (including domain) and that apply to all recipients:
+\fBlocal\fR(8), virtual, and remote.
+The alias_maps table format and lookups are documented in \fBaliases\fR(5).
+For an overview of Postfix address manipulations see the
+ADDRESS_REWRITING_README document.
 .PP
 Specify zero or more "type:name" lookup tables, separated by
 whitespace or comma. Tables will be searched in the specified order
@@ -6547,6 +6549,12 @@ The form [hostname] turns off MX or SRV lookups. Multiple destinations
 are supported in Postfix 3.5 and later. Each destination is tried
 in the specified order.
 .PP
+If an SMTP destination is a load balancer, and there are no
+alternative destinations, specify the load balancer multiple times.
+Without the duplicate info, the Postfix SMTP client would not
+reconnect immediately to the same load balancer after a remote SMTP
+server failure.
+.PP
 If you're connected via UUCP, see the UUCP_README file for useful
 information.
 .PP
@@ -15808,10 +15816,12 @@ from each original recipient.
 .PP
 This feature is available in Postfix 2.1 and later.
 .SH virtual_alias_maps (default: $virtual_maps)
-Optional lookup tables with aliases that apply to all recipients:
-\fBlocal\fR(8), virtual, and remote; this is unlike alias_maps that apply
+Optional lookup tables that are often searched with a full email
+address (including domain) and that apply to all recipients: \fBlocal\fR(8),
+virtual, and remote; this is unlike alias_maps that are only searched
+with an email address localpart (no domain) and that apply
 only to \fBlocal\fR(8) recipients.
-The table format and lookups
+The virtual_alias_maps table format and lookups
 are documented in \fBvirtual\fR(5). For an overview of Postfix address
 manipulations see the ADDRESS_REWRITING_README document.
 .PP
index e03a500082847bea43cccb75f8a3f6c96e17772a..15f87d93abd4f5f573d4a2ddbfad28f9dd67bb81 100644 (file)
@@ -20,9 +20,12 @@ The optional \fBvirtual\fR(5) alias table (virtual_alias_maps)
 applies to all recipients: local(8), virtual, and remote.
 This feature is implemented
 in the Postfix \fBcleanup\fR(8) daemon before mail is queued.
+These tables are often queried with a full email address
+(including domain).
 
 This is unlike the \fBaliases\fR(5) table (alias_maps) which
-applies only to \fBlocal\fR(8) recipients.
+applies only to \fBlocal\fR(8) recipients. That table is
+only queried with the email address localpart (no domain).
 
 Virtual aliasing is recursive; to terminate recursion for
 a specific address, alias that address to itself.
@@ -271,8 +274,10 @@ this topic. See the Postfix \fBmain.cf\fR file for syntax details
 and for default values. Use the "\fBpostfix reload\fR" command after
 a configuration change.
 .IP "\fBvirtual_alias_maps ($virtual_maps)\fR"
-Optional lookup tables with aliases that apply to all recipients:
-\fBlocal\fR(8), virtual, and remote; this is unlike alias_maps that apply
+Optional lookup tables that are often searched with a full email
+address (including domain) and that apply to all recipients: \fBlocal\fR(8),
+virtual, and remote; this is unlike alias_maps that are only searched
+with an email address localpart (no domain) and that apply
 only to \fBlocal\fR(8) recipients.
 .IP "\fBvirtual_alias_domains ($virtual_alias_maps)\fR"
 Postfix is the final destination for the specified list of virtual
index 3d3471d715cba19abce57b737658ae3af71a054f..8eaeaa030cceb91fd0b31b75ad0017b8a1a73d7f 100644 (file)
@@ -377,7 +377,7 @@ service with header/body filtering turned off.  </p>
         -o receive_override_options=no_header_body_checks
     127.0.0.1:smtp inet  n       -       n       -       -       smtpd
         -o receive_override_options=no_header_body_checks
-    pickup         fifo  n       -       n       60      1       pickup
+    pickup         unix  n       -       n       60      1       pickup
         -o receive_override_options=no_header_body_checks
 </pre>
 
index 72f07b36719daad07fba982075e85e954bb6d555..6c592479a2a7d0ded3837aeb076707c466f563e3 100644 (file)
@@ -423,7 +423,7 @@ whenever you change the transport table. </p>
 processing inbound and outbound mail on a multi-homed firewall. The
 inbound Postfix instance has an SMTP server listening on the external
 firewall interface, and the outbound Postfix instance has an SMTP server
-listening on the internal interface. In such a configuration is it is
+listening on the internal interface. In such a configuration it is
 tempting to configure $inet_interfaces in each instance with just the
 corresponding interface address. </p>
 
index f48a00b1ef46f5734ca00ec9197b5603c1dd9bd9..696e76479ef1ed4c8591be63e54e4f473362b02e 100644 (file)
@@ -6,14 +6,20 @@
 # SYNOPSIS
 # .fi
 #      \fBnewaliases\fR
+#
+#      \fBpostalias -q \fIname\fB [\fIfile-type\fB]:[\fIfile-name\fB]\fR
 # DESCRIPTION
 #      The optional \fBaliases\fR(5) table (alias_maps) redirects
 #      mail for local recipients. The redirections are processed
-#      by the Postfix \fBlocal\fR(8) delivery agent.
+#      by the Postfix \fBlocal\fR(8) delivery agent. This table
+#      is always searched with an email address localpart (no
+#      domain portion).
 #
 #      This is unlike \fBvirtual\fR(5) aliasing (virtual_alias_maps)
 #      which applies to all recipients: local(8), virtual, and remote,
-#      and which is implemented by the \fBcleanup\fR(8) daemon.
+#      and which is implemented by the \fBcleanup\fR(8) daemon. That
+#      table is often searched with a full email address (including
+#      domain).
 #
 #      Normally, the \fBaliases\fR(5) table is specified as a text file
 #      that serves as input to the \fBpostalias\fR(1) command. The
@@ -89,7 +95,7 @@
 # .IP \fB:include:\fI/file/name\fR
 #      Mail is sent to the destinations listed in the named file.
 #      Lines in \fB:include:\fR files have the same syntax
-#      as the right-hand side of alias entries.
+#      as the right-hand side of \fBaliases\fR(5) entries.
 # .sp
 #      A destination can be any destination that is described in this
 #      manual page. However, delivery to "|\fIcommand\fR" and
index be4c014d0f01e3897eae9348625fc0659c1a9224..fadf24a88b370478179eab3a53c8513a43a1fde3 100644 (file)
 #          server_host = ldap.example.com:1444
 # .fi
 #
+#      NOTE: if "server_host" specifies one load balancer and no
+#      alternative servers, specify the load balancer multiple
+#      times in the "server_host" line. Without the duplicate info,
+#      the Postfix LDAP client would not reconnect immediately to
+#      the same load balancer after an LDAP server failure.
+#
 #      With OpenLDAP, a (list of) LDAP URLs can be used to specify both
 #      the hostname(s) and the port(s):
 #
index 31e626fb20c73e5e12f3da357b094aaacce62d15..e68e0aea823a3f2369edec7b6bd466ee6d9e150b 100644 (file)
 # .nf
 #          hosts = 127.0.0.1
 # .fi
+#
+#      NOTE: if "hosts" specifies one load balancer and no alternative
+#      servers, specify the load balancer multiple times in the
+#      "hosts" line. Without the duplicate info, the Postfix MySQL
+#      client would not reconnect immediately to the same load
+#      balancer after a MySQL server failure.
 # .IP "\fBuser\fR"
 # .IP "\fBpassword\fR"
 #      The user name and password to log into the mysql server.
index b4364fb70284ca47115a14021bb1a19ba4eda375..31f6661e1b2b8282d2885784f47b241aebf645bd 100644 (file)
 #      The hosts are tried in random order. The connections are
 #      automatically closed after being idle for about 1 minute,
 #      and are re-opened as necessary.
+#
+#      NOTE: if "hosts" specifies one load balancer and no alternative
+#      servers, specify the load balancer multiple times in the
+#      "hosts" line. Without the duplicate info, the Postfix
+#      PostgreSQL client would not reconnect immediately to the
+#      same load balancer after a PostgreSQL server failure.
 # .IP "\fBuser\fR"
 # .IP "\fBpassword\fR"
 #      The user name and password to log into the pgsql server.
index a434e18531b52a6a6130aa51d7656a3c07272758..e941e7c0b3d45d3719b1d14b418c412631d2100a 100644 (file)
@@ -489,12 +489,14 @@ alias_database = hash:/etc/mail/aliases
 %PARAM alias_maps see "postconf -d" output
 
 <p>
-Optional lookup tables with aliases that apply only to local(8)
-recipients; this is unlike virtual_alias_maps that apply to all
-recipients: local(8), virtual, and remote.
-The table format and lookups are documented in aliases(5). For an
-overview of Postfix address manipulations see the ADDRESS_REWRITING_README
-document. </p>
+Optional lookup tables that are searched only with an email address
+localpart (no domain) and that apply only to local(8) recipients;
+this is unlike virtual_alias_maps that are often searched with a
+full email address (including domain) and that apply to all recipients:
+local(8), virtual, and remote.
+The alias_maps table format and lookups are documented in aliases(5).
+For an overview of Postfix address manipulations see the
+ADDRESS_REWRITING_README document. </p>
 
 <p>
 Specify zero or more "type:name" lookup tables, separated by
@@ -3938,6 +3940,12 @@ are supported in Postfix 3.5 and later. Each destination is tried
 in the specified order.
 </p>
 
+<p> If an SMTP destination is a load balancer, and there are no
+alternative destinations, specify the load balancer multiple times.
+Without the duplicate info, the Postfix SMTP client would not
+reconnect immediately to the same load balancer after a remote SMTP
+server failure. </p>
+
 <p>
 If you're connected via UUCP, see the UUCP_README file for useful
 information.
@@ -7311,10 +7319,12 @@ This feature is available in Postfix 2.1 and later.
 %PARAM virtual_alias_maps $virtual_maps
 
 <p>
-Optional lookup tables with aliases that apply to all recipients:
-local(8), virtual, and remote; this is unlike alias_maps that apply
+Optional lookup tables that are often searched with a full email
+address (including domain) and that apply to all recipients: local(8),
+virtual, and remote; this is unlike alias_maps that are only searched
+with an email address localpart (no domain) and that apply
 only to local(8) recipients.
-The table format and lookups
+The virtual_alias_maps table format and lookups
 are documented in virtual(5). For an overview of Postfix address
 manipulations see the ADDRESS_REWRITING_README document.
 </p>
index 55d625fbc7ab82f8d1ce90663c9683a3600ce7c1..c09be05de82e04b06ffd178388d8fe5a8b367631 100644 (file)
@@ -121,3 +121,5 @@ proto  proto aliases proto virtual proto ADDRESS_REWRITING_README html
  systems 6 bytes for LP64 File dns dns h 
  xxfi_unknown return values File smtpd smtpd c 
  or unimplemented commands File smtpd smtpd c 
+proto  proto mysql_table proto pgsql_table proto ldap_table 
+ File pickup pickup c 
index 5bfdc4ab3002fa8d9b469309864c0378231e7e59..87de3f6f19649de14f1005b5cfa0441c662c3670 100644 (file)
@@ -14,7 +14,6 @@ Velasco
 WISHLIST
 Yasuhiro
 deduplicates
-hmtl
 libs
 segfaulting
 srctoman
@@ -77,3 +76,8 @@ Sakaguchi
 Toshifumi
 mxonly
 shar
+bugzilla
+cgi
+mozilla
+Dilyan
+Palauzov
index e1935f00be05efc8d7ece9b7ce07dd4cdfce1ba7..0affd82f1d44b32b8b997182c65131d9ad9f4c71 100644 (file)
 #      applies to all recipients: local(8), virtual, and remote.
 #      This feature is implemented
 #      in the Postfix \fBcleanup\fR(8) daemon before mail is queued.
+#      These tables are often queried with a full email address
+#      (including domain).
 #
 #      This is unlike the \fBaliases\fR(5) table (alias_maps) which
-#      applies only to \fBlocal\fR(8) recipients.
+#      applies only to \fBlocal\fR(8) recipients. That table is
+#      only queried with the email address localpart (no domain).
 #
 #      Virtual aliasing is recursive; to terminate recursion for
 #      a specific address, alias that address to itself.
 #      and for default values. Use the "\fBpostfix reload\fR" command after
 #      a configuration change.
 # .IP "\fBvirtual_alias_maps ($virtual_maps)\fR"
-#      Optional lookup tables with aliases that apply to all recipients:
-#      \fBlocal\fR(8), virtual, and remote; this is unlike alias_maps that apply
+#      Optional lookup tables that are often searched with a full email
+#      address (including domain) and that apply to all recipients: \fBlocal\fR(8),
+#      virtual, and remote; this is unlike alias_maps that are only searched
+#      with an email address localpart (no domain) and that apply
 #      only to \fBlocal\fR(8) recipients.
 # .IP "\fBvirtual_alias_domains ($virtual_alias_maps)\fR"
 #      Postfix is the final destination for the specified list of virtual
index 2461069bbd5ff125f3beb2b424c580eeb6a09980..feded4ed4d27e7f67bbe577cf0878d74b2085e3e 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      "20240310"
+#define MAIL_RELEASE_DATE      "20240422"
 #define MAIL_VERSION_NUMBER    "3.10"
 
 #ifdef SNAPSHOT
index 4a77a476e51010bb696ad7ebb299fee4a17eb3be..384a83eb0c359003ae664ae09e388845dd3071ae 100644 (file)
@@ -334,12 +334,13 @@ static int pickup_copy(VSTREAM *qfile, VSTREAM *cleanup,
 #define HOUR_SECONDS 3600
 
     if (info->st.st_mtime > now + 2 * HOUR_SECONDS) {
-       msg_warn("%s: message dated %ld seconds into the future",
-                info->id, (long) (info->st.st_mtime - now));
+       msg_warn("%s: message %s dated %ld seconds into the future",
+                info->id, info->path, (long) (info->st.st_mtime - now));
        info->st.st_mtime = now;
     } else if (info->st.st_mtime < now - DAY_SECONDS) {
-       msg_warn("%s: message has been queued for %d days",
-                info->id, (int) ((now - info->st.st_mtime) / DAY_SECONDS));
+       msg_warn("%s: message %s has been queued for %d days",
+                info->id, info->path,
+                (int) ((now - info->st.st_mtime) / DAY_SECONDS));
     }
 
     /*