xref: /netbsd-src/external/ibm-public/postfix/dist/RELEASE_NOTES-3.0 (revision e262b48e47fe8540a73d8e342df0cdad4a0c5cf5)
1The stable Postfix release is called postfix-3.0.x where 3=major
2release number, 0=minor release number, x=patchlevel.  The stable
3release never changes except for patches that address bugs or
4emergencies. Patches change the patchlevel and the release date.
5
6New features are developed in snapshot releases. These are called
7postfix-3.1-yyyymmdd where yyyymmdd is the release date (yyyy=year,
8mm=month, dd=day).  Patches are never issued for snapshot releases;
9instead, a new snapshot is released.
10
11The mail_release_date configuration parameter (format: yyyymmdd)
12specifies the release date of a stable release or snapshot release.
13
14If you upgrade from Postfix 2.10 or earlier, read RELEASE_NOTES-2.11
15before proceeding.
16
17Notes for distribution maintainers
18----------------------------------
19
20* New backwards-compatibility safety net.
21
22With NEW Postfix installs, you MUST install a main.cf file with
23the setting "compatibility_level = 2". See conf/main.cf for an
24example.
25
26With UPGRADES of existing Postfix systems, you MUST NOT change the
27main.cf compatibility_level setting, nor add this setting if it
28does not exist.
29
30Several Postfix default settings have changed with Postfix 3.0.  To
31avoid massive frustration with existing Postfix installations,
32Postfix 3.0 comes with a safety net that forces Postfix to keep
33running with backwards-compatible main.cf and master.cf default
34settings. This safety net depends on the main.cf compatibility_level
35setting (default: 0). Details are in COMPATIBILITY_README.
36
37* New Postfix build system.
38
39The Postfix build/install procedure has changed to support Postfix
40dynamically-linked libraries and database plugins. These must not
41be "shared" with non-Postfix programs, and therefore must not be
42installed in a public directory.
43
44To avoid massive frustration due to broken patches, PLEASE BUILD
45POSTFIX FIRST WITHOUT APPLYING ANY PATCHES.  Follow the INSTALL
46instructions (see "Building with Postfix dynamically-linked libraries
47and database plugins"), and see how things work and what the
48dynamically-linked libraries, database plugin, and configuration
49files look like.  Then, go ahead and perform your platform-specific
50customizations. The INSTALL section "Tips for distribution maintainers"
51has further suggestions.
52
53Major changes - critical
54------------------------
55
56[Incompat 20140714] After upgrading Postfix, "postfix reload" (or
57start/stop) is required. Several Postfix-internal protocols have
58been extended to support SMTPUTF8. Failure to reload or restart
59will result in mail staying queued, while Postfix daemons log
60warning messages about unexpected attributes.
61
62Major changes - default settings
63--------------------------------
64
65[Incompat 20141009] The default settings have changed for relay_domains
66(new: empty, old: $mydestination) and mynetworks_style (new: host,
67old: subnet).  However the backwards-compatibility safety net will
68prevent these changes from taking effect, giving the system
69administrator the option to make an old default setting permanent
70in main.cf or to adopt the new default setting, before turning off
71backwards compatibility. See COMPATIBILITY_README for details.
72
73[Incompat 20141001] A new backwards-compatibility safety net forces
74Postfix to run with backwards-compatible main.cf and master.cf
75default settings after an upgrade to a newer but incompatible Postfix
76version. See COMPATIBILITY_README for details.
77
78While the backwards-compatible default settings are in effect,
79Postfix logs what services or what email would be affected by the
80incompatible change. Based on this the administrator can make some
81backwards-compatibility settings permanent in main.cf or master.cf,
82before turning off backwards compatibility.
83
84See postconf.5.html#compatibility_level for details.
85
86[Incompat 20141001] The default settings
87have changed for append_dot_mydomain (new: no.  old: yes), master.cf
88chroot (new: n, old: y), and smtputf8 (new: yes, old: no).
89
90Major changes - access control
91------------------------------
92
93[Feature 20141119] Support for BCC actions in header/body_checks
94and milter_header_checks.  There is no limit on the number of BCC
95actions that may be specified, other than the implicit limit due
96to finite storage. BCC support will not be implemented in Postfix
97delivery agent header/body_checks.
98
99It works in the same way as always_bcc and sender/recipient_bcc_maps:
100there can be only one address per action, recipients are added with
101the NOTIFY=NONE delivery status notification option, and duplicate
102recipients are ignored (with the same delivery status notification
103options).
104
105[Incompat 20141009] The default settings have changed for relay_domains
106(new: empty, old: $mydestination) and mynetworks_style (new: host,
107old: subnet).  However the backwards-compatibility safety net will
108prevent these changes from taking effect, giving the system
109administrator the option to make an old default setting permanent
110in main.cf or to adopt the new default setting, before turning off
111backwards compatibility. See COMPATIBILITY_README for details.
112
113[Feature 20140618] New INFO action in access(5) tables, for consistency
114with header/body_checks.
115
116[Feature 20140620] New check_xxx_a_access (for xxx in client,
117reverse_client, helo, sender, recipient) implements access control
118on all A and AAAA IP addresses for respectively the client hostname,
119helo parameter, sender domain or recipient domain. This complements
120the existing check_xxx_mx_access and check_xxx_ns_access features.
121
122Major changes - address rewriting
123---------------------------------
124
125[Incompat 20141001] The default settings have changed for
126append_dot_mydomain (new: no.  old: yes), master.cf chroot (new:
127n, old: y), and smtputf8 (new: yes, old: no).
128
129Major changes - address verification
130------------------------------------
131
132[Feature 20141227] The new smtp_address_verify_target parameter
133(default: rcpt) specifies what protocol stage decides if a recipient
134is valid. Specify "data" for servers that reject invalid recipients
135in response to the DATA command.
136
137Major changes - database support
138--------------------------------
139
140[Feature 20140512] Support for Berkeley DB version 6.
141
142[Feature 20140618] The "randmap" lookup table performs random
143selection. This may be used to implement load balancing, for example:
144
145/etc/postfix/transport:
146    # Deliver my own domain as usual.
147    example.com :
148    .example.com :
149
150/etc/postfix/main.cf:
151    transport_maps =
152        # Deliver my own domain as usual.
153        hash:/etc/postfix/transport
154        # Deliver other domains via randomly-selected relayhosts
155        randmap:{smtp:smtp0.example.com, smtp:smtp1.example.com}
156
157A variant of this can randomly select SMTP clients with different
158smtp_bind_address settings.
159
160To implement different weights, specify lookup results multiple
161times. For example, to choose smtp:smtp1.example.com twice as often
162as smtp:smtp0.example.com, specify smtp:smtp1.example.com twice.
163
164A future version may support randmap:/path/to/file to load a list
165of results from file.
166
167[Feature 20140618] As the name suggests, the "pipemap" table
168implements a pipeline of lookup tables. The name of the table
169specifies the pipeline as a sequence of tables. For example, the
170following prevents SMTP mail to system accounts that have "nologin"
171as their login shell:
172
173    /etc/postfix/main.cf:
174        local_recipient_maps =
175            pipemap:{unix:passwd.byname, pcre:/etc/postfix/no-nologin.pcre}
176            alias_maps
177
178    /etc/postfix/no-nologin.pcre:
179        !/nologin/      whatever
180
181Each "pipemap:" query is given to the first table. Each table
182lookup result becomes the query for the next table in the pipeline,
183and the last table produces the final result.  When any table lookup
184produces no result, the entire pipeline produces no result.
185
186A future version may support pipemap:/path/to/file to load a list
187of lookup tables from file.
188
189[Feature 20140924] Support for unionmap, with the same syntax as
190pipemap.  This sends a query to all tables, and concatenates non-empty
191results, separated by comma.
192
193[Feature 20131121] The "static" lookup table now supports whitespace
194when invoked as "static:{ text with whitespace }", so that it can
195be used, for example, at the end of smtpd_mumble_restrictions as
196"check_mumble_access static:{reject text...}".
197
198[Feature 20141126] "inline:{key=value, { key = text with comma/space}}"
199avoids the need to create a database for just a few entries.
200
201Major changes - delivery status notifications
202---------------------------------------------
203
204[Feature 20140321] Delivery status filter support, to replace the
205delivery status codes and explanatory text of successful or
206unsuccessful deliveries by Postfix mail delivery agents.
207
208This was originally implemented for sites that want to turn certain
209soft delivery errors into hard delivery errors, but it can also be
210used to censor out information from delivery confirmation reports.
211
212This feature is implemented as a filter that replaces the three-number
213enhanced status code and descriptive text in Postfix delivery agent
214success, bounce, or defer messages. Note: this will not override
215"soft_bounce=yes", and this will not change a successful delivery
216status into an unsuccessful status or vice versa.
217
218The first example turns specific soft TLS errors into hard
219errors, by overriding the first number in the enhanced status code.
220
221/etc/postfix/main.cf:
222    smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
223
224/etc/postfix/smtp_dsn_filter:
225    /^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/ 5$1
226    /^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/ 5$1
227
228The second example removes the destination command name and file
229name from local(8) successful delivery reports, so that they will
230not be reported when a sender requests confirmation of delivery.
231
232/etc/postfix/main.cf:
233    local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
234
235/etc/postfix/local_dsn_filter:
236    /^(2\S+ delivered to file).+/    $1
237    /^(2\S+ delivered to command).+/ $1
238
239This feature is supported in the lmtp(8), local(8), pipe(8), smtp(8)
240and virtual(8) delivery agents. That is, all delivery agents that
241actually deliver mail.  It will not be implemented in the error and
242retry pseudo-delivery agents.
243
244The new main.cf parameters and default values are:
245
246    default_delivery_status_filter =
247    lmtp_delivery_status_filter = $default_delivery_status_filter
248    local_delivery_status_filter = $default_delivery_status_filter
249    pipe_delivery_status_filter = $default_delivery_status_filter
250    smtp_delivery_status_filter = $default_delivery_status_filter
251    virtual_delivery_status_filter = $default_delivery_status_filter
252
253See the postconf(5) manpage for more details.
254
255[Incompat 20140618] The pipe(8) delivery agent will now log a limited
256amount of command output upon successful delivery, and will report
257that output in "SUCCESS" delivery status reports. This is another
258good reason to disable inbound DSN requests at the Internet perimeter.
259
260[Feature 20140907] With "confirm_delay_cleared = yes", Postfix
261informs the sender when delayed mail leaves the queue (this is in
262addition to the delay_warning_time feature that warns when mail is
263still queued).  This feature is disabled by default, because it can
264result in a sudden burst of notifications when the queue drains at
265the end of a prolonged network outage.
266
267Major changes - dns
268-------------------
269
270[Feature 20141128] Support for DNS server reply filters in the
271Postfix SMTP/LMTP client and SMTP server. This helps to work around
272mail delivery problems with sites that have incorrect DNS information.
273Note: this has no effect on the implicit DNS lookups that are made
274by nsswitch.conf or equivalent mechanisms.
275
276This feature renders each lookup result as one line of text in
277standard zone-file format as shown below. The class field is always
278"IN", the preference field exists only for MX records, the names
279of hosts, domains, etc. end in ".", and those names are in ASCII
280form (xn--mumble form for internationalized domain names).
281
282    name         ttl   class type preference value
283    ---------------------------------------------------------
284    postfix.org. 86400 IN    MX   10         mail.cloud9.net.
285
286Typically, one would match this text with a regexp: or pcre: table.
287When a match is found, the table lookup result specifies an action.
288By default, the table query and the action name are case-insensitive.
289Currently, only the IGNORE action is implemented.
290
291For safety reasons, Postfix logs a warning or defers mail delivery
292when a DNS reply filter removes all lookup results from a successful
293query.
294
295The Postfix SMTP/LMTP client uses the smtp_dns_reply_filter and
296lmtp_dns_reply_filter features only for Postfix SMTP client lookups
297of MX, A, and AAAAA records to locate a remote SMTP or LMTP server,
298including lookups that implement the features reject_unverified_sender
299and reject_unverified_recipient. The filters are not used for lookups
300made through nsswitch.conf and similar mechanisms.
301
302The Postfix SMTP server uses the smtpd_dns_reply_filter feature
303only for Postfix SMTP server lookups of MX, A, AAAAA, and TXT records
304to implement the features reject_unknown_helo_hostname,
305reject_unknown_sender_domain, reject_unknown_recipient_domain,
306reject_rbl_*, and reject_rhsbl_*. The filter is not used for lookups
307made through nsswitch.conf and similar mechanisms, such as lookups
308of the remote SMTP client name.
309
310[Feature 20141126] Nullmx support (MX records with a null hostname).
311This change affects error messages only.  The Postfix SMTP client
312already bounced mail for such domains, and the Postfix SMTP server
313already rejected such domains with reject_unknown_sender/recipient_domain.
314This feature introduces a new SMTP server configuration parameter
315nullmx_reject_code (default: 556).
316
317Major changes - dynamic linking
318-------------------------------
319
320[Feature 20140530] Support to build Postfix with Postfix
321dynamically-linked libraries, and with dynamically-loadable database
322clients. These MUST NOT be used by non-Postfix programs. Postfix
323dynamically-linked libraries introduce minor runtime overhead and
324result in smaller Postfix executable files. Dynamically-loadable
325database clients are useful when you distribute or install pre-compiled
326packages.  Postfix 3.0 supports dynamic loading for CDB, LDAP, LMDB,
327MYSQL, PCRE, PGSQL, SDBM, and SQLITE database clients.
328
329This implementation is based on Debian code by LaMont Jones, initially
330ported by Viktor Dukhovni. Currently, support exists for recent
331versions of Linux, FreeBSD, MacOS X, and for the ancient Solaris 9.
332
333To support Postfix dynamically-linked libraries and dynamically-loadable
334database clients, the Postfix build procedure had to be changed
335(specifically, the files makedefs and Makefile.in, and the files
336postfix-install and post-install that install or update Postfix).
337
338[Incompat 20140530] The Postfix 3.0 build procedure expects that
339you specify database library dependencies with variables named
340AUXLIBS_CDB, AUXLIBS_LDAP, etc.  With Postfix 3.0 and later, the
341old AUXLIBS variable still supports building a statically-loaded
342CDB etc.  database client, but only the new AUXLIBS_CDB etc. variables
343support building a dynamically-loaded or statically-loaded CDB etc.
344database client.  See CDB_README, LDAP_README, etc. for details.
345
346Failure to follow this advice will defeat the purpose of dynamic
347database client loading. Every Postfix executable file will have
348database library dependencies. And that was exactly what dynamic
349database client loading was meant to avoid.
350
351Major changes - future proofing
352-------------------------------
353
354[Cleanup 20141224] The changes described here have no visible effect
355on Postfix behavior, but they make Postfix code easier to maintain,
356and therefore make new functionality easier to add.
357
358* Compile-time argument typechecks of non-printf/scanf-like variadic
359  function argument lists.
360
361* Deprecating the use of "char *" for non-text purposes such as
362  memory allocation and pointers to application context for call-back
363  functions. This dates from long-past days before void * became
364  universally available.
365
366* Replace integer types for counters and sizes with size_t or ssize_t
367  equivalents.  This eliminates some wasteful 64<->32bit conversions
368  on 64-bit systems.
369
370Major changes - installation pathnames
371--------------------------------------
372
373[Incompat 20140625] For compliance with file system policies, some
374non-executable files have been moved from $daemon_directory to the
375directory specified with the new meta_directory configuration
376parameter which has the same default value as the config_directory
377parameter. This change affects non-executable files that are shared
378between multiple Postfix instances such as postfix-files, dynamicmaps.cf,
379and multi-instance template files.
380
381For backwards compatibility with Postfix 2.6 .. 2.11, specify
382"meta_directory = $daemon_directory" in main.cf before installing
383or upgrading Postfix, or specify "meta_directory = /path/name" on
384the "make makefiles", "make install" or "make upgrade" command line.
385
386Major changes - milter
387----------------------
388
389[Feature 20140928] Support for per-Milter settings that override
390main.cf parameters.  For details see the section "Advanced policy
391client configuration" in the SMTPD_POLICY_README document.
392
393Here is an example that uses both old and new syntax:
394
395    smtpd_milters = { inet:127.0.0.1:port1, default_action=accept, ... },
396        inet:127.0.0.1:port2, ...
397
398The supported attribute names are: command_timeout, connect_timeout,
399content_timeout, default_action, and protocol. These have the same
400names as the corresponding main.cf parameters, without the "milter_"
401prefix.
402
403The per-milter settings are specified as attribute=value pairs
404separated by comma or space; specify { name = value } to allow
405spaces around the "=" or within an attribute value.
406
407[Feature 20141018] DMARC compatibility: when a Milter inserts a
408header ABOVE Postfix's own Received: header, Postfix no longer
409exposes its own Received: header to Milters (violating protocol)
410and Postfix no longer hides the Milter-inserted header from Milters
411(wtf).
412
413Major changes - parameter syntax
414--------------------------------
415
416[Feature 20140921] In preparation for configurable mail headers and
417logging, new main.cf support for if-then-else expressions:
418
419    ${name?{text1}:{text2}}
420
421and for logical expressions:
422
423    ${{text1}=={text2}?{text3}:{text4}}
424    ${{text1}!={text2}?{text3}:{text4}}
425
426Whitespace before and after {text} is ignored. This can help to
427make complex expressions more readable.  See the postconf(5) manpage
428for further details.
429
430[Feature 20140928] Support for whitespace in daemon command-line
431arguments. For details, see the "Command name + arguments" section
432in the master(5) manpage.  Example:
433
434    smtpd -o { parameter = value containing whitespace } ...
435
436The { ... } form is also available for non-option command-line
437arguments in master.cf, for example:
438
439    pipe ... argv=command { argument containing whitespace } ...
440
441In both cases, whitespace immediately after "{" and before "}"
442is ignored.
443
444[Feature 20141005] Postfix import_environment and export_environment
445now allow "{ name=value }" to protect whitespace in attribute values.
446
447[Feature 20141006] The new message_drop_header parameter replaces
448a hard-coded table that specifies what message headers the cleanup
449daemon will remove.  The list of supported header names covers RFC
4505321, 5322, MIME RFCs, and some historical names.
451
452Major changes - pipe daemon
453---------------------------
454
455[Incompat 20140618] The pipe(8) delivery agent will now log a limited
456amount of command output upon successful delivery, and will report
457that output in "SUCCESS" delivery status reports. This is another
458good reason to disable inbound DSN requests at the Internet perimeter.
459
460Major changes - policy client
461-----------------------------
462
463[Feature 20140703] This release introduces three new configuration
464parameters that control error recovery for failed SMTPD policy
465requests.
466
467  * smtpd_policy_service_default_action (default: 451 4.3.5 Server
468    configuration problem): The default action when an SMTPD policy
469    service request fails.
470
471  * smtpd_policy_service_try_limit (default: 2): The maximal number
472    of attempts to send an SMTPD policy service request before
473    giving up. This must be a number greater than zero.
474
475  * smtpd_policy_service_retry_delay (default: 1s): The delay between
476    attempts to resend a failed SMTPD policy service request. This
477    must be a number greater than zero.
478
479See postconf(5) for details and limitations.
480
481[Feature 20140928] Support for per-policy service settings that
482override main.cf parameters.  For details see the section "Different
483settings for different Milter applications" in the MILTER_README
484document.
485
486Here is an example that uses both old and new syntax:
487
488smtpd_recipient_restrictions = ...
489    check_policy_service { inet:127.0.0.1:port3, default_action=DUNNO }
490    check_policy_service inet:127.0.0.1:port4
491    ...
492
493The per-policy service settings are specified as attribute=value pairs
494separated by comma or space; specify { name = value } to allow
495spaces around the "=" or within an attribute value.
496
497The supported attribute names are: default_action, max_idle, max_ttl,
498request_limit, retry_delay, timeout, try_limit. These have the same
499names as the corresponding main.cf parameters, without the
500"smtpd_policy_service_" prefix.
501
502[Feature 20140505] A client port attribute was added to the policy
503delegation protocol.
504
505[Feature 20140630] New smtpd_policy_service_request_limit feature to
506limit the number of requests per Postfix SMTP server policy connection.
507This is a workaround to avoid error-recovery delays with policy
508servers that cannot maintain a persistent connection.
509
510Major changes - position-independent executables
511------------------------------------------------
512
513[Feature 20150205] Preliminary support for building position-independent
514executables (PIE), tested on Fedora Core 20, Ubuntu 14.04, FreeBSD
5159 and 10, and NetBSD 6. Specify:
516
517$ make makefiles pie=yes ...other arguments...
518
519On some systems, PIE is used by the ASLR exploit mitigation technique
520(ASLR = Address-Space Layout Randomization). Whether specifying
521"pie=yes" has any effect at all depends on the compiler.  Reportedly,
522some compilers always produce PIE executables.
523
524Major changes - postscreen
525--------------------------
526
527[Feature 20140501] Configurable time limit (postscreen_dnsbl_timeout)
528for DNSBL or DNSWL lookups. This is separate from the timeouts in
529the dnsblog(8) daemon which are controlled by system resolver(3)
530routines.
531
532Major changes - session fingerprint
533-----------------------------------
534
535[Feature 20140801] The Postfix SMTP server now logs at the end of
536a session how many times an SMTP command was successfully invoked,
537followed by the total number of invocations if some invocations
538were unsuccessful.
539
540This logging will enough to diagnose many problems without using
541verbose logging or network sniffer.
542
543    Normal session, no TLS:
544        disconnect from name[addr] ehlo=1 mail=1 rcpt=1 data=1 quit=1
545
546    Normal session. with TLS:
547        disconnect from name[addr] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1
548
549    All recipients rejected, no ESMTP command pipelining:
550        disconnect from name[addr] ehlo=1 mail=1 rcpt=0/1 quit=1
551
552    All recipients rejected, with ESMTP command pipelining:
553        disconnect from name[addr] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1
554
555    Password guessing bot, hangs up without QUIT:
556        disconnect from name[addr] ehlo=1 auth=0/1
557
558    Mis-configured client trying to use TLS wrappermode on port 587:
559        disconnect from name[addr] unknown=0/1
560
561Logfile analyzers can trigger on the presence of "/". It indicates
562that Postfix rejected at least one command.
563
564[Feature 20150118] As a late addition, the SMTP server now also
565logs the total number of commands (as "commands=x/y") even when the
566client did not send any commands. This helps logfile analyzers to
567recognize sessions without commands.
568
569Major changes - smtp client
570---------------------------
571
572[Feature 20141227] The new smtp_address_verify_target parameter
573(default: rcpt) determines what protocol stage decides if a recipient
574is valid. Specify "data" for servers that reject recipients after
575the DATA command.
576
577Major changes - smtputf8
578------------------------
579
580[Incompat 20141001] The default settings have changed for
581append_dot_mydomain (new: no, old: yes), master.cf chroot (new:
582n, old: y), and smtputf8 (new: yes, old: no).
583
584[Incompat 20140714] After upgrading Postfix, "postfix reload" (or
585start/stop) is required. Several Postfix-internal protocols have
586been extended to support SMTPUTF8. Failure to reload or restart
587will result in mail staying queued, while Postfix daemons log
588warning messages about unexpected attributes.
589
590[Feature 20140715] Support for Email Address Internationalization
591(EAI) as defined in RFC 6531..6533. This supports UTF-8 in SMTP/LMTP
592sender addresses, recipient addresses, and message header values.
593The implementation is based on initial work by Arnt Gulbrandsen
594that was funded by CNNIC.
595
596See SMTPUTF8_README for a description of Postfix SMTPUTF8 support.
597
598[Feature 20150112] UTF-8 Casefolding support for Postfix lookup
599tables and matchlists (mydestination, relay_domains, etc.).  This
600is enabled only with "smtpuf8 = yes".
601
602[Feature 20150112] With smtputf8_enable=yes, SMTP commands with
603UTF-8 syntax errors are rejected, table lookup results with invalid
604UTF-8 syntax are handled as configuration errors, and UTF-8 syntax
605errors in policy server replies result in execution of the policy
606server's default action.
607
608Major changes - tls support
609---------------------------
610
611(see "Major changes - delivery status notifications" above for
612turning 4XX soft errors into 5XX bounces when a remote SMTP server
613does not offer STARTTLS support).
614
615[Feature 20140209] the Postfix SMTP client now also falls back to
616plaintext when TLS fails AFTER the TLS protocol handshake.
617
618[Feature 20140218] The Postfix SMTP client now requires that a queue
619file is older than $minimal_backoff_time, before falling back from
620failed TLS to plaintext (both during or after the TLS handshake).
621
622[Feature 20141021] Per IETF TLS WG consensus, the tls_session_ticket_cipher
623default setting was changed from aes-128-cbc to aes-256-cbc.
624
625[Feature 20150116] TLS wrappermode support in the Postfix smtp(8)
626client (new smtp_tls_wrappermode parameter) and in posttls-finger(1)
627(new -w option). There still is life in that deprecated protocol,
628and people should not have to jump hoops with stunnel.
629