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/.indent.pro.orig b/postfix/.indent.pro.orig
new file mode 100644
index 000000000..9e6670d2b
--- /dev/null
+++ b/postfix/.indent.pro.orig
@@ -0,0 +1,450 @@
+-TABOUNCE_STATE
+-TADDR_MATCH_LIST
+-TADDR_PATTERN
+-TALIAS_TOKEN
+-TANVIL_CLNT
+-TANVIL_LOCAL
+-TANVIL_MAX
+-TANVIL_REMOTE
+-TANVIL_REQ_TABLE
+-TARGV
+-TASN1_INTEGER
+-TASN1_OBJECT
+-TATTR_CLNT
+-TATTR_OVER_INT
+-TATTR_OVER_STR
+-TATTR_OVER_TIME
+-TATTR_TABLE
+-TAUTHORITY_KEYID
+-TAUTO_CLNT
+-TBH_TABLE
+-TBINATTR
+-TBINATTR_INFO
+-TBINHASH
+-TBINHASH_INFO
+-TBIO
+-TBOUNCE_INFO
+-TBOUNCE_LOG
+-TBOUNCE_LOG_DSN_BUF
+-TBOUNCE_LOG_FORGE
+-TBOUNCE_LOG_RCPT_BUF
+-TBOUNCE_STAT
+-TBOUNCE_STR_PARAMETER
+-TBOUNCE_TEMPLATE
+-TBOUNCE_TEMPLATES
+-TBOUNCE_TIME_DIVISOR
+-TBOUNCE_TIME_PARAMETER
+-TBYTE_MASK
+-TCFG_PARSER
+-TCIDR_MATCH
+-TCLEANUP_REGION
+-TCLEANUP_STATE
+-TCLEANUP_STAT_DETAIL
+-TCLIENT_LIST
+-TCLNT_STREAM
+-TCONFIG_BOOL_FN_TABLE
+-TCONFIG_BOOL_TABLE
+-TCONFIG_INT_FN_TABLE
+-TCONFIG_INT_TABLE
+-TCONFIG_LONG_FN_TABLE
+-TCONFIG_LONG_TABLE
+-TCONFIG_NBOOL_FN_TABLE
+-TCONFIG_NBOOL_TABLE
+-TCONFIG_NCODE_TABLE
+-TCONFIG_NINT_FN_TABLE
+-TCONFIG_NINT_TABLE
+-TCONFIG_RAW_FN_TABLE
+-TCONFIG_RAW_TABLE
+-TCONFIG_STR_FN_TABLE
+-TCONFIG_STR_TABLE
+-TCONFIG_TIME_FN_TABLE
+-TCONFIG_TIME_TABLE
+-TCONST_CHAR_STAR
+-TCRYPTO_EX_DATA
+-TCTABLE
+-TCTABLE_ENTRY
+-TDB_COMMON_CTX
+-TDELIVERED_HDR_INFO
+-TDELIVER_ATTR
+-TDELIVER_REQUEST
+-TDELTA_TIME
+-TDICT
+-TDICT_CACHE
+-TDICT_CACHE_SREQ
+-TDICT_CACHE_SREQ_INFO
+-TDICT_CACHE_TEST
+-TDICT_CDBM
+-TDICT_CDBQ
+-TDICT_CIDR
+-TDICT_CIDR_ENTRY
+-TDICT_DB
+-TDICT_DBM
+-TDICT_DEBUG
+-TDICT_ENV
+-TDICT_FAIL
+-TDICT_FINAL_WRAPPER
+-TDICT_HT
+-TDICT_INLINE
+-TDICT_LDAP
+-TDICT_LMDB
+-TDICT_MC
+-TDICT_MONGODB
+-TDICT_MYSQL
+-TDICT_NI
+-TDICT_NIS
+-TDICT_NISPLUS
+-TDICT_NODE
+-TDICT_OPEN_EXTEND_FN
+-TDICT_OPEN_FN
+-TDICT_OPEN_INFO
+-TDICT_OWNER
+-TDICT_PCRE
+-TDICT_PCRE_ENGINE
+-TDICT_PCRE_EXPAND_CONTEXT
+-TDICT_PCRE_IF_RULE
+-TDICT_PCRE_MATCH_RULE
+-TDICT_PCRE_PRESCAN_CONTEXT
+-TDICT_PCRE_REGEXP
+-TDICT_PCRE_RULE
+-TDICT_PGSQL
+-TDICT_PIPE
+-TDICT_PROXY
+-TDICT_RAND
+-TDICT_RANDOM
+-TDICT_REGEXP
+-TDICT_REGEXP_EXPAND_CONTEXT
+-TDICT_REGEXP_IF_RULE
+-TDICT_REGEXP_MATCH_RULE
+-TDICT_REGEXP_PATTERN
+-TDICT_REGEXP_PRESCAN_CONTEXT
+-TDICT_REGEXP_RULE
+-TDICT_SDBM
+-TDICT_SOCKMAP
+-TDICT_SOCKMAP_REFC_HANDLE
+-TDICT_SQLITE
+-TDICT_STATIC
+-TDICT_SURROGATE
+-TDICT_TCP
+-TDICT_TEXT
+-TDICT_THASH
+-TDICT_UNION
+-TDICT_UNIX
+-TDICT_UTF8_BACKUP
+-TDICT_WRAPPER
+-TDNS_FIXED
+-TDNS_REPLY
+-TDNS_RR
+-TDOMAIN_LIST
+-TDSN
+-TDSN_BUF
+-TDSN_FILTER
+-TDSN_SPLIT
+-TDSN_STAT
+-TDYMAP_INFO
+-TEC_GROUP
+-TEC_KEY
+-TEDIT_FILE
+-TEVENT_MASK
+-TEVP_CIPHER_CTX
+-TEVP_MAC_CTX
+-TEVP_MD
+-TEVP_MD_CTX
+-TEVP_PKEY
+-TEXPAND_ATTR
+-TFILE
+-TFORWARD_INFO
+-THBC_ACTION_CALL_BACKS
+-THBC_CALL_BACKS
+-THBC_CHECKS
+-THBC_MAP_INFO
+-THBC_OUTPUT_CALL_BACKS
+-THBC_TEST_CONTEXT
+-THEADER_OPTS
+-THEADER_TOKEN
+-THMAC_CTX
+-THOST
+-THTABLE
+-THTABLE_INFO
+-TINET_ADDR_LIST
+-TINET_ADDR_SIZES
+-TINET_PROTO_INFO
+-TINSTANCE
+-TINST_SELECTION
+-TINT32_TYPE
+-TINTV
+-TINT_TABLE
+-TJMP_BUF_WRAPPER
+-TLDAP
+-TLDAPMessage
+-TLDAPURLDesc
+-TLDAP_CONN
+-TLIB_DP
+-TLIB_FN
+-TLMTP_ATTR
+-TLMTP_RESP
+-TLMTP_SESSION
+-TLMTP_STATE
+-TLOCAL_EXP
+-TLOCAL_STATE
+-TLOGIN_SENDER_MATCH
+-TLOGWRITER
+-TLONG_NAME_MASK
+-TMAC_EXP_CONTEXT
+-TMAC_EXP_OP_INFO
+-TMAC_HEAD
+-TMAC_PARSE
+-TMAIL_ADDR_FORMATTER
+-TMAIL_ADDR_MAP_TEST
+-TMAIL_PRINT
+-TMAIL_SCAN
+-TMAIL_STREAM
+-TMAIL_VERSION
+-TMAI_HOSTADDR_STR
+-TMAI_HOSTNAME_STR
+-TMAI_SERVNAME_STR
+-TMAI_SERVPORT_STR
+-TMAPS
+-TMAP_SEARCH
+-TMASTER_INT_WATCH
+-TMASTER_PROC
+-TMASTER_SERV
+-TMASTER_STATUS
+-TMASTER_STR_WATCH
+-TMATCH_LIST
+-TMATCH_OPS
+-TMBLOCK
+-TMBOX
+-TMDB_env
+-TMDB_txn
+-TMDB_val
+-TMILTER
+-TMILTER8
+-TMILTERS
+-TMILTER_MACROS
+-TMILTER_MSG_CONTEXT
+-TMIME_ENCODING
+-TMIME_INFO
+-TMIME_STACK
+-TMIME_STATE
+-TMIME_STATE_DETAIL
+-TMIME_TOKEN
+-TMKMAP
+-TMKMAP_DB
+-TMKMAP_DBM
+-TMKMAP_OPEN_EXTEND_FN
+-TMKMAP_OPEN_FN
+-TMKMAP_OPEN_INFO
+-TMKMAP_SDBM
+-TMSG_STATS
+-TMULTI_SERVER
+-TMVECT
+-TMYSQL
+-TMYSQL_NAME
+-TMYSQL_RES
+-TNAMADR_LIST
+-TNAME_ASSIGNMENT
+-TNAME_CODE
+-TNAME_MASK
+-TNBBIO
+-TNVTABLE_INFO
+-TOPTIONS
+-TOSSL_DGST
+-TPCF_DBMS_INFO
+-TPCF_DEPR_PARAM_INFO
+-TPCF_EVAL_CTX
+-TPCF_MASTER_EDIT_REQ
+-TPCF_MASTER_ENT
+-TPCF_MASTER_FLD_REQ
+-TPCF_PARAM_CTX
+-TPCF_PARAM_NODE
+-TPCF_PARAM_TABLE
+-TPCF_SERVICE_DEF
+-TPCF_SERVICE_PATTERN
+-TPCF_STRING_NV
+-TPEER_FROM_HAPROXY_CASE
+-TPEER_FROM_NON_SOCKET_CASE
+-TPEER_FROM_PASS_ATTR_CASE
+-TPEER_FROM_UNCONN_SOCKET_CASE
+-TPEER_NAME
+-TPGSQL_NAME
+-TPICKUP_INFO
+-TPIPE_ATTR
+-TPIPE_PARAMS
+-TPIPE_STATE
+-TPLMYSQL
+-TPLPGSQL
+-TPOSTMAP_KEY_STATE
+-TPOST_MAIL_FCLOSE_STATE
+-TPOST_MAIL_STATE
+-TPRIVATE_STR_TABLE
+-TPSC_CALL_BACK_ENTRY
+-TPSC_CLIENT_INFO
+-TPSC_DNSBL_HEAD
+-TPSC_DNSBL_SCORE
+-TPSC_DNSBL_SITE
+-TPSC_ENDPT_LOOKUP_INFO
+-TPSC_HAPROXY_STATE
+-TPSC_SMTPD_COMMAND
+-TPSC_STARTTLS
+-TPSC_STATE
+-TQMGR_ENTRY
+-TQMGR_FEEDBACK
+-TQMGR_JOB
+-TQMGR_MESSAGE
+-TQMGR_PEER
+-TQMGR_QUEUE
+-TQMGR_RCPT
+-TQMGR_RCPT_LIST
+-TQMGR_RECIPIENT
+-TQMGR_SCAN
+-TQMGR_TRANSPORT
+-TQMQPD_STATE
+-TRCPT_BUF
+-TRECIPIENT
+-TRECIPIENT_LIST
+-TREC_TYPE_NAME
+-TRESOLVE_REPLY
+-TRESPONSE
+-TREST_TABLE
+-TRES_CONTEXT
+-TRWR_CONTEXT
+-TSCACHE
+-TSCACHE_CLNT
+-TSCACHE_MULTI
+-TSCACHE_MULTI_DEST
+-TSCACHE_MULTI_ENDP
+-TSCACHE_MULTI_HEAD
+-TSCACHE_SINGLE
+-TSCACHE_SINGLE_DEST
+-TSCACHE_SINGLE_ENDP
+-TSCACHE_SIZE
+-TSCAN_DIR
+-TSCAN_INFO
+-TSCAN_OBJ
+-TSENDER_LOGIN_MATCH
+-TSERVER_AC
+-TSESSION
+-TSHARED_PATH
+-TSINGLE_SERVER
+-TSINK_COMMAND
+-TSINK_STATE
+-TSLMDB
+-TSMFICTX
+-TSMTPD_CMD
+-TSMTPD_DEFER
+-TSMTPD_ENDPT_LOOKUP_INFO
+-TSMTPD_POLICY_CLNT
+-TSMTPD_PROXY
+-TSMTPD_RBL_EXPAND_CONTEXT
+-TSMTPD_RBL_STATE
+-TSMTPD_RCPTMAP_ST
+-TSMTPD_STATE
+-TSMTPD_TOKEN
+-TSMTPD_XFORWARD_ATTR
+-TSMTP_ADDR
+-TSMTP_CLI_ATTR
+-TSMTP_CMD
+-TSMTP_ITERATOR
+-TSMTP_RESP
+-TSMTP_SASL_AUTH_CACHE
+-TSMTP_SESSION
+-TSMTP_STATE
+-TSMTP_TLS_POLICY
+-TSMTP_TLS_SESS
+-TSMTP_TLS_SITE_POLICY
+-TSM_STATE
+-TSOCKADDR_SIZE
+-TSPAWN_ATTR
+-TSSL
+-TSSL_CTX
+-TSSL_SESSION
+-TSTATE
+-TSTRING_LIST
+-TSTRING_TABLE
+-TSYS_EXITS_DETAIL
+-TTEST_BASE
+-TTEST_CASE
+-TTLSMGR_SCACHE
+-TTLSP_STATE
+-TTLSRPT_WRAPPER
+-TTLS_APPL_STATE
+-TTLS_CERTS
+-TTLS_CLIENT_INIT_PROPS
+-TTLS_CLIENT_PARAMS
+-TTLS_CLIENT_START_PROPS
+-TTLS_DANE
+-TTLS_PKEYS
+-TTLS_PRNG_SEED_INFO
+-TTLS_PRNG_SRC
+-TTLS_ROLE
+-TTLS_SCACHE
+-TTLS_SCACHE_ENTRY
+-TTLS_SERVER_INIT_PROPS
+-TTLS_SERVER_START_PROPS
+-TTLS_SESS_STATE
+-TTLS_TICKET_KEY
+-TTLS_TLSA
+-TTLS_USAGE
+-TTLS_VINFO
+-TTLScontext_t
+-TTOK822
+-TTRANSPORT_INFO
+-TTRIGGER_SERVER
+-TUSER_ATTR
+-TVBUF
+-TVSTREAM
+-TVSTREAM_POPEN_ARGS
+-TVSTRING
+-TWAIT_STATUS_T
+-TWATCHDOG
+-TWATCH_FD
+-TX509
+-TX509V3_CTX
+-TX509_EXTENSION
+-TX509_NAME
+-TX509_STORE_CTX
+-TXSASL_CLIENT
+-TXSASL_CLIENT_CREATE_ARGS
+-TXSASL_CLIENT_IMPL
+-TXSASL_CLIENT_IMPL_INFO
+-TXSASL_CYRUS_CB
+-TXSASL_CYRUS_CLIENT
+-TXSASL_CYRUS_ERROR_INFO
+-TXSASL_CYRUS_SERVER
+-TXSASL_DCSRV_MECH
+-TXSASL_DOVECOT_SERVER
+-TXSASL_DOVECOT_SERVER_IMPL
+-TXSASL_DOVECOT_SERVER_MECHS
+-TXSASL_SERVER
+-TXSASL_SERVER_CREATE_ARGS
+-TXSASL_SERVER_IMPL
+-TXSASL_SERVER_IMPL_INFO
+-Tbind_props
+-Tbson_iter_t
+-Tcipher_probe_t
+-Td2i_X509_t
+-Tdane_digest
+-Tdane_mtype
+-Tfilter_ctx
+-Tgeneral_name_stack_t
+-Tiana_digest
+-Toff_t
+-Tpem_load_state_t
+-Tregex_t
+-Tregmatch_t
+-Tsasl_conn_t
+-Tsasl_secret_t
+-Tsfsistat
+-Tsigset_t
+-Tsize_t
+-Tsockaddr
+-Tsockaddr_storage
+-Tssize_t
+-Tssl_cipher_stack_t
+-Tssl_comp_stack_t
+-Ttime_t
+-Ttlsa_filter
+-Tuint16_t
+-Tuint32_t
+-Tuint8_t
+-Tx509_stack_t
diff --git a/postfix/HISTORY b/postfix/HISTORY
index 7f07ff36c..027387bad 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
@@ -29282,3 +29282,139 @@ Apologies for any names omitted.
levels, because changing the level alone is not sufficient.
Server-side TLS requires that at least one private key and
corresponding public-key certificate chain are configured.
+
+ Baseline is postfix-3.11-20250623
+
+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/README_FILES/COMPATIBILITY_README b/postfix/README_FILES/COMPATIBILITY_README
index e69de29bb..f952d82f5 100644
--- a/postfix/README_FILES/COMPATIBILITY_README
+++ b/postfix/README_FILES/COMPATIBILITY_README
@@ -0,0 +1,459 @@
+PPoossttffiixx BBaacckkwwaarrddss--CCoommppaattiibbiilliittyy SSaaffeettyy NNeett
+
+-------------------------------------------------------------------------------
+
+PPuurrppoossee ooff tthhiiss ddooccuummeenntt
+
+Postfix 3.0 introduces a safety net that runs Postfix programs with backwards-
+compatible default settings after an upgrade. The safety net will log a warning
+whenever a "new" default setting could have an negative effect on your mail
+flow.
+
+This document provides information on the following topics:
+
+ * Detailed descriptions of Postfix backwards-compatibility warnings.
+
+ * What backwards-compatible settings you may have to make permanent in
+ main.cf or master.cf.
+
+ * How to turn off Postfix backwards-compatibility warnings.
+
+OOvveerrvviieeww
+
+With backwards compatibility turned on, Postfix logs a message whenever a
+backwards-compatible default setting may be required for continuity of service.
+Based on this logging the system administrator can decide if any backwards-
+compatible settings need to be made permanent in main.cf or master.cf, before
+turning off the backwards-compatibility safety net as described at the end of
+this document.
+
+Logged with compatibility_level < 1:
+
+ * Using backwards-compatible default setting append_dot_mydomain=yes
+
+ * Using backwards-compatible default setting chroot=y
+
+ * Using backwards-compatible default setting "smtpd_relay_restrictions =
+ (empty)"
+
+ * Using backwards-compatible default setting smtputf8_enable=no
+
+Logged with compatibility_level < 2:
+
+ * Using backwards-compatible default setting mynetworks_style=subnet
+
+ * Using backwards-compatible default setting relay_domains=$mydestination
+
+Logged with compatibility_level < 3.6:
+
+ * Using backwards-compatible default setting smtpd_tls_fingerprint_digest=md5
+
+ * Using backwards-compatible default setting smtp_tls_fingerprint_digest=md5
+
+ * Using backwards-compatible default setting lmtp_tls_fingerprint_digest=md5
+
+ * Using backwards-compatible default setting
+ smtpd_relay_before_recipient_restrictions=no
+
+ * Using backwards-compatible default setting respectful_logging=no
+
+Logged with compatibility_level < 3.11:
+
+ * using backwards-compatible default setting
+ smtp_tlsrpt_skip_reused_handshakes=yes
+
+ * using backwards-compatible default setting xxx_security_level=(empty)
+
+If such a message is logged in the context of a legitimate request, the system
+administrator should make the backwards-compatible setting permanent in main.cf
+or master.cf, as detailed in the sections that follow.
+
+When no more backwards-compatible settings need to be made permanent, the
+system administrator should turn off the backwards-compatibility safety net as
+described at the end of this document.
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg aappppeenndd__ddoott__mmyyddoommaaiinn==yyeess
+
+The append_dot_mydomain default value has changed from "yes" to "no". This
+could result in unexpected non-delivery of email after Postfix is updated from
+an older version. The backwards-compatibility safety net is designed to prevent
+such surprises.
+
+As long as the append_dot_mydomain parameter is left unspecified at its
+implicit default value, and the compatibility_level setting is less than 1,
+Postfix may log one of the following messages:
+
+ * Messages about missing "localhost" in mydestination or other address class:
+
+ postfix/trivial-rewrite[14777]: using backwards-compatible
+ default setting append_dot_mydomain=yes to rewrite
+ "localhost" to "localhost.example.com"; please add
+ "localhost" to mydestination or other address class
+
+ If Postfix logs the above message, add "localhost" to mydestination (or
+ virtual_alias_domains, virtual_mailbox_domains, or relay_domains) and
+ execute the command "ppoossttffiixx rreellooaadd".
+
+ * Messages about incomplete domains in email addresses:
+
+ postfix/trivial-rewrite[25835]: using backwards-compatible
+ default setting append_dot_mydomain=yes to rewrite "foo" to
+ "foo.example.com"
+
+ If Postfix logs the above message for domains different from "localhost",
+ and the sender cannot be changed to use complete domain names in email
+ addresses, then the system administrator should make the backwards-
+ compatible setting "append_dot_mydomain = yes" permanent in main.cf:
+
+ # ppoossttccoonnff aappppeenndd__ddoott__mmyyddoommaaiinn==yyeess
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg cchhrroooott==yy
+
+The master.cf chroot default value has changed from "y" (yes) to "n" (no). The
+new default avoids the need for copies of system files under the Postfix queue
+directory. However, sites with strict security requirements may want to keep
+the chroot feature enabled after updating Postfix from an older version. The
+backwards-compatibility safety net is designed allow the administrator to
+choose if they want to keep the old behavior.
+
+As long as a master.cf chroot field is left unspecified at its implicit default
+value, and the compatibility_level setting is less than 1, Postfix may log the
+following message while it reads the master.cf file:
+
+ postfix/master[27664]: /etc/postfix/master.cf: line 72: using
+ backwards-compatible default setting chroot=y
+
+If this service should remain chrooted, then the system administrator should
+make the backwards-compatible setting "chroot = y" permanent in master.cf. For
+example, to update the chroot setting for the "smtp inet" service:
+
+ # ppoossttccoonnff --FF ssmmttpp//iinneett//cchhrroooott==yy
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg ssmmttppdd__rreellaayy__rreessttrriiccttiioonnss == ((eemmppttyy))
+
+The smtpd_relay_restrictions feature was introduced with Postfix version 2.10,
+as a safety mechanism for configuration errors in smtpd_recipient_restrictions
+that could make Postfix an open relay.
+
+The smtpd_relay_restrictions implicit default setting forbids mail to remote
+destinations from clients that don't match permit_mynetworks or
+permit_sasl_authenticated. This could result in unexpected 'Relay access
+denied' errors after Postfix is updated from an older Postfix version. The
+backwards-compatibility safety net is designed to prevent such surprises.
+
+When the compatibility_level less than 1, and the smtpd_relay_restrictions
+parameter is left unspecified at its implicit default setting, Postfix may log
+the following message:
+
+ postfix/smtpd[38463]: using backwards-compatible default setting
+ "smtpd_relay_restrictions = (empty)" to avoid "Relay access
+ denied" error for recipient "user@example.com" from client
+ "host.example.net[10.0.0.2]"
+
+If this request should not be blocked, then the system administrator should
+make the backwards-compatible setting "smtpd_relay_restrictions=" (i.e. empty)
+permanent in main.cf:
+
+ # ppoossttccoonnff ssmmttppdd__rreellaayy__rreessttrriiccttiioonnss==
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg ssmmttppuuttff88__eennaabbllee==nnoo
+
+The smtputf8_enable default value has changed from "no" to "yes". With the new
+"yes" setting, the Postfix SMTP server rejects non-ASCII addresses from clients
+that don't request SMTPUTF8 support, after Postfix is updated from an older
+version. The backwards-compatibility safety net is designed to prevent such
+surprises.
+
+As long as the smtputf8_enable parameter is left unspecified at its implicit
+default value, and the compatibility_level setting is less than 1, Postfix logs
+a warning each time an SMTP command uses a non-ASCII address localpart without
+requesting SMTPUTF8 support:
+
+ postfix/smtpd[27560]: using backwards-compatible default setting
+ smtputf8_enable=no to accept non-ASCII sender address
+ "??@example.org" from localhost[127.0.0.1]
+
+ postfix/smtpd[27560]: using backwards-compatible default setting
+ smtputf8_enable=no to accept non-ASCII recipient address
+ "??@example.com" from localhost[127.0.0.1]
+
+If the address should not be rejected, and the client cannot be updated to use
+SMTPUTF8, then the system administrator should make the backwards-compatible
+setting "smtputf8_enable = no" permanent in main.cf:
+
+ # ppoossttccoonnff ssmmttppuuttff88__eennaabbllee==nnoo
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg mmyynneettwwoorrkkss__ssttyyllee==ssuubbnneett
+
+The mynetworks_style default value has changed from "subnet" to "host". This
+parameter is used to implement the "permit_mynetworks" feature. The change
+could cause unexpected 'access denied' errors after Postfix is updated from an
+older version. The backwards-compatibility safety net is designed to prevent
+such surprises.
+
+As long as the mynetworks and mynetworks_style parameters are left unspecified
+at their implicit default values, and the compatibility_level setting is less
+than 2, the Postfix SMTP server may log one of the following messages:
+
+ postfix/smtpd[17375]: using backwards-compatible default setting
+ mynetworks_style=subnet to permit request from client
+ "foo.example.com[10.1.1.1]"
+
+ postfix/postscreen[24982]: using backwards-compatible default
+ setting mynetworks_style=subnet to permit request from client
+ "10.1.1.1"
+
+If the client request should not be rejected, then the system administrator
+should make the backwards-compatible setting "mynetworks_style = subnet"
+permanent in main.cf:
+
+ # ppoossttccoonnff mmyynneettwwoorrkkss__ssttyyllee==ssuubbnneett
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg rreellaayy__ddoommaaiinnss==$$mmyyddeessttiinnaattiioonn
+
+The relay_domains default value has changed from "$mydestination" to the empty
+value. This could result in unexpected 'Relay access denied' errors or ETRN
+errors after Postfix is updated from an older version. The backwards-
+compatibility safety net is designed to prevent such surprises.
+
+As long as the relay_domains parameter is left unspecified at its implicit
+default value, and the compatibility_level setting is less than 2, Postfix may
+log one of the following messages.
+
+ * Messages about accepting mail for a remote domain:
+
+ postfix/smtpd[19052]: using backwards-compatible default setting
+ relay_domains=$mydestination to accept mail for domain
+ "foo.example.com"
+
+ postfix/smtpd[19052]: using backwards-compatible default setting
+ relay_domains=$mydestination to accept mail for address
+ "user@foo.example.com"
+
+ * Messages about providing ETRN service for a remote domain:
+
+ postfix/smtpd[19138]: using backwards-compatible default setting
+ relay_domains=$mydestination to flush mail for domain
+ "bar.example.com"
+
+ postfix/smtp[13945]: using backwards-compatible default setting
+ relay_domains=$mydestination to update fast-flush logfile for
+ domain "bar.example.com"
+
+If Postfix should continue to accept mail for that domain or continue to
+provide ETRN service for that domain, then the system administrator should make
+the backwards-compatible setting "relay_domains = $mydestination" permanent in
+main.cf:
+
+ # ppoossttccoonnff ''rreellaayy__ddoommaaiinnss==$$mmyyddeessttiinnaattiioonn''
+ # ppoossttffiixx rreellooaadd
+
+Note: quotes are required as indicated above.
+
+Instead of $mydestination, it may be better to specify an explicit list of
+domain names.
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg ssmmttppdd__ttllss__ffiinnggeerrpprriinntt__ddiiggeesstt==mmdd55
+
+The smtpd_tls_fingerprint_digest default value has changed from "md5" to
+"sha256". With the new "sha256" setting, the Postfix SMTP server avoids using
+the deprecated "md5" algorithm and computes a more secure digest of the client
+certificate.
+
+If you're using the default "md5" setting, or even an explicit "sha1" (also
+deprecated) setting, you should consider switching to "sha256". This will
+require updating any associated lookup table keys with the "sha256" digests of
+the expected client certificate or public key.
+
+As long as the smtpd_tls_fingerprint_digest parameter is left unspecified at
+its implicit default value, and the compatibility_level setting is less than
+3.6, Postfix logs a warning each time a client certificate or public key
+fingerprint is (potentially) used for access control:
+
+ postfix/smtpd[27560]: using backwards-compatible default setting
+ smtpd_tls_fingerprint_digest=md5 to compute certificate fingerprints
+
+Since any client certificate fingerprints are passed in policy service lookups,
+and Postfix doesn't know whether the fingerprint will be used, the warning may
+also be logged when policy lookups are performed for connections that used a
+client certificate, even if the policy service does not in fact examine the
+client certificate. To reduce the noise somewhat, such warnings are issued at
+most once per smtpd(8) process instance.
+
+If you prefer to stick with "md5", you can suppress the warnings by making that
+setting explicit. After addressing any other compatibility warnings, you can
+update your compatibility level.
+
+ # ppoossttccoonnff ssmmttppdd__ttllss__ffiinnggeerrpprriinntt__ddiiggeesstt==mmdd55
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg ssmmttpp__ttllss__ffiinnggeerrpprriinntt__ddiiggeesstt==mmdd55
+
+The smtp_tls_fingerprint_digest and lmtp_tls_fingerprint_digest default values
+have changed from "md5" to "sha256". With the new "sha256" setting, the Postfix
+SMTP and LMTP client avoids using the deprecated "md5" algorithm and computes a
+more secure digest of the server certificate.
+
+If you're using the default "md5" setting, or even an explicit "sha1" (also
+deprecated) setting, you should consider switching to "sha256". This will
+require updating any "fingerprint" security level policies in the TLS policy
+table to specify matching "sha256" digests of the expected server certificates
+or public keys.
+
+As long as the smtp_tls_fingerprint_digest (or LMTP equivalent) parameter is
+left unspecified at its implicit default value, and the compatibility_level
+setting is less than 3.6, Postfix logs a warning each time the "fingerprint"
+security level is used to specify matching "md5" digests of trusted server
+certificates or public keys:
+
+ postfix/smtp[27560]: using backwards-compatible default setting
+ smtp_tls_fingerprint_digest=md5 to compute certificate fingerprints
+
+If you prefer to stick with "md5", you can suppress the warnings by making that
+setting explicit. After addressing any other compatibility warnings, you can
+update your compatibility level.
+
+ # ppoossttccoonnff ''ssmmttpp__ttllss__ffiinnggeerrpprriinntt__ddiiggeesstt == mmdd55'' \\
+ ''llmmttpp__ttllss__ffiinnggeerrpprriinntt__ddiiggeesstt == mmdd55''
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg
+ssmmttppdd__rreellaayy__bbeeffoorree__rreecciippiieenntt__rreessttrriiccttiioonnss==nnoo
+
+The smtpd_relay_before_recipient_restrictions feature was introduced in Postfix
+version 3.6, to evaluate smtpd_relay_restrictions before
+smtpd_recipient_restrictions. Historically, smtpd_relay_restrictions was
+evaluated after smtpd_recipient_restrictions, contradicting documented
+behavior.
+
+ Background: smtpd_relay_restrictions is primarily designed to enforce a
+ mail relaying policy, while smtpd_recipient_restrictions is primarily
+ designed to enforce spam blocking policy. Both are evaluated while replying
+ to the RCPT TO command, and both support the same features.
+
+To maintain compatibility with earlier versions, Postfix will keep evaluating
+smtpd_recipient_restrictions before smtpd_relay_restrictions, as long as the
+compatibility_level is less than 3.6, and the
+smtpd_relay_before_recipient_restrictions parameter is left unspecified at its
+implicit default setting. As a reminder, Postfix may log the following message:
+
+ postfix/smtpd[54696]: using backwards-compatible default setting
+ smtpd_relay_before_recipient_restrictions=no to reject recipient
+ "user@example.com" from client "host.example.net[10.0.0.2]"
+
+If Postfix should keep evaluating smtpd_recipient_restrictions before
+smtpd_relay_restrictions, then the system administrator should make the
+backwards-compatible setting "smtpd_relay_before_recipient_restrictions=no"
+permanent in main.cf:
+
+ # ppoossttccoonnff ssmmttppdd__rreellaayy__bbeeffoorree__rreecciippiieenntt__rreessttrriiccttiioonnss==nnoo
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg rreessppeeccttffuull__llooggggiinngg==nnoo
+
+Postfix version 3.6 deprecates configuration parameter names and logging that
+suggest white is better than black. Instead it prefers 'allowlist, 'denylist',
+and variations of those words. While the renamed configuration parameters have
+backwards-compatible default values, the changes in logging could affect
+logfile analysis tools.
+
+To avoid breaking existing logfile analysis tools, Postfix will keep logging
+the deprecated form, as long as the respectful_logging parameter is left
+unspecified at its implicit default value, and the compatibility_level setting
+is less than 3.6. As a reminder, Postfix may log the following when a remote
+SMTP client is allowlisted or denylisted:
+
+ postfix/postscreen[22642]: Using backwards-compatible default setting
+ respectful_logging=no for client [address]:port
+
+If Postfix should keep logging the deprecated form, then the system
+administrator should make the backwards-compatible setting "respectful_logging
+= no" permanent in main.cf.
+
+ # ppoossttccoonnff ""rreessppeeccttffuull__llooggggiinngg == nnoo""
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg
+ssmmttpp__ttllssrrpptt__sskkiipp__rreeuusseedd__hhaannddsshhaakkeess==yyeess
+
+Postfix version 3.11 changes the default value for
+smtp_tlsrpt_skip_reused_handshakes from "yes" to "no". The backwards-
+compatibility safety net is designed to prevent an unexpected change in
+reporting behavior when Postfix is updated from an older version.
+
+As long as the smtp_tlsrpt_skip_reused_handshakes parameter is left unspecified
+at its implicit default value, and the compatibility_level setting is less than
+3.11, Postfix will log a reminder that it is using the backwards-compatible
+default:
+
+ postfix/smtp[388157] using backwards-compatible default setting
+ smtp_tlsrpt_skip_reused_handshakes=yes
+
+To keep the old default setting, the system administrator should make the
+backwards-compatible setting "smtp_tlsrpt_skip_reused_handshakes = yes"
+permanent in main.cf:
+
+ # ppoossttccoonnff ssmmttpp__ttllssrrpptt__sskkiipp__rreeuusseedd__hhaannddsshhaakkeess==yyeess
+ # ppoossttffiixx rreellooaadd
+
+UUssiinngg bbaacckkwwaarrddss--ccoommppaattiibbllee ddeeffaauulltt sseettttiinngg xxxxxx__sseeccuurriittyy__lleevveell==((eemmppttyy))
+
+Postfix version 3.11 changes the default value for client TLS security levels
+from "empty" to "yes". The backwards-compatibility safety net is designed to
+prevent an unexpected change in mail sending behavior when Postfix is updated
+from an older version.
+
+There is no equivalent change for Postfix server TLS security levels, because
+changing the level alone is not sufficient. Server-side TLS requires that at
+least one private key and one public-key certificate chain are configured.
+
+As long as a TLS security level parameter is left unspecified at its implicit
+default value, and the compatibility_level setting is less than 3.11, Postfix
+will log one of the following reminders that it is using the backwards-
+compatible default:
+
+ postfix/smtp[...] using backwards-compatible default setting
+ smtp_tls_security_level=(empty)
+
+ postfix/tlsproxy[...] using backwards-compatible default setting
+ tlsproxy_client_security_level=(empty)
+
+To keep the old default setting, the system administrator should make the
+backwards-compatible empty setting permanent in main.cf:
+
+ # ppoossttccoonnff xxxxxx__sseeccuurriittyy__lleevveell==
+ # ppoossttffiixx rreellooaadd
+
+where xxx is taken from the above compatibility message.
+
+TTuurrnniinngg ooffff tthhee bbaacckkwwaarrddss--ccoommppaattiibbiilliittyy ssaaffeettyy nneett
+
+Backwards compatibility is turned off by updating the compatibility_level
+setting in main.cf.
+
+ # ppoossttccoonnff ccoommppaattiibbiilliittyy__lleevveell==NN
+ # ppoossttffiixx rreellooaadd
+
+For N specify the number that is logged in your postfix(1) warning message:
+
+ warning: To disable backwards compatibility use "postconf
+ compatibility_level=N" and "postfix reload"
+
+Sites that don't care about backwards compatibility may set
+"compatibility_level = 9999" at their own risk.
+
+Starting with Postfix version 3.6, the compatibility level in the above warning
+message is the Postfix version that introduced the last incompatible change.
+The level is formatted as major.minor.patch, where patch is usually omitted and
+defaults to zero. Earlier compatibility levels are 0, 1 and 2.
+
+NOTE: Postfix 3.6 also introduces support for the "
This feature is available in Postfix 2.11 and later.
+ + +The LMTP-specific version of the smtp_enforce_requiretls +configuration parameter. See there for details.
+ +This feature is available in Postfix ≥ 3.11.
+ +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.
+ +Notes:
+ +REQUIRETLS enforcement is controlled with smtp_enforce_requiretls +or lmtp_enforce_requiretls.
+ +REQUIRETLS overrides "TLS-Required: no".
+ +This feature is available in Postfix ≥ 3.11.
+ +This feature is available in Postfix 2.11 and later.
+ + +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.
+ +Specify the form ".domain" to match any name ending in ".domain". +To change this behavior, list "smtp_enforce_requiretls" or +"lmtp_enforce_requiretls" in the parent_domain_matches_subdomains +parameter value.
+ ++SMTP Examples: +
+ ++# 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 +
+LMTP examples: +
+ ++# Don't enforce REQUIRETLS +lmtp_enforce_requiretls = ++ +
+# Enforce REQUIRETLS for specific destinations. +lmtp_enforce_requiretls = /path/to/socket, message-store.example +
This feature is available in Postfix ≥ 3.11.
+ +Note: REQUIRETLS overrides "TLS-Required: no".
+This feature is available in Postfix ≥ 3.10.
diff --git a/postfix/html/relocated.5.html b/postfix/html/relocated.5.html index 600ee757c..a6397fe62 100644 --- a/postfix/html/relocated.5.html +++ b/postfix/html/relocated.5.html @@ -5,7 +5,7 @@-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 ALSO trivial-rewrite(8), address resolver @@ -178,5 +178,5 @@ 111 8th Avenue New York, NY 10011, USA - RELOCATED(5) + RELOCATED(5)