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.
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
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.
|_______________________________|_____________________________________________|
|| |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|
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
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.
|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b|_\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\b _\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|
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
* 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
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:
* 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
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
<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>
<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>
<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>
<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>
<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
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>
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.
</DD>
<DT><b><a name="address_verify_map">address_verify_map</a>
-(default: see "postconf -d" output)</b></DT><DD>
+(default: Postfix ≥ 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 < 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
</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 ≥ 3.11. </p>
+
+
</DD>
<DT><b><a name="default_database_type">default_database_type</a>
</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 ≥ 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 < 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>
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>
<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>
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>
# 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.
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\"
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.
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.
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
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.
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
.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
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
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;
<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>
<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>
<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>
<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>
<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
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>
This feature is available in Postfix 2.1 and later.
</p>
-%PARAM address_verify_map see "postconf -d" output
+%PARAM address_verify_map Postfix ≥ 3.11: $default_cache_db_type:$data_directory/address_verify_map; Postfix < 3,11: btree:$data_directory/address_verify_map
<p>
Lookup table for persistent address verification status
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>
<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>
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>
<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 ≥ 3.11: $default_cache_db_type:$data_directory/postscreen_cache_map; Postfix < 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>
<dl>
<p> This feature is available in Postfix ≥ 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 ≥ 3.11. </p>
/* 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;
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;
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,
#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
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"
* 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"
* 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