1*f3bc92a4SchristosThis is the Postfix 3.2 (stable) release. 2*f3bc92a4Schristos 3*f3bc92a4SchristosThe stable Postfix release is called postfix-3.2.x where 3=major 4*f3bc92a4Schristosrelease number, 2=minor release number, x=patchlevel. The stable 5*f3bc92a4Schristosrelease never changes except for patches that address bugs or 6*f3bc92a4Schristosemergencies. Patches change the patchlevel and the release date. 7*f3bc92a4Schristos 8*f3bc92a4SchristosNew features are developed in snapshot releases. These are called 9*f3bc92a4Schristospostfix-3.3-yyyymmdd where yyyymmdd is the release date (yyyy=year, 10*f3bc92a4Schristosmm=month, dd=day). Patches are never issued for snapshot releases; 11*f3bc92a4Schristosinstead, a new snapshot is released. 12*f3bc92a4Schristos 13*f3bc92a4SchristosThe mail_release_date configuration parameter (format: yyyymmdd) 14*f3bc92a4Schristosspecifies the release date of a stable release or snapshot release. 15*f3bc92a4Schristos 16*f3bc92a4SchristosIf you upgrade from Postfix 3.0 or earlier, read RELEASE_NOTES-3.1 17*f3bc92a4Schristosbefore proceeding. 18*f3bc92a4Schristos 19*f3bc92a4SchristosInvisible changes 20*f3bc92a4Schristos----------------- 21*f3bc92a4Schristos 22*f3bc92a4SchristosIn addition to the visible changes described below, there is an 23*f3bc92a4Schristosongoing overhaul of low-level code. With each change come updated 24*f3bc92a4Schristostests to ensure that future changes will not 'break' compatibility 25*f3bc92a4Schristoswith past behavior. 26*f3bc92a4Schristos 27*f3bc92a4SchristosMajor changes - address mapping 28*f3bc92a4Schristos------------------------------- 29*f3bc92a4Schristos 30*f3bc92a4Schristos[Feature 20170128] Postfix 3.2 fixes the handling of address 31*f3bc92a4Schristosextensions with email addresses that contain spaces. For example, 32*f3bc92a4Schristosthe virtual_alias_maps, canonical_maps, and smtp_generic_maps 33*f3bc92a4Schristosfeatures now correctly propagate an address extension from "aa 34*f3bc92a4Schristosbb+ext"@example.com to "cc dd+ext"@other.example, instead of 35*f3bc92a4Schristosproducing broken output. 36*f3bc92a4Schristos 37*f3bc92a4SchristosMajor changes - header/body_checks 38*f3bc92a4Schristos---------------------------------- 39*f3bc92a4Schristos 40*f3bc92a4Schristos[Feature 20161008] "PASS" and "STRIP" actions in header/body_checks. 41*f3bc92a4Schristos"STRIP" is similar to "IGNORE" but also logs the action, and "PASS" 42*f3bc92a4Schristosdisables header, body, and Milter inspection for the remainder of 43*f3bc92a4Schristosthe message content. Contributed by Hobbit. 44*f3bc92a4Schristos 45*f3bc92a4SchristosMajor changes - log analysis 46*f3bc92a4Schristos---------------------------- 47*f3bc92a4Schristos 48*f3bc92a4Schristos[Feature 20160330] The collate.pl script by Viktor Dukhovni for 49*f3bc92a4Schristosgrouping Postfix logfile records into "sessions" based on queue ID 50*f3bc92a4Schristosand process ID information. It's in the auxiliary/collate directory 51*f3bc92a4Schristosof the Postfix source tree. 52*f3bc92a4Schristos 53*f3bc92a4SchristosMajor changes - maps support 54*f3bc92a4Schristos---------------------------- 55*f3bc92a4Schristos 56*f3bc92a4Schristos[Feature 20160527] Postfix 3.2 cidr tables support if/endif and 57*f3bc92a4Schristosnegation (by prepending ! to a pattern), just like regexp and pcre 58*f3bc92a4Schristostables. The primarily purpose is to improve readability of complex 59*f3bc92a4Schristostables. See the cidr_table(5) manpage for syntax details. 60*f3bc92a4Schristos 61*f3bc92a4Schristos[Incompat 20160925] In the Postfix MySQL database client, the default 62*f3bc92a4Schristosoption_group value has changed to "client", to enable reading of 63*f3bc92a4Schristos"client" option group settings in the MySQL options file. This fixes 64*f3bc92a4Schristosa "not found" problem with Postfix queries that contain UTF8-encoded 65*f3bc92a4Schristosnon-ASCII text. Specify an empty option_group value (option_group 66*f3bc92a4Schristos=) to get backwards-compatible behavior. 67*f3bc92a4Schristos 68*f3bc92a4Schristos[Feature 20161217] Stored-procedure support for MySQL databases. 69*f3bc92a4SchristosContributed by John Fawcett. See mysql_table(5) for instructions. 70*f3bc92a4Schristos 71*f3bc92a4Schristos[Feature 20170128] The postmap command, and the inline: and texthash: 72*f3bc92a4Schristosmaps now support spaces in left-hand field of the lookup table 73*f3bc92a4Schristos"source text". Use double quotes (") around a left-hand field that 74*f3bc92a4Schristoscontains spaces, and use backslash (\) to protect embedded quotes 75*f3bc92a4Schristosin a left-hand field. There is no change in the processing of the 76*f3bc92a4Schristosright-hand field. 77*f3bc92a4Schristos 78*f3bc92a4SchristosMajor changes - milter support 79*f3bc92a4Schristos------------------------------ 80*f3bc92a4Schristos 81*f3bc92a4Schristos[Feature 20160611] The Postfix SMTP server local IP address and 82*f3bc92a4Schristosport are available in the policy delegation protocol (attribute 83*f3bc92a4Schristosnames: server_address, server_port), in the Milter protocol (macro 84*f3bc92a4Schristosnames: {daemon_addr}, {daemon_port}), and in the XCLIENT protocol 85*f3bc92a4Schristos(attribute names: DESTADDR, DESTPORT). 86*f3bc92a4Schristos 87*f3bc92a4Schristos[Feature 20161024] smtpd_milter_maps support for per-client Milter 88*f3bc92a4Schristosconfiguration that overrides smtpd_milters, and that has the same 89*f3bc92a4Schristossyntax. A lookup result of "DISABLE" turns off Milter support. See 90*f3bc92a4SchristosMILTER_README.html for details. 91*f3bc92a4Schristos 92*f3bc92a4SchristosMajor changes - policy delegation 93*f3bc92a4Schristos--------------------------------- 94*f3bc92a4Schristos 95*f3bc92a4Schristos[Feature 20160611] The Postfix SMTP server local IP address and 96*f3bc92a4Schristosport are available in the policy delegation protocol (attribute 97*f3bc92a4Schristosnames: server_address, server_port), in the Milter protocol (macro 98*f3bc92a4Schristosnames: {daemon_addr}, {daemon_port}), and in the XCLIENT protocol 99*f3bc92a4Schristos(attribute names: DESTADDR, DESTPORT). 100*f3bc92a4Schristos 101*f3bc92a4SchristosMajor changes - postqueue 102*f3bc92a4Schristos------------------------- 103*f3bc92a4Schristos 104*f3bc92a4Schristos[Incompat 20170129] The postqueue command no longer forces all 105*f3bc92a4Schristosmessage arrival times to be reported in UTC. To get the old behavior, 106*f3bc92a4Schristosset TZ=UTC in main.cf:import_environment (this override is not 107*f3bc92a4Schristosrecommended, as it affects all Postfix utities and daemons). 108*f3bc92a4Schristos 109*f3bc92a4SchristosMajor changes - safety 110*f3bc92a4Schristos---------------------- 111*f3bc92a4Schristos 112*f3bc92a4Schristos[Incompat 20161227] For safety reasons, the sendmail -C option must 113*f3bc92a4Schristosspecify an authorized directory: the default configuration directory, 114*f3bc92a4Schristosa directory that is listed in the default main.cf file with 115*f3bc92a4Schristosalternate_config_directories or multi_instance_directories, or the 116*f3bc92a4Schristoscommand must be invoked with root privileges (UID 0 and EUID 0). 117*f3bc92a4SchristosThis mitigates a recurring problem with the PHP mail() function. 118*f3bc92a4Schristos 119*f3bc92a4SchristosMajor changes - sasl 120*f3bc92a4Schristos-------------------- 121*f3bc92a4Schristos 122*f3bc92a4Schristos[Feature 20160625] The Postfix SMTP server now passes remote client 123*f3bc92a4Schristosand local server network address and port information to the Cyrus 124*f3bc92a4SchristosSASL library. Build with ``make makefiles "CCARGS=$CCARGS 125*f3bc92a4Schristos-DNO_IP_CYRUS_SASL_AUTH"'' for backwards compatibility. 126*f3bc92a4Schristos 127*f3bc92a4SchristosMajor changes - smtputf8 128*f3bc92a4Schristos------------------------ 129*f3bc92a4Schristos 130*f3bc92a4Schristos[Feature 20161103] Postfix 3.2 disables the 'transitional' compatibility 131*f3bc92a4Schristosbetween the IDNA2003 and IDNA2008 standards for internationalized 132*f3bc92a4Schristosdomain names (domain names beyond the limits of US-ASCII). 133*f3bc92a4Schristos 134*f3bc92a4SchristosThis change makes Postfix behavior consistent with contemporary web 135*f3bc92a4Schristosbrowsers. It affects the handling of some corner cases such as 136*f3bc92a4SchristosGerman sz and Greek zeta. See http://unicode.org/cldr/utility/idna.jsp 137*f3bc92a4Schristosfor more examples. 138*f3bc92a4Schristos 139*f3bc92a4SchristosSpecify "enable_idna2003_compatibility = yes" to restore historical 140*f3bc92a4Schristosbehavior (but keep in mind that the rest of the world may not make 141*f3bc92a4Schristosthat same choice). 142*f3bc92a4Schristos 143*f3bc92a4SchristosMajor changes - tls 144*f3bc92a4Schristos------------------- 145*f3bc92a4Schristos 146*f3bc92a4Schristos[Feature 20160828] Fixes for deprecated OpenSSL 1.1.0 API features, 147*f3bc92a4Schristosso that Postfix will build without depending on backwards-compatibility 148*f3bc92a4Schristossupport. 149*f3bc92a4Schristos 150*f3bc92a4Schristos[Incompat 20161204] Postfix 3.2 removes tentative features that 151*f3bc92a4Schristoswere implemented before the DANE spec was finalized: 152*f3bc92a4Schristos 153*f3bc92a4Schristos- Support for certificate usage PKIX-EE(1), 154*f3bc92a4Schristos 155*f3bc92a4Schristos- The ability to disable digest agility (Postfix now behaves as if 156*f3bc92a4Schristos "tls_dane_digest_agility = on"), and 157*f3bc92a4Schristos 158*f3bc92a4Schristos- The ability to disable support for "TLSA 2 [01] [12]" records 159*f3bc92a4Schristos that specify the digest of a trust anchor (Postfix now behaves 160*f3bc92a4Schristos as if "tls_dane_trust_anchor_digest_enable = yes). 161*f3bc92a4Schristos 162*f3bc92a4Schristos[Feature 20161217] Postfix 3.2 enables elliptic curve negotiation 163*f3bc92a4Schristoswith OpenSSL >= 1.0.2. This changes the default smtpd_tls_eecdh_grade 164*f3bc92a4Schristossetting to "auto", and introduces a new parameter tls_eecdh_auto_curves 165*f3bc92a4Schristoswith the names of curves that may be negotiated. 166*f3bc92a4Schristos 167*f3bc92a4SchristosThe default tls_eecdh_auto_curves setting is determined at compile 168*f3bc92a4Schristostime, and depends on the Postfix and OpenSSL versions. At runtime, 169*f3bc92a4SchristosPostfix will skip curve names that aren't supported by the OpenSSL 170*f3bc92a4Schristoslibrary. 171*f3bc92a4Schristos 172*f3bc92a4SchristosMajor changes - xclient 173*f3bc92a4Schristos----------------------- 174*f3bc92a4Schristos 175*f3bc92a4Schristos[Feature 20160611] The Postfix SMTP server local IP address and 176*f3bc92a4Schristosport are available in the policy delegation protocol (attribute 177*f3bc92a4Schristosnames: server_address, server_port), in the Milter protocol (macro 178*f3bc92a4Schristosnames: {daemon_addr}, {daemon_port}), and in the XCLIENT protocol 179*f3bc92a4Schristos(attribute names: DESTADDR, DESTPORT). 180*f3bc92a4Schristos 181