Cleanup: missing USE_TLS include guard. Viktor Dukhovni.
Files: smtp/lmtp_params.c, smtp/lmtp_params.c. in
+ Configuration: with OpenSSL 3.5 and later, recommend that
+ tls_eecdh_auto_curves and tls_ffdhe_auto_groups be left
+ empty (the new default) in anticipation of the removal of
+ these parameters. Instead, configuration should be done
+ with OpenSSL. Viktor Dukhovni. Files: global/mail_params.h,
+ proto/postconf.proto.
+
20251021
Cleanup: the change at 20250717 could result in warnings
with "database X is older than source file Y". Files:
util/dict.c, util/dict_db.c, util/dict_dbm.c, util/dict_lmdb.c,
util/dict_sdbm.c.
+
+20251024
+
+ Logging: with "smtp_tls_enforce_sts_mx_patterns=yes" and
+ TLSRPT support enabled in a TLS policy plugin, the Postfix
+ SMTP client logs a warning when an MX hostname does not
+ match STS policy MX patterns; it logs a successful match
+ when verbose logging is enabled. File: smtp/smtp_tls_policy.c.
+
+20251025
+
+ Feature: original recipient address in "postqueue -j" output,
+ Christophe Kalt. Files: postqueue/postqueue.c,
+ postqueue/showq_compat.c, postqueue/showq_json.c, showq/showq.c.
+
+20251026
+
+ Cleanup: defer tlsproxy daemon warnings that the TLS server
+ role is disabled by configuration, until a request for that
+ role is received. File: tlsproxy/tlsproxy.c.
+
+20251027
+
+ Cleanup: add 12 more deprecation warnings for parameters
+ that have been renamed in the past, and that still provide
+ a backwards-compatible default value for their replacement.
+ The parameters deprecated by this change are:
+ authorized_verp_clients, fallback_relay, lmtp_per_request_deadline,
+ postscreen_blacklist_action, postscreen_dnsbl_ttl,
+ postscreen_dnsbl_whitelist_threshold,
+ postscreen_whitelist_interfaces,
+ smtpd_client_connection_limit_exceptions,
+ smtp_per_request_deadline, tlsproxy_client_level,
+ tlsproxy_client_policy, virtual_maps. Files: mantools/postlink,
+ proto/DEPRECATION_README.html, postconf/postconf_unused.c.
+
+ Cleanup: SMTP client null pointer crash when an STS policy
+ plugin sends no policy_string or no mx_pattern attributes.
+ This can happen only during tests with a fake STS plugin.
+ File: smtp/smtp_tlsrpt.c.
+
+20251028
+
+ The postconf command logs deprecation warnings for the
+ tls_eecdh_auto_curves and tls_ffdhe_auto_groups parameters
+ when Postfix is built with OpenSSL 3.5. Files:
+ proto/DEPRECATION_README.html, postconf/postconf_unused.c.
+
+ The postconf command logs a pointer to the on-line
+ DEPRECATION_README.html for further guidance.
+
+ Deprecate the smtp_cname_overrides_servername and
+ lmtp_cname_overrides_servername parameters, and delete
+ documentation that has been obsolete since Postfix 2.11.
+ Files: proto/postconf.proto, proto/DEPRECATION_README.html,
+ postconf/postconf_unused.c.
The table summarizes removed or deprecated features and replacements. Click on
the "obsolete feature" name for a more detailed description.
- _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b
- | |W\bWa\bar\brn\bni\bin\bng\bg| | |
- |O\bOb\bbs\bso\bol\ble\bet\bte\be f\bfe\bea\bat\btu\bur\bre\be n\bna\bam\bme\be |a\bas\bs |R\bRe\bem\bmo\bov\bve\bed\bd |R\bRe\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt |
- | |o\bof\bf |i\bin\bn v\bve\ber\brs\bsi\bio\bon\bn| |
- | |v\bve\ber\brs\bsi\bio\bon\bn| | |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |xxx_tls_enforce_peername | 3.11 | - |xxx_tls_security_level |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |disable_dns_lookups | 3.9 | - |smtp_dns_support_level |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |xxx_use_tls | 3.9 | - |xxx_tls_security_level |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |xxx_enforce_tls | 3.9 | - |xxx_tls_security_level |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |xxx_per_site | 3.9 | - |xxx_policy_maps |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |smtpd_tls_dh1024_param_file| 3.9 | - |do not specify (leave at |
- | | | |default) |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |smtpd_tls_eecdh_grade | 3.9 | - |do not specify (leave at |
- | | | |default) |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |permit_mx_backup | 3.9 | - |relay_domains |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |check_relay_domains | 2.2 | 3.9 |permit_mynetworks, |
- | | | |reject_unauth_destination|
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |reject_maps_rbl | 2.1 | 3.9 |reject_rbl_client |
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
- |permit_naked_ip_address | 2.0 | 3.9 |permit_mynetworks, |
- | | | |permit_sasl_authenticated|
- |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b
+ | |W\bWa\bar\brn\bni\bin\bng\bg|R\bRe\bem\bmo\bov\bve\bed\bd| |
+ |O\bOb\bbs\bso\bol\ble\bet\bte\be f\bfe\bea\bat\btu\bur\bre\be n\bna\bam\bme\be |a\bas\bs | |R\bRe\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt |
+ | |o\bof\bf |i\bin\bn | |
+ | |v\bve\ber\brs\bsi\bio\bon\bn|v\bve\ber\brs\bsi\bio\bon\bn| |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |authorized_verp_clients | 3.11 | - |smtpd_authorized_verp_clients |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |fallback_relay | 3.11 | - |smtp_fallback_relay |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |lmtp_per_request_deadline | 3.11 | - |lmtp_per_request_deadline |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |postscreen_blacklist_action | 3.11 | - |postscreen_denylist_action |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |postscreen_dnsbl_ttl | 3.11 | - |postscreen_dnsbl_max_ttl |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |postscreen_dnsbl_whitelist_threshold | 3.11 | - |postscreen_dnsbl_allowlist_threshold|
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |postscreen_whitelist_interfaces | 3.11 | - |postscreen_allowlist_interfaces |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |smtpd_client_connection_limit_exceptions| 3.11 | - |smtpd_client_event_limit_exceptions |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |smtp_per_request_deadline | 3.11 | - |smtp_per_request_deadline |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |tlsproxy_client_level | 3.11 | - |tlsproxy_client_security_level |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |tlsproxy_client_policy | 3.11 | - |tlsproxy_client_policy_maps |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |virtual_maps | 3.11 | - |virtual_alias_maps |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |tls_eecdh_auto_curves | 3.11 | - |do not specify with OpenSSL 3.5 or |
+ | | | |later |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |tls_ffdhe_auto_groups | 3.11 | - |do not specify with OpenSSL 3.5 or |
+ | | | |later |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |smtp_cname_overrides_servername | 3.11 | - |do not specify (leave at default) |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |lmtp_cname_overrides_servername | 3.11 | - |do not specify (leave at default) |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |xxx_tls_enforce_peername | 3.11 | - |xxx_tls_security_level |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |disable_dns_lookups | 3.9 | - |smtp_dns_support_level |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |xxx_use_tls | 3.9 | - |xxx_tls_security_level |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |xxx_enforce_tls | 3.9 | - |xxx_tls_security_level |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |xxx_per_site | 3.9 | - |xxx_policy_maps |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |smtpd_tls_dh1024_param_file | 3.9 | - |do not specify (leave at default) |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |smtpd_tls_eecdh_grade | 3.9 | - |do not specify (leave at default) |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |permit_mx_backup | 3.9 | - |relay_domains |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |check_relay_domains | 2.2 | 3.9 |permit_mynetworks, |
+ | | | |reject_unauth_destination |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |reject_maps_rbl | 2.1 | 3.9 |reject_rbl_client |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+ |permit_naked_ip_address | 2.0 | 3.9 |permit_mynetworks, |
+ | | | |permit_sasl_authenticated |
+ |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+
+P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs t\bth\bha\bat\bt h\bha\bav\bve\be b\bbe\bee\ben\bn r\bre\ben\bna\bam\bme\bed\bd f\bfo\bor\br c\bco\bon\bns\bsi\bis\bst\bte\ben\bnc\bcy\by
+
+The postconf(1) command logs one or more of the following:
+
+ * support for parameter "authorized_verp_clients" will be removed; instead,
+ specify "smtpd_authorized_verp_clients"
+ * support for parameter "fallback_relay" will be removed; instead, specify
+ "smtp_fallback_relay"
+ * support for parameter "lmtp_per_request_deadline" will be removed; instead,
+ specify "lmtp_per_request_deadline"
+ * support for parameter "postscreen_blacklist_action" will be removed;
+ instead, specify "postscreen_denylist_action"
+ * support for parameter "postscreen_dnsbl_ttl" will be removed; instead,
+ specify "postscreen_dnsbl_max_ttl"
+ * support for parameter "postscreen_dnsbl_whitelist_threshold" will be
+ removed; instead, specify "postscreen_dnsbl_allowlist_threshold"
+ * support for parameter "postscreen_whitelist_interfaces" will be removed;
+ instead, specify "postscreen_allowlist_interfaces"
+ * support for parameter "smtpd_client_connection_limit_exceptions" will be
+ removed; instead, specify "smtpd_client_event_limit_exceptions"
+ * support for parameter "smtp_per_request_deadline" will be removed; instead,
+ specify "smtp_per_request_deadline"
+ * support for parameter "tlsproxy_client_level" will be removed; instead,
+ specify "tlsproxy_client_security_level"
+ * support for parameter "tlsproxy_client_policy" will be removed; instead,
+ specify "tlsproxy_client_policy_maps"
+ * support for parameter "virtual_maps" will be removed; instead, specify
+ "virtual_alias_maps"
+
+The above parameters have been renamed for consistency with other parameters.
+For backwards compatibility, the old parameter values are used as the default
+value for the new parameters, but they will eventually be removed to eliminate
+clutter and confusion
+
+To silence these warning messages, edit main.cf or master.cf, and replace each
+obsolete parameter name with its replacement.
+
+O\bOb\bbs\bso\bol\ble\bet\bte\be a\bau\but\bto\bo g\bgr\bro\bou\bup\bp/\b/c\bcu\bur\brv\bve\be c\bco\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn
+
+The postconf(1) command logs one of the following:
+
+ * support for parameter "tls_eecdh_auto_curves" will be removed; instead, do
+ not specify with OpenSSL 3.5 or later
+ * support for parameter "tls_ffdhe_auto_groups" will be removed; instead, do
+ not specify with OpenSSL 3.5 or later
+
+The empty value is the default setting for both as of Postfix 3.11, when
+compiled with OpenSSL 3.5 or later. See tls_config_file for a configuration
+example
+
+O\bOb\bbs\bso\bol\ble\bet\bte\be C\bCN\bNA\bAM\bME\bE o\bov\bve\ber\brr\bri\bid\bde\be f\bfo\bor\br p\bpe\bee\ber\br n\bna\bam\bme\be c\bco\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn
+
+The postconf(1) command logs one of the following:
+
+ * support for parameter "smtp_cname_overrides_servername" will be removed;
+ instead, do not specify
+ * support for parameter "lmtp_cname_overrides_servername" will be removed;
+ instead, do not specify
+
+These features control whether a DNS CNAME record can override the server peer
+name that Postfix will use for policy lookup or for certificate verification.
+This behavior is disabled by default as of Postfix 2.11, because it no longer
+solves a real problem.
O\bOb\bbs\bso\bol\ble\bet\bte\be T\bTL\bLS\bS p\bpe\bee\ber\br n\bna\bam\bme\be m\bma\bat\btc\bch\bh c\bco\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn
</th> <th> Removed <br> in version </th> <th> Replacement </th>
</tr>
+<tr> <td> <a href="#renamed"> authorized_verp_clients </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> fallback_relay </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> lmtp_per_request_deadline </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#lmtp_per_request_deadline">lmtp_per_request_deadline</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_blacklist_action </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#postscreen_denylist_action">postscreen_denylist_action</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_dnsbl_ttl </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#postscreen_dnsbl_max_ttl">postscreen_dnsbl_max_ttl</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_dnsbl_whitelist_threshold
+</a> </td> <td align="center"> 3.11 </td> <td align="center"> -
+</td> <td>
+<a href="postconf.5.html#postscreen_dnsbl_allowlist_threshold">postscreen_dnsbl_allowlist_threshold</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_whitelist_interfaces </a>
+</td> <td align="center"> 3.11 </td> <td align="center"> - </td>
+<td> <a href="postconf.5.html#postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> smtpd_client_connection_limit_exceptions
+</a> </td> <td align="center"> 3.11 </td> <td align="center"> -
+</td> <td>
+<a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> smtp_per_request_deadline </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#smtp_per_request_deadline">smtp_per_request_deadline</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> tlsproxy_client_level </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#tlsproxy_client_security_level">tlsproxy_client_security_level</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> tlsproxy_client_policy </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+<a href="postconf.5.html#tlsproxy_client_policy_maps">tlsproxy_client_policy_maps</a> </td> </tr>
+
+<tr> <td> <a href="#renamed"> virtual_maps </a> </td> <td align="center">
+3.11 </td> <td align="center"> - </td> <td> <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> </td>
+</tr>
+
+<tr> <td> <a href="#tls_xdhx_auto">
+tls_eecdh_auto_curves </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify with OpenSSL 3.5 or later
+</td> </tr>
+
+<tr> <td> <a href="#tls_xdhx_auto">
+tls_ffdhe_auto_groups </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify with OpenSSL 3.5 or later
+</td> </tr>
+
+<tr> <td> <a href="#cname_overrides_servername">
+smtp_cname_overrides_servername </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify (leave at default)
+</td> </tr>
+
+<tr> <td> <a href="#cname_overrides_servername">
+lmtp_cname_overrides_servername </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify (leave at default)
+</td> </tr>
+
<tr> <td> <a href="#xxx_tls_enforce_peername">
<i>xxx</i>_tls_enforce_peername </a> </td> <td align="center"> 3.11
</td> <td align="center"> - </td> <td> <i>xxx</i>_tls_security_level
</blockquote>
+<h3> <a name="renamed"> Parameters that have been renamed for
+consistency </a> </h3>
+
+<p> The <a href="postconf.1.html">postconf(1)</a> command logs one or more of the following: </p>
+
+<ul>
+
+<li> support for parameter "<a href="postconf.5.html#authorized_verp_clients">authorized_verp_clients</a>" will be removed;
+instead, specify "<a href="postconf.5.html#smtpd_authorized_verp_clients">smtpd_authorized_verp_clients</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#fallback_relay">fallback_relay</a>" will be removed; instead,
+specify "<a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#lmtp_per_request_deadline">lmtp_per_request_deadline</a>" will be
+removed; instead, specify "<a href="postconf.5.html#lmtp_per_request_deadline">lmtp_per_request_deadline</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#postscreen_blacklist_action">postscreen_blacklist_action</a>" will be
+removed; instead, specify "<a href="postconf.5.html#postscreen_denylist_action">postscreen_denylist_action</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#postscreen_dnsbl_ttl">postscreen_dnsbl_ttl</a>" will be removed;
+instead, specify "<a href="postconf.5.html#postscreen_dnsbl_max_ttl">postscreen_dnsbl_max_ttl</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#postscreen_dnsbl_whitelist_threshold">postscreen_dnsbl_whitelist_threshold</a>"
+will be removed; instead, specify "<a href="postconf.5.html#postscreen_dnsbl_allowlist_threshold">postscreen_dnsbl_allowlist_threshold</a>"
+</li>
+
+<li> support for parameter "<a href="postconf.5.html#postscreen_whitelist_interfaces">postscreen_whitelist_interfaces</a>" will
+be removed; instead, specify "<a href="postconf.5.html#postscreen_allowlist_interfaces">postscreen_allowlist_interfaces</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#smtpd_client_connection_limit_exceptions">smtpd_client_connection_limit_exceptions</a>"
+will be removed; instead, specify "<a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a>"
+</li>
+
+<li> support for parameter "<a href="postconf.5.html#smtp_per_request_deadline">smtp_per_request_deadline</a>" will be
+removed; instead, specify "<a href="postconf.5.html#smtp_per_request_deadline">smtp_per_request_deadline</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#tlsproxy_client_level">tlsproxy_client_level</a>" will be removed;
+instead, specify "<a href="postconf.5.html#tlsproxy_client_security_level">tlsproxy_client_security_level</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#tlsproxy_client_policy">tlsproxy_client_policy</a>" will be removed;
+instead, specify "<a href="postconf.5.html#tlsproxy_client_policy_maps">tlsproxy_client_policy_maps</a>" </li>
+
+<li> support for parameter "<a href="postconf.5.html#virtual_maps">virtual_maps</a>" will be removed; instead,
+specify "<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>" </li>
+
+</ul>
+
+<p> The above parameters have been renamed for consistency with other
+parameters. For backwards compatibility, the old parameter values are
+used as the default value for the new parameters, but they will
+eventually be removed to eliminate clutter and confusion </p>
+
+<p> To silence these warning messages, edit <a href="postconf.5.html">main.cf</a> or <a href="master.5.html">master.cf</a>,
+and replace each obsolete parameter name with its replacement. </p>
+
+<h3> <a name="tls_xdhx_auto"> Obsolete auto group/curve configuration
+</a> </h3>
+
+<p> The <a href="postconf.1.html">postconf(1)</a> command logs one of the following: </p>
+
+<ul>
+
+<li> support for parameter "<a href="postconf.5.html#tls_eecdh_auto_curves">tls_eecdh_auto_curves</a>" will be removed;
+instead, do not specify with OpenSSL 3.5 or later
+
+<li> support for parameter "<a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a>" will be removed;
+instead, do not specify with OpenSSL 3.5 or later
+
+</ul>
+
+<p> The empty value is the default setting for both as of Postfix
+3.11, when compiled with OpenSSL 3.5 or later. See <a href="postconf.5.html#tls_config_file">tls_config_file</a>
+for a configuration example </p>
+
+<h3> <a name="cname_overrides_servername"> Obsolete CNAME override
+for peer name configuration </a> </h3>
+
+<p> The <a href="postconf.1.html">postconf(1)</a> command logs one of the following: </p>
+
+<ul>
+
+<li> support for parameter "<a href="postconf.5.html#smtp_cname_overrides_servername">smtp_cname_overrides_servername</a>" will be
+removed; instead, do not specify
+
+<li> support for parameter "<a href="postconf.5.html#lmtp_cname_overrides_servername">lmtp_cname_overrides_servername</a>" will be
+removed; instead, do not specify
+
+</ul>
+
+<p> These features control whether a DNS CNAME record can override
+the server peer name that Postfix will use for policy lookup or for
+certificate verification. This behavior is disabled by default as of
+Postfix 2.11, because it no longer solves a real problem. </p>
+
<h3> <a name="xxx_tls_enforce_peername"> Obsolete TLS peer name
match configuration </a> </h3>
password file lookups more predictable. This is the default setting
as of Postfix 2.3. </p>
-<p> When DNS CNAME records are validated with secure DNS lookups
-(<a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a> = dnssec), they are always allowed to
-override the above servername (Postfix 2.11 and later). </p>
-
-<p> This feature is available in Postfix 2.2.9 and later. </p>
+<p> This feature is available in Postfix 2.2.9 and later, deprecated
+as of Postfix 3.11. </p>
</DD>
</p>
+</DD>
+
+<DT><b><a name="smtpd_client_connection_limit_exceptions">smtpd_client_connection_limit_exceptions</a>
+(default: $<a href="postconf.5.html#mynetworks">mynetworks</a>)</b></DT><DD>
+
+<p> Renamed to <a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a> in Postfix 2.2. </p>
+
+
</DD>
<DT><b><a name="smtpd_client_connection_rate_limit">smtpd_client_connection_rate_limit</a>
<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#tls_config_file">tls_config_file</a> = ${<a href="postconf.5.html#config_directory">config_directory</a>}/openssl.cnf
<a href="postconf.5.html#tls_config_name">tls_config_name</a> = postfix
+ # Clear Postfix curve/group settings to let OpenSSL settings take
+ # effect.
+ # Uncomment only with Postfix < 3.11 or OpenSSL < 3.5.
+ # <a href="postconf.5.html#tls_eecdh_auto_curves">tls_eecdh_auto_curves</a> =
+ # <a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a> =
</pre>
<pre>
Instead, with Postfix 3.6.17, 3.7.13, 3.8.8, 3.9.2, and later, set
both <a href="postconf.5.html#tls_eecdh_auto_curves">tls_eecdh_auto_curves</a> and if available <a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a>
to the empty value, to enable algorithm selection through OpenSSL
-configuration. See <a href="postconf.5.html#tls_config_file">tls_config_file</a> for a configuration example.
+configuration. The empty value is the default setting for both as
+of Postfix 3.11, when compiled with OpenSSL 3.5 or later. See
+<a href="postconf.5.html#tls_config_file">tls_config_file</a> for a configuration example.
</p>
<p> This feature is available in Postfix 3.2 and later, when it is
Instead, with Postfix 3.6.17, 3.7.13, 3.8.8, 3.9.2, and later, set
both <a href="postconf.5.html#tls_eecdh_auto_curves">tls_eecdh_auto_curves</a> and <a href="postconf.5.html#tls_ffdhe_auto_groups">tls_ffdhe_auto_groups</a> to the empty
value, to enable algorithm selection through OpenSSL configuration.
-See <a href="postconf.5.html#tls_config_file">tls_config_file</a> for a configuration example. </p>
+The empty value is the default setting for both as of Postfix 3.11,
+when compiled with OpenSSL 3.5 or later. See <a href="postconf.5.html#tls_config_file">tls_config_file</a> for a
+configuration example. </p>
<p> All the default groups and EC curves should be sufficiently strong to make
"pruning" the defaults unwise. At a minimum, "x25519" and "prime256v1" (the
<b>address</b>
One recipient address.
+ <b>orig_address</b>
+ One original recipient address.
+
<b>delay_reason</b>
If present, the reason for delayed delivery. Delayed
recipients may have no delay reason, for example, while
.RS
.IP \fBaddress\fR
One recipient address.
+.IP \fBorig_address\fR
+One original recipient address.
.IP \fBdelay_reason\fR
If present, the reason for delayed delivery. Delayed
recipients may have no delay reason, for example, while
password file lookups more predictable. This is the default setting
as of Postfix 2.3.
.PP
-When DNS CNAME records are validated with secure DNS lookups
-(smtp_dns_support_level = dnssec), they are always allowed to
-override the above servername (Postfix 2.11 and later).
-.PP
-This feature is available in Postfix 2.2.9 and later.
+This feature is available in Postfix 2.2.9 and later, deprecated
+as of Postfix 3.11.
.SH smtp_connect_timeout (default: 30s)
The Postfix SMTP client time limit for completing a TCP connection, or
zero (use the operating system built\-in time limit).
not be used to regulate legitimate mail traffic.
.PP
This feature is available in Postfix 2.2 and later.
+.SH smtpd_client_connection_limit_exceptions (default: $mynetworks)
+Renamed to smtpd_client_event_limit_exceptions in Postfix 2.2.
.SH smtpd_client_connection_rate_limit (default: 0)
The maximal number of connection attempts any client is allowed to
make to this service per time unit. The time unit is specified
main.cf:
tls_config_file = ${config_directory}/openssl.cnf
tls_config_name = postfix
+ # Clear Postfix curve/group settings to let OpenSSL settings take
+ # effect.
+ # Uncomment only with Postfix < 3.11 or OpenSSL < 3.5.
+ # tls_eecdh_auto_curves =
+ # tls_ffdhe_auto_groups =
.fi
.ad
.PP
Instead, with Postfix 3.6.17, 3.7.13, 3.8.8, 3.9.2, and later, set
both tls_eecdh_auto_curves and if available tls_ffdhe_auto_groups
to the empty value, to enable algorithm selection through OpenSSL
-configuration. See tls_config_file for a configuration example.
+configuration. The empty value is the default setting for both as
+of Postfix 3.11, when compiled with OpenSSL 3.5 or later. See
+tls_config_file for a configuration example.
.PP
This feature is available in Postfix 3.2 and later, when it is
compiled and linked with OpenSSL 1.0.2 or later on platforms where
Instead, with Postfix 3.6.17, 3.7.13, 3.8.8, 3.9.2, and later, set
both tls_eecdh_auto_curves and tls_ffdhe_auto_groups to the empty
value, to enable algorithm selection through OpenSSL configuration.
-See tls_config_file for a configuration example.
+The empty value is the default setting for both as of Postfix 3.11,
+when compiled with OpenSSL 3.5 or later. See tls_config_file for a
+configuration example.
.PP
All the default groups and EC curves should be sufficiently strong to make
"pruning" the defaults unwise. At a minimum, "x25519" and "prime256v1" (the
smtp_per_record_deadline
smtp_skip_4xx_greeting
smtp_tls_cipherlist
+smtpd_client_connection_limit_exceptions
smtpd_per_record_deadline
smtpd_sasl_application_name
smtpd_tls_cipherlist
s;\bsmtpd_client_auth_rate_limit\b;<a href="postconf.5.html#smtpd_client_auth_rate_limit">$&</a>;g;
s;\bsmtpd_client_connec[-</bB>]*\n*[ <bB>]*tion_count_limit\b;<a href="postconf.5.html#smtpd_client_connection_count_limit">$&</a>;g;
s;\bsmtpd_client_event_limit_exceptions\b;<a href="postconf.5.html#smtpd_client_event_limit_exceptions">$&</a>;g;
+ s;\bsmtpd_client_connection_limit_exceptions\b;<a href="postconf.5.html#smtpd_client_connection_limit_exceptions">$&</a>;g;
s;\bsmtpd_client_connec[-</bB>]*\n*[ <bB>]*tion_rate_limit\b;<a href="postconf.5.html#smtpd_client_connection_rate_limit">$&</a>;g;
s;\bsmtpd_client_message_rate_limit\b;<a href="postconf.5.html#smtpd_client_message_rate_limit">$&</a>;g;
s;\bsmtpd_client_port_logging\b;<a href="postconf.5.html#smtpd_client_port_logging">$&</a>;g;
</th> <th> Removed <br> in version </th> <th> Replacement </th>
</tr>
+<tr> <td> <a href="#renamed"> authorized_verp_clients </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+smtpd_authorized_verp_clients </td> </tr>
+
+<tr> <td> <a href="#renamed"> fallback_relay </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+smtp_fallback_relay </td> </tr>
+
+<tr> <td> <a href="#renamed"> lmtp_per_request_deadline </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+lmtp_per_request_deadline </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_blacklist_action </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+postscreen_denylist_action </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_dnsbl_ttl </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+postscreen_dnsbl_max_ttl </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_dnsbl_whitelist_threshold
+</a> </td> <td align="center"> 3.11 </td> <td align="center"> -
+</td> <td>
+postscreen_dnsbl_allowlist_threshold </td> </tr>
+
+<tr> <td> <a href="#renamed"> postscreen_whitelist_interfaces </a>
+</td> <td align="center"> 3.11 </td> <td align="center"> - </td>
+<td> postscreen_allowlist_interfaces </td> </tr>
+
+<tr> <td> <a href="#renamed"> smtpd_client_connection_limit_exceptions
+</a> </td> <td align="center"> 3.11 </td> <td align="center"> -
+</td> <td>
+smtpd_client_event_limit_exceptions </td> </tr>
+
+<tr> <td> <a href="#renamed"> smtp_per_request_deadline </a> </td>
+<td align="center"> 3.11 </td> <td align="center"> - </td> <td>
+smtp_per_request_deadline </td> </tr>
+
+<tr> <td> <a href="#renamed"> tlsproxy_client_level </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+tlsproxy_client_security_level </td> </tr>
+
+<tr> <td> <a href="#renamed"> tlsproxy_client_policy </a> </td> <td
+align="center"> 3.11 </td> <td align="center"> - </td> <td>
+tlsproxy_client_policy_maps </td> </tr>
+
+<tr> <td> <a href="#renamed"> virtual_maps </a> </td> <td align="center">
+3.11 </td> <td align="center"> - </td> <td> virtual_alias_maps </td>
+</tr>
+
+<tr> <td> <a href="#tls_xdhx_auto">
+tls_eecdh_auto_curves </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify with OpenSSL 3.5 or later
+</td> </tr>
+
+<tr> <td> <a href="#tls_xdhx_auto">
+tls_ffdhe_auto_groups </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify with OpenSSL 3.5 or later
+</td> </tr>
+
+<tr> <td> <a href="#cname_overrides_servername">
+smtp_cname_overrides_servername </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify (leave at default)
+</td> </tr>
+
+<tr> <td> <a href="#cname_overrides_servername">
+lmtp_cname_overrides_servername </a> </td> <td align="center"> 3.11
+</td> <td align="center"> - </td> <td> do not specify (leave at default)
+</td> </tr>
+
<tr> <td> <a href="#xxx_tls_enforce_peername">
<i>xxx</i>_tls_enforce_peername </a> </td> <td align="center"> 3.11
</td> <td align="center"> - </td> <td> <i>xxx</i>_tls_security_level
</blockquote>
+<h3> <a name="renamed"> Parameters that have been renamed for
+consistency </a> </h3>
+
+<p> The postconf(1) command logs one or more of the following: </p>
+
+<ul>
+
+<li> support for parameter "authorized_verp_clients" will be removed;
+instead, specify "smtpd_authorized_verp_clients" </li>
+
+<li> support for parameter "fallback_relay" will be removed; instead,
+specify "smtp_fallback_relay" </li>
+
+<li> support for parameter "lmtp_per_request_deadline" will be
+removed; instead, specify "lmtp_per_request_deadline" </li>
+
+<li> support for parameter "postscreen_blacklist_action" will be
+removed; instead, specify "postscreen_denylist_action" </li>
+
+<li> support for parameter "postscreen_dnsbl_ttl" will be removed;
+instead, specify "postscreen_dnsbl_max_ttl" </li>
+
+<li> support for parameter "postscreen_dnsbl_whitelist_threshold"
+will be removed; instead, specify "postscreen_dnsbl_allowlist_threshold"
+</li>
+
+<li> support for parameter "postscreen_whitelist_interfaces" will
+be removed; instead, specify "postscreen_allowlist_interfaces" </li>
+
+<li> support for parameter "smtpd_client_connection_limit_exceptions"
+will be removed; instead, specify "smtpd_client_event_limit_exceptions"
+</li>
+
+<li> support for parameter "smtp_per_request_deadline" will be
+removed; instead, specify "smtp_per_request_deadline" </li>
+
+<li> support for parameter "tlsproxy_client_level" will be removed;
+instead, specify "tlsproxy_client_security_level" </li>
+
+<li> support for parameter "tlsproxy_client_policy" will be removed;
+instead, specify "tlsproxy_client_policy_maps" </li>
+
+<li> support for parameter "virtual_maps" will be removed; instead,
+specify "virtual_alias_maps" </li>
+
+</ul>
+
+<p> The above parameters have been renamed for consistency with other
+parameters. For backwards compatibility, the old parameter values are
+used as the default value for the new parameters, but they will
+eventually be removed to eliminate clutter and confusion </p>
+
+<p> To silence these warning messages, edit main.cf or master.cf,
+and replace each obsolete parameter name with its replacement. </p>
+
+<h3> <a name="tls_xdhx_auto"> Obsolete auto group/curve configuration
+</a> </h3>
+
+<p> The postconf(1) command logs one of the following: </p>
+
+<ul>
+
+<li> support for parameter "tls_eecdh_auto_curves" will be removed;
+instead, do not specify with OpenSSL 3.5 or later
+
+<li> support for parameter "tls_ffdhe_auto_groups" will be removed;
+instead, do not specify with OpenSSL 3.5 or later
+
+</ul>
+
+<p> The empty value is the default setting for both as of Postfix
+3.11, when compiled with OpenSSL 3.5 or later. See tls_config_file
+for a configuration example </p>
+
+<h3> <a name="cname_overrides_servername"> Obsolete CNAME override
+for peer name configuration </a> </h3>
+
+<p> The postconf(1) command logs one of the following: </p>
+
+<ul>
+
+<li> support for parameter "smtp_cname_overrides_servername" will be
+removed; instead, do not specify
+
+<li> support for parameter "lmtp_cname_overrides_servername" will be
+removed; instead, do not specify
+
+</ul>
+
+<p> These features control whether a DNS CNAME record can override
+the server peer name that Postfix will use for policy lookup or for
+certificate verification. This behavior is disabled by default as of
+Postfix 2.11, because it no longer solves a real problem. </p>
+
<h3> <a name="xxx_tls_enforce_peername"> Obsolete TLS peer name
match configuration </a> </h3>
This feature is available in Postfix 2.2 and later.
</p>
+%PARAM smtpd_client_connection_limit_exceptions $mynetworks
+
+<p> Renamed to smtpd_client_event_limit_exceptions in Postfix 2.2. </p>
+
%PARAM smtpd_client_event_limit_exceptions $mynetworks
<p>
password file lookups more predictable. This is the default setting
as of Postfix 2.3. </p>
-<p> When DNS CNAME records are validated with secure DNS lookups
-(smtp_dns_support_level = dnssec), they are always allowed to
-override the above servername (Postfix 2.11 and later). </p>
-
-<p> This feature is available in Postfix 2.2.9 and later. </p>
+<p> This feature is available in Postfix 2.2.9 and later, deprecated
+as of Postfix 3.11. </p>
%PARAM lmtp_cname_overrides_servername yes
Instead, with Postfix 3.6.17, 3.7.13, 3.8.8, 3.9.2, and later, set
both tls_eecdh_auto_curves and if available tls_ffdhe_auto_groups
to the empty value, to enable algorithm selection through OpenSSL
-configuration. See tls_config_file for a configuration example.
+configuration. The empty value is the default setting for both as
+of Postfix 3.11, when compiled with OpenSSL 3.5 or later. See
+tls_config_file for a configuration example.
</p>
<p> This feature is available in Postfix 3.2 and later, when it is
Instead, with Postfix 3.6.17, 3.7.13, 3.8.8, 3.9.2, and later, set
both tls_eecdh_auto_curves and tls_ffdhe_auto_groups to the empty
value, to enable algorithm selection through OpenSSL configuration.
-See tls_config_file for a configuration example. </p>
+The empty value is the default setting for both as of Postfix 3.11,
+when compiled with OpenSSL 3.5 or later. See tls_config_file for a
+configuration example. </p>
<p> All the default groups and EC curves should be sufficiently strong to make
"pruning" the defaults unwise. At a minimum, "x25519" and "prime256v1" (the
main.cf:
tls_config_file = ${config_directory}/openssl.cnf
tls_config_name = postfix
+ # Clear Postfix curve/group settings to let OpenSSL settings take
+ # effect.
+ # Uncomment only with Postfix < 3.11 or OpenSSL < 3.5.
+ # tls_eecdh_auto_curves =
+ # tls_ffdhe_auto_groups =
</pre>
<pre>
smtp smtp h smtp smtp_connect c smtp smtp_params c
the policies policy policy domain value This ignores
TLSRPT Workaround when policies policy policy type is
+ Christophe Kalt Files postqueue postqueue c
+ postqueue showq_compat c postqueue showq_json c showq showq c
+ role is received File tlsproxy tlsproxy c
+ Files proto postconf proto proto DEPRECATION_README html
PTEST
finalizer
enf
+Christophe
+Kalt
+stdlib
#if OPENSSL_VERSION_NUMBER < 0x1010100fUL
#error "OpenSSL releases prior to 1.1.1 are no longer supported"
#endif
+#endif
+#ifndef OPENSSL_VERSION_PREREQ
+#define OPENSSL_VERSION_PREREQ(m,n) 0
#endif
/*
#define DEF_TLS_NULL_CLIST "eNULL" TLS_EXCL_REST ":!aNULL"
extern char *var_tls_null_clist;
+#define VAR_TLS_EECDH_AUTO "tls_eecdh_auto_curves"
+#if OPENSSL_VERSION_PREREQ(3,5)
+#define DEF_TLS_EECDH_AUTO ""
+#else
#if defined(SN_X25519) && defined(NID_X25519)
#define DEF_TLS_EECDH_AUTO_1 SN_X25519 " "
#else
#define DEF_TLS_EECDH_AUTO_5 ""
#endif
-#define VAR_TLS_EECDH_AUTO "tls_eecdh_auto_curves"
#define DEF_TLS_EECDH_AUTO DEF_TLS_EECDH_AUTO_1 \
DEF_TLS_EECDH_AUTO_2 \
DEF_TLS_EECDH_AUTO_3 \
DEF_TLS_EECDH_AUTO_4 \
DEF_TLS_EECDH_AUTO_5
+#endif
extern char *var_tls_eecdh_auto;
#define VAR_TLS_EECDH_STRONG "tls_eecdh_strong_curve"
#define DEF_TLS_EECDH_ULTRA "secp384r1"
extern char *var_tls_eecdh_ultra;
+#define VAR_TLS_FFDHE_AUTO "tls_ffdhe_auto_groups"
+#if OPENSSL_VERSION_PREREQ(3,5)
+#define DEF_TLS_FFDHE_AUTO ""
+#else
#if defined(SN_ffdhe2048) && defined(NID_ffdhe2048)
#define DEF_TLS_FFDHE_AUTO_1 SN_ffdhe2048 " "
#else
#define DEF_TLS_FFDHE_AUTO_2 ""
#endif
-#define VAR_TLS_FFDHE_AUTO "tls_ffdhe_auto_groups"
#define DEF_TLS_FFDHE_AUTO DEF_TLS_FFDHE_AUTO_1 \
DEF_TLS_FFDHE_AUTO_2
+#endif
extern char *var_tls_ffdhe_auto;
#define VAR_TLS_PREEMPT_CLIST "tls_preempt_cipherlist"
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20251026"
+#define MAIL_RELEASE_DATE "20251028"
#define MAIL_VERSION_NUMBER "3.11"
#ifdef SNAPSHOT
}
}
vstream_fflush(VSTREAM_OUT);
+
+ if ((pcf_cmd_mode & PCF_WARN_UNUSED_DEPRECATED) && pcf_found_deprecated)
+ msg_warn("See https://www.postfix.org/DEPRECATION_README.html "
+ "for details");
exit(0);
}
*/
extern void pcf_flag_unused_main_parameters(void);
extern void pcf_flag_unused_master_parameters(void);
+extern int pcf_found_deprecated;
/*
* postconf_other.c.
/* SYNOPSIS
/* #include <postconf.h>
/*
+/* int pcf_found_deprecated;
+/*
/* void pcf_flag_unused_main_parameters()
/*
/* void pcf_flag_unused_master_parameters()
/*
/* pcf_flag_unused_master_parameters() reports unused or
/* deprecated "-o name=value" entries in master.cf.
+/*
+/* pcf_found_deprecated is non-zero if deprecated parameters were
+/* reported.
/* DIAGNOSTICS
/* Problems are reported to the standard error stream.
/* LICENSE
/*
* Deprecated as of Postfix 3.11.
*/
+ "authorized_verp_clients", "specify \"smtpd_authorized_verp_clients\"",
+ "fallback_relay", "specify \"smtp_fallback_relay\"",
+ "lmtp_per_request_deadline", "specify \"lmtp_per_request_deadline\"",
"lmtp_tls_enforce_peername", "specify \"lmtp_tls_security_level\"",
+ "postscreen_blacklist_action", "specify \"postscreen_denylist_action\"",
+ "postscreen_dnsbl_ttl", "specify \"postscreen_dnsbl_max_ttl\"",
+ "postscreen_dnsbl_whitelist_threshold", "specify \"postscreen_dnsbl_allowlist_threshold\"",
+ "postscreen_whitelist_interfaces", "specify \"postscreen_allowlist_interfaces\"",
+ "smtpd_client_connection_limit_exceptions", "specify \"smtpd_client_event_limit_exceptions\"",
+ "smtp_per_request_deadline", "specify \"smtp_per_request_deadline\"",
"smtp_tls_enforce_peername", "specify \"smtp_tls_security_level\"",
+ "tlsproxy_client_level", "specify \"tlsproxy_client_security_level\"",
+ "tlsproxy_client_policy", "specify \"tlsproxy_client_policy_maps\"",
+ "virtual_maps", "specify \"virtual_alias_maps\"",
+#if OPENSSL_VERSION_PREREQ(3,5)
+ "tls_eecdh_auto_curves", "do not specify with OpenSSL 3.5 or later",
+ "tls_ffdhe_auto_groups", "do not specify with OpenSSL 3.5 or later",
+#endif
+ "lmtp_cname_overrides_servername", "do not specify",
+ "smtp_cname_overrides_servername", "do not specify",
+
+ /*
+ * Terminator.
+ */
0,
};
static HTABLE *pcf_depr_param_table;
+int pcf_found_deprecated;
/* pcf_init_depr_params - initialize lookup table */
msg_warn("%s/%s: support for parameter %s has been removed;"
" instead, %s", var_config_dir, conf_name,
param_name, dp->alternative);
+ pcf_found_deprecated = 1;
} else {
msg_warn("%s/%s: unused parameter: %s=%s",
var_config_dir, conf_name, param_name, param_value);
msg_warn("%s/%s: support for parameter \"%s\" will be removed;"
" instead, %s", var_config_dir, conf_name,
param_name, dp->alternative);
+ pcf_found_deprecated = 1;
}
}
}
config_directory = .
smtpd_client_connection_limit_exceptions = yyy
virtual_maps = xxx
+./postconf: warning: ./main.cf: support for parameter "smtpd_client_connection_limit_exceptions" will be removed; instead, specify "smtpd_client_event_limit_exceptions"
+./postconf: warning: ./main.cf: support for parameter "virtual_maps" will be removed; instead, specify "virtual_alias_maps"
+./postconf: warning: See https://www.postfix.org/DEPRECATION_README.html for details
./postconf: warning: ./main.cf: support for parameter "smtpd_tls_dh1024_param_file" will be removed; instead, do not specify (leave at default)
./postconf: warning: ./main.cf: support for parameter deleted-test-only has been removed; instead, do not specify
./postconf: warning: ./master.cf: support for parameter "smtp_enforce_tls" will be removed; instead, specify "smtp_tls_security_level"
+./postconf: warning: See https://www.postfix.org/DEPRECATION_README.html for details
./postconf: warning: ./main.cf: support for parameter "lmtp_tls_enforce_peername" will be removed; instead, specify "lmtp_tls_security_level"
./postconf: warning: ./master.cf: support for parameter "smtp_tls_enforce_peername" will be removed; instead, specify "smtp_tls_security_level"
./postconf: warning: ./master.cf: support for parameter "lmtp_tls_enforce_peername" will be removed; instead, specify "lmtp_tls_security_level"
+./postconf: warning: See https://www.postfix.org/DEPRECATION_README.html for details
/* .RS
/* .IP \fBaddress\fR
/* One recipient address.
+/* .IP \fBorig_address\fR
+/* One original recipient address.
/* .IP \fBdelay_reason\fR
/* If present, the reason for delayed delivery. Delayed
/* recipients may have no delay reason, for example, while
static VSTRING *queue_name = 0;
static VSTRING *queue_id = 0;
static VSTRING *id_status = 0;
+ static VSTRING *oaddr = 0;
static VSTRING *addr = 0;
static VSTRING *why = 0;
long arrival_time;
queue_name = vstring_alloc(100);
queue_id = vstring_alloc(100);
id_status = vstring_alloc(100);
+ oaddr = vstring_alloc(100);
addr = vstring_alloc(100);
why = vstring_alloc(100);
}
while ((showq_status = attr_scan_more(showq_stream)) > 0) {
if (attr_scan(showq_stream, ATTR_FLAG_MORE | ATTR_FLAG_STRICT
| ATTR_FLAG_PRINTABLE,
+ RECV_ATTR_STR(MAIL_ATTR_ORCPT, oaddr),
RECV_ATTR_STR(MAIL_ATTR_RECIP, addr),
RECV_ATTR_STR(MAIL_ATTR_WHY, why),
- ATTR_TYPE_END) != 2)
+ ATTR_TYPE_END) != 3)
msg_fatal_status(EX_SOFTWARE, "malformed showq server response");
/*
{
static VSTRING *queue_name = 0;
static VSTRING *queue_id = 0;
+ static VSTRING *oaddr = 0;
static VSTRING *addr = 0;
static VSTRING *why = 0;
static VSTRING *quote_buf = 0;
if (queue_name == 0) {
queue_name = vstring_alloc(100);
queue_id = vstring_alloc(100);
+ oaddr = vstring_alloc(100);
addr = vstring_alloc(100);
why = vstring_alloc(100);
quote_buf = vstring_alloc(100);
vstream_printf("{");
if (attr_scan(showq_stream, ATTR_FLAG_MORE | ATTR_FLAG_STRICT
| ATTR_FLAG_PRINTABLE,
+ RECV_ATTR_STR(MAIL_ATTR_ORCPT, oaddr),
RECV_ATTR_STR(MAIL_ATTR_RECIP, addr),
RECV_ATTR_STR(MAIL_ATTR_WHY, why),
- ATTR_TYPE_END) != 2)
+ ATTR_TYPE_END) != 3)
msg_fatal_status(EX_SOFTWARE, "malformed showq server response");
+ vstream_printf("\"orig_address\": \"%s\", ",
+ QUOTE_JSON(quote_buf, STR(oaddr)));
vstream_printf("\"address\": \"%s\"",
QUOTE_JSON(quote_buf, STR(addr)));
if (LEN(why) > 0)
long msg_size = size;
BOUNCE_LOG *logfile;
HTABLE *dup_filter = 0;
+ VSTRING *orcpt_buf = vstring_alloc(100);
RCPT_BUF *rcpt_buf = 0;
DSN_BUF *dsn_buf = 0;
int sender_seen = 0;
int msg_size_ok = 0;
+ const char *have_orcpt = 0;
/*
* Let the optimizer worry about eliminating duplicate code.
attr_print(client, ATTR_FLAG_NONE, ATTR_TYPE_END); \
vstring_free(buf); \
vstring_free(printable_quoted_addr); \
+ vstring_free(orcpt_buf); \
if (rcpt_buf) \
rcpb_free(rcpt_buf); \
if (dsn_buf) \
STR(printable_quoted_addr)),
ATTR_TYPE_END);
break;
+ case REC_TYPE_ORCP:
+ if (sender_seen == 0) {
+ msg_warn("%s: missing sender address: %s "
+ "-- skipping remainder of this file",
+ id, STR(printable_quoted_addr));
+ SHOWQ_CLEANUP_AND_RETURN;
+ }
+ quote_822_local(orcpt_buf, start);
+ /* For consistency with REC_TYPE_RCPT below. */
+ have_orcpt = printable(STR(orcpt_buf), '?');
+ break;
case REC_TYPE_RCPT:
if (sender_seen == 0) {
msg_warn("%s: missing sender address: %s "
id, STR(printable_quoted_addr));
SHOWQ_CLEANUP_AND_RETURN;
}
- if (*start == 0) /* can't happen? */
+ if (*start == 0) /* non-smtpd case */
start = var_empty_addr;
quote_822_local(printable_quoted_addr, start);
/* For consistency with recipients in bounce logfile. */
printable(STR(printable_quoted_addr), '?');
+ /* For consistency with cleanup server and maildrop messages. */
+ if (have_orcpt == 0)
+ have_orcpt = STR(vstring_strcpy(orcpt_buf,
+ STR(printable_quoted_addr)));
if (dup_filter == 0
|| htable_locate(dup_filter, STR(printable_quoted_addr)) == 0)
attr_print(client, ATTR_FLAG_MORE,
+ SEND_ATTR_STR(MAIL_ATTR_ORCPT, have_orcpt),
SEND_ATTR_STR(MAIL_ATTR_RECIP,
STR(printable_quoted_addr)),
SEND_ATTR_STR(MAIL_ATTR_WHY, ""),
ATTR_TYPE_END);
+ have_orcpt = 0;
break;
case REC_TYPE_MESG:
if (msg_size_ok && vstream_fseek(qfile, msg_size, SEEK_CUR) < 0)
htable_enter(dup_filter, rcpt->address, (void *) 0);
attr_print(client, ATTR_FLAG_MORE,
+ SEND_ATTR_STR(MAIL_ATTR_ORCPT, rcpt->orig_addr),
SEND_ATTR_STR(MAIL_ATTR_RECIP, rcpt->address),
SEND_ATTR_STR(MAIL_ATTR_WHY, dsn->reason),
ATTR_TYPE_END);
} else
#endif
aname = name;
- for (pattp = tls->ext_mx_host_patterns->argv; *pattp; pattp++)
- if (match_sts_mx_host_pattern(*pattp, aname))
+ for (pattp = tls->ext_mx_host_patterns->argv; *pattp; pattp++) {
+ if (match_sts_mx_host_pattern(*pattp, aname)) {
+ if (msg_verbose)
+ msg_info("MX name '%s' matches STS MX pattern for '%s'",
+ aname, tls->ext_policy_domain ? tls->ext_policy_domain : "");
return (1);
+ }
+ }
+ msg_warn("MX name '%s' does not match STS MX pattern for '%s'",
+ aname, tls->ext_policy_domain ? tls->ext_policy_domain : "");
return (0);
}
/* No applicable policy name patterns. */
if (tls->ext_policy_type == 0)
msg_panic("smtp_tlsrpt_set_ext_policy: no policy type");
+#define ARGV_OR_NULL(ap) ((ap) ? (ap)->argv : 0)
+
switch (policy_type_val =
convert_tlsrpt_policy_type(tls->ext_policy_type)) {
case TLSRPT_POLICY_STS:
trw_set_tls_policy(state->tlsrpt, policy_type_val,
- (const char *const *) tls->ext_policy_strings->argv,
+ (const char *const *) ARGV_OR_NULL(tls->ext_policy_strings),
tls->ext_policy_domain,
- (const char *const *) tls->ext_mx_host_patterns->argv);
+ (const char *const *) ARGV_OR_NULL(tls->ext_mx_host_patterns));
break;
case TLSRPT_NO_POLICY_FOUND:
smtp_tlsrpt_set_no_policy(state);
static int ask_client_cert;
static char *tlsp_pre_jail_client_param_key; /* pre-jail global params */
static char *tlsp_pre_jail_client_init_key; /* pre-jail init props */
+static const char *server_role_disabled;
/*
* TLS per-client status.
case TLS_PROXY_FLAG_ROLE_SERVER:
state->is_server_role = 1;
ready = (tlsp_server_ctx != 0);
+ if (server_role_disabled)
+ msg_warn("%s", server_role_disabled);
break;
default:
state->is_server_role = 0;
}
var_tlsp_use_tls = var_tlsp_use_tls || var_tlsp_enforce_tls;
if (!var_tlsp_use_tls) {
- msg_warn("TLS server role is disabled with %s or %s",
- VAR_TLSP_TLS_LEVEL, VAR_TLSP_USE_TLS);
+ server_role_disabled = "TLS server role is disabled by configuration";
return;
}