xref: /netbsd-src/external/ibm-public/postfix/dist/RELEASE_NOTES-3.4 (revision 70f7362772ba52b749c976fb5e86e39a8b2c9afc)
1This is the Postfix 3.4 (stable) release.
2
3The stable Postfix release is called postfix-3.4.x where 3=major
4release number, 4=minor release number, x=patchlevel.  The stable
5release never changes except for patches that address bugs or
6emergencies. Patches change the patchlevel and the release date.
7
8New features are developed in snapshot releases. These are called
9postfix-3.5-yyyymmdd where yyyymmdd is the release date (yyyy=year,
10mm=month, dd=day).  Patches are never issued for snapshot releases;
11instead, a new snapshot is released.
12
13The mail_release_date configuration parameter (format: yyyymmdd)
14specifies the release date of a stable release or snapshot release.
15
16If you upgrade from Postfix 3.2 or earlier, read RELEASE_NOTES-3.3
17before proceeding.
18
19License change
20---------------
21
22This software is distributed with a dual license: in addition to the
23historical IBM Public License 1.0, it is now also distributed with the
24more recent Eclipse Public License 2.0. Recipients can choose to take
25the software under the license of their choice. Those who are more
26comfortable with the IPL can continue with that license.
27
28Summary of changes
29------------------
30
31Incompatible changes, bdat support, containers, database support,
32logging, safety, tls connection pooling, tls support, usability,
33
34Incompatible changes
35--------------------
36
37[Incompat 20180826] The Postfix SMTP server announces CHUNKING (BDAT
38command) by default. In the unlikely case that this breaks some
39important remote SMTP client, disable the feature as follows:
40
41/etc/postfix/main.cf:
42    # The logging alternative:
43    smtpd_discard_ehlo_keywords = chunking
44    # The non-logging alternative:
45    smtpd_discard_ehlo_keywords = chunking, silent_discard
46
47See BDAT_README for more.
48
49[Incompat 20190126] This introduces a new master.cf service 'postlog'
50with type 'unix-dgram' that is used by the new postlogd(8) daemon.
51Before backing out to an older Postfix version, edit the master.cf
52file and remove the postlog entry.
53
54[Incompat 20190106] Postfix 3.4 drops support for OpenSSL 1.0.1
55(end-of-life was December 31, 2016) and all earlier releases.
56
57[Incompat 20180701] To avoid performance loss under load, the
58tlsproxy(8) daemon now requires a zero process limit in master.cf
59(this setting is provided with the default master.cf file). By
60default, a tlsproxy(8) process will retire after several hours.
61
62To set the tlsproxy process limit to zero:
63
64# postconf -F tlsproxy/unix/process_limit=0
65# postfix reload
66
67Major changes - bdat support
68--------------------
69
70[Feature 20180826] Postfix SMTP server support for RFC 3030 CHUNKING
71(the BDAT command) without BINARYMIME, in both smtpd(8) and
72postscreen(8). This has no effect on Milters, smtpd_mumble_restrictions,
73and smtpd_proxy_filter. See BDAT_README for more.
74
75Major changes - containers
76--------------------------
77
78[Feature 20190126] Support for logging to file or stdout, instead
79of using syslog.
80
81- Logging to file solves a usability problem for MacOS, and
82  eliminates multiple problems with systemd-based systems.
83
84- Logging to stdout is useful when Postfix runs in a container, as
85  it eliminates a syslogd dependency.
86
87See MAILLOG_README for configuration examples and logfile rotation.
88
89[Feature 20180422] Better handling of undocumented(!) Linux behavior
90whether or not signals are delivered to a PID=1 process.
91
92Major changes - database support
93--------------------------------
94
95[Feature 20181105] Support for (key, list of filenames) in map
96source text.
97
98- Currently, this feature is used only by tls_server_sni_maps.
99
100- When a map is created from source with "postmap -F maptype:mapname",
101  the command processes each key as usual and processes each value
102  as a list of filenames, concatenates the content of those files
103  (with one newline character in-between files), and stores an entry
104  with (key, base64-encoded result).
105
106- When a map is queried with "postmap -F -q ...", the command
107  base64-decodes each value. It reports an error when a value is
108  not in base64 form.
109
110  This "postmap -F -q ..." behavior also works when querying the
111  memory-resident map types cidr:, inline:, pcre:, randmap:, regexp:,
112  and static:. Postfix reads the files specified as table values,
113  stores base64-encoded content, and base64-decodes content upon
114  table lookup.
115
116  Internally, Postfix will turn on this behavior for lookups (not
117  updates) when a map is opened with the DICT_FLAG_RHS_IS_FILE flag.
118
119Major changes - logging
120-----------------------
121
122[Feature 20190126] Support for logging to file or stdout, instead
123of using syslog.
124
125- Logging to file solves a usability problem for MacOS, and
126  eliminates multiple problems with systemd-based systems.
127
128- Logging to stdout is useful when Postfix runs in a container, as
129  it eliminates a syslogd dependency.
130
131See MAILLOG_README for configuration examples and logfile rotation.
132
133Major changes - safety
134----------------------
135
136[Feature 20180623] Automatic retirement: dnsblog(8) and tlsproxy(8) process
137will now voluntarily retire after after max_idle*max_use, or some
138sane limit if either limit is disabled. Without this, a process
139could stay busy for days or more.
140
141Major changes - tls connection pooling
142--------------------------------------
143
144[Feature 20180617] Postfix SMTP client support for multiple deliveries
145per TLS-encrypted connection. This is primarily to improve mail
146delivery performance for destinations that throttle clients when
147they don't combine deliveries.
148
149This feature is enabled with "smtp_tls_connection_reuse=yes" in
150main.cf, or with "tls_connection_reuse=yes" in smtp_tls_policy_maps.
151It supports all Postfix TLS security levels including dane and
152dane-only.
153
154The implementation of TLS connection reuse relies on the same
155scache(8) service as used for delivering plaintext SMTP mail, the
156same tlsproxy(8) daemon as used by the postscreen(8) service for
157inbound connections, and relies on the same hints from the qmgr(8)
158daemon. It reuses the configuration parameters described in
159CONNECTION_CACHE_README.
160
161The Postfix SMTP client now logs whether an SMTP-over-TLS connection
162is newly established ("TLS connection established") or whether the
163connection is reused ("TLS connection reused").
164
165The following illustrates how TLS connections are reused:
166
167    Initial plaintext SMTP handshake:
168      smtp(8) -> remote SMTP server
169
170    Reused SMTP/TLS connection, or new SMTP/TLS connection:
171      smtp(8) -> tlsproxy(8) -> remote SMTP server
172
173    Cached SMTP/TLS connection:
174      scache(8) -> tlsproxy(8) -> remote SMTP server
175
176Major changes - tls support
177---------------------------
178
179[Feature 20190106] SNI support in the Postfix SMTP server, the
180Postfix SMTP client, and in the tlsproxy(8) daemon (both server and
181client roles). See the postconf(5) documentation for the new
182tls_server_sni_maps and smtp_tls_servername parameters.
183
184[Feature 20190106] Support for files that contain multiple (key,
185certificate, trust chain) instances. This was required to implement
186server-side SNI table lookups, but it also eliminates the need for
187separate cert/key files for RSA, DSA, Elliptic Curve, and so on.
188The file format is documented in the TLS_README sections "Server-side
189certificate and private key configuration" and "Client-side certificate
190and private key configuration", and in the postconf(5) documentation
191for the parameters smtp_tls_chain_files, smtpd_tls_chain_files,
192tlsproxy_client_chain_files, and tlsproxy_tls_chain_files.
193
194Note: the command "postfix tls" does not yet support the new
195consolidated certificate chain format.  If you switch to the new
196format, you'll need to manage your keys and certificates directly,
197rather than via postfix-tls(1).
198
199Major changes - usability
200-------------------------
201
202[Feature 20180812] Support for smtpd_reject_footer_maps (as well
203as the postscreen variant postscreen_reject_footer_maps) for more
204informative reject messages. This is indexed with the Postfix SMTP
205server response text, and overrides the footer specified with
206smtpd_reject_footer.  One will want to use a pcre: or regexp: map
207with this.
208
209