1This is the first official Postfix release that is not called BETA.
2May it help the people who cannot get BETA software past their
3management.
4
5Release 20010228 differs from snapshot 20010228 in that the virtual
6delivery agent and nqmgr queue manager are left out. That software
7will become part of the official release when it has not changed
8in a while.
9
10In the text below, incompatible changes are labeled with the Postfix
11version that introduced the change. If you upgrade from a later
12Postfix version, then you do not have to worry about that particular
13incompatibility.
14
15Major incompatible changes with release-20010228
16================================================
17
18[snapshot-20010225] POSTFIX NO LONGER RELAYS MAIL FOR CLIENTS IN
19THE ENTIRE CLASS A/B/C NETWORK. To get the old behavior, specify
20"mynetworks_style = class" in the main.cf file. The default
21(mynetworks_style = subnet) is to relay for clients in the local
22IP subnet. See conf/main.cf.
23
24[snapshot-20001005, snapshot-20010225] You must execute "postfix
25stop" before installing this release.  Some recommended parameter
26settings have changed, and a new entry must be added to the master.cf
27file before you can start Postfix again.
28
291 - The recommended Postfix configuration no longer uses flat
30    directories for the "incoming" "active", "bounce", and "defer"
31    queue directories.  The "flush" directory for the new "flush"
32    service directory should not be flat either.
33
34    Upon start-up, Postfix checks if the hash_queue_names configuration
35    parameter is properly set up, and will add any queue directory
36    names that are missing.
37
382 - In order to improve performance of one-to-one mail deliveries
39    the queue manager will now look at up to 10000 queue files
40    (was: 1000).  The default qmgr_message_active_limit setting
41    was changed accordingly.
42
43    If you have a non-default qmgr_message_active_limit in main.cf,
44    you may want adjust it.
45
463 - The new "flush" service needs to be configured in master.cf.
47
48    Upon start-up, Postfix checks if the new "flush" service is
49    configured in the master.cf file, and will add an entry if it
50    is missing.
51
52Should you wish to back out to a previous Postfix release there is
53no need to undo the above queue configuration changes.
54
55[snapshot-20000921] The protocol between queue manager and delivery
56agents has changed.  This means that you cannot mix the Postfix
57queue manager or delivery agents with those of Postfix versions
58prior to 20000921. This change does not affect Postfix queue file
59formats.
60
61[snapshot-20000529] This release introduces an incompatible queue
62file format change ONLY when content filtering is enabled (see text
63in FILTER_README). Old Postfix queue files will work fine, but
64queue files with the new content filtering info will not work with
65Postfix versions before 20000529.  Postfix logs a warning and moves
66incompatible queue files to the "corrupt" mail queue subdirectory.
67
68Minor incompatible changes with release-20010228
69================================================
70
71[snapshot-20010225] The incoming and deferred queue directories
72are now hashed by default.  This improves the performance considerably
73under heavy load, at the cost of a small but noticeable slowdown
74when one runs "mailq" on an unloaded system.
75
76[snapshot-20010222] Postfix no longer automatically delivers
77recipients one at a time when their domain is listed in $mydestination.
78This change solves delivery performance problems with delivery via
79LMTP, with virus scanning, and with firewall relays that forward
80all mail for $mydestination to an inside host.
81
82The "one recipient at a time" delivery behavior is now controlled
83by the per-transport recipient limit (xxx_destination_recipient_limit,
84where xxx is the name of the delivery mechanism).  This parameter
85controls the number of recipients that can be sent in one delivery
86(surprise).
87
88The setting of the per-transport recipient limit also controls the
89meaning of the per-transport destination concurrency limit (named
90xxx_destination_concurrency_limit, where xxx is again the name of
91the delivery mechanism):
92
93 1) When the per-transport recipient limit is 1 (i.e., send one
94    recipient per delivery), the per-transport destination concurrency
95    limit controls the number of simultaneous deliveries to the
96    same recipient.  This is the default behavior for delivery via
97    the Postfix local delivery agent.
98
99 2) When the per-transport recipient limit is > 1 (i.e., send
100    multiple recipients per delivery), the per-transport destination
101    concurrency limit controls the number of simultaneous deliveries
102    to the same domain.  This is the default behavior for all other
103    Postfix delivery agents.
104
105[snapshot-20010128] The Postfix local delivery agent now enforces
106mailbox file size limits (default: mailbox_size_limit = 51200000).
107This limit affects all file write access by the local delivery
108agent or by a process run by the local delivery agent. The purpose
109of this parameter is to act as a safety for run-away software. It
110cannot be a substitute for a file quota management system. Specify
111a limit of 0 to disable.
112
113[snapshot-20010128] REJECT in header/body_checks is now flagged as
114policy violation rather than bounce, for consistency in postmaster
115notifications.
116
117[snapshot-20010128] The default RBL (real-time blackhole lists)
118domain examples have been changed from *.vix.com to *.mail-abuse.org.
119
120[snapshot-20001210] Several interfaces of libutil and libglobal
121routines have changed.  This may break third-party code written
122for Postfix. In particular, the safe_open() routine has changed,
123the way the preferred locking method is specified in the sys_defs.h
124file, as well as all routines that perform file locking. When
125compiling third-party code written for Postfix, the incompatibilities
126will be detected by the compiler provided that #include file
127dependencies are properly maintained.
128
129[snapshot-20001210] When delivering to /file/name (as directed in
130an alias or .forward file), the local delivery agent now logs a
131warning when it is unable to create a /file/name.lock file. Mail
132is still delivered as before.
133
134[snapshot-20001210] The "sun_mailtool_compatibility" feature is
135going away (a compatibility mode that turns off kernel locks on
136mailbox files). It still works, but a warning is logged. Instead
137of using "sun_mailtool_compatibility", specify the mailbox locking
138strategy as "mailbox_delivery_lock = dotlock".
139
140[snapshot-20001210] The Postfix SMTP client now skips SMTP server
141replies that do not start with "CODE SPACE" or with "CODE HYPHEN"
142and flags them as protocol errors. Older Postfix SMTP clients
143silently treated "CODE TEXT" as "CODE SPACE TEXT", i.e. as a valid
144SMTP reply.
145
146[snapshot-20001121] On RedHat Linux 7.0, you must install the
147db3-devel RPM before you can compile the Postfix source code.
148
149[snapshot-20000924] The postmaster address in the "sorry" text at
150the top of bounced mail is now just postmaster, not postmaster@machine.
151The idea is to refer users to their own postmaster.
152
153[snapshot-20000921] The notation of [host:port] in transport tables
154etc. is going away but it is still supported. The preferred form
155is now [host]:port.  This change is necessary to support IPV6
156address forms which use ":" as part of a numeric IP address. In a
157future release, Postfix will log a warning when it encounters the
158[host:port] form.
159
160[snapshot-20000921] In mail headers, Errors-To:, Reply-To: and
161Return-Receipt:  addresses are now rewritten as a sender address
162(was: recipient).
163
164[snapshot-20000921] Postfix no longer inserts Sender: message
165headers.
166
167[snapshot-20000921] The queue manager now logs the original number
168of recipients when opening a queue file (example: from=<>, size=3502,
169nrcpt=1).
170
171[snapshot-20000921] The local delivery agent no longer appends a
172blank line to mail that is delivered to external command.
173
174[snapshot-20000921] The pipe delivery agent no longer appends a
175blank line when the F flag is specified (in the master.cf file).
176Specify the B flag if you need that blank line.
177
178[snapshot-20000507] As required by RFC 822, Postfix now inserts a
179generic destination message header when no destination header is
180present.  The text is specified via the undisclosed_recipients_header
181configuration parameter (default:  "To: undisclosed-recipients:;").
182
183[snapshot-20000507] The Postfix sendmail command treats a line with
184only `.' as the end of input, for the sake of sendmail compatibility.
185To disable this feature, specify the sendmail-compatible `-i' or
186`-oi' flags on the sendmail command line.
187
188[snapshot-20000507] For the sake of Sendmail compatibility, the
189Postfix SMTP client skips over SMTP servers that greet with a 4XX
190or 5XX reply code, treating them as unreachable servers.  To obtain
191prior behavior (4XX=retry, 5XX=bounce), specify "smtp_skip_4xx_greeting
192= no" and "smtp_skip_5xx_greeting = no".
193
194Major changes with release-20010228
195===================================
196
197Postfix produces DSN formatted bounced/delayed mail notifications.
198The human-readable text still exists, so that users will not have
199to be unnecessarily confused by all the ugliness of RFC 1894.  Full
200DSN support will be later.
201
202This release introduces full content filtering through an external
203process. This involves an incompatible change in queue file format.
204Mail is delivered to content filtering software via an existing
205mail delivery agent, and is re-injected into Postfix via an existing
206mail submission agent.  See examples in the FILTER_README file.
207Depending on how the filter is implemented, you can expect to lose
208a factor of 2 to 4 in delivery performance of SMTP transit mail,
209more if the content filtering software needs lots of CPU or memory.
210
211Specify "body_checks = regexp:/etc/postfix/body_checks" for a quick
212and dirty emergency content filter that looks at non-header lines
213one line at a time (including MIME headers inside the message body).
214Details in conf/sample-filter.cf.
215
216The header_checks and body_checks features can be used to strip
217out unwanted data. Specify IGNORE on the right-hand side and the
218data will disappear from the mail.
219
220Support for SASL (RFC 2554) authentication in the SMTP server and
221in the SMTP and LMTP clients. See the SASL_README file for more
222details. This file still needs better examples.
223
224Postfix now ships with an LMTP delivery agent that can deliver over
225local/remote TCP sockets and over local UNIX-domain sockets.  The
226LMTP_README file gives example, but still needs to be revised.
227
228Fast "ETRN" and "sendmail -qR".  Postfix maintains per-destination
229logfiles with information about what mail is queued for selected
230destinations.  See the file ETRN_README for details.
231
232The mailbox locking style is now fully configurable at runtime.
233The new configuration parameter is called "mailbox_delivery_lock".
234Depending on the operating system type, mailboxes can be locked
235with one or more of "flock", "fcntl" or "dotlock".  The command
236"postconf -l" shows the available locking styles.  The default
237mailbox locking style is system dependent.  This change affects
238all mailbox and all "/file/name" deliveries by the Postfix local
239delivery agent.
240
241Minor changes with release-20010228
242===================================
243
244You can now specify multiple SMTP destinations in the relayhost
245and fallback_relay configuration parameters. The destinations are
246tried in the specified order. Specify host or host:port (perform
247MX record lookups), [host] or [host]:port (no MX record lookups),
248[address] or [address]:port (numerical IP address).
249
250The "mailbox_transport" and "fallback_transport" parameters now
251understand the form "transport:nexthop", with suitable defaults
252when either transport or nexthop are omitted, just like in the
253Postfix transport map. This allows you to specify for example,
254"mailbox_transport = lmtp:unix:/file/name".
255
256The local_transport and default_transport configuration parameters
257can now be specified in transport:destination notation, just like
258the mailbox_transport and fallback_transport parameters.  The
259:destination part is optional.  However, these parameters take only
260one destination, unlike relayhost and fallback-relay which take
261any number of destinations.
262
263More general virtual domain support.  Postfix now supports both
264Sendmail-style virtual domains and Postfix-style virtual domains.
265Details and examples are given in the revised virtual manual page.
266
267- With Sendmail-style virtual domains, local users/aliases/mailing
268  lists are visible as localname@virtual.domain. This is convenient
269  if you want to host mailing lists under virtual domains.
270
271- With Postfix-style virtual domains, local users/aliases/mailing
272  lists are not visible as localname@virtual.domain. Each virtual
273  domain has its own separate name space.
274
275More general "soft bounce" feature.  Specify "soft_bounce = yes"
276in main.cf to prevent the SMTP server from bouncing mail while you
277are testing configurations. Until this release the SMTP server was
278not aware of soft bounces.
279
280Workarounds for non-standard RFC 2554 (AUTH command) implementations.
281Specify "broken_sasl_auth_clients = yes" to enable SMTP server
282support for old Microsoft client applications. The Postfix SMTP
283client supports non-standard RFC 2554 servers by default.
284
285All time-related configuration parameters now accept a one-letter
286suffix to indicate the time unit (s: second, m: minute, h: hour,
287d: day, w: week). The exceptions are the LDAP and MYSQL modules
288which are maintained separately.
289
290New "import_environment" and "export_environment" configuration
291parameters provide explicit control over what environment variables
292Postfix will import, and what environment variables Postfix will
293pass on to a non-Postfix process.
294
295In order to improve performance of one-to-one deliveries, Postfix
296by default now looks at up to 10000 messages at a time (was: 1000).
297
298Specify "syslog_facility = log_local1" etc. to separate the logging
299from multiple Postfix instances. However, a non-default logging
300facility takes effect only after process initialization. Errors
301during command-line parsing are still logged with the default syslog
302facility, as are errors while processing the main.cf file.
303
304Postfix now strips out Content-Length: headers in incoming mail to
305avoid confusion in mail user agents.
306
307Specify "require_home_directory = yes" to prevent mail from being
308delivered to a user whose home directory is not mounted. This
309feature is implemented by the Postfix local delivery agent.
310
311The pipe mailer has a size limit (size=nnn) command-line argument.
312
313The pipe delivery agent has a configurable end-of-line attribute.
314Specify "pipe ... eol=\r\n" for delivery mechanisms that require
315CRLF record delimiters. The eol attribute understands the following
316C-style escape sequences:  \a \b \f \n \r \t \v \nnn \\.
317
318In master.cf you can selectively override main.cf configuration
319parameters, for example: "smtpd -o myhostname=foo.com".
320
321In main.cf, specify "smtp_bind_address=x.x.x.x" to bind SMTP
322connections to a specific local interface. Or override the default
323setting in master.cf with "smtp -o smtp_bind_address=x.x.x.x".
324For now, you must specify a numeric IP address.
325
326Questionable feature: with "smtp_always_send_ehlo = yes", the SMTP
327client sends EHLO regardless of the content of the SMTP server's
328greeting.
329
330Specify "-d key" to postalias or postmap in order to remove one
331key. This still needs to be generalized to multi-key removal (e.g.,
332read keys from stdin).
333
334Comments in Postfix configuration files no longer contain troff
335formatting codes.  The text is now generated from prototype files
336in a new "proto" subdirectory.
337
338Major changes with postfix-19991231:
339====================================
340
341- It is now much more difficult to configure Postfix as an open
342relay. The SMTP server requires that "smtpd_recipient_restrictions"
343contains at least one restriction that by default refuses mail (as
344is the default).  There were too many accidents with changes to
345the UCE restrictions.
346
347- The relay_domains parameter no longer needs to contain $virtual_maps.
348
349- Overhauled FAQ (html/faq.html) with many more examples.
350
351- Updated UCE documentation (html/uce.html) with more examples.
352More UCE configuration examples in sample configuration files.
353
354- Several little improvements to the installation procedure:
355relative symlinks, configurable directory for scratch files so the
356installation can be done without write access to the build tree.
357
358- Updated LDAP client code (John Hensley).
359
360- Updated mysql client code (Scott Cotton).
361
362- The SMTP server now rejects mail for unknown users in virtual
363domains that are defined by Postfix virtual maps.
364
365- The SMTP server can reject mail for unknown local users.  Specify
366"local_recipient_maps = $alias_maps, unix:passwd.byname" if your
367local mail is delivered by a UNIX-style local delivery agent.  See
368example in conf/main.cf.
369
370- Use "disable_vrfy_command = yes" to disable the SMTP VRFY command.
371This prevents some forms of address harvesting.
372
373- The sendmail "-f" option now understands <user> and even understands
374forms with RFC 822-style comments.
375
376- New "qmgr_fudge_factor" parameter allows you to balance mailing
377list performance against response time for one-to-one mail.  The
378fudge factor controls what percentage of delivery resources Postfix
379will devote to one message.  With 100%, delivery of one message
380does not begin before delivery of the previous message is completed.
381This is good for list performance, bad for one-to-one mail. With
38210%, response time for one-to-one mail improves much, but list
383performance suffers: in the worst case, people near the start of a
384mailing list get a burst of postings today, while people near the
385end of the list get that same burst of postings a whole day later.
386
387- It is now relatively safe to configure 550 status codes for the
388main.cf unknown_address_reject_code or unknown_client_reject_code
389parameters.  The SMTP server now always sends a 450 (try again)
390reply code when an UCE restriction fails due to a soft DNS error,
391regardless of what main.cf specifies.
392
393- The RBL checks now show the content of TXT records (Simon J Mudd).
394
395- The Postfix SMTP server now understands a wider range of illegal
396address forms in MAIL FROM and RCPT TO commands. In order to disable
397illegal forms, specify "strict_rfc821_envelopes = yes". This also
398disables support for MAIL FROM and RCPT TO addresses without <>.
399
400- Per-client/helo/sender/recipient UCE restrictions (fully-recursive
401UCE restriction parser). See the RESTRICTION_CLASS file for details.
402
403- Use "postmap -q key" or "postalias -q key" for testing Postfix
404lookup tables or alias files.
405
406- Use "postconf -e name=value..." to edit the main.cf file.  This
407is easier and safer than editing the main.cf file by hand. The
408edits are done on a temporary copy that is renamed into place.
409
410- Use "postconf -m" to display all supported lookup table types
411(Scott Cotton).
412
413- New "permit_auth_destination" UCE restriction for finer-grained
414access control (Jesper Skriver).
415
416Incompatible changes with postfix-19990906
417==========================================
418
419- On systems that use user.lock files to protect system mailboxes
420against simultaneous updates, Postfix now uses /file/name.lock
421files while delivering to files specified in aliases/forward/include
422files. This is a no-op when the recipient lacks directory write
423permission.
424
425- The LDAP client code no longer looks up a name containing "*"
426because it could be abused.  See the LDAP_README file for how to
427restore previous behavior.
428
429- The Postfix to PCRE interface now expects PCRE version 2.08.
430Postfix is no longer compatible with PCRE versions prior to 2.06.
431
432Major changes with postfix-19990906
433===================================
434
435Several bugfixes, none related to security.  See the HISTORY file
436for a complete list of changes.
437
438- Postfix is now distributed under IBM Public License Version 1.0
439which does not carry the controversial termination clause. The new
440license does have a requirement that contributors make source code
441available.
442
443- INSTALL.sh install/upgrade procedure that replaces existing
444programs and shell scripts instead of overwriting them, and that
445leaves existing queue files and configuration files alone.
446
447- The ugly Delivered-To: header can now be turned off selectively.
448The default setting is:  "prepend_delivered_header = command, file,
449forward".  Turning off the Delivered-To:  header when forwarding
450mail is not recommended.
451
452- mysql client support by Scott Cotton and Joshua Marcus, Internet
453Consultants Group, Inc. See the file MYSQL_README for instructions.
454
455- reject_unauth_destination SMTP recipient restriction that rejects
456destinations not in $relay_domains. Unlike the check_relay_domains
457restriction, reject_unauth_destination ignores the client hostname.
458By Lamont Jones of Hewlett-Packard.
459
460- reject_unauth_pipelining SMTP *anything* restriction to stop mail
461from spammers that improperly use SMTP command pipelining to speed
462up their deliveries.
463
464- Postfix "sendmail" now issues a warning and drops privileges if
465installed set-uid root.
466
467- No more duplicate delivery when "postfix reload" is immediately
468followed by "sendmail -q".
469
470- No more "invalid argument" errors when a Postfix daemon opens a
471DB/DBM file while some other process is changing the file.
472
473- Portability to the Mac OS X Server, Reliant Unix, AIX 3.2.5 and
474Ultrix 4.3.
475
476Incompatible changes with postfix-19990601:
477===========================================
478
479- The SMTP server now delays all UCE restrictions until the RCPT
480TO, VRFY or ETRN command. This makes the restrictions more useful,
481because many SMTP clients do not expect negative responses earlier
482in the protocol.  In order to restore the old behavior, specify
483"smtpd_delay_reject = no" in /etc/postfix/main.cf.
484
485- The Postfix local delivery agent no longer automatically propagates
486address extensions to aliases/include/forward addresses.  Specify
487"propagate_unmatched_extensions = canonical, virtual, alias, forward,
488include" to restore the old behavior.
489
490- The Postfix local delivery agent no longer does $name expansion
491on words found in the mailbox_command configuration parameter. This
492makes it easier to specify shell syntax. See conf/main.cf.
493
494- The luser_relay syntax has changed. You can specify one address;
495it is subjected to $user, etc. expansions. See conf/main.cf.
496
497- File system reorganization: daemon executables are now in the
498libexec subdirectory, command executables in the bin subdirectory.
499The INSTALL instructions now recommend installing daemons and
500commands into separate directories.
501
502Major changes with postfix-19990601:
503=====================================
504
505- New USER, EXTENSION, LOCAL, DOMAIN and RECIPIENT environment
506variables for delivery to command (including mailbox_command) by
507the local delivery agent. As you might expect, the information is
508censored. The list of acceptable characters is specified with the
509command_expansion_filter configuration parameter.  Unacceptable
510characters are replaced by underscores. See html/local.8.html.
511
512- Specify "forward_path = /var/forward/$user" to avoid looking up
513.forward files in user home directories.  The default value is
514$home/.forward$recipient_delimiter$extension, $home/.forward.
515Initial code by Philip A.  Prindeville, Mirapoint, Inc., USA.
516
517- Conditional $name expansion in forward_path and luser_relay.
518Available names are: $user (bare user name) $shell (user login
519shell), $home (user home directory), $local (everything to the left
520of @), $extension (optional address extension), $domain (everything
521to the right of @), $recipient (the complete address) and
522$recipient_delimiter.  A simple $name expands as usual.  ${name?value}
523expands to value when $name is defined.  ${name:value} expands to
524value when $name is not defined. With ${name?value} and ${name:value},
525the value is subject to another iteration of $name expansion.
526
527- POSIX regular expression support, enabled by default on 4.4BSD,
528LINUX, HP-UX, and Solaris 2.5 and later. See conf/sample-regexp.cf.
529Initial code by Lamont Jones, Hewlett-Packard, borrowing heavily
530from the PCRE implementation by Andrew McNamara, connect.com.au
531Pty. Ltd., Australia.
532
533- Regular expression checks for message headers.  This requires
534support for POSIX or for PCRE regular expressions.  Specify
535"header_checks = regexp:/file/name" or "header_checks = pcre:/file/name",
536and specify "/^header-name:  badstuff/ REJECT" in the pattern file
537(patterns are case-insensitive by default).  Code by Lamont Jones,
538Hewlett-Packard.  It is to be expected that full content filtering
539will be delegated to an external command.
540
541- Regular expression support for all lookup tables, including access
542control (full mail addresses only), address rewriting (canonical/virtual,
543full mail addresses only) and transport tables (full domain names
544only).  However, regular expressions are not allowed for aliases,
545because that would open up security exposures.
546
547- Automatic detection of changes to DB or DBM lookup tables.  This
548eliminates the need to run "postfix reload" after each change to
549the SMTP access table, or to the canonical, virtual, transport or
550aliases tables.
551
552- New error mailer. Specify ".domain.name error:domain is undeliverable"
553in the transport table to bounce mail for entire domains.
554
555- No more Postfix lockups on Solaris (knock on wood). The code no
556longer uses Solaris UNIX-domain sockets, because they are still
557broken, even with Solaris 7.
558
559- Workaround for the Solaris mailtool, which keeps an exclusive
560kernel lock on the mailbox while its window is not iconified (specify
561"sun_mailtool_compatibility = yes" in main.cf).
562
563- Questionable workaround for Solaris, which reportedly loses
564long-lived exclusive locks that are held by the master daemon.
565
566- New reject_unknown_{sender,recipient}_domain restrictions for
567sender and recipient mail addresses that distinguish between soft
568errors (always 450) and hard errors (unknown_address_reject_code,
569default 450).
570
571- MIME-encapsulated bounce messages, making it easier to recover
572bounced mail. Initial implementation by Philip A.  Prindeville,
573Mirapoint, Inc., USA. Support for RFC 1892 (multipart/report) and
574RFC 1894 (DSN) will have to wait until Postfix internals have been
575revised to support RFC 1893.
576
577- Separately configurable "postmaster" addresses for single bounces
578(bounce_notice_recipient), double bounces (2bounce_notice_recipient),
579delayed mail (delay_notice_recipient), and for mailer error reports
580(error_notice_recipient). See conf/main.cf.
581
582- Questionable feature: specify "best_mx_transport = local" if
583this machine is the best MX host for domains not in mydestinations.
584
585Incompatible changes with postfix-19990317:
586===========================================
587
588- You MUST install the new version of /etc/postfix/postfix-script.
589
590- The pipe mailer "flags" syntax has changed. You now explicitly
591MUST specify the R flag in order to generate a Return-Path:  message
592header (as needed by, for example, cyrus).
593
594Major changes with postfix-19990317:
595====================================
596
597A detailed record of changes is given in the HISTORY file.
598
599- Less postmaster mail. Undeliverable bounce messages (double
600bounces) are now discarded. Specify "notify_classes = 2bounce..."
601to get copies of double bounces. Specify "notify_classes = bounce..."
602to get copies of normal and double bounces.
603
604- Improved LDAP client code by John Hensley of Merit Network, USA.
605See LDAP_README for details.
606
607- Perl-compatible regular expression support for lookup maps by
608Andrew McNamara, connect.com.au Pty. Ltd., Australia..  Example:
609"check_recipient_access pcre:/etc/postfix/sample-pcre.cf". Regular
610expressions provide a powerful tool not only for SMTP access control
611but also for address rewriting. See PCRE_README for details.
612
613- Automatic notification of delayed mail (disabled by default).
614With "delay_warning_time = 4", Postfix informs senders when mail
615has not been delivered after 4 hours. Initial version of the code
616by Daniel Eisenbud, University of California at Berkeley. In order
617to get postmaster copies of such warnings, specify "notify_classes
618= delay...".
619
620- More configurable local delivery: "mail_spool_directory" to
621specify the UNIX mail spool directory; "mailbox_transport" to
622delegate all mailbox delivery to, for example, cyrus, and
623"fallback_transport" to delegate delivery of only non-UNIX users.
624And all this without losing local aliases and local .forward
625processing.  See config/main.cf and config/master.cf.
626
627- Several changes to improve Postfix behavior under worst-case
628conditions (frequent Postfix restarts/reloads combined with lots
629if inbound mail, intermittent connectivity problems, SMTP servers
630that become comatose after receiving QUIT).
631
632- More NFS-friendly mailbox delivery. The local delivery agent
633now avoids using root privileges where possible.
634
635- For sites that do not receive mail at all, mydestination can now
636be an empty string. Be sure to set up a transport table entry to
637prevent mail from looping.
638
639- New "postsuper" utility to clean up stale files from Postfix
640queues.
641
642- Workaround for BSD select() collisions that cause performance
643problems on large BSD systems.
644
645- Several questionable but useful features to capture mail:
646"always_bcc = address" to capture a copy of every message that
647enters the system, and "luser_relay = address" to capture mail for
648unknown recipients (does not work when mailbox_transport or
649fallback_transport are being used).
650
651- Junk mail controls: new reject_non_fqdn_{hostname,sender,recipient}
652restrictions to reject non-FQDN arguments in HELO, MAIL FROM and
653RCPT TO commands, and stricter checking of numeric HELO arguments.
654
655- "fallback_relay" feature for sites that use DNS but that can't
656talk to the entire world. The fall-back relay gets the mail when
657a destination is not found in the DNS or when the destination is
658found but not reachable.
659
660- Several questionable controls that can help to keep mail going:
661specify "smtp_skip_4xx_greeting = yes" to skip SMTP servers that
662greet with 4XX, "ignore_mx_lookup_error = yes" to look up an A
663record when a DNS server does not respond to an MX query.
664
665Incompatible changes with postfix-beta-19990122-pl01:
666=====================================================
667
668None.
669
670Major changes with postfix-beta-19990122-pl01:
671==============================================
672
673- Restrict who may use ETRN and what domains may be specified.
674Example:  "smtpd_etrn_restrictions = permit_mynetworks, reject".
675
676- BIFF notifications.  For compatibility reasons this feature is
677on by default.  Specify "biff = no" in main.cf if your machine has
678lots of shell users.
679
680- With "soft_bounce = yes", defer delivery instead of bouncing
681mail. This is a safety net for configuration errors with delivery
682agents. It has no effect on errors in virtual maps, canonical maps,
683or in junk mail restrictions.
684
685- Specify "owner_request_special = no" to turn off special treatment
686of owner-foo and foo-request addresses.
687
688Incompatible changes with postfix-beta-19990122:
689================================================
690
691- The syntax of the transport table has changed. An entry like:
692
693	customer.org	smtp:[gateway.customer.org]
694
695  no longer forwards mail for anything.customer.org. For that you
696  need to specify:
697
698	customer.org	smtp:[gateway.customer.org]
699	.customer.org	smtp:[gateway.customer.org]
700
701  This change makes transport tables more compatible with
702  sendmail mailer tables.
703
704- The format of syslog records has changed. A client is now always
705logged as hostname[address]; the pickup daemon logs queue file uid
706and sender address.
707
708Major changes with postfix-beta-19990122:
709=========================================
710
711- Junk mail restrictions can now be postponed to the RCPT TO command.
712Specify: "smtpd_recipient_restrictions = reject_maps_rbl...".
713
714- More flexible interface for delivery to e.g., cyrus IMAP without
715need for PERL scripts to munge recipient addresses. In addition to
716$sender, $nexthop and $recipient, the pipe mailer now also supports
717$user, $extension and $mailbox.
718
719- New mail now has precedence over deferred mail, plus some other
720tweaks to make bulk mail go faster. But it ain't no cure for massive
721network outages.
722
723- Watchdog timer for systems that cause the Postfix queue manager
724to lock up, so it recovers without human intervention.
725
726- Delivery to qmail-style maildir files, which is good for NFS
727environments.  Specify "home_mailbox = Maildir/", or specify
728/file/name/ in aliases or in .forward files. The trailing / is
729required to turn on maildir delivery.
730
731- Incremental updates of aliases and maps. Specify "postmap -i
732mapname" and it will read new entries from stdin. 
733
734- Newaliases will now update more than one alias database.
735Specify the names with the main.cf "alias_database" parameter.
736
737- Address masquerading exceptions to prevent users from being
738masqueraded. Specify "masquerade_exceptions = root".
739
740- A pipelined SMTP client. Deliveries to Postfix, qmail, LSOFT,
741zmailer, and exim (once it's fixed) speed up by some 30% for short
742messages with one recipient, with more for multi-recipient mails.
743
744- Hook for local delivery to "|command" via the smrsh restricted
745shell, to restrict what commands may be used in .forward etc. files.
746Specify "local_command_shell = /some/where/smrsh -c".
747