diff --git a/postfix/.indent.pro b/postfix/.indent.pro
index 9fa65a8f9..26bcd4b49 100644
--- a/postfix/.indent.pro
+++ b/postfix/.indent.pro
@@ -307,7 +307,6 @@
-TRESPONSE
-TREST_TABLE
-TRES_CONTEXT
--TRING
-TRWR_CONTEXT
-TSCACHE
-TSCACHE_CLNT
diff --git a/postfix/HISTORY b/postfix/HISTORY
index 8aec6eb2d..4a99c3ae2 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -28932,7 +28932,7 @@ Apologies for any names omitted.
Documentation: updated TLSRPT_README, added postfix-tlspol
policy plugin, deprecated the policy_ttl attribute. File:
proto/TLSRPT_README.html.
-
+
20250207
Performance: when a mysql: or pgsql: configuration specifies
@@ -29397,9 +29397,6 @@ Apologies for any names omitted.
20250714
- Uploaded the wrong postfix-3.11-20250713 tarball. Files:
- master/event_server.c, master/multi_server.c.
-
Deleted an dependency, because the feature is
being removed from OpenSSL, and Postfix no longer needs it. File:
posttls-finger/posttls-finger.c.
@@ -29559,3 +29556,139 @@ Apologies for any names omitted.
Bugfix (defect introduced: 20250803): "TLS-Required: no" was
no longer in effect for LMTP deliveries. Viktor Dukhovni.
File: smtp/smtp_connect.c.
+
+ Baseline is postfix-3.11-20250807
+
+NONPROD CODE
+
+ Feature: support for the REQUIRETLS verb in SMTP. According
+ to RFC 8689, this requires TLS server certificate matching.
+ Files: cleanup/cleanup_api.c, global/cleanup_strflags.c,
+ global/post_mail.c, global/post_mail.c, global/ehlo_mask.[hc],
+ global/ehlo_mask_test.c, local/forward.c, smtpd/smtpd.c,
+ smtp/smtp_connect.c, smtp/smtp_proto.c.
+
+ Added a configuration parameter "requiretls_enable" (default:
+ yes). Files: cleanup/cleanup_api.c, global/cleanup_strflags.c,
+ global/post_mail.c, global/post_mail.c, global/ehlo_mask.[hc],
+ global/ehlo_mask_test.c, local/forward.c, smtpd/smtpd.c,
+ smtp/smtp_connect.c, smtp/smtp_proto.c.
+
+ After a certificate check fails, or a remote SMTP server
+ does not announce REQUIRETLS support, the Postfix SMTP
+ client will override the RFC 8689 5.x.x. status and treat
+ it as a soft error, until there are no more alternate MX
+ servers to try. Files: smtp/smtp.h, smtp/smtp_proto.c,
+ smtp/smtp_trouble.c.
+
+ When a message received with REQUIRETLS is returned in a
+ delivery status notification, return the message headers
+ only, and do not request delivery with REQUIRETLS. Files:
+ bounce/bounce_notify_service.c, bounce/bounce_one_service.c,
+ bounce/bounce_trace_service.c, bounce/bounce_verp_service.c,
+ bounce/bounce_warn_service.c.
+
+ Completed: new Postfix sendmail command option "-O requiretls"
+ to request that deliveries over SMTP use the REQUIRETLS
+ extension. The option value "requiretls" is case-insensitive.
+ Files: sendmail/sendmail.c, global/rec_types.h, pickup/pickup.c.
+
+ Cleanup: new Postfix sendmail command option "-O smtputf8"
+ to request that deliveries over SMTP use the SMTPUTF8
+ extension. This reuses logic that was introduced for
+ REQUIRETLS. The option value "smtputf8" is case-insensitive.
+ Files: sendmail/sendmail.c.
+
+ Cleanup: when message delivery requires that a remote SMTP
+ server supports SMTPUTF8, try multiple MX servers before
+ returning a message as undeliverable. This reuses logic
+ that was introduced for REQUIRETLS. File: smtp/smtp_proto.c.
+
+ Completed: support in the pipe(8) daemon to propagate
+ REQUIRETLS through post-queue content filters that pass
+ filtered mail to the Postfix sendmail(1) command. This
+ involves a new a pipe(8) macro ${requiretls} that expands
+ into a suitable sendmail(1) command-line option. A more
+ secretive alternative would be to pass the info with a
+ REQUIRETLS environment variable, but that would require
+ change to the default import_environment setting. Files:
+ pipe/pipe.c, sendmail/sendmail.c.
+
+ Completed: the SMTP/LMTP client with "flags=X" will not
+ require REQUIRETLS support in the final server. Files:
+ smtp/smtp.c, smtp/smtp_proto.c.
+
+ Completed: REQUIRETLS support can be disabled in the Postfix
+ SMTP/LMTP client with "{ -o requiretls_enable = no }". This
+ is recommended for a perimeter MTA that hands off mail to
+ internal servers that may not support REQUIRETLS.
+
+ Completed: smtp_enforce_requiretls list of next-hop domains
+ (or UNIX-domain pathnames) that are ready for REQUIRETLS
+ enforcement. This may help with gradual adoption.
+
+TODO
+
+ Encapsulate the sendopts-to-cleanup-flags mapping.
+
+ Postfix sendmail -O TlsRequired option?
+
+ What REQUIRETLS expectations can we enforce when delivering
+ over a UNIX-domain channel? The SMTP/LMTP client currently
+ implements the same behavior as for TCP, except that
+ opportunistic TLS is converted into 'none'.
+
+ Document how REQUIRETLS works (or does not) with external
+ content filters.
+
+ - REQUIRETLS will not affect Milter-based content filters,
+ assuming that they don't expose message content via some
+ side channel.
+
+ - REQUIRETLS can work with smtpd_proxy_filter as long as
+ - the Postfix SMTP server passes the entire Postfix SMTP
+ client's MAIL FROM command line through the filter to
+ the Postfix SMTP server after the proxy filter,
+ - the post-filter Postfix SMTP server allows REQUIRETLS
+ in a plaintext session.
+ The Postfix proxy filter client does not need to require
+ REQUIRETLS (or SMTPUTF8) announcements in the filter's
+ EHLO response.
+
+ - REQUIRETLS can work with a local SMTP-based after-queue
+ content filters as long as
+ - the filter announces REQUIRETLS in the EHLO response
+ (this could be 'always', or copied from the after-filter
+ Postfix SMTP server's EHLO response),
+ - the filter passes the entire MAIL FROM command from the
+ before-filter Postfix SMTP client to the after-filter
+ Postfix SMTP server,
+ - the post-filter Postfix SMTP server allows MAIL FROM
+ with REQUIRETLS in a plaintext session.
+ Apart from that, the content filter does not need to
+ 'know' that REQUIRETLS is active (assuming that it does
+ not leak message content through some side channel.
+
+ - REQUIRETLS can work with pipe(8)-filter-sendmail(1)
+ after-queue content filters, by specifying a pipe(8) macro
+ ${requiretls} which expands to a suitable sendmail(1)
+ command-line option. Maybe we can also make this work
+ with a REQUIRETLS environment variable (requires change
+ to the (Postfix sendmail) import_environment list.
+
+ - The Postfix LMTP client when run with the -X option will
+ not require that the LMTP server announces REQUIRETLS
+ support.
+
+ - Perimeter MTA configuration: disable REQUIRETLS (or
+ REQUIRETLS enforcement) on the inbound relay transport
+ when internal infrastructure may not be suitable for
+ REQUIRETLS enforcement.
+
+ If a message contains "TLS-Required: no", should a bounce
+ message also contain this header?
+
+ Ditto for "tls_required_enable = no" and "TLS-Required:
+ no". The header is provided by the sender, and enforcement
+ is up the Postfix SMTP client.
+
diff --git a/postfix/html/lmtp.8.html b/postfix/html/lmtp.8.html
index ba706a170..8078b17d0 100644
--- a/postfix/html/lmtp.8.html
+++ b/postfix/html/lmtp.8.html
@@ -174,7 +174,7 @@ SMTP(8) SMTP(8)
RFC 6531 (Internationalized SMTP)
RFC 6533 (Internationalized Delivery Status Notifications)
RFC 7672 (SMTP security via opportunistic DANE TLS)
- RFC 8689 (TLS-Required message header)
+ RFC 8689 (SMTP REQUIRETLS extension)
DIAGNOSTICS
Problems and transactions are logged to syslogd(8) or postlogd(8).
@@ -507,7 +507,7 @@ SMTP(8) SMTP(8)
The delimiter between username and password in sasl_passwd_maps
lookup results.
-STARTTLS SUPPORT CONTROLS
+TLS SUPPORT CONTROLS
Detailed information about STARTTLS configuration may be found in the
TLS_README document.
@@ -766,41 +766,52 @@ SMTP(8) SMTP(8)
Enable support for the "TLS-Required: no" message header,
defined in RFC 8689.
-OBSOLETE STARTTLS CONTROLS
- The following configuration parameters exist for compatibility with
- Postfix versions before 2.3. Support for these will be removed in a
+ requiretls_enable (yes)
+ Enable support for the ESMTP verb "REQUIRETLS", defined in RFC
+ 8689.
+
+ smtp_enforce_requiretls (empty)
+ An optional list of next-hop destinations that the Postfix
+ SMTP/LMTP client will enforce REQUIRETLS for, when a message was
+ received with the REQUIRETLS option: the next-hop server must
+ offer a matching TLS server certificate, and the server must
+ announce REQUIRETLS support).
+
+OBSOLETE TLS CONTROLS
+ The following configuration parameters exist for compatibility with
+ Postfix versions before 2.3. Support for these will be removed in a
future release.
smtp_use_tls (no)
- Opportunistic mode: use TLS when a remote SMTP server announces
+ Opportunistic mode: use TLS when a remote SMTP server announces
STARTTLS support, otherwise send the mail in the clear.
smtp_enforce_tls (no)
- Enforcement mode: require that remote SMTP servers use TLS
+ Enforcement mode: require that remote SMTP servers use TLS
encryption, and never send mail in the clear.
smtp_tls_enforce_peername (yes)
- With mandatory TLS encryption, require that the remote SMTP
- server hostname matches the information in the remote SMTP
+ With mandatory TLS encryption, require that the remote SMTP
+ server hostname matches the information in the remote SMTP
server certificate.
smtp_tls_per_site (empty)
- Optional lookup tables with the Postfix SMTP client TLS usage
- policy by next-hop destination and by remote SMTP server host-
+ Optional lookup tables with the Postfix SMTP client TLS usage
+ policy by next-hop destination and by remote SMTP server host-
name.
smtp_tls_cipherlist (empty)
- Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
+ Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
cipher list.
RESOURCE AND RATE CONTROLSsmtp_connect_timeout (30s)
- The Postfix SMTP client time limit for completing a TCP connec-
+ The Postfix SMTP client time limit for completing a TCP connec-
tion, or zero (use the operating system built-in time limit).
smtp_helo_timeout (300s)
- The Postfix SMTP client time limit for sending the HELO or EHLO
- command, and for receiving the initial remote SMTP server
+ The Postfix SMTP client time limit for sending the HELO or EHLO
+ command, and for receiving the initial remote SMTP server
response.
lmtp_lhlo_timeout (300s)
@@ -812,19 +823,19 @@ SMTP(8) SMTP(8)
mand, and for receiving the remote SMTP server response.
smtp_mail_timeout (300s)
- The Postfix SMTP client time limit for sending the MAIL FROM
+ The Postfix SMTP client time limit for sending the MAIL FROM
command, and for receiving the remote SMTP server response.
smtp_rcpt_timeout (300s)
- The Postfix SMTP client time limit for sending the SMTP RCPT TO
+ The Postfix SMTP client time limit for sending the SMTP RCPT TO
command, and for receiving the remote SMTP server response.
smtp_data_init_timeout (120s)
- The Postfix SMTP client time limit for sending the SMTP DATA
+ The Postfix SMTP client time limit for sending the SMTP DATA
command, and for receiving the remote SMTP server response.
smtp_data_xfer_timeout (180s)
- The Postfix SMTP client time limit for sending the SMTP message
+ The Postfix SMTP client time limit for sending the SMTP message
content.
smtp_data_done_timeout (600s)
@@ -838,13 +849,13 @@ SMTP(8) SMTP(8)
Available in Postfix version 2.1 and later:
smtp_mx_address_limit (5)
- The maximal number of MX (mail exchanger) IP addresses that can
- result from Postfix SMTP client mail exchanger lookups, or zero
+ The maximal number of MX (mail exchanger) IP addresses that can
+ result from Postfix SMTP client mail exchanger lookups, or zero
(no limit).
smtp_mx_session_limit (2)
- The maximal number of SMTP sessions per delivery request before
- the Postfix SMTP client gives up or delivers to a fall-back
+ The maximal number of SMTP sessions per delivery request before
+ the Postfix SMTP client gives up or delivers to a fall-back
relay host, or zero (no limit).
smtp_rset_timeout (20s)
@@ -854,17 +865,17 @@ SMTP(8) SMTP(8)
Available in Postfix version 2.2 and earlier:
lmtp_cache_connection (yes)
- Keep Postfix LMTP client connections open for up to $max_idle
+ Keep Postfix LMTP client connections open for up to $max_idle
seconds.
Available in Postfix version 2.2 and later:
smtp_connection_cache_destinations (empty)
- Permanently enable SMTP connection caching for the specified
+ Permanently enable SMTP connection caching for the specified
destinations.
smtp_connection_cache_on_demand (yes)
- Temporarily enable SMTP connection caching while a destination
+ Temporarily enable SMTP connection caching while a destination
has a high volume of mail in the active queue.
smtp_connection_reuse_time_limit (300s)
@@ -878,23 +889,23 @@ SMTP(8) SMTP(8)
Available in Postfix version 2.3 and later:
connection_cache_protocol_timeout (5s)
- Time limit for connection cache connect, send or receive opera-
+ Time limit for connection cache connect, send or receive opera-
tions.
Available in Postfix version 2.9 - 3.6:
smtp_per_record_deadline (no)
- Change the behavior of the smtp_*_timeout time limits, from a
- time limit per read or write system call, to a time limit to
- send or receive a complete record (an SMTP command line, SMTP
- response line, SMTP message content line, or TLS protocol mes-
+ Change the behavior of the smtp_*_timeout time limits, from a
+ time limit per read or write system call, to a time limit to
+ send or receive a complete record (an SMTP command line, SMTP
+ response line, SMTP message content line, or TLS protocol mes-
sage).
Available in Postfix version 2.11 and later:
smtp_connection_reuse_count_limit (0)
- When SMTP connection caching is enabled, the number of times
- that an SMTP session may be reused before it is closed, or zero
+ When SMTP connection caching is enabled, the number of times
+ that an SMTP session may be reused before it is closed, or zero
(no limit).
Available in Postfix version 3.4 and later:
@@ -905,13 +916,13 @@ SMTP(8) SMTP(8)
Available in Postfix version 3.7 and later:
smtp_per_request_deadline (no)
- Change the behavior of the smtp_*_timeout time limits, from a
- time limit per plaintext or TLS read or write call, to a com-
- bined time limit for sending a complete SMTP request and for
+ Change the behavior of the smtp_*_timeout time limits, from a
+ time limit per plaintext or TLS read or write call, to a com-
+ bined time limit for sending a complete SMTP request and for
receiving a complete SMTP response.
smtp_min_data_rate (500)
- The minimum plaintext data transfer rate in bytes/second for
+ The minimum plaintext data transfer rate in bytes/second for
DATA requests, when deadlines are enabled with
smtp_per_request_deadline.
@@ -919,54 +930,54 @@ SMTP(8) SMTP(8)
transport_destination_concurrency_limit ($default_destination_concur-rency_limit)
- A transport-specific override for the default_destination_con-
+ A transport-specific override for the default_destination_con-
currency_limit parameter value, where transport is the master.cf
name of the message delivery transport.
transport_destination_recipient_limit ($default_destination_recipi-ent_limit)
A transport-specific override for the default_destination_recip-
- ient_limit parameter value, where transport is the master.cf
+ ient_limit parameter value, where transport is the master.cf
name of the message delivery transport.
SMTPUTF8 CONTROLS
Preliminary SMTPUTF8 support is introduced with Postfix 3.0.
smtputf8_enable (yes)
- Enable preliminary SMTPUTF8 support for the protocols described
+ Enable preliminary SMTPUTF8 support for the protocols described
in RFC 6531, RFC 6532, and RFC 6533.
smtputf8_autodetect_classes (sendmail, verify)
- Detect that a message requires SMTPUTF8 support for the speci-
+ Detect that a message requires SMTPUTF8 support for the speci-
fied mail origin classes.
Available in Postfix version 3.2 and later:
enable_idna2003_compatibility (no)
- Enable 'transitional' compatibility between IDNA2003 and
- IDNA2008, when converting UTF-8 domain names to/from the ASCII
+ Enable 'transitional' compatibility between IDNA2003 and
+ IDNA2008, when converting UTF-8 domain names to/from the ASCII
form that is used for DNS lookups.
TROUBLE SHOOTING CONTROLSdebug_peer_level (2)
- The increment in verbose logging level when a nexthop destina-
- tion, remote client or server name or network address matches a
+ The increment in verbose logging level when a nexthop destina-
+ tion, remote client or server name or network address matches a
pattern given with the debug_peer_list parameter.
debug_peer_list (empty)
- Optional list of nexthop destination, remote client or server
- name or network address patterns that, if matched, cause the
- verbose logging level to increase by the amount specified in
+ Optional list of nexthop destination, remote client or server
+ name or network address patterns that, if matched, cause the
+ verbose logging level to increase by the amount specified in
$debug_peer_level.
error_notice_recipient (postmaster)
- The recipient of postmaster notifications about mail delivery
+ The recipient of postmaster notifications about mail delivery
problems that are caused by policy, resource, software or proto-
col errors.
internal_mail_filter_classes (empty)
- What categories of Postfix-generated mail are subject to
- before-queue content inspection by non_smtpd_milters,
+ What categories of Postfix-generated mail are subject to
+ before-queue content inspection by non_smtpd_milters,
header_checks and body_checks.
notify_classes (resource, software)
@@ -974,46 +985,46 @@ SMTP(8) SMTP(8)
MISCELLANEOUS CONTROLSbest_mx_transport (empty)
- Where the Postfix SMTP client should deliver mail when it
+ Where the Postfix SMTP client should deliver mail when it
detects a "mail loops back to myself" error condition.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and master.cf con-
+ The default location of the Postfix main.cf and master.cf con-
figuration files.
daemon_timeout (18000s)
- 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.
delay_logging_resolution_limit (2)
- The maximal number of digits after the decimal point when log-
+ The maximal number of digits after the decimal point when log-
ging delay values.
disable_dns_lookups (no)
Disable DNS lookups in the Postfix SMTP and LMTP clients.
inet_interfaces (all)
- The local network interface addresses that this mail system
+ The local network interface addresses that this mail system
receives mail on.
inet_protocols (see 'postconf -d' output)
- The Internet protocols Postfix will attempt to use when making
+ The Internet protocols Postfix will attempt to use when making
or accepting connections.
ipc_timeout (3600s)
- The time limit for sending or receiving information over an
+ The time limit for sending or receiving information over an
internal communication channel.
lmtp_assume_final (no)
- When a remote LMTP server announces no DSN support, assume that
- the server performs final delivery, and send "delivered" deliv-
+ When a remote LMTP server announces no DSN support, assume that
+ the server performs final delivery, and send "delivered" deliv-
ery status notifications instead of "relayed".
lmtp_tcp_port (24)
The default TCP port that the Postfix LMTP client connects to.
max_idle (100s)
- 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.
max_use (100)
@@ -1027,21 +1038,21 @@ SMTP(8) SMTP(8)
The process name of a Postfix command or daemon process.
proxy_interfaces (empty)
- The remote network interface addresses that this mail system
- receives mail on by way of a proxy or network address transla-
+ The remote network interface addresses that this mail system
+ receives mail on by way of a proxy or network address transla-
tion unit.
smtp_address_preference (any)
The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP
- client will try first, when a destination has IPv6 and IPv4
+ client will try first, when a destination has IPv6 and IPv4
addresses with equal MX preference.
smtp_bind_address (empty)
- An optional numerical network address that the Postfix SMTP
+ An optional numerical network address that the Postfix SMTP
client should bind to when making an IPv4 connection.
smtp_bind_address6 (empty)
- An optional numerical network address that the Postfix SMTP
+ An optional numerical network address that the Postfix SMTP
client should bind to when making an IPv6 connection.
smtp_helo_name ($myhostname)
@@ -1061,7 +1072,7 @@ SMTP(8) SMTP(8)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- 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 with Postfix 2.2 and earlier:
@@ -1073,14 +1084,14 @@ SMTP(8) SMTP(8)
Available with Postfix 2.3 and later:
smtp_fallback_relay ($fallback_relay)
- Optional list of relay destinations that will be used when an
- SMTP destination is not found, or when delivery fails due to a
+ Optional list of relay destinations that will be used when an
+ SMTP destination is not found, or when delivery fails due to a
non-permanent error.
Available with Postfix 3.0 and later:
smtp_address_verify_target (rcpt)
- In the context of email address verification, the SMTP protocol
+ In the context of email address verification, the SMTP protocol
stage that determines whether an email address is deliverable.
Available with Postfix 3.1 and later:
@@ -1102,7 +1113,7 @@ SMTP(8) SMTP(8)
Available in Postfix 3.7 and later:
smtp_bind_address_enforce (no)
- Defer delivery when the Postfix SMTP client cannot apply the
+ Defer delivery when the Postfix SMTP client cannot apply the
smtp_bind_address or smtp_bind_address6 setting.
SEE ALSO
diff --git a/postfix/html/mailq.1.html b/postfix/html/mailq.1.html
index 4645b733a..368636874 100644
--- a/postfix/html/mailq.1.html
+++ b/postfix/html/mailq.1.html
@@ -168,12 +168,32 @@ SENDMAIL(1) SENDMAIL(1)
Delivery status notification control. Specify either a
comma-separated list with one or more of failure (send notifica-
tion when delivery fails), delay (send notification when deliv-
- ery is delayed), or success (send notification when the message
+ ery is delayed), or success (send notification after the message
is delivered); or specify never (don't send any notifications at
all).
This feature is available in Postfix 2.3 and later.
+ -O requiretls
+ When delivering a message to an SMTP or LMTP server, the connec-
+ tion must use TLS with a verified server certificate, and the
+ server must support REQUIRETLS. Try multiple servers if possi-
+ ble, and return the message as undeliverable when these require-
+ ments were not satisfied with any of the servers that were
+ tried. The "requiretls" option value is case-insensitive.
+
+ This feature is available in Postfix 3.10 and later.
+
+ -O smtputf8
+ When delivering a message to an SMTP or LMTP server, the server
+ must support SMTPUTF8. Try multiple servers if possible, and
+ return the message as undeliverable when a message contains an
+ UTF8 envelope address or message header, but SMTPUTF8 was not
+ supported by any of the servers that were tried. The "smtputf8"
+ option value is case-insensitive.
+
+ This feature is available in Postfix 3.10 and later.
+
-n (ignored)
Backwards compatibility.
@@ -483,6 +503,12 @@ SENDMAIL(1) SENDMAIL(1)
the default Postfix instance, and that are started, stopped,
etc., together with the default Postfix instance.
+ Postfix 3.10 and later:
+
+ requiretls_enable (yes)
+ Enable support for the ESMTP verb "REQUIRETLS", defined in RFC
+ 8689.
+
FILES
/var/spool/postfix, mail queue
/etc/postfix, configuration files
@@ -501,7 +527,7 @@ SENDMAIL(1) SENDMAIL(1)
syslogd(8), system logging
README_FILES
- Use "postconf readme_directory" or "postconf html_directory" to locate
+ Use "postconf readme_directory" or "postconf html_directory" to locate
this information.
DEBUG_README, Postfix debugging howto
ETRN_README, Postfix ETRN howto
diff --git a/postfix/html/newaliases.1.html b/postfix/html/newaliases.1.html
index 4645b733a..368636874 100644
--- a/postfix/html/newaliases.1.html
+++ b/postfix/html/newaliases.1.html
@@ -168,12 +168,32 @@ SENDMAIL(1) SENDMAIL(1)
Delivery status notification control. Specify either a
comma-separated list with one or more of failure (send notifica-
tion when delivery fails), delay (send notification when deliv-
- ery is delayed), or success (send notification when the message
+ ery is delayed), or success (send notification after the message
is delivered); or specify never (don't send any notifications at
all).
This feature is available in Postfix 2.3 and later.
+ -O requiretls
+ When delivering a message to an SMTP or LMTP server, the connec-
+ tion must use TLS with a verified server certificate, and the
+ server must support REQUIRETLS. Try multiple servers if possi-
+ ble, and return the message as undeliverable when these require-
+ ments were not satisfied with any of the servers that were
+ tried. The "requiretls" option value is case-insensitive.
+
+ This feature is available in Postfix 3.10 and later.
+
+ -O smtputf8
+ When delivering a message to an SMTP or LMTP server, the server
+ must support SMTPUTF8. Try multiple servers if possible, and
+ return the message as undeliverable when a message contains an
+ UTF8 envelope address or message header, but SMTPUTF8 was not
+ supported by any of the servers that were tried. The "smtputf8"
+ option value is case-insensitive.
+
+ This feature is available in Postfix 3.10 and later.
+
-n (ignored)
Backwards compatibility.
@@ -483,6 +503,12 @@ SENDMAIL(1) SENDMAIL(1)
the default Postfix instance, and that are started, stopped,
etc., together with the default Postfix instance.
+ Postfix 3.10 and later:
+
+ requiretls_enable (yes)
+ Enable support for the ESMTP verb "REQUIRETLS", defined in RFC
+ 8689.
+
FILES
/var/spool/postfix, mail queue
/etc/postfix, configuration files
@@ -501,7 +527,7 @@ SENDMAIL(1) SENDMAIL(1)
syslogd(8), system logging
README_FILES
- Use "postconf readme_directory" or "postconf html_directory" to locate
+ Use "postconf readme_directory" or "postconf html_directory" to locate
this information.
DEBUG_README, Postfix debugging howto
ETRN_README, Postfix ETRN howto
diff --git a/postfix/html/pipe.8.html b/postfix/html/pipe.8.html
index 911a740eb..c8d678a70 100644
--- a/postfix/html/pipe.8.html
+++ b/postfix/html/pipe.8.html
@@ -309,6 +309,15 @@ PIPE(8) PIPE(8)
This information is modified by the hqu flags for quoting
and case folding.
+ ${requiretls}
+ This feature should be used with content filters that
+ pass filtered mail to the Postfix sendmail(1) command.
+ The macro expands to the sendmail(1) command-line option
+ -Orequiretls if the sender requested REQUIRETLS, other-
+ wise it expands to -Onoop.
+
+ This feature is available as of Postfix 3.10.
+
${sasl_method}
This macro expands to the name of the SASL authentication
mechanism in the AUTH command when the Postfix SMTP
diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html
index ba54bb4d8..3122210c9 100644
--- a/postfix/html/postconf.5.html
+++ b/postfix/html/postconf.5.html
@@ -5046,6 +5046,17 @@ configuration parameter. See there for details.
This feature is available in Postfix 2.11 and later.
Enable support for the ESMTP verb "REQUIRETLS", defined in RFC
+8689. By issuing this verb in the "MAIL FROM" command, a sender
+specifies that a message must be delivered over TLS connections
+with a verified server certificate, to a server that announces
+"REQUIRETLS" support. This corresponds to the Postfix SMTP client
+TLS security levels "secure", "verify", "fingerprint", dane-only,
+or opportunistic "dane", with a successful certificate match. The
+Postfix SMTP client will try one or more servers, controlled with
+the smtp_mx_address_limit parameter, until it finds a server that
+satisfies requirements. Otherwise, Postfix returns the message as
+undeliverable.
An optional list of next-hop destinations that the Postfix
+SMTP/LMTP client will enforce REQUIRETLS for, when a message was
+received with the REQUIRETLS option: the next-hop server must offer
+a matching TLS server certificate, and the server must announce
+REQUIRETLS support). Such a message will be returned to the sender
+if some REQUIRETLS requirement cannot be satisfied. These "hard"
+REQUIRETLS failures are logged as "REQUIRETLS failure".
+
+
Other messages that were received with the REQUIRETLS option
+will be delivered with REQUIRETLS if possible. If not, a message
+will be delivered as if it was received without the REQUIRETLS
+option. This allows a mail sending site to discover when REQUIRETLS
+can be enforced, without disrupting email deliveries. These "soft"
+REQUIRETLS failures are logged with "REQUIRETLS Debug".
+
+
On a perimeter MTA, it can make sense to turn off REQUIRETLS
+enforcement, or even to turn off REQUIRETLS support, when delivering
+a message to an internal destination. The internal servers may not
+support REQUIRETLS, and their connections may be secured with means
+other than DANE, STS, and the like.
+
+
The supported syntax differs with SMTP and LMTP:
+
+
+
+
With SMTP, specify a list of next-hop domain names (without
+the ":port" or ":service" suffix), "/file/name" patterns or
+"type:table" lookup tables, separated by commas and/or whitespace.
+Continue long lines by starting the next line with whitespace. A
+"/file/name" pattern is replaced by its contents. A "type:table"
+lookup table is matched when a domain appears as lookup key. Specify
+"!pattern" to exclude a domain.
+
+
With LMTP, specify list of domain names (without the "inet":
+prefix, or ":port" or ":service" suffix), or UNIX-domain socket
+"/path/name" (without the "unix:" prefix), or "type:table" lookup
+tables, separated by commas and/or whitespace. Continue long lines
+by starting the next line with whitespace. A "type:table" lookup
+table is matched when a domain appears as lookup key. Specify
+"!pattern" to exclude a domain or socket path.
+# Enforce REQUIRETLS for SMTP with selected next-hop domains.
+smtp_enforce_requiretls = example.com, foo.example
+
+# Enforce REQUIRETLS for SMTP with all but a few next-hop domains.
+smtp_enforce_requiretls = !foo.example, static:all
+
smtp_enforce_tls
@@ -20853,6 +20982,8 @@ If a message contains a "TLS-Required: no" header, then Postfix
will add that header to a delivery status notification for that
message.
+
-RELOCATED(5) File Formats Manual RELOCATED(5)
+RELOCATED(5) RELOCATED(5)
NAME
relocated - Postfix relocated table format
@@ -19,25 +19,25 @@
Normally, the relocated(5) table is specified as a text file that
serves as input to the postmap(1) command. The result, an indexed file
- in dbm or db format, is used for fast searching by the mail system. Ex-
- ecute the command "postmap /etc/postfix/relocated" to rebuild an in-
- dexed file after changing the corresponding relocated table.
+ in dbm or db format, is used for fast searching by the mail system.
+ Execute the command "postmap /etc/postfix/relocated" to rebuild an
+ indexed file after changing the corresponding relocated table.
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 regular-expression map
- where patterns are given as regular expressions, or lookups can be di-
- rected to a TCP-based server. In those case, the lookups are done in a
- slightly different way as described below under "REGULAR EXPRESSION TA-
- BLES" or "TCP-BASED TABLES".
+ where patterns are given as regular expressions, or lookups can be
+ directed to a TCP-based server. In those case, the lookups are done in
+ a slightly different way as described below under "REGULAR EXPRESSION
+ TABLES" or "TCP-BASED TABLES".
Table lookups are case insensitive.
CASE FOLDING
- The search string is folded to lowercase before database lookup. As of
- Postfix 2.3, the search string is not case folded with database types
- such as regexp: or pcre: whose lookup fields can match both upper and
+ The search string is folded to lowercase before database lookup. As of
+ Postfix 2.3, the search string is not case folded with database types
+ such as regexp: or pcre: whose lookup fields can match both upper and
lower case.
TABLE FORMAT
@@ -48,29 +48,29 @@
pattern new_location
Where new_location specifies contact information such as an
- email address, or perhaps a street address or telephone number.
+ email address, or perhaps a street address or telephone number.
- o Postfix 3.11 and later can optionally disable the hard-coded
- prefix. Specify "relocated_prefix_enable = no" in main.cf, and
- specify relocated_maps entries with your own RFC 3463-compliant
+ o Postfix 3.11 and later can optionally disable the hard-coded
+ prefix. Specify "relocated_prefix_enable = no" in main.cf, and
+ specify relocated_maps entries with your own RFC 3463-compliant
enhanced status code and text, for example:
pattern 5.2.0 Mailbox is unavailable
pattern 5.2.1 Mailbox is disabled
- o Empty lines and whitespace-only lines are ignored, as are lines
+ 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
+ o A logical line starts with non-whitespace text. A line that
starts with whitespace continues a logical line.
TABLE SEARCH ORDER
- With lookups from indexed files such as DB or DBM, or from networked
- tables such as NIS, LDAP or SQL, patterns are tried in the order as
+ With lookups from indexed files such as DB or DBM, or from networked
+ tables such as NIS, LDAP or SQL, patterns are tried in the order as
listed below:
user@domain
- Matches user@domain. This form has precedence over all other
+ Matches user@domain. This form has precedence over all other
forms.
user Matches user@site when site is $myorigin, when site is listed in
@@ -83,21 +83,21 @@
ADDRESS EXTENSION
When a mail address localpart contains the optional recipient delimiter
- (e.g., user+foo@domain), the lookup order becomes: user+foo@domain,
+ (e.g., user+foo@domain), the lookup order becomes: user+foo@domain,
user@domain, user+foo, user, and @domain.
REGULAR EXPRESSION TABLES
- This section describes how the table lookups change when the table is
- given in the form of regular expressions or when lookups are directed
- to a TCP-based server. For a description of regular expression lookup
- table syntax, see regexp_table(5) or pcre_table(5). For a description
+ This section describes how the table lookups change when the table is
+ given in the form of regular expressions or when lookups are directed
+ to a TCP-based server. For a description of regular expression lookup
+ table syntax, see regexp_table(5) or pcre_table(5). For a description
of the TCP client/server table lookup protocol, see tcp_table(5). This
feature is available in Postfix 2.5 and later.
- Each pattern is a regular expression that is applied to the entire ad-
- dress being looked up. Thus, user@domain mail addresses are not broken
- up into their user and @domain constituent parts, nor is user+foo bro-
- ken up into user and foo.
+ Each pattern is a regular expression that is applied to the entire
+ address being looked up. Thus, user@domain mail addresses are not bro-
+ ken up into their user and @domain constituent parts, nor is user+foo
+ broken up into user and foo.
Patterns are applied in the order as specified in the table, until a
pattern is found that matches the search string.
@@ -122,9 +122,9 @@
The table format does not understand quoting conventions.
CONFIGURATION PARAMETERS
- The following main.cf parameters are especially relevant. The text be-
- low provides only a parameter summary. See postconf(5) for more details
- including examples.
+ The following main.cf parameters are especially relevant. The text
+ below provides only a parameter summary. See postconf(5) for more
+ details including examples.
relocated_maps (empty)
Optional lookup tables with new contact information for users or
@@ -133,27 +133,27 @@
Available with Postfix version 3.11 and later:
relocated_prefix_enable (yes)
- Prepend the prefix "5.1.6 User has moved to " to all relo-
+ Prepend the prefix "5.1.6 User has moved to " to all relo-
cated_maps lookup results.
Other parameters of interest:
inet_interfaces (all)
- The local network interface addresses that this mail system re-
- ceives mail on.
+ The local network interface addresses that this mail system
+ receives mail on.
mydestination ($myhostname, localhost.$mydomain, localhost)
- The list of domains that are delivered via the $local_transport
+ 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,
+ The domain name that locally-posted mail appears to come from,
and that locally posted mail is delivered to.
proxy_interfaces (empty)
- The remote network interface addresses that this mail system re-
- ceives mail on by way of a proxy or network address translation
- unit.
+ The remote network interface addresses that this mail system
+ receives mail on by way of a proxy or network address transla-
+ tion unit.
SEE ALSOtrivial-rewrite(8), address resolver
@@ -178,5 +178,5 @@
111 8th Avenue
New York, NY 10011, USA
- RELOCATED(5)
+ RELOCATED(5)