diff --git a/postfix/HISTORY b/postfix/HISTORY
index afa2e42f1..91f24ead4 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -28582,3 +28582,58 @@ Apologies for any names omitted.
instead of a message buffer and length. This is in preparation
for unix-dgram support in a spawn(8)-like service. Files:
master/dgram_server.c, master/mail_server.h, postlogd/postlogd.c.
+
+20241122
+
+ Documentation: updated the LOCAL_RECIPIENT_README text, and
+ pointed there from the local_recipient_maps description in
+ postconf(5). Files: proto/LOCAL_RECIPIENT_README.html,
+ proto/postconf.proto.
+
+20241127
+
+ Documentation: default_delivery_status_filter text. File:
+ proto/postconf.proto.
+
+ Documentation: support to convert superscripts in postconf.proto
+ manpage text from HTML to *roff. The result is a compromise:
+ vertical motion (\v'expr') works with groff, but not with
+ the newer mandoc and with the older UNIX nroff. So we use
+ ^ instead. Files: mantools/fixman, mantools/postconf2man,
+ proto/postconf.proto.
+
+20241129
+
+ Bugfix (introduced: on or before 19891104): the manpage
+ extractor mis-formatted titles with multiple names. File:
+ mantools/srctoman.
+
+20241130
+
+ Bugfix (defect introduced: 19991230): the spawn daemon
+ failed to enforce the command time limit. It was sending
+ the SIGKILL signal using the wrong effective UID and GID.
+ The pipe daemon has always done this right. File:
+ util/spawn_command.c.
+
+20241201
+
+ Bugfix (defect introduced Postfix 3.0). Missing UTF8
+ autodetection for headers that are automatically generated
+ by Postfix (for example, a From: header with UTF8 full name
+ information from the password file). Reported by Michael
+ Tokarev. File: src/cleanup/cleanup_message.c.
+
+20241202
+
+ Cleanup: don't leak parent directory information into
+ documentation checks. File: mantools/dehtml.
+
+ Documentation: reverted a breaking change made 20241122.
+ File: html/Makefile.in.
+
+ Documentation: revised spawn(8) manpage text. This is all
+ that remains of a failed experiment to implement a
+ datagram-based spawn(8) service. It was too difficult to
+ enforce that processes terminate as expected after "postfix
+ reload" etc. File: spawn/spawn.c.
diff --git a/postfix/README_FILES/LOCAL_RECIPIENT_README b/postfix/README_FILES/LOCAL_RECIPIENT_README
index c8b97bdd4..f777c8602 100644
--- a/postfix/README_FILES/LOCAL_RECIPIENT_README
+++ b/postfix/README_FILES/LOCAL_RECIPIENT_README
@@ -21,7 +21,7 @@ recipients correctly.
* Configuring local_recipient_maps in main.cf
* When you need to change the local_recipient_maps setting in main.cf
- * Local recipient table format
+ * Local recipient table query format
CCoonnffiigguurriinngg llooccaall__rreecciippiieenntt__mmaappss iinn mmaaiinn..ccff
@@ -30,11 +30,13 @@ addresses of local recipients. A recipient address is local when its domain
matches $mydestination, $inet_interfaces or $proxy_interfaces. If a local
username or address is not listed in $local_recipient_maps, then the Postfix
SMTP server will reject the address with "User unknown in local recipient
-table". Other Postfix interfaces may still accept an "unknown" recipient.
+table". Other interfaces such as the Postfix sendmail(1) command may still
+accept an "unknown" recipient.
The default setting, shown below, assumes that you use the default Postfix
local(8) delivery agent for local delivery, where recipients are either UNIX
-accounts or local aliases:
+accounts (typically, in /etc/passwd) or local aliases (typically, in /etc/
+aliases):
/etc/postfix/main.cf:
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
@@ -67,19 +69,19 @@ WWhheenn yyoouu nneeeedd ttoo cchhaannggee tthhee llooc
local_transport = virtual
local_recipient_maps = $virtual_mailbox_maps
- If you use a different delivery agent for $mydestination etc. domains, see
- the section "Local recipient table format" below for a description of how
- the table should be populated.
+ If you don't use the local(8) or virtual(8) delivery agent for
+ $mydestination etc. domains, see the section "Local recipient table format"
+ below for a description of how the table should be populated.
* Problem: you use the mailbox_transport or fallback_transport feature of the
Postfix local(8) delivery agent in order to deliver mail to non-UNIX
- accounts.
+ recipients.
- Solution: you need to add the database that lists the non-UNIX users:
+ Solution: you need to add the database that lists the non-UNIX recipients:
/etc/postfix/main.cf
local_recipient_maps = proxy:unix:passwd.byname, $alias_maps,
-
The default setting, shown below, assumes that you use the default Postfix local(8) delivery agent for local delivery, where -recipients are either UNIX accounts or local aliases:
+recipients are either UNIX accounts (typically, in /etc/passwd) or +local aliases (typically, in /etc/aliases):@@ -112,22 +114,23 @@ setting in main.cf local_recipient_maps = $virtual_mailbox_maps-If you use a different delivery agent for $mydestination +
If you don't use the local(8) or virtual(8) delivery agent + for $mydestination etc. domains, see the section "Local recipient table format" below for a description of how the table should be populated.
Problem: you use the mailbox_transport or fallback_transport feature of the Postfix local(8) delivery agent in order to - deliver mail to non-UNIX accounts.
+ deliver mail to non-UNIX recipients.Solution: you need to add the database that lists the - non-UNIX users:
+ non-UNIX recipients:/etc/postfix/main.cf local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, - <the database with non-UNIX accounts> + <the database with non-UNIX recipients>See the section "Local recipient table @@ -138,8 +141,8 @@ setting in main.cf local delivery agent.
Solution: you must disable the local_recipient_maps feature - completely, so that Postfix accepts mail for all local addresses: -
+ completely, so that the Postfix SMTP server accepts mail for + all local addresses:/etc/postfix/main.cf @@ -148,34 +151,59 @@ setting in main.cf -Local recipient table format
+Local recipient table query format
-If you use local files in postmap(1) format, then -local_recipient_maps expects the following table format:
+If local_recipient_maps specifies local files, such as files in +postmap(1) or postalias(1) format, then the Postfix SMTP server +generates the following queries:
-
-In the left-hand side, specify a bare username, an -"@domain.tld" wild-card, or specify a complete "user@domain.tld" -address.
+The full recipient address. This query supports a non-default +local_transport setting with a delivery agent such as lmtp(8) or +virtual(8). See "Configuring local_recipient_maps +in main.cf: for additional guidance for what lookup tables to +specify.
-You have to specify something on the right-hand side of -the table, but the value is ignored by local_recipient_maps. +
The recipient address local-part. This query supports the +default local_transport setting with the UNIX-compatible local(8) +delivery agent; the Postfix SMTP server makes this query only when +the recipient domain matches $mydestination, $inet_interfaces or +$proxy_interfaces.
+ +The recipient @domain. This query supports a non-default +local_transport setting with a delivery agent such as virtual(8); +it is a wildcard for domains that do not have a valid recipient +list.
If you use lookup tables based on NIS, LDAP, MYSQL, or PGSQL, -then local_recipient_maps does the same queries as for local files -in postmap(1) format, and expects the same results.
+NOTES:
-With regular expression tables, Postfix only queries with the -full recipient address, and not with the bare username or the -"@domain.tld" wild-card.
+-
NOTE: a lookup table should always return a result when the address -exists, and should always return "not found" when the address does -not exist. In particular, a zero-length result does not count as -a "not found" result.
+A lookup table should return a non-empty result when the +address exists, and should return "not found" when the address does +not exist. In particular, a zero-length (empty) result does not +count as a "not found" result.
+ +When local_recipient_maps specifies a lookup table based +on ldap:, memcache:, mongodb:, mysql:, pgsql:, sqlite:, or other +external database, then the Postfix SMTP server queries that lookup +table with the same queries as described at the start of this +section, and expects the same results.
+ +To suppress lookups for the local-part and the +@domain wild-card, specify the domain setting in a +Postfix ldap:, memcache:, mongodb:, mysql:, pgsql:, sqlite:, etc., +database client configuration file.
+ +When local_recipient_maps specifies a lookup table based +on pcre:, regexp:, socketmap: or tcp:, Postfix queries that table +only with the full recipient address, and not with the local-part +or the @domain wild-card.
+ +
-SMTP,(LMTP) SMTP,(LMTP) +SMTP(8) SMTP(8) NAME smtp, lmtp - Postfix SMTP+LMTP client @@ -979,7 +979,7 @@ SMTP,(LMTP) SMTP,(LMTP) delay_logging_resolution_limit (2) The maximal number of digits after the decimal point when log- - ging sub-second delay values. + ging delay values. disable_dns_lookups (no) Disable DNS lookups in the Postfix SMTP and LMTP clients. @@ -1153,5 +1153,5 @@ SMTP,(LMTP) SMTP,(LMTP) Victor Duchovni Morgan Stanley - 8 SMTP,(LMTP) + SMTP(8)