Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / RELEASE_NOTES-2.3
bloba1ac8c0405f60b0855ee798573a18be89080088c
1 The stable Postfix release is called postfix-2.3.x where 2=major
2 release number, 3=minor release number, x=patchlevel.  The stable
3 release never changes except for patches that address bugs or
4 emergencies. Patches change the patchlevel and the release date.
6 New features are developed in snapshot releases. These are called
7 postfix-2.4-yyyymmdd where yyyymmdd is the release date (yyyy=year,
8 mm=month, dd=day).  Patches are never issued for snapshot releases;
9 instead, a new snapshot is released.
11 The mail_release_date configuration parameter (format: yyyymmdd)
12 specifies the release date of a stable release or snapshot release.
14 Critical notes
15 --------------
17 See RELEASE_NOTES_2.2 if you upgrade from Postfix 2.1 or earlier.
19 Some Postfix internal protocols have changed.  You need to "postfix
20 reload" or restart Postfix, otherwise many servers will log warning
21 messages like "unexpected attribute xxx" or "problem talking to
22 service yyy", and mail will not be delivered.
24 The Sendmail-compatible Milter support introduces three new queue
25 file record types. As long as you leave this feature turned off,
26 you can still go back to Postfix version 2.2 without losing mail
27 that was received by Postfix 2.3.
29 Major changes - DNS lookups
30 ---------------------------
32 [Incompat 20050726] Name server replies that contain a malformed
33 hostname are now flagged as permanent errors instead of transient
34 errors. This change works around a questionable proposal to use
35 syntactically invalid hostnames in MX records.
37 Major changes - DSN
38 -------------------
40 [Feature 20050615] DSN support as described in RFC 3461 .. RFC 3464.
41 This gives senders control over successful and failed delivery
42 notifications.  DSN involves extra parameters to the SMTP "MAIL
43 FROM" and "RCPT TO" commands, as well as extra Postfix sendmail
44 command line options for mail submission.
46 See DSN_README for details. Some implementation notes can be found
47 in implementation-notes/DSN.
49 [Incompat 20050615] The new DSN support conflicts with VERP support.
50 For Sendmail compatibility, Postfix now uses the sendmail -V command
51 line option for DSN.  To request VERP style delivery, you must now
52 specify -XV instead of -V.  The Postfix sendmail command will
53 recognize if you try to use -V for VERP-style delivery.  It will
54 usually do the right thing, and remind you of the new syntax.
56 [Incompat 20050828] Postfix no longer sends DSN SUCCESS notification
57 after virtual alias expansions when the cleanup server rejects the
58 content or size of mail that was submitted with the Postfix sendmail
59 command, mail that was forwarded with the local(8) delivery agent,
60 or mail that was re-queued with "postsuper -r". Since all the
61 recipients are reported as failed, the SUCCESS notification seems
62 redundant.
64 Major changes - LMTP client
65 ---------------------------
67 See the "SASL authentication" and "TLS" sections for changes related
68 to SASL authentication and TLS support, respectively.
70 [Feature 20051208] The SMTP client now implements the LMTP protocol.
71 Most but not all smtp_xxx parameters now have an lmtp_xxx equivalent.
72 This means there are lot of new LMTP features, including support
73 for TLS and for the shared connection cache. See the "SMTP client"
74 section for details.
76 [Incompat 20051208] The LMTP client now reports the server as
77 "myhostname[/path/name]".  With the real server hostname in delivery
78 status reports, the information will be more useful.
80 Major changes - Milter support
81 ------------------------------
83 [Feature 20060515] Milter (mail filter) application support,
84 compatible with Sendmail version 8.13.6 and earlier. This allows
85 you to run a large number of plug-ins to reject unwanted mail, and
86 to sign mail with for example domain keys. All Milter functions are
87 implemented except replacing the message body, which will be added
88 later. Milters are before-queue filters, so they don't change the
89 queue ID.
91 See the MILTER_README document for a discussion of how to use Milter
92 support with Postfix, and limitations of the current implementation.
94 The Sendmail-compatible Milter support introduces three new queue
95 file record types. As long as you leave this feature turned off,
96 you can still go back to Postfix version 2.2 without losing mail
97 that was received by Postfix 2.3.
99 [Incompat 20060515] Milter support introduces new logfile event
100 types: milter-reject, milter-discard and milter-hold, that identify
101 actions from Milter applications. This may affect logfile processing
102 software.
104 Major changes - SASL authentication
105 -----------------------------------
107 [Feature 20051220] Plug-in support for SASL authentication in the
108 SMTP server and in the SMTP/LMTP client. With this, Postfix can
109 support multiple SASL implementations without source code patches.
110 Some distributors may even make SASL support a run-time linking
111 option, just like they already do with Postfix lookup tables.
113 Hints and tips for plug-in developers are in the xsasl/README file.
115 For backwards compatibility the default plug-in type is Cyrus SASL,
116 so everything should behave like it did before. Some error messages
117 are slightly different, but these are generally improvements.
119 The "postconf -a" command shows what plug-in implementations are
120 available for the SMTP server, and "postconf -A" does the same for
121 the SMTP/LMTP client.  Plug-in implementations are selected with
122 the smtpd_sasl_type, smtp_sasl_type and lmtp_sasl_type configuration
123 parameters.
125 Other new configuration parameters are smtpd_sasl_path, smtp_sasl_path
126 and lmtp_sasl_path. These are better left alone; they are introduced
127 for the convenience of other SASL implementations.
129 [Feature 20051222] Dovecot SASL support (SMTP server only). Details
130 can be found in the SASL_README document.
132 [Incompat 20051220] The Postfix-with-Cyrus-SASL build procedure has
133 changed. You now need to specify -DUSE_CYRUS_SASL in addition to
134 -DUSE_SASL_AUTH or else you end up without any Cyrus SASL support.
135 The error messages are:
137     unsupported SASL server implementation: cyrus
138     unsupported SASL client implementation: cyrus
140 [Feature 20051125] This snapshot adds support for sender-dependent
141 ISP accounts.
143 - Sender-dependent smarthost lookup tables.  The maps are searched
144   with the sender address and with the sender @domain.  The result
145   overrides the global relayhost setting, but otherwise has identical
146   behavior. See the postconf(5) manual page for more details.
148   Example:
149     /etc/postfix/main.cf:
150         sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
152 - Sender-dependent SASL authentication support. This disables SMTP
153   connection caching to ensure that mail from different senders
154   will use the correct authentication credentials. The SMTP SASL
155   password file is first searched by sender address, and then by
156   the remote domain and hostname as usual.
158   Example:
159     /etc/postfix/main.cf:
160         smtp_sasl_auth_enable = yes
161         smtp_sender_dependent_authentication = yes
162         smtp_sasl_password_maps = hash:/etc/postfix/sasl_pass
164 [Incompat 20060707] The SMTP/LMTP client now defers delivery when
165 a SASL password exists but the server does not announce support for
166 SASL authentication.  This can happen with servers that announce
167 SASL support only when TLS is turned on.  When an opportunistic TLS
168 handshake fails, Postfix >= 2.3 retries delivery in plaintext, and
169 the remote server rejects mail from the unauthenticated client.
170 Specify "smtp_sasl_auth_enforce = no" to deliver mail anyway.
172 Major changes - SMTP client
173 ---------------------------
175 See the "SASL authentication" and "TLS" sections for changes related
176 to SASL authentication and TLS support, respectively.
178 [Feature 20051208] The SMTP client now implements the LMTP protocol.
179 Most but not all smtp_xxx parameters now have an lmtp_xxx equivalent.
180 This means there are lot of new LMTP features, including support
181 for TLS and for the shared connection cache.
183 [Incompat 20060112] The Postfix SMTP/LMTP client by default no
184 longer allows DNS CNAME records to override the server hostname
185 that is used for logging, SASL password lookup, TLS policy selection
186 and TLS server certificate verification. Specify
187 "smtp_cname_overrides_servername = yes" to get the old behavior.
189 [Incompat 20060103] The Postfix SMTP/LMTP client no longer defers
190 mail delivery when it receives a malformed SMTP server reply in a
191 session with command pipelining.  When helpful warnings are enabled,
192 it will suggest that command pipelining be disabled for the affected
193 destination.
195 [Incompat 20051208] The fallback_relay feature is renamed to
196 smtp_fallback_relay, to make clear that the combined SMTP/LMTP
197 client uses this setting only for SMTP deliveries. The old name
198 still works.
200 [Incompat 20051106] The relay=... logging has changed and now
201 includes the remote SMTP server port number as hostname[hostaddr]:port.
203 [Incompat 20051026] The smtp_connection_cache_reuse_limit parameter
204 (which limits the number of deliveries per SMTP connection) is
205 replaced by the new smtp_connection_reuse_time_limit parameter (the
206 time after which a connection is no longer stored into the connection
207 cache).
209 [Feature 20051026] This snapshot addresses a performance stability
210 problem with remote SMTP servers. The problem is not specific to
211 Postfix: it can happen when any MTA sends large amounts of SMTP
212 email to a site that has multiple MX hosts. The insight that led
213 to the solution, as well as an initial implementation, are due to
214 Victor Duchovni.
216 The problem starts when one of a set of MX hosts becomes slower
217 than the rest.  Even though SMTP clients connect to fast and slow
218 MX hosts with equal probability, the slow MX host ends up with more
219 simultaneous inbound connections than the faster MX hosts, because
220 the slow MX host needs more time to serve each client request.
222 The slow MX host becomes a connection attractor.  If one MX host
223 becomes N times slower than the rest, it dominates mail delivery
224 latency unless there are more than N fast MX hosts to counter the
225 effect. And if the number of MX hosts is smaller than N, the mail
226 delivery latency becomes effectively that of the slowest MX host
227 divided by the total number of MX hosts.
229 The solution uses connection caching in a way that differs from
230 Postfix 2.2.  By limiting the amount of time during which a connection
231 can be used repeatedly (instead of limiting the number of deliveries
232 over that connection), Postfix not only restores fairness in the
233 distribution of simultaneous connections across a set of MX hosts,
234 it also favors deliveries over connections that perform well, which
235 is exactly what we want.
237 The smtp_connection_reuse_time_limit feature implements the connection
238 reuse time limit as discussed above.  It limits the amount of time
239 after which an SMTP connection is no longer stored into the connection
240 cache. The default limit, 300s, can result in a huge number of
241 deliveries over a single connection.
243 This solution will be complete when Postfix logging is updated to
244 include information about the number of times that a connection was
245 used. This information is needed to diagnose inter-operability
246 problems with servers that exhibit bugs when they receive multiple
247 messages over the same connection.
249 [Incompat 20050627] The Postfix SMTP client no longer applies the
250 smtp_mx_session_limit to non-permanent errors during the TCP, SMTP,
251 HELO or TLS handshake.  Previous versions did that only with TCP
252 and SMTP handshake errors.
254 [Incompat 20050622] The Postfix SMTP client by default limits the
255 number of MX server addresses to smtp_mx_address_limit=5. Previously
256 this limit was disabled by default. The new limit prevents Postfix
257 from spending lots of time trying to connect to lots of bogus MX
258 servers.
260 Major changes - SMTP server
261 ---------------------------
263 See the "SASL authentication" and "TLS" sections for changes related
264 to SASL authentication and TLS support, respectively.
266 [Feature 20051222] To accept the non-compliant user@ipaddress form,
267 specify "resolve_numeric_domain = yes".  Postfix will deliver the
268 mail to user@[ipaddress] instead.
270 [Incompat 20051202] The Postfix SMTP server now refuses to receive
271 mail from the network if it isn't running with postfix mail_owner
272 privileges.  This prevents surprises when, for example, "sendmail
273 -bs" is configured to run as root from xinetd.
275 [Incompat 20051121] Although the permit_mx_backup feature still
276 accepts mail for authorized destinations (see permit_mx_backup for
277 definition), with all other destinations it now requires that the
278 local MTA is listed as non-primary MX server. This prevents mail
279 loop problems when someone points their primary MX record at a
280 Postfix system.
282 [Feature 20051011] Optional suppression of remote SMTP client
283 hostname lookup and hostname verification. Specify "smtpd_peername_lookup
284 = no" to eliminate DNS lookup latencies, but do so only under extreme
285 conditions, as it makes Postfix logging less informative.
287 [Feature 20050724] SMTPD Access control based on the existence of
288 an address->name mapping, with reject_unknown_reverse_client_hostname.
289 There is no corresponding access table lookup feature, because the
290 name is not validated in any way (except that it has proper syntax).
292 Several confusing SMTPD access restrictions were renamed:
294     reject_unknown_client -> reject_unknown_client_hostname,
295     reject_unknown_hostname -> reject_unknown_helo_hostname,
296     reject_invalid_hostname -> reject_invalid_helo_hostname,
297     reject_non_fqdn_hostname -> reject_non_fqdn_helo_hostname.
299 The old names are still recognized and documented.
301 Major changes - TLS
302 -------------------
304 Major revisions were made to Postfix TLS support; see TLS_README
305 for the details. For backwards compatibility, the old TLS policy
306 user interface will be kept intact for a few releases so that sites
307 can upgrade Postfix without being forced to use a different TLS
308 policy mechanism.
310 [Feature 20060614] New concept: TLS security levels ("none", "may",
311 "encrypt", "verify" or "secure") in the Postfix SMTP client.  You
312 can specify the TLS security level via the smtp_tls_security_level
313 parameter.  This is more convenient than controlling TLS with the
314 multiple smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername,
315 parameters.
317 [Feature 20060709] TLS security levels ("none", "may", "encrypt")
318 in the Postfix SMTP server. You specify the security level with the
319 smtpd_tls_security_level parameter. This overrides the multiple
320 smtpd_use_tls and smtpd_enforce_tls parameters.  When one of the
321 unimplemented "verify" or "secure" levels is specified, the Postfix
322 SMTP server logs a warning and uses "encrypt" instead.
324 [Feature 20060123] A new per-site TLS policy mechanism for the
325 Postfix SMTP client that supports the new TLS security levels,
326 and that eliminates DNS spoofing attacks more effectively.
328 [Feature 20060626] Both the Postfix SMTP client and server can be
329 configured without a client or server certificate. An SMTP server
330 without certificate can use only anonymous ciphers, and will not
331 inter-operate with most clients.
333 The Postfix SMTP server supports anonymous ciphers when 1) no client
334 certificates are requested or required, and 2) the administrator
335 has not excluded the "aNULL" OpenSSL cipher type with the
336 smtpd_tls_exclude_ciphers parameter.
338 The Postfix SMTP client supports anonymous ciphers when 1) no server
339 certificate is required and 2) the administrator has not excluded
340 the "aNULL" OpenSSL cipher type with the smtp_tls_exclude_ciphers
341 parameter.
343 [Incompat 20060707] The SMTPD policy client now encodes the
344 ccert_subject and ccert_issuer attributes as xtext. Some characters
345 are represented by +XX, where XX is the two-digit hexadecimal
346 representation of the character value.
348 [Feature 20060614] The smtpd_tls_protocols parameter restricts the
349 list of TLS protocols supported by the SMTP server.  This is
350 recommended for use with MSA configurations only.  It should not
351 be used with MX hosts that receive mail from the Internet, as it
352 reduces inter-operability.
354 [Incompat 20060614] The smtp_tls_cipherlist parameter only applies
355 when TLS is mandatory.  It is ignored with opportunistic TLS sessions.
357 [Incompat 20060614] At (lmtp|smtp|smtpd)_tls_loglevel >= 2, Postfix
358 now also logs TLS session cache activity. Use level 2 and higher
359 for debugging only; use levels 0 or 1 as production settings.
361 [Incompat 20060207] The Postfix SMTP server no longer complains
362 when TLS support is not compiled in while permit_tls_clientcerts,
363 permit_tls_all_clientcerts, or check_ccert_access are specified in
364 main.cf. These features now are effectively ignored.  However, the
365 reject_plaintext_session feature is not ignored and will reject
366 plain-text mail.
368 [Feature 20060123] Some obscure behavior was eliminated from the
369 smtp_tls_per_site feature, without changes to the user interface.
370 Some Postfix internals had to be re-structured for the new TLS
371 policy mechanism; for this, smtp_tls_per_site had to be re-implemented.
372 The obscure behavior was found during compatibility testing.
374 [Feature 20051011] Optional protection against SMTP clients that
375 hammer the server with too many new (i.e. uncached) SMTP-over-TLS
376 sessions. Cached sessions are much less expensive in terms of CPU
377 cycles. Use the smtpd_client_new_tls_session_rate_limit parameter
378 to specify a limit that is at least the inbound client concurrency
379 limit, or else you may deny legitimate service requests.
381 Major changes - VERP
382 --------------------
384 [Incompat 20050615] The new DSN support conflicts with VERP support.
385 For Sendmail compatibility, Postfix now uses the sendmail -V command
386 line option for DSN.  In order to request VERP style delivery, you
387 must now specify -XV instead of -V.  The Postfix sendmail command
388 will recognize if you try to use -V for VERP-style delivery.  It
389 will do the right thing and will remind you of the new syntax.
391 Major changes - XCLIENT and XFORWARD
392 ------------------------------------
394 [Incompat 20060611] The SMTP server XCLIENT implementation has
395 changed. The SMTP server now resets state to the initial server
396 greeting stage, immediately before the EHLO/HELO greeting.  This
397 was needed to correctly simulate the effect of connection-level
398 access restrictions.  Without this change, XCLIENT would not work
399 at all with Milter applications.
401 [Incompat 20060611] The SMTP server XCLIENT and XFORWARD commands
402 now expect that attributes are xtext encoded (RFC 1891). For backwards
403 compatibility they will also accept unencoded attribute values. The
404 XFORWARD client code in the SMTP client and in the SMTPD_PROXY
405 client now always encode attribute values. This change will have a
406 visible effect only for malformed hostname and helo parameter values.
408 For more details, see the XCLIENT_README and XFORWARD_README
409 documents.
411 Major changes - address manipulation
412 ------------------------------------
414 [Incompat 20060123] Postfix now preserves uppercase information
415 while mapping addresses with canonical, virtual, relocated or generic
416 maps; this happens even with $number substitutions in regular
417 expression maps. However, the local(8) and virtual(8) delivery
418 agents still fold addresses to lower case.
420 As a side effect, Postfix now also does a better job at being case
421 insensitive where it should be, for example while searching per-host
422 TLS policies or SASL passwords.
424 By default, Postfix now folds the search string to lowercase only
425 with tables that have fixed-case lookup fields such as btree:,
426 hash:, dbm:, ldap:, or *sql:. The search string is no longer case
427 folded with tables whose lookup fields can match both upper or lower
428 case, such as regexp:, pcre:, or cidr:.
430 For safety reasons, Postfix no longer allows $number substitution
431 in regexp: or pcre: transport tables or per-sender relayhost tables.
433 Major changes - bounce message templates
434 ----------------------------------------
436 [Feature 20051113] Configurable bounce messages, based on a format
437 that was developed by Nicolas Riendeau. The file with templates is
438 specified with the bounce_template_file parameter. Details are in
439 the bounce(5) manual page, and examples of the built-in templates
440 can be found in $config_directory/bounce.cf.default. The template
441 for the default bounce message looks like this:
443     failure_template = <<EOF
444     Charset: us-ascii
445     From: MAILER-DAEMON (Mail Delivery System)
446     Subject: Undelivered Mail Returned to Sender
447     Postmaster-Subject: Postmaster Copy: Undelivered Mail
449     This is the $mail_name program at host $myhostname.
451     I'm sorry to have to inform you that your message could not
452     be delivered to one or more recipients. It's attached below.
454     For further assistance, please send mail to <postmaster>
456     If you do so, please include this problem report. You can
457     delete your own text from the attached returned message.
459                             The $mail_name program
460     EOF
462 Major changes - built-in filters
463 --------------------------------
465 [Feature 20050828] Configurable filters to reject or remove unwanted
466 characters in email content. The message_reject_characters and
467 message_strip_characters parameters understand the usual C-like
468 escape sequences: \a \b \f \n \r \t \v \ddd (up to three octal
469 digits) and \\.
471 [Incompat 20050828] When a header/body_checks rule or when
472 message_reject_characters rejects mail that was submitted with the
473 Postfix sendmail command (or re-queued with "postsuper -r"), the
474 returned message is now limited to just the message headers, to
475 avoid the risk of exposure to harmful content in the message body
476 or attachments.
478 Major changes - database support
479 --------------------------------
481 [Incompat 20060611] The PostgreSQL client was updated after the
482 PostgreSQL developers made major database API changes in response
483 to SQL injection problems.  This breaks support for PGSQL versions
484 prior to 8.1.4, 8.0.8, 7.4.13, and 7.3.15. Support for these requires
485 major code changes which are not possible in the time that is left
486 for completing the Postfix 2.3 stable release.
488 Major changes - enhanced status codes
489 -------------------------------------
491 [Feature 20050328] This release introduces support for RFC 3463
492 enhanced status codes.  For example, status code 5.1.1 means
493 "recipient unknown". Postfix recognizes enhanced status codes in
494 remote server replies, generates enhanced status codes while handling
495 email, and reports enhanced status codes in non-delivery notifications.
496 This improves the user experience with mail clients that translate
497 enhanced status codes into text in the user's own language.
499 You can, but don't have to, specify RFC 3463 enhanced status codes
500 in the output from commands that receive mail from a pipe. If a
501 command terminates with non-zero exit status, and an enhanced status
502 code is present at the beginning of the command output, then that
503 status code takes precedence over the non-zero exit status.
505 You can, but don't have to, specify RFC 3463 enhanced status codes
506 in Postfix access maps, header/body_checks REJECT actions, or in
507 RBL replies.  For example:
509     REJECT 5.7.1 You can't go here from there
511 The status 5.7.1 means "no authorization, message refused", and is
512 the default for access maps, header/body_checks REJECT actions, and
513 for RBL replies.
515 [Feature 20050328] If you specify your own enhanced status code,
516 the Postfix SMTP server will automatically change a leading '5'
517 digit (hard error) into '4' where appropriate.  This is needed, for
518 example, with soft_bounce=yes.
520 [Feature 20050510] This release improves usability of enhanced
521 status codes in Postfix access tables, RBL reply templates and in
522 transport maps that use the error(8) delivery agent.
524 - When the SMTP server rejects a sender address, it transforms a
525   recipient DSN status (e.g., 4.1.1-4.1.6) into the corresponding
526   sender DSN status, and vice versa.
528 - When the SMTP server rejects non-address information (such as the
529   HELO command parameter or the client hostname/address), it
530   transforms a sender or recipient DSN status into a generic
531   non-address DSN status (e.g., 4.0.0).
533 These transformations are needed when the same access table or RBL
534 reply template are used for client, helo, sender, or recipient
535 restrictions; or when the same error(8) mailer information is used
536 for both senders and recipients.
538 Major changes - local alias expansion
539 -------------------------------------
541 [Incompat 20051011] The Postfix local(8) delivery agent no longer
542 updates its idea of the Delivered-To: address while it expands
543 aliases or .forward files. With deeply nested aliases or .forward
544 files, this can greatly reduce the number of queue files and cleanup
545 process instances. To get the earlier behavior, specify
546 "frozen_delivered_to = no".
548 The frozen_delivered_to feature can help to alleviate a long-standing
549 problem with multiple deliveries to recipients that are listed
550 multiple times in a hierarchy of nested aliases. For this to work,
551 only the top-level alias should have an owner- alias, and none of
552 the subordinate aliases.
554 Major changes - logging
555 -----------------------
557 [Incompat 20060515] Milter support introduces new logfile event
558 types: milter-reject, milter-discard and milter-hold, that identify
559 actions from Milter applications. This may affect logfile processing
560 software.
562 [Incompat 20051106] The relay=... logging has changed and now
563 includes the remote SMTP server port number as hostname[hostaddr]:port.
565 [Incompat 20060112] The Postfix SMTP/LMTP client by default no
566 longer allows DNS CNAME records to override the server hostname
567 that is used for logging, SASL password lookup, TLS policy selection
568 and TLS server certificate verification. Specify
569 "smtp_cname_overrides_servername = yes" to get the old behavior.
571 [Incompat 20051105] All delay logging now has sub-second resolution,
572 including the over-all "delay=nnn" logging.  A patch is available
573 for pflogsumm (pflogsumm-conn-delays-dsn-patch). The qshape script
574 has been updated (auxiliary/qshape/qshape.pl).
576 [Feature 20051103] This release makes a beginning with a series of
577 new attributes in Postfix logfile records.
579 - Better insight into the nature of performance bottle necks, with
580   detailed logging of delays in various stages of message delivery.
581   Postfix logs additional delay information as "delays=a/b/c/d"
582   where a=time before queue manager, including message transmission;
583   b=time in queue manager; c=connection setup time including DNS,
584   HELO and TLS; d=message transmission time.
586 - Logging of the connection reuse count when SMTP connections are
587   used for more than one message delivery.  This information is
588   needed because Postfix can now reuse connections hundreds of times
589   or more. Logging of the connection reuse count can help to diagnose
590   inter-operability problems with servers that suffer from memory
591   leaks or other resource leaks.
593 At this point the Postfix logging for a recipient looks like this:
595     Nov  3 16:04:31 myname postfix/smtp[30840]: 19B6B2900FE:
596     to=<wietse@test.example.com>, orig_to=<wietse@test>,
597     relay=mail.example.com[1.2.3.4], conn_use=2, delay=0,
598     delays=0/0.01/0.05/0.1, dsn=2.0.0, status=sent (250 2.0.0 Ok)
600 The following two logfile fields may or may not be present:
602     orig_to     This is omitted when the address did not change.
603     conn_use    This is omitted when a connection is used once.
605 [Incompat 20050503] The format of some "warning:" messages in the
606 maillog has changed so that they are easier to sort:
608 - The logging now talks about "access table", instead of using three
609   different expressions "access table", "access map" and "SMTPD
610   access map" for the same thing.
612 - "non-SMTP command" is now logged BEFORE the client name/address
613   and the offending client input, instead of at the end.
615 [Incompat 20050328] The logging format has changed. Postfix delivery
616 agents now log the RFC 3463 enhanced status code as "dsn=x.y.z"
617 where y and z can be up to three digits each.
619 [Incompat 20051208] The LMTP client now reports the server as
620 "myhostname[/path/name]".  With the real server hostname in delivery
621 status reports, the information will be more useful.
623 Major changes - performance
624 ---------------------------
626 [Incompat 20051105] All delay logging now has sub-second resolution,
627 including the over-all "delay=nnn" logging.  A patch is available
628 for pflogsumm (pflogsumm-conn-delays-dsn-patch). The qshape script
629 has been updated (auxiliary/qshape/qshape.pl).
631 [Incompat 20050622] The Postfix SMTP client by default limits the
632 number of MX server addresses to smtp_mx_address_limit=5. Previously
633 this limit was disabled by default. The new limit prevents Postfix
634 from spending lots of time trying to connect to lots of bogus MX
635 servers.
637 [Feature 20051026] This snapshot addresses a performance stability
638 problem with remote SMTP servers. The problem is not specific to
639 Postfix: it can happen when any MTA sends large amounts of SMTP
640 email to a site that has multiple MX hosts. The insight that led
641 to the solution, as well as an initial implementation, are due to
642 Victor Duchovni.
644 The problem starts when one of a set of MX hosts becomes slower
645 than the rest.  Even though SMTP clients connect to fast and slow
646 MX hosts with equal probability, the slow MX host ends up with more
647 simultaneous inbound connections than the faster MX hosts, because
648 the slow MX host needs more time to serve each client request.
650 The slow MX host becomes a connection attractor.  If one MX host
651 becomes N times slower than the rest, it dominates mail delivery
652 latency unless there are more than N fast MX hosts to counter the
653 effect. And if the number of MX hosts is smaller than N, the mail
654 delivery latency becomes effectively that of the slowest MX host
655 divided by the total number of MX hosts.
657 The solution uses connection caching in a way that differs from
658 Postfix 2.2.  By limiting the amount of time during which a connection
659 can be used repeatedly (instead of limiting the number of deliveries
660 over that connection), Postfix not only restores fairness in the
661 distribution of simultaneous connections across a set of MX hosts,
662 it also favors deliveries over connections that perform well, which
663 is exactly what we want.
665 The smtp_connection_reuse_time_limit feature implements the connection
666 reuse time limit as discussed above.  It limits the amount of time
667 after which an SMTP connection is no longer stored into the connection
668 cache. The default limit, 300s, can result in a huge number of
669 deliveries over a single connection.
671 This solution will be complete when Postfix logging is updated to
672 include information about the number of times that a connection was
673 used. This information is needed to diagnose inter-operability
674 problems with servers that exhibit bugs when they receive multiple
675 messages over the same connection.
677 [Feature 20051011] Optional protection against SMTP clients that
678 hammer the server with too many new (i.e. uncached) SMTP-over-TLS
679 sessions. Cached sessions are much less expensive in terms of CPU
680 cycles. Use the smtpd_client_new_tls_session_rate_limit parameter
681 to specify a limit that is at least the inbound client concurrency
682 limit, or else you may deny legitimate service requests.
684 [Feature 20051011] Optional suppression of remote SMTP client
685 hostname lookup and hostname verification. Specify "smtpd_peername_lookup
686 = no" to eliminate DNS lookup latencies, but do so only under extreme
687 conditions, as it makes Postfix logging less informative.
689 Major changes - portability
690 ---------------------------
692 [Incompat 20050716] Internal interfaces have changed; this may break
693 third-party patches because the types of function arguments and of
694 result values have changed.  The types of buffer lengths and offsets
695 were changed from "int" or "unsigned int" (32 bit on 32-bit and
696 LP64 systems) to "ssize_t" or "size_t" (64 bit on LP64 systems, 32
697 bit on 32-bit systems).
699 This change makes no difference in Postfix behavior on 32-bit
700 systems. On LP64 systems, however, this change not only eliminates
701 some obscure portability bugs, it also eliminates unnecessary
702 conversions between 32/64 bit integer types, because many system
703 library routines take "(s)size_t" arguments or return "(s)size_t"
704 values.
706 This change may break software on LP64 systems 1) when Postfix is
707 linked with pre-compiled code that was compiled with old Postfix
708 interface definitions and 2) when compiling Postfix source that was
709 modified by a third-party patch: incorrect code will be generated
710 when the patch passes the wrong integer argument type in contexts
711 that disable automatic argument type conversions.  Examples of such
712 contexts are formatting with printf-like arguments, and invoking
713 functions that write Postfix request or reply attributes across
714 inter-process communication channels.  Unfortunately, gcc reports
715 "(unsigned) int" versus "(s)size_t" format string argument mis-matches
716 only on LP64 systems.
718 Major changes - safety
719 ----------------------
721 [Incompat 20051121] Although the permit_mx_backup feature still
722 accepts mail for authorized destinations (see permit_mx_backup for
723 definition), with all other destinations it now requires that the
724 local MTA is listed as non-primary MX. This prevents mail loop
725 problems when someone points the primary MX record at a Postfix
726 system.
728 [Incompat 20051011] The Postfix local(8) delivery agent no longer
729 updates its idea of the Delivered-To: address while it expands
730 aliases or .forward files. With deeply nested aliases or .forward
731 files, this can greatly reduce the number of queue files and cleanup
732 process instances. To get the earlier behavior, specify
733 "frozen_delivered_to = no".
735 The frozen_delivered_to feature can help to alleviate a long-standing
736 problem with multiple deliveries to recipients that are listed
737 multiple times in a hierarchy of nested aliases. For this to work,
738 only the top-level alias should have an owner- alias, and none of
739 the subordinate aliases.
741 [Incompat 20050828] When a header/body_checks rule or when
742 message_reject_characters rejects mail that was submitted with the
743 Postfix sendmail command (or re-queued with "postsuper -r"), the
744 returned message is now limited to just the message headers, to
745 avoid the risk of exposure to harmful content in the message body
746 or attachments.
748 [Incompat 20051202] The Postfix SMTP server now refuses to receive
749 mail from the network if it isn't running with postfix mail_owner
750 privileges.  This prevents surprises when, for example, "sendmail
751 -bs" is configured to run as root from xinetd.
753 [Incompat 20060123] For safety reasons, Postfix no longer allows
754 $number substitution in regexp: or pcre: transport tables or
755 per-sender relayhost tables.
757 [Incompat 20060112] The Postfix SMTP/LMTP client by default no
758 longer allows DNS CNAME records to override the server hostname
759 that is used for logging, SASL password lookup, TLS policy selection
760 and TLS server certificate verification. Specify
761 "smtp_cname_overrides_servername = yes" to get the old behavior.