]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.12-20251226
authorWietse Z Venema <wietse@porcupine.org>
Fri, 26 Dec 2025 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <ietf-dane@dukhovni.org>
Sat, 27 Dec 2025 12:35:44 +0000 (23:35 +1100)
19 files changed:
postfix/HISTORY
postfix/INSTALL
postfix/README_FILES/INSTALL
postfix/README_FILES/REQUIRETLS_README
postfix/RELEASE_NOTES-3.11
postfix/html/INSTALL.html
postfix/html/REQUIRETLS_README.html
postfix/html/makedefs.1.html
postfix/html/postconf.5.html
postfix/makedefs
postfix/man/man1/makedefs.1
postfix/man/man5/postconf.5
postfix/mantools/postlink
postfix/proto/INSTALL.html
postfix/proto/REQUIRETLS_README.html
postfix/proto/postconf.proto
postfix/src/global/mail_params.c
postfix/src/global/mail_params.h
postfix/src/global/mail_version.h

index 925ee13ad77df139939c8cd67439e67ba7ad2945..f77142c026133206b78be44d3ca5c926e230f908 100644 (file)
@@ -30279,3 +30279,18 @@ Apologies for any names omitted.
        util/unescape.ref.
 
        Documentation: minor edits of Postfix 3.11.0 RELEASE_NOTES.
+
+20251226
+
+       Tooling to reduce hard-coded database types in main.cf.
+       This introduces default_cache_db_type as the default database
+       for address_verify_map and postscreen_cache_map. It defaults
+       to 'lmdb' if default_database_type is 'lmdb', otherwise it
+       assumes the historical value 'btree'. With instructions for
+       overriding default_cache_db_type and default_database_type
+       in Postfix 3.11.0 RELEASE_NOTES. Files: makedefs,
+       mantools/postlink, proto/INSTALL.html, proto/postconf.proto,
+       README_FILES/INSTALL, RELEASE_NOTES-3.11, global/mail_params.c,
+       global/mail_params.h.
+
+       Documentation: updated REQUIRETLS_README.
index 026c7fa31cc901defe650b1f520a3b74bdf4c272..9b244119dc4e7a9c425991efc6631ae31659ef17 100644 (file)
@@ -425,41 +425,44 @@ Parameters whose defaults can be specified in this way are listed below. See
 the postconf(5) manpage for a description (command: "nroff -man man/man5/
 postconf.5 | less").
 
-     __________________________________________
-    |parameter name      |typical default     |
-    |_____________________|____________________|
-    |command_directory   |/usr/sbin           |
-    |_____________________|____________________|
-    |config_directory    |/etc/postfix        |
-    |_____________________|____________________|
-    |default_database_type|hash               |
-    |_____________________|____________________|
-    |daemon_directory    |/usr/libexec/postfix|
-    |_____________________|____________________|
-    |data_directory      |/var/lib/postfix    |
-    |_____________________|____________________|
-    |html_directory      |no                  |
-    |_____________________|____________________|
-    |mail_spool_directory |/var/mail          |
-    |_____________________|____________________|
-    |mailq_path          |/usr/bin/mailq      |
-    |_____________________|____________________|
-    |manpage_directory   |/usr/local/man      |
-    |_____________________|____________________|
-    |meta_directory      |/etc/postfix        |
-    |_____________________|____________________|
-    |newaliases_path     |/usr/bin/newaliases |
-    |_____________________|____________________|
-    |openssl_path        |openssl             |
-    |_____________________|____________________|
-    |queue_directory     |/var/spool/postfix  |
-    |_____________________|____________________|
-    |readme_directory    |no                  |
-    |_____________________|____________________|
-    |sendmail_path       |/usr/sbin/sendmail  |
-    |_____________________|____________________|
-    |shlib_directory     |/usr/lib/postfix    |
-    |_____________________|____________________|
+     _______________________________________________________________________
+    |parameter name      |typical default                                  |
+    |_____________________|_________________________________________________|
+    |command_directory   |/usr/sbin                                        |
+    |_____________________|_________________________________________________|
+    |config_directory    |/etc/postfix                                     |
+    |_____________________|_________________________________________________|
+    |default_database_type|hash                                            |
+    |_____________________|_________________________________________________|
+    |default_cache_db_type|(lmdb if default_database_type is lmdb, otherwise|
+    |                    |btree)                                           |
+    |_____________________|_________________________________________________|
+    |daemon_directory    |/usr/libexec/postfix                             |
+    |_____________________|_________________________________________________|
+    |data_directory      |/var/lib/postfix                                 |
+    |_____________________|_________________________________________________|
+    |html_directory      |no                                               |
+    |_____________________|_________________________________________________|
+    |mail_spool_directory |/var/mail                                       |
+    |_____________________|_________________________________________________|
+    |mailq_path          |/usr/bin/mailq                                   |
+    |_____________________|_________________________________________________|
+    |manpage_directory   |/usr/local/man                                   |
+    |_____________________|_________________________________________________|
+    |meta_directory      |/etc/postfix                                     |
+    |_____________________|_________________________________________________|
+    |newaliases_path     |/usr/bin/newaliases                              |
+    |_____________________|_________________________________________________|
+    |openssl_path        |openssl                                          |
+    |_____________________|_________________________________________________|
+    |queue_directory     |/var/spool/postfix                               |
+    |_____________________|_________________________________________________|
+    |readme_directory    |no                                               |
+    |_____________________|_________________________________________________|
+    |sendmail_path       |/usr/sbin/sendmail                               |
+    |_____________________|_________________________________________________|
+    |shlib_directory     |/usr/lib/postfix                                 |
+    |_____________________|_________________________________________________|
 
 4.6.2 - All Postfix versions
 
@@ -477,33 +480,35 @@ Parameters whose defaults can be specified in this way are listed below. See
 the postconf(5) manpage for a description (command: "nroff -man man/man5/
 postconf.5 | less").
 
-     ____________________________________________________________
-    |Macro name       |default value for    |typical default    |
-    |_________________|_____________________|____________________|
-    |DEF_COMMAND_DIR  |command_directory    |/usr/sbin          |
-    |_________________|_____________________|____________________|
-    |DEF_CONFIG_DIR   |config_directory     |/etc/postfix       |
-    |_________________|_____________________|____________________|
-    |DEF_DB_TYPE      |default_database_type|hash               |
-    |_________________|_____________________|____________________|
-    |DEF_DAEMON_DIR   |daemon_directory     |/usr/libexec/postfix|
-    |_________________|_____________________|____________________|
-    |DEF_DATA_DIR     |data_directory      |/var/lib/postfix    |
-    |_________________|_____________________|____________________|
-    |DEF_MAILQ_PATH   |mailq_path          |/usr/bin/mailq      |
-    |_________________|_____________________|____________________|
-    |DEF_HTML_DIR     |html_directory      |no                  |
-    |_________________|_____________________|____________________|
-    |DEF_MANPAGE_DIR  |manpage_directory    |/usr/local/man     |
-    |_________________|_____________________|____________________|
-    |DEF_NEWALIAS_PATH|newaliases_path     |/usr/bin/newaliases |
-    |_________________|_____________________|____________________|
-    |DEF_QUEUE_DIR    |queue_directory     |/var/spool/postfix  |
-    |_________________|_____________________|____________________|
-    |DEF_README_DIR   |readme_directory     |no                 |
-    |_________________|_____________________|____________________|
-    |DEF_SENDMAIL_PATH|sendmail_path       |/usr/sbin/sendmail  |
-    |_________________|_____________________|____________________|
+     _________________________________________________________________________
+    |Macro name       |default value for    |typical default                 |
+    |_________________|_____________________|_________________________________|
+    |DEF_COMMAND_DIR  |command_directory    |/usr/sbin                       |
+    |_________________|_____________________|_________________________________|
+    |DEF_CONFIG_DIR   |config_directory     |/etc/postfix                    |
+    |_________________|_____________________|_________________________________|
+    |DEF_DB_TYPE      |default_database_type|hash                            |
+    |_________________|_____________________|_________________________________|
+    |DEF_CACHE_DB_TYPE|default_cache_db_type|hash or lmdb, depends on platform|
+    |_________________|_____________________|_________________________________|
+    |DEF_DAEMON_DIR   |daemon_directory     |/usr/libexec/postfix            |
+    |_________________|_____________________|_________________________________|
+    |DEF_DATA_DIR     |data_directory      |/var/lib/postfix                 |
+    |_________________|_____________________|_________________________________|
+    |DEF_MAILQ_PATH   |mailq_path          |/usr/bin/mailq                   |
+    |_________________|_____________________|_________________________________|
+    |DEF_HTML_DIR     |html_directory      |no                               |
+    |_________________|_____________________|_________________________________|
+    |DEF_MANPAGE_DIR  |manpage_directory    |/usr/local/man                  |
+    |_________________|_____________________|_________________________________|
+    |DEF_NEWALIAS_PATH|newaliases_path     |/usr/bin/newaliases              |
+    |_________________|_____________________|_________________________________|
+    |DEF_QUEUE_DIR    |queue_directory     |/var/spool/postfix               |
+    |_________________|_____________________|_________________________________|
+    |DEF_README_DIR   |readme_directory     |no                              |
+    |_________________|_____________________|_________________________________|
+    |DEF_SENDMAIL_PATH|sendmail_path       |/usr/sbin/sendmail               |
+    |_________________|_____________________|_________________________________|
 
 Note: the data_directory parameter (for caches and pseudo-random numbers) was
 introduced with Postfix version 2.5.
@@ -538,9 +543,10 @@ The following is an extensive list of names and values.
 |_______________________________|_____________________________________________|
 ||                             |Do not build with Berkeley DB support. By    |
 ||                             |default, Berkeley DB support is compiled in  |
-||-DNO_DB                      |on platforms that are known to support this  |
-||                             |feature. If you override this, then you      |
-||                             |probably should also override DEF_DB_TYPE as |
+||                             |on platforms that are known to support this  |
+||-DNO_DB                      |feature. If you override this, then you      |
+||                             |probably should also override                |
+||                             |default_database_type or DEF_DB_TYPE as      |
 ||                             |described in section 4.6.                    |
 ||______________________________|_____________________________________________|
 ||-DNO_DNSSEC                  |Do not build with DNSSEC support, even if the|
index a57af61a651d7f36b80ac45456b64a4d5c0365d1..8a91750f767308e811e1977593e2908950dd3d41 100644 (file)
@@ -425,41 +425,44 @@ Parameters whose defaults can be specified in this way are listed below. See
 the postconf(5) manpage for a description (command: "nroff -man man/man5/
 postconf.5 | less").
 
-     _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\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\br n\bna\bam\bme\be       |t\bty\byp\bpi\bic\bca\bal\bl d\bde\bef\bfa\bau\bul\blt\bt     |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |command_directory    |/usr/sbin           |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |config_directory     |/etc/postfix        |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |default_database_type|hash                |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |daemon_directory     |/usr/libexec/postfix|
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |data_directory       |/var/lib/postfix    |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |html_directory       |no                  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |mail_spool_directory |/var/mail           |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |mailq_path           |/usr/bin/mailq      |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |manpage_directory    |/usr/local/man      |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |meta_directory       |/etc/postfix        |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |newaliases_path      |/usr/bin/newaliases |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |openssl_path         |openssl             |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |queue_directory      |/var/spool/postfix  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |readme_directory     |no                  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |sendmail_path        |/usr/sbin/sendmail  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |shlib_directory      |/usr/lib/postfix    |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+     _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\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\br n\bna\bam\bme\be       |t\bty\byp\bpi\bic\bca\bal\bl d\bde\bef\bfa\bau\bul\blt\bt                                  |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |command_directory    |/usr/sbin                                        |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |config_directory     |/etc/postfix                                     |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |default_database_type|hash                                             |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |default_cache_db_type|(lmdb if default_database_type is lmdb, otherwise|
+    |                     |btree)                                           |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |daemon_directory     |/usr/libexec/postfix                             |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |data_directory       |/var/lib/postfix                                 |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |html_directory       |no                                               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |mail_spool_directory |/var/mail                                        |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |mailq_path           |/usr/bin/mailq                                   |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |manpage_directory    |/usr/local/man                                   |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |meta_directory       |/etc/postfix                                     |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |newaliases_path      |/usr/bin/newaliases                              |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |openssl_path         |openssl                                          |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |queue_directory      |/var/spool/postfix                               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |readme_directory     |no                                               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |sendmail_path        |/usr/sbin/sendmail                               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |shlib_directory      |/usr/lib/postfix                                 |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
 
 4\b4.\b.6\b6.\b.2\b2 -\b- A\bAl\bll\bl P\bPo\bos\bst\btf\bfi\bix\bx v\bve\ber\brs\bsi\bio\bon\bns\bs
 
@@ -477,33 +480,35 @@ Parameters whose defaults can be specified in this way are listed below. See
 the postconf(5) manpage for a description (command: "nroff -man man/man5/
 postconf.5 | less").
 
-     _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b 
-    |M\bMa\bac\bcr\bro\bo n\bna\bam\bme\be       |d\bde\bef\bfa\bau\bul\blt\bt v\bva\bal\blu\bue\be f\bfo\bor\br    |t\bty\byp\bpi\bic\bca\bal\bl d\bde\bef\bfa\bau\bul\blt\bt     |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_COMMAND_DIR  |command_directory    |/usr/sbin           |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_CONFIG_DIR   |config_directory     |/etc/postfix        |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_DB_TYPE      |default_database_type|hash                |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_DAEMON_DIR   |daemon_directory     |/usr/libexec/postfix|
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_DATA_DIR     |data_directory       |/var/lib/postfix    |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_MAILQ_PATH   |mailq_path           |/usr/bin/mailq      |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_HTML_DIR     |html_directory       |no                  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_MANPAGE_DIR  |manpage_directory    |/usr/local/man      |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_NEWALIAS_PATH|newaliases_path      |/usr/bin/newaliases |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_QUEUE_DIR    |queue_directory      |/var/spool/postfix  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_README_DIR   |readme_directory     |no                  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
-    |DEF_SENDMAIL_PATH|sendmail_path        |/usr/sbin/sendmail  |
-    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+     _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b 
+    |M\bMa\bac\bcr\bro\bo n\bna\bam\bme\be       |d\bde\bef\bfa\bau\bul\blt\bt v\bva\bal\blu\bue\be f\bfo\bor\br    |t\bty\byp\bpi\bic\bca\bal\bl d\bde\bef\bfa\bau\bul\blt\bt                  |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_COMMAND_DIR  |command_directory    |/usr/sbin                        |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_CONFIG_DIR   |config_directory     |/etc/postfix                     |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_DB_TYPE      |default_database_type|hash                             |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_CACHE_DB_TYPE|default_cache_db_type|hash or lmdb, depends on platform|
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_DAEMON_DIR   |daemon_directory     |/usr/libexec/postfix             |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_DATA_DIR     |data_directory       |/var/lib/postfix                 |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_MAILQ_PATH   |mailq_path           |/usr/bin/mailq                   |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_HTML_DIR     |html_directory       |no                               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_MANPAGE_DIR  |manpage_directory    |/usr/local/man                   |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_NEWALIAS_PATH|newaliases_path      |/usr/bin/newaliases              |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_QUEUE_DIR    |queue_directory      |/var/spool/postfix               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_README_DIR   |readme_directory     |no                               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
+    |DEF_SENDMAIL_PATH|sendmail_path        |/usr/sbin/sendmail               |
+    |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
 
 Note: the data_directory parameter (for caches and pseudo-random numbers) was
 introduced with Postfix version 2.5.
@@ -538,9 +543,10 @@ The following is an extensive list of names and values.
 |_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
 ||                              |Do not build with Berkeley DB support. By    |
 ||                              |default, Berkeley DB support is compiled in  |
-||-DNO_DB                       |on platforms that are known to support this  |
-||                              |feature. If you override this, then you      |
-||                              |probably should also override DEF_DB_TYPE as |
+||                              |on platforms that are known to support this  |
+||-DNO_DB                       |feature. If you override this, then you      |
+||                              |probably should also override                |
+||                              |default_database_type or DEF_DB_TYPE as      |
 ||                              |described in section 4.6.                    |
 |_\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b |
 ||-DNO_DNSSEC                   |Do not build with DNSSEC support, even if the|
index 72eaf16819f2c1dcd7eb19357ea756c854f482a7..81e1452f7ad215a3064d4c2aabe7d201fb3a5027 100644 (file)
@@ -4,6 +4,7 @@ P\bPo\bos\bst\btf\bfi\bix\bx R\bRE\bEQ\bQU\bUI\bIR\bRE\bET\bTL\bLS\bS S\bSu\bup\bpp\bpo\bor\brt\bt
 
 T\bTa\bab\bbl\ble\be o\bof\bf C\bCo\bon\bnt\bte\ben\bnt\bts\bs
 
+  * Purpose of this document
   * Introduction
   * REQUIRETLS for a perimeter MTA
 
@@ -19,32 +20,48 @@ T\bTa\bab\bbl\ble\be o\bof\bf C\bCo\bon\bnt\bte\ben\bnt\bts\bs
   * REQUIRETLS quick summary
   * Credits
 
+P\bPu\bur\brp\bpo\bos\bse\be o\bof\bf t\bth\bhi\bis\bs d\bdo\boc\bcu\bum\bme\ben\bnt\bt
+
+This document covers Postfix configuration for the REQUIRETLS extension. The
+purpose of these settings is to make REQUIRETLS support usable in an existing
+environment where REQUIRETLS support is still uncommon, with a path towards a
+future with REQUIRETLS.
+
 I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn
 
-(For background information, see below for a REQUIRETLS quick summary.)
+The REQUIRETLS extension in ESMTP is defined in RFC 8689. When a sender
+requests REQUIRETLS. the message must be sent only over strongly-authenticated
+SMTP or LMTP connections.
+
+Specifically:
+
+  * Every server in the forward path to the final destination must announce
+    REQUIRETLS support.
 
-This document covers the Postfix default settings for using the REQUIRETLS
-extension. The purpose of these defaults is to make REQUIRETLS support usable
-in an existing environment, with a path towards the future.
+        Challenge: as of 2025, only a few servers implement REQUIRETLS.
 
-The main issues with deploying REQUIRETLS are a lack of support in existing
-infrastructure:
+  * Every server in the forward path must be looked up securely (for example,
+    with DNSSEC or HTTPS).
 
-  * REQUIRETLS requires that server certificates are authenticated. When email
-    is sent across the Internet, this involves a DANE or MTA-STS policy that is
-    published by a mail receiving domain, using DNSSEC or HTTPS. At this time,
-    many domains do not publish such a policy.
+  * Every server certificate in the forward path must be verified. In practice,
+    this involves DANE (+DNSSEC) or MTA-STS; custom configuration would not
+    scale.
 
-  * REQUIRETLS is historically not supported by existing local infrastructure
-    such as internal message stores or Postfix content filters, and may be
-    over-kill for connections that happen behind a perimeter MTA within a
-    trusted internal network.
+        Challenge: as of 2025, many domains do not publish a DANE or MTA-STS
+        policy.
+
+  * A message with REQUIRETLS must be returned to the sender if any of the
+    above requirements is not satisfied (no STARTTLS support, no secure server
+    lookup, no trusted or no matching server certificate, or no server that
+    announces REQUIRETLS support).
+
+For more background information, see the REQUIRETLS quick summary below.
 
 R\bRE\bEQ\bQU\bUI\bIR\bRE\bET\bTL\bLS\bS f\bfo\bor\br a\ba p\bpe\ber\bri\bim\bme\bet\bte\ber\br M\bMT\bTA\bA
 
 In this text, a perimeter MTA is a mail system that operates on the boundary of
 an administrative domain. It receives email messages for the domain, and/or
-delivers email messages on behalf of the domain.
+sends email messages on behalf of the domain.
 
 R\bRe\bec\bce\bei\biv\bvi\bin\bng\bg i\bin\bnb\bbo\bou\bun\bnd\bd m\bme\bes\bss\bsa\bag\bge\bes\bs w\bwi\bit\bth\bh R\bRE\bEQ\bQU\bUI\bIR\bRE\bET\bTL\bLS\bS r\bre\beq\bqu\bue\bes\bst\bts\bs
 
@@ -369,11 +386,11 @@ SMTP features:
     6409], and the LMTP Local Mail Transfer Protocol [RFC 2033].
 
   * REQUIRETLS is an end-to-end feature, unlike SMTP which is hop-by-hop. When
-    a sender requests REQUIRETLS, each MTA in the forward path must support
+    a sender requests REQUIRETLS, each server in the forward path must support
     REQUIRETLS.
 
-  * Each connection in the forward path must be made to an MX server that has
-    been looked up securely (for example, with DNSSEC or HTTPS).
+  * Each connection in the forward path must be made to a server that has been
+    looked up securely (for example, with DNSSEC or HTTPS).
 
   * Each server certificate must be verified. To match a server certificate,
     the Postfix SMTP client needs to use an appropriate policy type:
@@ -404,7 +421,9 @@ SMTP features:
   * Returning an undeliverable message that requires REQUIRETLS comes with its
     own challenges: the return path may differ from the forward path, and the
     return path may not support REQUIRETLS all the way back to the sender, even
-    if the forward path supported REQUIRETLS.
+    if the forward path supported REQUIRETLS. By default, Postfix follows RFC
+    8689 and redacts bounce messages so that they can be sent without
+    REQUIRETLS.
 
 C\bCr\bre\bed\bdi\bit\bts\bs
 
index e661ece6a9caa3ff80efd2bc2082c95b486a0838..852fef1e9b2d55e5b0b4eb40640964a1d14f87cd 100644 (file)
@@ -29,6 +29,49 @@ IPL can continue with that license.
 Major changes - database
 ------------------------
 
+[Infrastructure 20251226] Tooling to help with the migration away
+from Berkeley DB. 
+
+The new parameter default_cache_db_type controls the default database
+type for address_verify_map and postscreen_cache_map, and can
+eliminate a few hard-coded database types in main.cf. This parameter
+defaults to 'lmdb' if the default_database_type value equals 'lmdb',
+otherwise it assumes the historical value 'btree'.
+
+Sites that build without Berkeley DB are suggested to use one of the
+following commands in their build process:
+
+1 - Make lmdb the default for both default_database_type
+    and default_cache_db_type.
+
+    make makefiles CCARGS="-NO_DB ..." default_database_type=lmdb
+
+2 - Make cdb the default for default_database_type, and make
+    lmdb the default for default_cache_db_type.
+
+    make makefiles CCARGS="-NO_DB ..." default_database_type=cdb \
+       default_cache_db_type=lmdb
+
+Postfix hash and btree files can easily be migrated when the
+source file is available. Just run
+
+    postmap lmdb:/path/to/file
+
+That does not work for address_verify_map and postscreen_cache_map
+because there is no source file. In that case, to migrate a btree
+file to lmdb, execute as root:
+
+   rm -f /path/to/file.lmdb
+   postmap -s btree:/path/to/file | postmap -i lmdb:/path/to/file
+   chown postfix /path/to/file.lmdb
+
+This should happen for every btree datbase with long-lived data that
+has no data source file: address_verify_map, postscreen_cache_map,
+and the optional smtp_sasl_auth_cache_name.
+
+Limitation: the above database migration commands work only if
+Berkeley DB btree support is still available :-(
+
 [Feature 20250321] Safety: the SQLite client now logs a warning
 when a query uses double quotes instead of the Postfix-recommended
 single quotes. Only the recommended form is protected against SQL
index a41610a7126ecf8188a1cc5af37871e8ac2fbb52..5bca3382ea7878d5260ffc67e1fe1a508b17424b 100644 (file)
@@ -674,6 +674,8 @@ listed below. See the <a href="postconf.5.html">postconf(5)</a> manpage for a de
 
 <tr> <td><a href="postconf.5.html#default_database_type">default_database_type</a></td> <td>hash</td> </tr>
 
+<tr> <td><a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a></td> <td>(lmdb if <a href="postconf.5.html#default_database_type">default_database_type</a> is lmdb, otherwise btree)</td> </tr>
+
 <tr> <td><a href="postconf.5.html#daemon_directory">daemon_directory</a></td> <td>/usr/libexec/postfix</td> </tr>
 
 <tr> <td><a href="postconf.5.html#data_directory">data_directory</a></td> <td>/var/lib/postfix</td> </tr>
@@ -742,6 +744,9 @@ default</th> </tr>
 <tr> <td>DEF_DB_TYPE</td> <td><a href="postconf.5.html#default_database_type">default_database_type</a></td>
 <td>hash</td> </tr>
 
+<tr> <td>DEF_CACHE_DB_TYPE</td> <td><a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a></td>
+<td>hash or lmdb, depends on platform</td> </tr>
+
 <tr> <td>DEF_DAEMON_DIR</td> <td><a href="postconf.5.html#daemon_directory">daemon_directory</a></td>
 <td>/usr/libexec/postfix</td> </tr>
 
@@ -813,8 +818,8 @@ off Postfix features at compile time:</td> </tr>
 <tr> <td> </td> <td> -DNO_DB </td> <td> Do not build with Berkeley
 DB support. By default, Berkeley DB support is compiled in on
 platforms that are known to support this feature. If you override
-this, then you probably should also override DEF_DB_TYPE as described
-in section 4.6.  </td> </tr>
+this, then you probably should also override <a href="postconf.5.html#default_database_type">default_database_type</a>
+or DEF_DB_TYPE as described in section 4.6. </td> </tr>
 
 <tr> <td> </td> <td> -DNO_DNSSEC </td> <td> Do not build with DNSSEC
 support, even if the resolver library appears to support it. </td>
index b29a5b78d540641bcc152edc64332ba1f9026776..9650470ab94df1ab3daa4165f2860b49d699f19e 100644 (file)
@@ -21,6 +21,7 @@
 <h2> Table of Contents </h2>
 <ul>
 
+<li> <a href="#purpose"> Purpose of this document </a> </li>
 <li> <a href="#intro"> Introduction </a> </li>
 <li> <a href="#perimeter"> REQUIRETLS for a perimeter MTA </a>
 <ul>
 
 </ul>
 
-<h2> <a name="intro"> Introduction </a> </h2>
+<h2> <a name="purpose"> Purpose of this document </a> </h2>
 
-<p> (For background information, see below for a <a href="#summary">
-REQUIRETLS quick summary</a>.) </p>
+<p> This document covers Postfix configuration for the REQUIRETLS
+extension. The purpose of these settings is to make REQUIRETLS
+support usable in an existing environment where REQUIRETLS support
+is still uncommon, with a path towards a future with REQUIRETLS.
+</p>
 
-<p> This document covers the Postfix default settings for using the
-REQUIRETLS extension. The purpose of these defaults is to make REQUIRETLS
-support usable in an existing environment, with a path towards the
-future. </p>
+<h2> <a name="intro"> Introduction </a> </h2>
 
-<p> The main issues with deploying REQUIRETLS are a lack of support in
-existing infrastructure:  </p>
+<p> The REQUIRETLS extension in ESMTP is defined in <a href="https://tools.ietf.org/html/rfc8689">RFC 8689</a>. When
+a sender requests REQUIRETLS. the message must be sent only over
+strongly-authenticated SMTP or LMTP connections. </p>
+
+<p> Specifically: </p>
 
 <ul>
 
-<li> <p> REQUIRETLS requires that server certificates are authenticated.
-When email is sent across the Internet, this involves a DANE or MTA-STS
-policy that is published by a mail receiving domain, using DNSSEC or
-HTTPS. At this time, many domains do not publish such a policy. </p>
+<li> <p> Every server in the forward path to the final destination must
+announce REQUIRETLS support. </p>
+
+<blockquote> Challenge: as of 2025, only a few servers implement
+REQUIRETLS. </blockquote>
 
-<li> <p> REQUIRETLS is historically not supported by existing local
-infrastructure such as internal message stores or Postfix content
-filters, and may be over-kill for connections that happen behind a
-perimeter MTA within a trusted internal network. </p>
+<li> <p> Every server in the forward path must be looked up securely
+(for example, with DNSSEC or HTTPS). </p>
+
+<li> <p> Every server certificate in the forward path must be verified. In
+practice, this involves DANE (+DNSSEC) or MTA-STS; custom configuration
+would not scale. </p>
+
+<blockquote> Challenge: as of 2025, many domains do not publish a
+DANE or MTA-STS policy. </blockquote>
+
+<li> <p> A message with REQUIRETLS must be returned to the sender if
+any of the above requirements is not satisfied (no STARTTLS support,
+no secure server lookup, no trusted or no matching server certificate,
+or no server that announces REQUIRETLS support). </p>
 
 </ul>
 
+<p> For more background information, see the <a href="#summary">
+REQUIRETLS quick summary</a> below. </p>
+
 <h2> <a name="perimeter"> REQUIRETLS for a perimeter MTA </a> </h2>
 
 <p> In this text, a perimeter MTA is a mail system that operates
 on the boundary of an administrative domain. It receives email
-messages for the domain, and/or delivers email messages on behalf
+messages for the domain, and/or sends email messages on behalf
 of the domain. </p>
 
 <h3> <a name="inbound"> Receiving inbound messages with REQUIRETLS requests </a> </h3>
@@ -486,10 +504,10 @@ S: 250 OK
 
 <li> <p> REQUIRETLS is an <i>end-to-end</i> feature, unlike SMTP
 which is <i>hop-by-hop</i>. When a sender requests REQUIRETLS, each
-MTA in the forward path must support REQUIRETLS. </p>
+server in the forward path must support REQUIRETLS. </p>
 
-<li> <p> Each connection in the forward path must be made to an MX
-server that has been looked up securely (for example, with DNSSEC
+<li> <p> Each connection in the forward path must be made to a server
+that has been looked up securely (for example, with DNSSEC
 or HTTPS).
 
 <li> <p> Each server certificate must be verified. To match a server
@@ -528,7 +546,8 @@ server certificate, or no server that announces REQUIRETLS support).
 comes with its own challenges: the return path may differ from the
 forward path, and the return path may not support REQUIRETLS all
 the way back to the sender, even if the forward path supported
-REQUIRETLS. </p>
+REQUIRETLS. By default, Postfix follows <a href="https://tools.ietf.org/html/rfc8689">RFC 8689</a> and redacts
+bounce messages so that they can be sent without REQUIRETLS. </p>
 
 </ul>
 
index 05e4f183e9d1bd73e2a77fe2e135ffcf3fdf344b..c5afd48f92f69cb4dc608c9964d8e1648b90263b 100644 (file)
@@ -194,10 +194,10 @@ MAKEDEFS(1)                                                        MAKEDEFS(1)
               this context:
 
               <a href="postconf.5.html#command_directory">command_directory</a>  <a href="postconf.5.html#config_directory">config_directory</a> <a href="postconf.5.html#daemon_directory">daemon_directory</a> <a href="postconf.5.html#data_directory">data_direc</a>-
-              <a href="postconf.5.html#data_directory">tory</a> <a href="postconf.5.html#default_database_type">default_database_type</a>  <a href="postconf.5.html#html_directory">html_directory</a>  <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>
-              <a href="postconf.5.html#mailq_path">mailq_path</a>   <a href="postconf.5.html#manpage_directory">manpage_directory</a>   <a href="postconf.5.html#meta_directory">meta_directory</a>  <a href="postconf.5.html#newaliases_path">newaliases_path</a>
-              <a href="postconf.5.html#queue_directory">queue_directory</a> <a href="postconf.5.html#readme_directory">readme_directory</a>  <a href="postconf.5.html#sendmail_path">sendmail_path</a>  <a href="postconf.5.html#shlib_directory">shlib_directory</a>
-              <a href="postconf.5.html#openssl_path">openssl_path</a>
+              <a href="postconf.5.html#data_directory">tory</a> <a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a> <a href="postconf.5.html#default_database_type">default_database_type</a>  <a href="postconf.5.html#html_directory">html_directory</a>
+              <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> <a href="postconf.5.html#mailq_path">mailq_path</a> <a href="postconf.5.html#manpage_directory">manpage_directory</a> <a href="postconf.5.html#meta_directory">meta_directory</a>
+              <a href="postconf.5.html#newaliases_path">newaliases_path</a> <a href="postconf.5.html#queue_directory">queue_directory</a>  <a href="postconf.5.html#readme_directory">readme_directory</a>  <a href="postconf.5.html#sendmail_path">sendmail_path</a>
+              <a href="postconf.5.html#shlib_directory">shlib_directory</a> <a href="postconf.5.html#openssl_path">openssl_path</a>
 
               See  the  <a href="postconf.5.html">postconf(5)</a> manpage for a description of these parame-
               ters.
index 9fee2f5195849146b7f9e000773529f1000df050..b82a70a03c6d74a8b424a47ebdf6a1634dca8b2d 100644 (file)
@@ -225,7 +225,7 @@ This feature is available in Postfix 2.1 and later.
 </DD>
 
 <DT><b><a name="address_verify_map">address_verify_map</a>
-(default: see "postconf -d" output)</b></DT><DD>
+(default: Postfix &ge; 3.11: $<a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/address_verify_map; Postfix &lt; 3,11: <a href="DATABASE_README.html#types">btree</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/address_verify_map)</b></DT><DD>
 
 <p>
 Lookup table for persistent address verification status
@@ -2018,6 +2018,18 @@ Example:
 </pre>
 
 
+</DD>
+
+<DT><b><a name="default_cache_db_type">default_cache_db_type</a>
+(default: lmdb if <a href="postconf.5.html#default_database_type">default_database_type</a> is lmdb, otherwise btree)</b></DT><DD>
+
+<p> The default database type for <a href="postconf.5.html#address_verify_map">address_verify_map</a> and
+<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a>. Before Postfix 3.11 those caches used btree
+by default. </p>
+
+<p> This feature is available in Postfix &ge; 3.11. </p>
+
+
 </DD>
 
 <DT><b><a name="default_database_type">default_database_type</a>
@@ -8715,12 +8727,13 @@ The default time unit is h (hours).  </p>
 </DD>
 
 <DT><b><a name="postscreen_cache_map">postscreen_cache_map</a>
-(default: <a href="DATABASE_README.html#types">btree</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/postscreen_cache)</b></DT><DD>
+(default: Postfix &ge; 3.11: $<a href="postconf.5.html#default_cache_db_type">default_cache_db_type</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a>; Postfix &lt; 3.11: <a href="DATABASE_README.html#types">btree</a>:$<a href="postconf.5.html#data_directory">data_directory</a>/<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a>)</b></DT><DD>
 
 <p> Persistent storage for the <a href="postscreen.8.html">postscreen(8)</a> server decisions. </p>
 
 <p> To share a <a href="postscreen.8.html">postscreen(8)</a> cache between multiple <a href="postscreen.8.html">postscreen(8)</a>
-instances, use "<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a> = <a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html#types">btree</a>:/path/to/file".
+instances, use "<a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a> = <a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html#types">btree</a>:/path/to/file"
+or "<a href="proxymap.8.html">proxy</a>:<a href="lmdb_table.5.html">lmdb</a>:/path/to/file".
 This requires Postfix version 2.9 or later; earlier <a href="proxymap.8.html">proxymap(8)</a>
 implementations don't support cache cleanup. For an alternative
 approach see the <a href="memcache_table.5.html">memcache_table(5)</a> manpage. </p>
@@ -13157,10 +13170,11 @@ the directory specified with the <a href="postconf.5.html#data_directory">data_d
 passwords, and requires that Postfix is compiled with TLS support.
 </p>
 
-<p> Example: </p>
+<p> Examples: </p>
 
 <pre>
 <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> = <a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html#types">btree</a>:/var/lib/postfix/sasl_auth_cache
+<a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> = <a href="proxymap.8.html">proxy</a>:<a href="lmdb_table.5.html">lmdb</a>:/var/lib/postfix/sasl_auth_cache
 </pre>
 
 <p> This feature is available in Postfix 2.5 and later. </p>
@@ -15305,6 +15319,7 @@ under a non-Postfix directory is redirected to the Postfix-owned
 
 <pre>
 <a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> = <a href="DATABASE_README.html#types">btree</a>:/var/lib/postfix/smtp_scache
+<a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> = <a href="lmdb_table.5.html">lmdb</a>:/var/lib/postfix/smtp_scache
 </pre>
 
 <p> This feature is available in Postfix 2.2 and later.  </p>
@@ -20224,10 +20239,11 @@ generally be left empty.  TLS session tickets require an OpenSSL
 library (at least version 0.9.8h) that provides full support for
 this TLS extension.  See also <a href="postconf.5.html#smtpd_tls_session_cache_timeout">smtpd_tls_session_cache_timeout</a>. </p>
 
-<p> Example: </p>
+<p> Examples: </p>
 
 <pre>
 <a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a> = <a href="DATABASE_README.html#types">btree</a>:/var/lib/postfix/smtpd_scache
+<a href="postconf.5.html#smtpd_tls_session_cache_database">smtpd_tls_session_cache_database</a> = <a href="lmdb_table.5.html">lmdb</a>:/var/lib/postfix/smtpd_scache
 </pre>
 
 <p> This feature is available in Postfix 2.2 and later.  </p>
index b0e73fc5a41bc27bdc55701b3947e88620d68b69..5a8becff0b43be203561836eb23ce841a1389a21 100644 (file)
 #      supported in this context:
 #
 #      command_directory config_directory daemon_directory
-#      data_directory default_database_type html_directory
-#      mail_spool_directory mailq_path manpage_directory meta_directory
-#      newaliases_path queue_directory readme_directory sendmail_path
-#      shlib_directory openssl_path
+#      data_directory default_cache_db_type default_database_type
+#      html_directory mail_spool_directory mailq_path manpage_directory
+#      meta_directory newaliases_path queue_directory readme_directory
+#      sendmail_path shlib_directory openssl_path
 #
 #      See the postconf(5) manpage for a description of these
 #      parameters.
@@ -1124,9 +1124,10 @@ do
     esac
 done
 
+default_cache_db_type_macro=DEF_CACHE_DB_TYPE
 default_database_type_macro=DEF_DB_TYPE
 
-for parm_name in default_database_type
+for parm_name in default_cache_db_type default_database_type
 do
     eval parm_val=\"\$$parm_name\"
     eval parm_macro=\"\$${parm_name}_macro\"
index b7d9040405f0e42d3af34e5e899c84854477215a..d479e80a515d8590cfad50cea33f475a17f095ea 100644 (file)
@@ -165,10 +165,10 @@ installation parameter(s). The following parameters are
 supported in this context:
 
 command_directory config_directory daemon_directory
-data_directory default_database_type html_directory
-mail_spool_directory mailq_path manpage_directory meta_directory
-newaliases_path queue_directory readme_directory sendmail_path
-shlib_directory openssl_path
+data_directory default_cache_db_type default_database_type
+html_directory mail_spool_directory mailq_path manpage_directory
+meta_directory newaliases_path queue_directory readme_directory
+sendmail_path shlib_directory openssl_path
 
 See the postconf(5) manpage for a description of these
 parameters.
index 5d10da670f16dba65dcac3c6440af44934c6b03c..e27010702bd2aab52589924ae258a76c06207cb3 100644 (file)
@@ -134,7 +134,7 @@ Overrides the local_transport parameter setting for address
 verification probes.
 .PP
 This feature is available in Postfix 2.1 and later.
-.SH address_verify_map (default: see "postconf \-d" output)
+.SH address_verify_map (default: Postfix >= 3.11: $default_cache_db_type:$data_directory/address_verify_map; Postfix < 3,11: btree:$data_directory/address_verify_map)
 Lookup table for persistent address verification status
 storage.  The table is maintained by the \fBverify\fR(8) service, and
 is opened before the process releases privileges.
@@ -1226,6 +1226,12 @@ debugger_command =
     ddd $daemon_directory/$process_name $process_id & sleep 5
 .fi
 .ad
+.SH default_cache_db_type (default: lmdb if default_database_type is lmdb, otherwise btree)
+The default database type for address_verify_map and
+postscreen_cache_map. Before Postfix 3.11 those caches used btree
+by default.
+.PP
+This feature is available in Postfix >= 3.11.
 .SH default_database_type (default: see "postconf \-d" output)
 The default database type for use in \fBnewaliases\fR(1), \fBpostalias\fR(1)
 and \fBpostmap\fR(1) commands. On many UNIX systems the default type is
@@ -5421,11 +5427,12 @@ one\-letter suffix that specifies the time unit).  Time units: s
 The default time unit is h (hours).
 .PP
 This feature is available in Postfix 2.8.
-.SH postscreen_cache_map (default: btree:$data_directory/postscreen_cache)
+.SH postscreen_cache_map (default: Postfix >= 3.11: $default_cache_db_type:$data_directory/postscreen_cache_map; Postfix < 3.11: btree:$data_directory/postscreen_cache_map)
 Persistent storage for the \fBpostscreen\fR(8) server decisions.
 .PP
 To share a \fBpostscreen\fR(8) cache between multiple \fBpostscreen\fR(8)
-instances, use "postscreen_cache_map = proxy:btree:/path/to/file".
+instances, use "postscreen_cache_map = proxy:btree:/path/to/file"
+or "proxy:lmdb:/path/to/file".
 This requires Postfix version 2.9 or later; earlier \fBproxymap\fR(8)
 implementations don't support cache cleanup. For an alternative
 approach see the \fBmemcache_table\fR(5) manpage.
@@ -8504,11 +8511,12 @@ the directory specified with the data_directory parameter.
 This feature uses cryptographic hashing to protect plain\-text
 passwords, and requires that Postfix is compiled with TLS support.
 .PP
-Example:
+Examples:
 .PP
 .nf
 .na
 smtp_sasl_auth_cache_name = proxy:btree:/var/lib/postfix/sasl_auth_cache
+smtp_sasl_auth_cache_name = proxy:lmdb:/var/lib/postfix/sasl_auth_cache
 .fi
 .ad
 .PP
@@ -10345,6 +10353,7 @@ Example:
 .nf
 .na
 smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
+smtp_tls_session_cache_database = lmdb:/var/lib/postfix/smtp_scache
 .fi
 .ad
 .PP
@@ -14235,11 +14244,12 @@ generally be left empty.  TLS session tickets require an OpenSSL
 library (at least version 0.9.8h) that provides full support for
 this TLS extension.  See also smtpd_tls_session_cache_timeout.
 .PP
-Example:
+Examples:
 .PP
 .nf
 .na
 smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
+smtpd_tls_session_cache_database = lmdb:/var/lib/postfix/smtpd_scache
 .fi
 .ad
 .PP
index b76078b9eb2bf5b02238986700b69fad7e212a11..a464b9f79f4d554520364f2c73797a9914d6ac0e 100755 (executable)
@@ -140,6 +140,7 @@ while (<>) {
     s;\bdebug_peer_list\b;<a href="postconf.5.html#debug_peer_list">$&</a>;g;
     s;\bdefault_delivery_status_filter\b;<a href="postconf.5.html#default_delivery_status_filter">$&</a>;g;
     s;\bdefault_data[-</Bb>]*\n* *[<Bb>]*base_type\b;<a href="postconf.5.html#default_database_type">$&</a>;g;
+    s;\bdefault_cache_[-</Bb>]*\n* *[<Bb>]*db_type\b;<a href="postconf.5.html#default_cache_db_type">$&</a>;g;
     s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_cost\b;<a href="postconf.5.html#default_delivery_slot_cost">$&</a>;g;
     s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_dis[-</Bb>]*\n* *[<Bb>]*count\b;<a href="postconf.5.html#default_delivery_slot_discount">$&</a>;g;
     s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_loan\b;<a href="postconf.5.html#default_delivery_slot_loan">$&</a>;g;
index 2896b6b5c54cfd922f0dfec57f6227f65eea0295..0b92e3a0622e80ae306ebe1e8c2ef9fa3e82f1c0 100644 (file)
@@ -674,6 +674,8 @@ listed below. See the postconf(5) manpage for a description
 
 <tr> <td>default_database_type</td> <td>hash</td> </tr>
 
+<tr> <td>default_cache_db_type</td> <td>(lmdb if default_database_type is lmdb, otherwise btree)</td> </tr>
+
 <tr> <td>daemon_directory</td> <td>/usr/libexec/postfix</td> </tr>
 
 <tr> <td>data_directory</td> <td>/var/lib/postfix</td> </tr>
@@ -742,6 +744,9 @@ default</th> </tr>
 <tr> <td>DEF_DB_TYPE</td> <td>default_database_type</td>
 <td>hash</td> </tr>
 
+<tr> <td>DEF_CACHE_DB_TYPE</td> <td>default_cache_db_type</td>
+<td>hash or lmdb, depends on platform</td> </tr>
+
 <tr> <td>DEF_DAEMON_DIR</td> <td>daemon_directory</td>
 <td>/usr/libexec/postfix</td> </tr>
 
@@ -813,8 +818,8 @@ off Postfix features at compile time:</td> </tr>
 <tr> <td> </td> <td> -DNO_DB </td> <td> Do not build with Berkeley
 DB support. By default, Berkeley DB support is compiled in on
 platforms that are known to support this feature. If you override
-this, then you probably should also override DEF_DB_TYPE as described
-in section 4.6.  </td> </tr>
+this, then you probably should also override default_database_type
+or DEF_DB_TYPE as described in section 4.6. </td> </tr>
 
 <tr> <td> </td> <td> -DNO_DNSSEC </td> <td> Do not build with DNSSEC
 support, even if the resolver library appears to support it. </td>
index a3b0c4a32f64daaa362109c59c2c0c0cdf5575bd..189902f3abd6a04750ca2ff09b6a1f8c8cba883a 100644 (file)
@@ -21,6 +21,7 @@
 <h2> Table of Contents </h2>
 <ul>
 
+<li> <a href="#purpose"> Purpose of this document </a> </li>
 <li> <a href="#intro"> Introduction </a> </li>
 <li> <a href="#perimeter"> REQUIRETLS for a perimeter MTA </a>
 <ul>
 
 </ul>
 
-<h2> <a name="intro"> Introduction </a> </h2>
+<h2> <a name="purpose"> Purpose of this document </a> </h2>
 
-<p> (For background information, see below for a <a href="#summary">
-REQUIRETLS quick summary</a>.) </p>
+<p> This document covers Postfix configuration for the REQUIRETLS
+extension. The purpose of these settings is to make REQUIRETLS
+support usable in an existing environment where REQUIRETLS support
+is still uncommon, with a path towards a future with REQUIRETLS.
+</p>
 
-<p> This document covers the Postfix default settings for using the
-REQUIRETLS extension. The purpose of these defaults is to make REQUIRETLS
-support usable in an existing environment, with a path towards the
-future. </p>
+<h2> <a name="intro"> Introduction </a> </h2>
 
-<p> The main issues with deploying REQUIRETLS are a lack of support in
-existing infrastructure:  </p>
+<p> The REQUIRETLS extension in ESMTP is defined in RFC 8689. When
+a sender requests REQUIRETLS. the message must be sent only over
+strongly-authenticated SMTP or LMTP connections. </p>
+
+<p> Specifically: </p>
 
 <ul>
 
-<li> <p> REQUIRETLS requires that server certificates are authenticated.
-When email is sent across the Internet, this involves a DANE or MTA-STS
-policy that is published by a mail receiving domain, using DNSSEC or
-HTTPS. At this time, many domains do not publish such a policy. </p>
+<li> <p> Every server in the forward path to the final destination must
+announce REQUIRETLS support. </p>
+
+<blockquote> Challenge: as of 2025, only a few servers implement
+REQUIRETLS. </blockquote>
 
-<li> <p> REQUIRETLS is historically not supported by existing local
-infrastructure such as internal message stores or Postfix content
-filters, and may be over-kill for connections that happen behind a
-perimeter MTA within a trusted internal network. </p>
+<li> <p> Every server in the forward path must be looked up securely
+(for example, with DNSSEC or HTTPS). </p>
+
+<li> <p> Every server certificate in the forward path must be verified. In
+practice, this involves DANE (+DNSSEC) or MTA-STS; custom configuration
+would not scale. </p>
+
+<blockquote> Challenge: as of 2025, many domains do not publish a
+DANE or MTA-STS policy. </blockquote>
+
+<li> <p> A message with REQUIRETLS must be returned to the sender if
+any of the above requirements is not satisfied (no STARTTLS support,
+no secure server lookup, no trusted or no matching server certificate,
+or no server that announces REQUIRETLS support). </p>
 
 </ul>
 
+<p> For more background information, see the <a href="#summary">
+REQUIRETLS quick summary</a> below. </p>
+
 <h2> <a name="perimeter"> REQUIRETLS for a perimeter MTA </a> </h2>
 
 <p> In this text, a perimeter MTA is a mail system that operates
 on the boundary of an administrative domain. It receives email
-messages for the domain, and/or delivers email messages on behalf
+messages for the domain, and/or sends email messages on behalf
 of the domain. </p>
 
 <h3> <a name="inbound"> Receiving inbound messages with REQUIRETLS requests </a> </h3>
@@ -486,10 +504,10 @@ S: 250 OK
 
 <li> <p> REQUIRETLS is an <i>end-to-end</i> feature, unlike SMTP
 which is <i>hop-by-hop</i>. When a sender requests REQUIRETLS, each
-MTA in the forward path must support REQUIRETLS. </p>
+server in the forward path must support REQUIRETLS. </p>
 
-<li> <p> Each connection in the forward path must be made to an MX
-server that has been looked up securely (for example, with DNSSEC
+<li> <p> Each connection in the forward path must be made to a server
+that has been looked up securely (for example, with DNSSEC
 or HTTPS).
 
 <li> <p> Each server certificate must be verified. To match a server
@@ -528,7 +546,8 @@ server certificate, or no server that announces REQUIRETLS support).
 comes with its own challenges: the return path may differ from the
 forward path, and the return path may not support REQUIRETLS all
 the way back to the sender, even if the forward path supported
-REQUIRETLS. </p>
+REQUIRETLS. By default, Postfix follows RFC 8689 and redacts
+bounce messages so that they can be sent without REQUIRETLS. </p>
 
 </ul>
 
index fcf4573053046d14397643fc842cfdd248c2e8db..0a3e84224779a59ae2b9edbc5ed691f62ef523e6 100644 (file)
@@ -202,7 +202,7 @@ verification probes.
 This feature is available in Postfix 2.1 and later.
 </p>
 
-%PARAM address_verify_map see "postconf -d" output
+%PARAM address_verify_map Postfix &ge; 3.11: $default_cache_db_type:$data_directory/address_verify_map; Postfix &lt; 3,11: btree:$data_directory/address_verify_map
 
 <p>
 Lookup table for persistent address verification status
@@ -10082,10 +10082,11 @@ generally be left empty.  TLS session tickets require an OpenSSL
 library (at least version 0.9.8h) that provides full support for
 this TLS extension.  See also smtpd_tls_session_cache_timeout. </p>
 
-<p> Example: </p>
+<p> Examples: </p>
 
 <pre>
 smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
+smtpd_tls_session_cache_database = lmdb:/var/lib/postfix/smtpd_scache
 </pre>
 
 <p> This feature is available in Postfix 2.2 and later.  </p>
@@ -10460,6 +10461,7 @@ data_directory, and a warning is logged. </p>
 
 <pre>
 smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
+smtp_tls_session_cache_database = lmdb:/var/lib/postfix/smtp_scache
 </pre>
 
 <p> This feature is available in Postfix 2.2 and later.  </p>
@@ -14285,10 +14287,11 @@ the directory specified with the data_directory parameter. </p>
 passwords, and requires that Postfix is compiled with TLS support.
 </p>
 
-<p> Example: </p>
+<p> Examples: </p>
 
 <pre>
 smtp_sasl_auth_cache_name = proxy:btree:/var/lib/postfix/sasl_auth_cache
+smtp_sasl_auth_cache_name = proxy:lmdb:/var/lib/postfix/sasl_auth_cache
 </pre>
 
 <p> This feature is available in Postfix 2.5 and later. </p>
@@ -14667,12 +14670,13 @@ inspection for DKIM-signed mail from known friendly domains. </p>
 <p> This feature is available in Postfix 2.7, and as an optional
 patch for Postfix 2.6. </p>
 
-%PARAM postscreen_cache_map btree:$data_directory/postscreen_cache
+%PARAM postscreen_cache_map Postfix &ge; 3.11: $default_cache_db_type:$data_directory/postscreen_cache_map; Postfix &lt; 3.11: btree:$data_directory/postscreen_cache_map
 
 <p> Persistent storage for the postscreen(8) server decisions. </p>
 
 <p> To share a postscreen(8) cache between multiple postscreen(8)
-instances, use "postscreen_cache_map = proxy:btree:/path/to/file".
+instances, use "postscreen_cache_map = proxy:btree:/path/to/file"
+or "proxy:lmdb:/path/to/file".
 This requires Postfix version 2.9 or later; earlier proxymap(8)
 implementations don't support cache cleanup. For an alternative
 approach see the memcache_table(5) manpage. </p>
@@ -20288,3 +20292,11 @@ to=&lt;<i>recipient</i>&gt;
 <dl>
 
 <p> This feature is available in Postfix &ge; 3.11. </p>
+
+%PARAM default_cache_db_type lmdb if default_database_type is lmdb, otherwise btree
+
+<p> The default database type for address_verify_map and
+postscreen_cache_map. Before Postfix 3.11 those caches used btree
+by default. </p>
+
+<p> This feature is available in Postfix &ge; 3.11. </p>
index 6d346ad3d24a9e379829b4e87c3d06213a39250a..3cdaa9a661f6781aad223fa37b7097c3dcae521f 100644 (file)
@@ -54,6 +54,7 @@
 /*     int     var_ipc_idle_limit;
 /*     int     var_ipc_ttl_limit;
 /*     char    *var_db_type;
+/*     char    *var_cache_db_type;
 /*     char    *var_hash_queue_names;
 /*     int     var_hash_queue_depth;
 /*     int     var_trigger_timeout;
@@ -299,6 +300,7 @@ char   *var_mail_version;
 int     var_ipc_idle_limit;
 int     var_ipc_ttl_limit;
 char   *var_db_type;
+char   *var_cache_db_type;
 char   *var_hash_queue_names;
 int     var_hash_queue_depth;
 int     var_trigger_timeout;
@@ -828,6 +830,7 @@ void    mail_params_init()
        VAR_ALIAS_DB_MAP, DEF_ALIAS_DB_MAP, &var_alias_db_map, 0, 0,
        VAR_MAIL_RELEASE, DEF_MAIL_RELEASE, &var_mail_release, 1, 0,
        VAR_DB_TYPE, DEF_DB_TYPE, &var_db_type, 1, 0,
+       VAR_CACHE_DB_TYPE, DEF_CACHE_DB_TYPE, &var_cache_db_type, 1, 0,
        VAR_HASH_QUEUE_NAMES, DEF_HASH_QUEUE_NAMES, &var_hash_queue_names, 1, 0,
        VAR_RCPT_DELIM, DEF_RCPT_DELIM, &var_rcpt_delim, 0, 0,
        VAR_RELAY_DOMAINS, DEF_RELAY_DOMAINS, &var_relay_domains, 0, 0,
index c7ab0f205f45943205b7479f09bf1f1876caf7e6..4436fcdd8a8638d12dda85514b0f1e09caab70bb 100644 (file)
@@ -377,6 +377,16 @@ extern char *var_config_dirs;
 #define VAR_DB_TYPE            "default_database_type"
 extern char *var_db_type;
 
+ /*
+  * Preferred type of cache database files. The DEF_CACHE_DB_TYPE macro value
+  * is system dependent. It is defined in <sys_defs.h>.
+  */
+#define VAR_CACHE_DB_TYPE      "default_cache_db_type"
+#ifndef DEF_CACHE_DB_TYPE
+#define DEF_CACHE_DB_TYPE      "${{$default_database_type}=={lmdb}?{lmdb}:{btree}}"
+#endif
+extern char *var_cache_db_type;
+
  /*
   * What syslog facility to use. Unfortunately, something may have to be
   * logged before parameters are read from the main.cf file. This logging
@@ -2964,7 +2974,7 @@ extern int var_vrfy_pend_limit;
 extern char *var_verify_service;
 
 #define VAR_VERIFY_MAP                 "address_verify_map"
-#define DEF_VERIFY_MAP                 "btree:$data_directory/verify_cache"
+#define DEF_VERIFY_MAP                 "$" VAR_CACHE_DB_TYPE ":$data_directory/verify_cache"
 extern char *var_verify_map;
 
 #define VAR_VERIFY_POS_EXP             "address_verify_positive_expire_time"
@@ -3788,7 +3798,7 @@ extern char *var_multi_cntrl_cmds;
   * postscreen(8)
   */
 #define VAR_PSC_CACHE_MAP      "postscreen_cache_map"
-#define DEF_PSC_CACHE_MAP      "btree:$data_directory/postscreen_cache"
+#define DEF_PSC_CACHE_MAP      "$" VAR_CACHE_DB_TYPE ":$data_directory/postscreen_cache"
 extern char *var_psc_cache_map;
 
 #define VAR_SMTPD_SERVICE      "smtpd_service_name"
index 9812e06cf120ce7b27b8d405de71debd47f69893..cf068a42e59bf4c39b588f54da782588f5bd9656 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20251223"
+#define MAIL_RELEASE_DATE      "20251226"
 #define MAIL_VERSION_NUMBER    "3.12"
 
 #ifdef SNAPSHOT