Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / RELEASE_NOTES-1.1
blobc6f4611d5975d654dc06e09e5d0427842e4f0a3a
1 In the text below, incompatible changes are labeled with the Postfix
2 snapshot that introduced the change. If you upgrade from a later
3 Postfix version, then you do not have to worry about that particular
4 incompatibility.
6 Official Postfix releases are called a.b.c where a=major release
7 number, b=minor release number, c=patchlevel.  Snapshot releases
8 are now called a.b.c-yyyymmdd where yyyymmdd is the release date
9 (yyyy=year, mm=month, dd=day).  The mail_release_date configuration
10 parameter contains the release date (both for official release and
11 snapshot release).  Patches change the patchlevel and the release
12 date. Snapshots change only the release date, unless they include
13 the same bugfixes as a patch release.
15 Incompatible changes with Postfix version 1.1.0 (released 20020117)
16 ===================================================================
18 Changes are listed in order of decreasing importance, not release
19 date.
21 [snapshot-20010709] This release introduces a new queue file record
22 type that is used only for messages that actually use VERP (variable
23 envelope return path) support.  With this sole exception, the queue
24 file format is entirely backwards compatible with the previous
25 official Postfix release (20010228, a.k.a. Postfix 1.0.0).
27 [snapshot-20020106] This release modifies the existing master.cf
28 file. The local pickup service is now unprivileged, and the cleanup
29 and flush service are now "public". Should you have to back out to
30 a previous release, then you must 1) edit the master.cf file, make
31 the pickup service "privileged", and make the cleanup and flush
32 services "private"; 2) "chmod 755 /var/spool/postfix/public".  To
33 revert to a world-writable mail submission directory, "chmod 1733
34 /var/spool/postfix/maildrop".
36 [snapshot-20020106, snapshot-20010808, snapshot-20011103,
37 snapshot-20011121] You must stop and restart Postfix because of
38 incompatible changes in the local Postfix security model and in
39 the Postfix internal protocols. Old and new components will not
40 work together.
42 [snapshot-20020106] Simpler local Postfix security model.
44 - No world-writable maildrop directory. Postfix now always uses
45   the set-gid postdrop command for local mail submissions.  The
46   local mail pickup daemon is now an unprivileged process.
48 - No world-accessible pickup and queue manager server FIFOs.
50 - New set-gid postqueue command for the queue list/flush operations
51   that used to implemented by the Postfix sendmail command.
53 [snapshot-20020106..15] Simpler Postfix installation and upgrading.
55 - All installation settings are now kept in the main.cf file, and
56   better default settings are now generated for system dependent
57   pathnames such as sendmail_path etc. The install.cf file is no
58   longer used, except when upgrading from an older Postfix version.
60 - Non-default installation parameter settings can (but do not have
61   to) be specified on the "make install" or "make upgrade" command
62   line as name=value arguments.
64 - New postfix-files database (in /etc/postfix) with (pathname,
65   owner, permission) information about all Postfix-related files.
67 - New postfix-install script replaces the awkward INSTALL.sh script.
68   This is driven by the postfix-files database. It has better
69   support for building packages for distribution to other systems.
70   See PACKAGE_README for details.
72 - New post-install script (in /etc/postfix) for post-installation
73   maintenance of directory/file permissions and ownership (this is
74   used by "postfix check"). Example:
76     # postfix stop
77     # post-install set-permissions mail_owner=username setgid_group=groupname
78     # postfix start
80 [snapshot-20020106] Postfix will not run if it detects that the
81 postfix user or group ID are shared with other accounts on the
82 system. The checks aren't exhaustive (that would be too resource
83 consuming) but should be sufficient to encourage packagers and
84 developers to do the right thing. To fix the problem, use the above
85 post-install command, after you have created the appropriate new
86 mail_owner or setgid_group user or group IDs.
88 [snapshot-20020106] If you run multiple Postfix instances on the
89 same machine you now have to specify their configuration directories
90 in the default main.cf file as "alternate_config_directories =
91 /dir1 /dir2 ...".  Otherwise, some Postfix commands will no longer
92 work: the set-group ID postdrop command for mail submission and
93 the set-group ID postqueue command for queue listing/flushing.
95 [snapshot-20010808] The default setting for the maps_rbl_domains
96 parameter is now "empty", because mail-abuse.org has become a
97 subscription-based service. The names of the RBL parameters haven't
98 changed.
100 [snapshot-20020106] Postfix SMTP access maps will no longer return
101 OK for non-local multi-domain recipient mail addresses (user@dom1@dom2,
102 user%dom1@dom2, etcetera); the lookup now returns DUNNO (undetermined).
103 Non-local multi-domain recipient addresses were already prohibited
104 from matching the permit_mx_backup and the relay_domains-based
105 restrictions.
107 [snapshot-20011210] Stricter checking of Postfix chroot configurations.
108 The Postfix startup procedure now warns if "system" directories
109 (etc, bin, lib, usr) under the Postfix top-level queue directory
110 are not owned by the super-user (usually the result of well-intended,
111 but misguided, applications of "chown -R postfix /var/spool/postfix).
113 [snapshot-20011008] The Postfix SMTP server now rejects requests
114 with a generic "try again later" status (451 Server configuration
115 error) when it detects an error in smtp_{client, helo, sender,
116 recipient, etrn}_restrictions settings.  More details about the
117 problem are logged to the syslogd; sending such information to
118 random clients would be inappropriate.
120 [snapshot-20011008] Postfix no longer flushes the entire mail queue
121 after receiving an ETRN request for a random domain name. Requests
122 for domains that do not match $fast_flush_domains are now rejected
123 instead.
125 [snapshot-20011226] Postfix configuration file comments no longer
126 continue on the next line when that next line starts with whitespace.
127 This change avoids surprises, but it may cause unexpected behavior
128 with existing, improperly formatted, configuration files. Caveat
129 user. Comment lines are allowed to begin with whitespace. Multi-line
130 input is no longer terminated by a comment line, by an all whitespace
131 line, or by an empty line.
133 [snapshot-20010714] Postfix delivery agents now refuse to create
134 a missing maildir or mail spool subdirectory when its parent
135 directory is world writable.  This is necessary to prevent security
136 problems with maildirs or with hashed mailboxes under a world
137 writable mail spool directory.
139 [snapshot-20010525] As per RFC 2821, the Postfix SMTP client now
140 always sends EHLO at the beginning of an SMTP session. Specify
141 "smtp_always_send_ehlo = no" for the old behavior, which is to send
142 EHLO only when the server greeting banner contains the word ESMTP.
144 [snapshot-20010525] As per RFC 2821, an EHLO command in the middle
145 of an SMTP session resets the Postfix SMTP server state just like
146 RSET. This behavior cannot be disabled.
148 [snapshot-20010709] The SMTP client now by default breaks lines >
149 2048 characters, to avoid mail delivery problems with fragile SMTP
150 server software.  To get the old behavior back, specify "smtp_break_lines
151 = no" in the Postfix main.cf file.
153 [snapshot-20010709] With recipient_delimiter=+ (or any character
154 other than -) Postfix will now recognize address extensions even
155 with owner-foo+extension addresses. This change was necessary to
156 make VERP useful for mailing list bounce processing.
158 [snapshot-20010610] The Postfix pipe delivery agent no longer
159 automatically case-folds the expansion of $user, $extension or
160 $mailbox command-line macros.  Specify the 'u' flag to get the old
161 behavior.
163 [snapshot-20011210] The Postfix sendmail command no longer exits
164 with status 1 when mail submission fails, but instead returns a
165 sendmail-compatible status code as defined in /usr/include/sysexits.h.
167 Major changes with Postfix version 1.1.0 (Released 20020117)
168 ============================================================
170 Changes are listed in order of decreasing importance, not release
171 date.
173 The nqmgr queue manager is now bundled with Postfix. It implements
174 a smarter scheduling strategy that allows ordinary mail to slip
175 past mailing list mail, resulting in better response. This queue
176 manager is expected to become the default queue manager shortly.
178 [snapshot-20010709, snapshot-20010808] VERP (variable envelope
179 return path) support.  This is enabled by default, including in
180 the SMTP server. See the VERP_README file for instructions.  Specify
181 "disable_verp_bounces = yes" to have Postfix send one RFC-standard,
182 non-VERP, bounce report for multi-recipient mail, even when VERP
183 style delivery was requested.  This reduces the explosive behavior
184 of bounces when sending mail to a list.
186 [snapshot-20010709] QMQP server support, so that Postfix can be
187 used as a backend mailer for the ezmlm-idx mailing list manager.
188 You still need qmail to drive ezmlm and to process mailing list
189 bounces. The QMQP service is disabled by default. To enable, follow
190 the instructions in the QMQP_README file.
192 [snapshot-20010709] You can now reject unknown virtual(8) recipients
193 at the SMTP port by specifying a "domain.name whatever" entry in
194 the tables specified with virtual_mailbox_maps, similar to Postfix
195 virtual(5) domains.  [virtual(8) is the Postfix virtual delivery
196 agent, virtual(5) is the Postfix virtual map. The two implement
197 virtual domains in a very different manner.]
199 [snapshot-20011121] Configurable host/domain name wildcard matching
200 behavior: choice between "pattern `domain.name' matches string
201 `host.domain.name'" (this is to be deprecated in the future) and
202 "pattern `.domain.name' matches string `host.domain.name'" (this
203 is to be preferred in the future).  The configuration parameter
204 "parent_domain_matches_subdomains" specifies which Postfix features
205 use the behavior that will become deprecated.
207 [snapshot-20010808] Variable coupling between message receiving
208 rates and message delivery rates. When the message receiving rate
209 exceeds the message delivery rate, an SMTP server will pause for
210 $in_flow_delay seconds before accepting a message.  This delay
211 gives Postfix a chance catch up and access the disk, while still
212 allowing new mail to arrive.  This feature currently has effect
213 only when mail arrives via a small number of SMTP clients.
215 [snapshot-20010610, snapshot-20011121, snapshot-20011210] Workarounds
216 for a bug in old versions of the CISCO PIX firewall software that
217 caused mail to be resent repeatedly.  The workaround has no effect
218 for other mail deliveries. The workaround is turned off when mail
219 is queued for less than $smtp_pix_workaround_threshold_time seconds
220 (default:  500 seconds) so that the workaround is normally enabled
221 only for deferred mail.  The delay before sending .<CR><LF> is now
222 controlled by the $smtp_pix_workaround_delay_time setting (default:
223 10 seconds).
225 [snapshot-20011226] Postfix will now do null address lookups in
226 SMTPD access maps.  If your access maps cannot store or look up
227 null string key values, specify "smtpd_null_access_lookup_key =
228 <>" and the null sender address will be looked up as <> instead.
230 [snapshot-20011210] More usable virtual delivery agent, thanks to
231 a new "static" map type by Jeff Miller that always returns its map
232 name as the lookup result. This eliminates the need for per-recipient
233 user ID and group ID tables.  See the VIRTUAL_README file for more
234 details.
236 [snapshot-20011125] Anti-sender spoofing. New main.cf parameter
237 smtpd_sender_login_maps that specifies the (SASL) login name that
238 owns a MAIL FROM sender address.  Specify a regexp table in order
239 to require a simple one-to-one mapping.  New SMTPD restriction
240 reject_sender_login_mismatch that refuses a MAIL FROM address when
241 $smtpd_sender_login_maps specifies an owner but the client is not
242 (SASL) logged in as the MAIL FROM address owner, or when a client
243 is (SASL) logged in but does not own the address according to
244 $smtpd_sender_login_maps.
246 [snapshot-20011121] The mailbox_command_maps parameter allows you
247 to configure the external delivery command per user (local delivery
248 agent only).  This feature has precedence over the mailbox_command
249 and home_mailbox settings.
251 [snapshot-20011121] New "warn_if_reject" smtpd UCE restriction that
252 only warns if the restriction that follows would reject mail.  Look
253 for file records that contain the string "reject_warning".
255 [snapshot-20011127] New header/body_check result "WARN" to make
256 Postfix log a warning about a header/body line without rejecting
257 the content.
259 [snapshot-20011103] In header/body_check files, REJECT can now be
260 followed by text that is sent to the originator. That feature was
261 stuck waiting for years, pending the internal protocol revision.
263 [snapshot-20011008] The permit_mx_backup feature allows you to
264 specify network address blocks via the permit_mx_backup_networks
265 parameter.  This requires that the primary MX hosts for the given
266 destination match the specified network blocks. When no value is
267 given for permit_mx_backup_networks, Postfix will accept mail
268 whenever the local MTA is listed in the DNS as an MX relay host
269 for a destination, even when you never gave permission to do so.
271 [snapshot-20010709] Specify "mail_spool_directory = /var/mail/"
272 (note the trailing "/" character) to enable maildir format for
273 /var/mail/username.
275 [snapshot-20010808] Finer control over address masquerading. The
276 masquerade_classes parameter now controls header and envelope sender
277 and recipient addresses.  With earlier Postfix versions, address
278 masquerading rewrote all addresses except for the envelope recipient.
280 [snapshot-20010610] The pipe mail delivery agent now supports proper
281 quoting of white space and other special characters in the expansions
282 of the $sender and $recipient command-line macros. This was necessary
283 for correct operation of the "simple" content filter, and is also
284 recommended for delivery via UUCP or BSMTP.
286 [snapshot-20010610] The pipe mail delivery agent now supports case
287 folding the localpart and/or domain part of expansions of the
288 $nexthop, $recipient, $user, $extension or $mailbox command-line
289 macros. This is recommended for mail delivery via UUCP. Bug: $nexthop
290 is always case folded because of problems in the queue manager
291 code.
293 [snapshot-20010525] This release contains many little revisions of
294 little details in the light of the new RFC 2821 and RFC 2822
295 standards. Changes that may affect interoperability are listed
296 above under "incompatible changes".  Other little details are
297 discussed in comments in the source code.
299 [snapshot-20010502] The Postfix SMTP client now by default randomly
300 shuffles destination IP addresses of equal preference (whether
301 obtained via MX lookup or otherwise). Reportedly, this is needed
302 for sites that use Bernstein's dnscache program. Specify
303 "smtp_randomize_addresses = no" to disable this behavior. Based on
304 shuffling code by Aleph1.
306 [snapshot-20011127] New parameter smtpd_noop_commands to specify
307 a list of commands that the Postfix SMTP server treats as NOOP
308 commands (no syntax check, no state change). This is a workaround
309 for misbehaving clients that send unsupported commands such as
310 ONEX.
312 [snapshot-20010502] "postmap -q -" and "postmap -d -" read key
313 values from standard input, which makes it easier to drive them
314 from another program.  The same feature was added to the postalias
315 command.
317 [snapshot-20010502] The postsuper command now has a command-line
318 option to delete queue files.  In principle this command can be
319 used while Postfix is running, but there is a possibility of deleting
320 the wrong queue file when Postfix deletes a queue file and reuses
321 the queue ID for a new message.  In that case, postsuper will delete
322 the new message.
324 [snapshot-20010525] The postsuper queue maintenance tool now renames
325 files whose name (queue ID) does not match the message file inode
326 number. This is necessary after a Postfix mail queue is restored
327 from another machine or from backups.  The feature is selected with
328 the -s option, which is the default, and runs whenever Postfix is
329 started.
331 [snapshot-20010525] The postsuper queue maintenance tool has a new
332 -r (requeue) option for subjecting some or all queue files to
333 another iteration of address rewriting. This is useful after the
334 virtual or canonical maps have changed.
336 [snapshot-20010525] The postsuper queue maintenance tool was extended
337 with options to read queue IDs from standard input. This makes the
338 tool easier to drive from scripts.
340 [snapshot-20010329] Better support for running multiple Postfix
341 instances on one machine. Each instance can be recognized by its
342 logging (defaults:  "syslog_name = postfix", "syslog_facility =
343 mail").
345 Major incompatible changes with release-20010228 Patch 01 (a.k.a. Postfix 1.0.1)
346 ================================================================================
348 This release changes the names of the "fast ETRN" logfiles with
349 delayed mail per destination. These files are maintained by the
350 Postfix "fast flush" daemon. The old scheme failed with addresses
351 of the form user@[ip.address] and user@a.domain.name.  In order to
352 populate the new "fast ETRN" logfiles, execute the command "sendmail
353 -q".  The old "fast ETRN" logfiles go away by themselves (default:
354 after 7 days).
356 Major incompatible changes with release-20010228 (a.k.a. Postfix 1.0.0)
357 =======================================================================
359 [snapshot-20010225] POSTFIX NO LONGER RELAYS MAIL FOR CLIENTS IN
360 THE ENTIRE CLASS A/B/C NETWORK. To get the old behavior, specify
361 "mynetworks_style = class" in the main.cf file. The default
362 (mynetworks_style = subnet) is to relay for clients in the local
363 IP subnet. See conf/main.cf.
365 [snapshot-20001005, snapshot-20010225] You must execute "postfix
366 stop" before installing this release.  Some recommended parameter
367 settings have changed, and a new entry must be added to the master.cf
368 file before you can start Postfix again.
370 1 - The recommended Postfix configuration no longer uses flat
371     directories for the "incoming" "active", "bounce", and "defer"
372     queue directories.  The "flush" directory for the new "flush"
373     service directory should not be flat either.
375     Upon start-up, Postfix checks if the hash_queue_names configuration
376     parameter is properly set up, and will add any queue directory
377     names that are missing.
379 2 - In order to improve performance of one-to-one mail deliveries
380     the queue manager will now look at up to 10000 queue files
381     (was: 1000).  The default qmgr_message_active_limit setting
382     was changed accordingly.
384     If you have a non-default qmgr_message_active_limit in main.cf,
385     you may want adjust it.
387 3 - The new "flush" service needs to be configured in master.cf.
389     Upon start-up, Postfix checks if the new "flush" service is
390     configured in the master.cf file, and will add an entry if it
391     is missing.
393 Should you wish to back out to a previous Postfix release there is
394 no need to undo the above queue configuration changes.
396 [snapshot-20000921] The protocol between queue manager and delivery
397 agents has changed.  This means that you cannot mix the Postfix
398 queue manager or delivery agents with those of Postfix versions
399 prior to 20000921. This change does not affect Postfix queue file
400 formats.
402 [snapshot-20000529] This release introduces an incompatible queue
403 file format change ONLY when content filtering is enabled (see text
404 in FILTER_README). Old Postfix queue files will work fine, but
405 queue files with the new content filtering info will not work with
406 Postfix versions before 20000529.  Postfix logs a warning and moves
407 incompatible queue files to the "corrupt" mail queue subdirectory.
409 Minor incompatible changes with release-20010228
410 ================================================
412 [snapshot-20010225] The incoming and deferred queue directories
413 are now hashed by default.  This improves the performance considerably
414 under heavy load, at the cost of a small but noticeable slowdown
415 when one runs "mailq" on an unloaded system.
417 [snapshot-20010222] Postfix no longer automatically delivers
418 recipients one at a time when their domain is listed in $mydestination.
419 This change solves delivery performance problems with delivery via
420 LMTP, with virus scanning, and with firewall relays that forward
421 all mail for $mydestination to an inside host.
423 The "one recipient at a time" delivery behavior is now controlled
424 by the per-transport recipient limit (xxx_destination_recipient_limit,
425 where xxx is the name of the delivery mechanism).  This parameter
426 controls the number of recipients that can be sent in one delivery
427 (surprise).
429 The setting of the per-transport recipient limit also controls the
430 meaning of the per-transport destination concurrency limit (named
431 xxx_destination_concurrency_limit, where xxx is again the name of
432 the delivery mechanism):
434  1) When the per-transport recipient limit is 1 (i.e., send one
435     recipient per delivery), the per-transport destination concurrency
436     limit controls the number of simultaneous deliveries to the
437     same recipient.  This is the default behavior for delivery via
438     the Postfix local delivery agent.
440  2) When the per-transport recipient limit is > 1 (i.e., send
441     multiple recipients per delivery), the per-transport destination
442     concurrency limit controls the number of simultaneous deliveries
443     to the same domain.  This is the default behavior for all other
444     Postfix delivery agents.
446 [snapshot-20010128] The Postfix local delivery agent now enforces
447 mailbox file size limits (default: mailbox_size_limit = 51200000).
448 This limit affects all file write access by the local delivery
449 agent or by a process run by the local delivery agent. The purpose
450 of this parameter is to act as a safety for run-away software. It
451 cannot be a substitute for a file quota management system. Specify
452 a limit of 0 to disable.
454 [snapshot-20010128] REJECT in header/body_checks is now flagged as
455 policy violation rather than bounce, for consistency in postmaster
456 notifications.
458 [snapshot-20010128] The default RBL (real-time blackhole lists)
459 domain examples have been changed from *.vix.com to *.mail-abuse.org.
461 [snapshot-20001210] Several interfaces of libutil and libglobal
462 routines have changed.  This may break third-party code written
463 for Postfix. In particular, the safe_open() routine has changed,
464 the way the preferred locking method is specified in the sys_defs.h
465 file, as well as all routines that perform file locking. When
466 compiling third-party code written for Postfix, the incompatibilities
467 will be detected by the compiler provided that #include file
468 dependencies are properly maintained.
470 [snapshot-20001210] When delivering to /file/name (as directed in
471 an alias or .forward file), the local delivery agent now logs a
472 warning when it is unable to create a /file/name.lock file. Mail
473 is still delivered as before.
475 [snapshot-20001210] The "sun_mailtool_compatibility" feature is
476 going away (a compatibility mode that turns off kernel locks on
477 mailbox files). It still works, but a warning is logged. Instead
478 of using "sun_mailtool_compatibility", specify the mailbox locking
479 strategy as "mailbox_delivery_lock = dotlock".
481 [snapshot-20001210] The Postfix SMTP client now skips SMTP server
482 replies that do not start with "CODE SPACE" or with "CODE HYPHEN"
483 and flags them as protocol errors. Older Postfix SMTP clients
484 silently treated "CODE TEXT" as "CODE SPACE TEXT", i.e. as a valid
485 SMTP reply.
487 [snapshot-20001121] On RedHat Linux 7.0, you must install the
488 db3-devel RPM before you can compile the Postfix source code.
490 [snapshot-20000924] The postmaster address in the "sorry" text at
491 the top of bounced mail is now just postmaster, not postmaster@machine.
492 The idea is to refer users to their own postmaster.
494 [snapshot-20000921] The notation of [host:port] in transport tables
495 etc. is going away but it is still supported. The preferred form
496 is now [host]:port.  This change is necessary to support IPV6
497 address forms which use ":" as part of a numeric IP address. In a
498 future release, Postfix will log a warning when it encounters the
499 [host:port] form.
501 [snapshot-20000921] In mail headers, Errors-To:, Reply-To: and
502 Return-Receipt:  addresses are now rewritten as a sender address
503 (was: recipient).
505 [snapshot-20000921] Postfix no longer inserts Sender: message
506 headers.
508 [snapshot-20000921] The queue manager now logs the original number
509 of recipients when opening a queue file (example: from=<>, size=3502,
510 nrcpt=1).
512 [snapshot-20000921] The local delivery agent no longer appends a
513 blank line to mail that is delivered to external command.
515 [snapshot-20000921] The pipe delivery agent no longer appends a
516 blank line when the F flag is specified (in the master.cf file).
517 Specify the B flag if you need that blank line.
519 [snapshot-20000507] As required by RFC 822, Postfix now inserts a
520 generic destination message header when no destination header is
521 present.  The text is specified via the undisclosed_recipients_header
522 configuration parameter (default:  "To: undisclosed-recipients:;").
524 [snapshot-20000507] The Postfix sendmail command treats a line with
525 only `.' as the end of input, for the sake of sendmail compatibility.
526 To disable this feature, specify the sendmail-compatible `-i' or
527 `-oi' flags on the sendmail command line.
529 [snapshot-20000507] For the sake of Sendmail compatibility, the
530 Postfix SMTP client skips over SMTP servers that greet with a 4XX
531 or 5XX reply code, treating them as unreachable servers.  To obtain
532 prior behavior (4XX=retry, 5XX=bounce), specify "smtp_skip_4xx_greeting
533 = no" and "smtp_skip_5xx_greeting = no".
535 Major changes with release-20010228
536 ===================================
538 Postfix produces DSN formatted bounced/delayed mail notifications.
539 The human-readable text still exists, so that users will not have
540 to be unnecessarily confused by all the ugliness of RFC 1894.  Full
541 DSN support will be later.
543 This release introduces full content filtering through an external
544 process. This involves an incompatible change in queue file format.
545 Mail is delivered to content filtering software via an existing
546 mail delivery agent, and is re-injected into Postfix via an existing
547 mail submission agent.  See examples in the FILTER_README file.
548 Depending on how the filter is implemented, you can expect to lose
549 a factor of 2 to 4 in delivery performance of SMTP transit mail,
550 more if the content filtering software needs lots of CPU or memory.
552 Specify "body_checks = regexp:/etc/postfix/body_checks" for a quick
553 and dirty emergency content filter that looks at non-header lines
554 one line at a time (including MIME headers inside the message body).
555 Details in conf/sample-filter.cf.
557 The header_checks and body_checks features can be used to strip
558 out unwanted data. Specify IGNORE on the right-hand side and the
559 data will disappear from the mail.
561 Support for SASL (RFC 2554) authentication in the SMTP server and
562 in the SMTP and LMTP clients. See the SASL_README file for more
563 details. This file still needs better examples.
565 Postfix now ships with an LMTP delivery agent that can deliver over
566 local/remote TCP sockets and over local UNIX-domain sockets.  The
567 LMTP_README file gives example, but still needs to be revised.
569 Fast "ETRN" and "sendmail -qR".  Postfix maintains per-destination
570 logfiles with information about what mail is queued for selected
571 destinations.  See the file ETRN_README for details.
573 The mailbox locking style is now fully configurable at runtime.
574 The new configuration parameter is called "mailbox_delivery_lock".
575 Depending on the operating system type, mailboxes can be locked
576 with one or more of "flock", "fcntl" or "dotlock".  The command
577 "postconf -l" shows the available locking styles.  The default
578 mailbox locking style is system dependent.  This change affects
579 all mailbox and all "/file/name" deliveries by the Postfix local
580 delivery agent.
582 Minor changes with release-20010228
583 ===================================
585 You can now specify multiple SMTP destinations in the relayhost
586 and fallback_relay configuration parameters. The destinations are
587 tried in the specified order. Specify host or host:port (perform
588 MX record lookups), [host] or [host]:port (no MX record lookups),
589 [address] or [address]:port (numerical IP address).
591 The "mailbox_transport" and "fallback_transport" parameters now
592 understand the form "transport:nexthop", with suitable defaults
593 when either transport or nexthop are omitted, just like in the
594 Postfix transport map. This allows you to specify for example,
595 "mailbox_transport = lmtp:unix:/file/name".
597 The local_transport and default_transport configuration parameters
598 can now be specified in transport:destination notation, just like
599 the mailbox_transport and fallback_transport parameters.  The
600 :destination part is optional.  However, these parameters take only
601 one destination, unlike relayhost and fallback-relay which take
602 any number of destinations.
604 More general virtual domain support.  Postfix now supports both
605 Sendmail-style virtual domains and Postfix-style virtual domains.
606 Details and examples are given in the revised virtual manual page.
608 - With Sendmail-style virtual domains, local users/aliases/mailing
609   lists are visible as localname@virtual.domain. This is convenient
610   if you want to host mailing lists under virtual domains.
612 - With Postfix-style virtual domains, local users/aliases/mailing
613   lists are not visible as localname@virtual.domain. Each virtual
614   domain has its own separate name space.
616 More general "soft bounce" feature.  Specify "soft_bounce = yes"
617 in main.cf to prevent the SMTP server from bouncing mail while you
618 are testing configurations. Until this release the SMTP server was
619 not aware of soft bounces.
621 Workarounds for non-standard RFC 2554 (AUTH command) implementations.
622 Specify "broken_sasl_auth_clients = yes" to enable SMTP server
623 support for old Microsoft client applications. The Postfix SMTP
624 client supports non-standard RFC 2554 servers by default.
626 All time-related configuration parameters now accept a one-letter
627 suffix to indicate the time unit (s: second, m: minute, h: hour,
628 d: day, w: week). The exceptions are the LDAP and MYSQL modules
629 which are maintained separately.
631 New "import_environment" and "export_environment" configuration
632 parameters provide explicit control over what environment variables
633 Postfix will import, and what environment variables Postfix will
634 pass on to a non-Postfix process.
636 In order to improve performance of one-to-one deliveries, Postfix
637 by default now looks at up to 10000 messages at a time (was: 1000).
639 Specify "syslog_facility = log_local1" etc. to separate the logging
640 from multiple Postfix instances. However, a non-default logging
641 facility takes effect only after process initialization. Errors
642 during command-line parsing are still logged with the default syslog
643 facility, as are errors while processing the main.cf file.
645 Postfix now strips out Content-Length: headers in incoming mail to
646 avoid confusion in mail user agents.
648 Specify "require_home_directory = yes" to prevent mail from being
649 delivered to a user whose home directory is not mounted. This
650 feature is implemented by the Postfix local delivery agent.
652 The pipe mailer has a size limit (size=nnn) command-line argument.
654 The pipe delivery agent has a configurable end-of-line attribute.
655 Specify "pipe ... eol=\r\n" for delivery mechanisms that require
656 CRLF record delimiters. The eol attribute understands the following
657 C-style escape sequences:  \a \b \f \n \r \t \v \nnn \\.
659 In master.cf you can selectively override main.cf configuration
660 parameters, for example: "smtpd -o myhostname=foo.com".
662 In main.cf, specify "smtp_bind_address=x.x.x.x" to bind SMTP
663 connections to a specific local interface. Or override the default
664 setting in master.cf with "smtp -o smtp_bind_address=x.x.x.x".
665 For now, you must specify a numeric IP address.
667 Questionable feature: with "smtp_always_send_ehlo = yes", the SMTP
668 client sends EHLO regardless of the content of the SMTP server's
669 greeting.
671 Specify "-d key" to postalias or postmap in order to remove one
672 key. This still needs to be generalized to multi-key removal (e.g.,
673 read keys from stdin).
675 Comments in Postfix configuration files no longer contain troff
676 formatting codes.  The text is now generated from prototype files
677 in a new "proto" subdirectory.
679 Major changes with postfix-19991231:
680 ====================================
682 - It is now much more difficult to configure Postfix as an open
683 relay. The SMTP server requires that "smtpd_recipient_restrictions"
684 contains at least one restriction that by default refuses mail (as
685 is the default).  There were too many accidents with changes to
686 the UCE restrictions.
688 - The relay_domains parameter no longer needs to contain $virtual_maps.
690 - Overhauled FAQ (html/faq.html) with many more examples.
692 - Updated UCE documentation (html/uce.html) with more examples.
693 More UCE configuration examples in sample configuration files.
695 - Several little improvements to the installation procedure:
696 relative symlinks, configurable directory for scratch files so the
697 installation can be done without write access to the build tree.
699 - Updated LDAP client code (John Hensley).
701 - Updated mysql client code (Scott Cotton).
703 - The SMTP server now rejects mail for unknown users in virtual
704 domains that are defined by Postfix virtual maps.
706 - The SMTP server can reject mail for unknown local users.  Specify
707 "local_recipient_maps = $alias_maps, unix:passwd.byname" if your
708 local mail is delivered by a UNIX-style local delivery agent.  See
709 example in conf/main.cf.
711 - Use "disable_vrfy_command = yes" to disable the SMTP VRFY command.
712 This prevents some forms of address harvesting.
714 - The sendmail "-f" option now understands <user> and even understands
715 forms with RFC 822-style comments.
717 - New "qmgr_fudge_factor" parameter allows you to balance mailing
718 list performance against response time for one-to-one mail.  The
719 fudge factor controls what percentage of delivery resources Postfix
720 will devote to one message.  With 100%, delivery of one message
721 does not begin before delivery of the previous message is completed.
722 This is good for list performance, bad for one-to-one mail. With
723 10%, response time for one-to-one mail improves much, but list
724 performance suffers: in the worst case, people near the start of a
725 mailing list get a burst of postings today, while people near the
726 end of the list get that same burst of postings a whole day later.
728 - It is now relatively safe to configure 550 status codes for the
729 main.cf unknown_address_reject_code or unknown_client_reject_code
730 parameters.  The SMTP server now always sends a 450 (try again)
731 reply code when an UCE restriction fails due to a soft DNS error,
732 regardless of what main.cf specifies.
734 - The RBL checks now show the content of TXT records (Simon J Mudd).
736 - The Postfix SMTP server now understands a wider range of illegal
737 address forms in MAIL FROM and RCPT TO commands. In order to disable
738 illegal forms, specify "strict_rfc821_envelopes = yes". This also
739 disables support for MAIL FROM and RCPT TO addresses without <>.
741 - Per-client/helo/sender/recipient UCE restrictions (fully-recursive
742 UCE restriction parser). See the RESTRICTION_CLASS file for details.
744 - Use "postmap -q key" or "postalias -q key" for testing Postfix
745 lookup tables or alias files.
747 - Use "postconf -e name=value..." to edit the main.cf file.  This
748 is easier and safer than editing the main.cf file by hand. The
749 edits are done on a temporary copy that is renamed into place.
751 - Use "postconf -m" to display all supported lookup table types
752 (Scott Cotton).
754 - New "permit_auth_destination" UCE restriction for finer-grained
755 access control (Jesper Skriver).
757 Incompatible changes with postfix-19990906
758 ==========================================
760 - On systems that use user.lock files to protect system mailboxes
761 against simultaneous updates, Postfix now uses /file/name.lock
762 files while delivering to files specified in aliases/forward/include
763 files. This is a no-op when the recipient lacks directory write
764 permission.
766 - The LDAP client code no longer looks up a name containing "*"
767 because it could be abused.  See the LDAP_README file for how to
768 restore previous behavior.
770 - The Postfix to PCRE interface now expects PCRE version 2.08.
771 Postfix is no longer compatible with PCRE versions prior to 2.06.
773 Major changes with postfix-19990906
774 ===================================
776 Several bugfixes, none related to security.  See the HISTORY file
777 for a complete list of changes.
779 - Postfix is now distributed under IBM Public License Version 1.0
780 which does not carry the controversial termination clause. The new
781 license does have a requirement that contributors make source code
782 available.
784 - INSTALL.sh install/upgrade procedure that replaces existing
785 programs and shell scripts instead of overwriting them, and that
786 leaves existing queue files and configuration files alone.
788 - The ugly Delivered-To: header can now be turned off selectively.
789 The default setting is:  "prepend_delivered_header = command, file,
790 forward".  Turning off the Delivered-To:  header when forwarding
791 mail is not recommended.
793 - mysql client support by Scott Cotton and Joshua Marcus, Internet
794 Consultants Group, Inc. See the file MYSQL_README for instructions.
796 - reject_unauth_destination SMTP recipient restriction that rejects
797 destinations not in $relay_domains. Unlike the check_relay_domains
798 restriction, reject_unauth_destination ignores the client hostname.
799 By Lamont Jones of Hewlett-Packard.
801 - reject_unauth_pipelining SMTP *anything* restriction to stop mail
802 from spammers that improperly use SMTP command pipelining to speed
803 up their deliveries.
805 - Postfix "sendmail" now issues a warning and drops privileges if
806 installed set-uid root.
808 - No more duplicate delivery when "postfix reload" is immediately
809 followed by "sendmail -q".
811 - No more "invalid argument" errors when a Postfix daemon opens a
812 DB/DBM file while some other process is changing the file.
814 - Portability to the Mac OS X Server, Reliant Unix, AIX 3.2.5 and
815 Ultrix 4.3.
817 Incompatible changes with postfix-19990601:
818 ===========================================
820 - The SMTP server now delays all UCE restrictions until the RCPT
821 TO, VRFY or ETRN command. This makes the restrictions more useful,
822 because many SMTP clients do not expect negative responses earlier
823 in the protocol.  In order to restore the old behavior, specify
824 "smtpd_delay_reject = no" in /etc/postfix/main.cf.
826 - The Postfix local delivery agent no longer automatically propagates
827 address extensions to aliases/include/forward addresses.  Specify
828 "propagate_unmatched_extensions = canonical, virtual, alias, forward,
829 include" to restore the old behavior.
831 - The Postfix local delivery agent no longer does $name expansion
832 on words found in the mailbox_command configuration parameter. This
833 makes it easier to specify shell syntax. See conf/main.cf.
835 - The luser_relay syntax has changed. You can specify one address;
836 it is subjected to $user, etc. expansions. See conf/main.cf.
838 - File system reorganization: daemon executables are now in the
839 libexec subdirectory, command executables in the bin subdirectory.
840 The INSTALL instructions now recommend installing daemons and
841 commands into separate directories.
843 Major changes with postfix-19990601:
844 =====================================
846 - New USER, EXTENSION, LOCAL, DOMAIN and RECIPIENT environment
847 variables for delivery to command (including mailbox_command) by
848 the local delivery agent. As you might expect, the information is
849 censored. The list of acceptable characters is specified with the
850 command_expansion_filter configuration parameter.  Unacceptable
851 characters are replaced by underscores. See html/local.8.html.
853 - Specify "forward_path = /var/forward/$user" to avoid looking up
854 .forward files in user home directories.  The default value is
855 $home/.forward$recipient_delimiter$extension, $home/.forward.
856 Initial code by Philip A.  Prindeville, Mirapoint, Inc., USA.
858 - Conditional $name expansion in forward_path and luser_relay.
859 Available names are: $user (bare user name) $shell (user login
860 shell), $home (user home directory), $local (everything to the left
861 of @), $extension (optional address extension), $domain (everything
862 to the right of @), $recipient (the complete address) and
863 $recipient_delimiter.  A simple $name expands as usual.  ${name?value}
864 expands to value when $name is defined.  ${name:value} expands to
865 value when $name is not defined. With ${name?value} and ${name:value},
866 the value is subject to another iteration of $name expansion.
868 - POSIX regular expression support, enabled by default on 4.4BSD,
869 LINUX, HP-UX, and Solaris 2.5 and later. See conf/sample-regexp.cf.
870 Initial code by Lamont Jones, Hewlett-Packard, borrowing heavily
871 from the PCRE implementation by Andrew McNamara, connect.com.au
872 Pty. Ltd., Australia.
874 - Regular expression checks for message headers.  This requires
875 support for POSIX or for PCRE regular expressions.  Specify
876 "header_checks = regexp:/file/name" or "header_checks = pcre:/file/name",
877 and specify "/^header-name:  badstuff/ REJECT" in the pattern file
878 (patterns are case-insensitive by default).  Code by Lamont Jones,
879 Hewlett-Packard.  It is to be expected that full content filtering
880 will be delegated to an external command.
882 - Regular expression support for all lookup tables, including access
883 control (full mail addresses only), address rewriting (canonical/virtual,
884 full mail addresses only) and transport tables (full domain names
885 only).  However, regular expressions are not allowed for aliases,
886 because that would open up security exposures.
888 - Automatic detection of changes to DB or DBM lookup tables.  This
889 eliminates the need to run "postfix reload" after each change to
890 the SMTP access table, or to the canonical, virtual, transport or
891 aliases tables.
893 - New error mailer. Specify ".domain.name error:domain is undeliverable"
894 in the transport table to bounce mail for entire domains.
896 - No more Postfix lockups on Solaris (knock on wood). The code no
897 longer uses Solaris UNIX-domain sockets, because they are still
898 broken, even with Solaris 7.
900 - Workaround for the Solaris mailtool, which keeps an exclusive
901 kernel lock on the mailbox while its window is not iconified (specify
902 "sun_mailtool_compatibility = yes" in main.cf).
904 - Questionable workaround for Solaris, which reportedly loses
905 long-lived exclusive locks that are held by the master daemon.
907 - New reject_unknown_{sender,recipient}_domain restrictions for
908 sender and recipient mail addresses that distinguish between soft
909 errors (always 450) and hard errors (unknown_address_reject_code,
910 default 450).
912 - MIME-encapsulated bounce messages, making it easier to recover
913 bounced mail. Initial implementation by Philip A.  Prindeville,
914 Mirapoint, Inc., USA. Support for RFC 1892 (multipart/report) and
915 RFC 1894 (DSN) will have to wait until Postfix internals have been
916 revised to support RFC 1893.
918 - Separately configurable "postmaster" addresses for single bounces
919 (bounce_notice_recipient), double bounces (2bounce_notice_recipient),
920 delayed mail (delay_notice_recipient), and for mailer error reports
921 (error_notice_recipient). See conf/main.cf.
923 - Questionable feature: specify "best_mx_transport = local" if
924 this machine is the best MX host for domains not in mydestinations.
926 Incompatible changes with postfix-19990317:
927 ===========================================
929 - You MUST install the new version of /etc/postfix/postfix-script.
931 - The pipe mailer "flags" syntax has changed. You now explicitly
932 MUST specify the R flag in order to generate a Return-Path:  message
933 header (as needed by, for example, cyrus).
935 Major changes with postfix-19990317:
936 ====================================
938 A detailed record of changes is given in the HISTORY file.
940 - Less postmaster mail. Undeliverable bounce messages (double
941 bounces) are now discarded. Specify "notify_classes = 2bounce..."
942 to get copies of double bounces. Specify "notify_classes = bounce..."
943 to get copies of normal and double bounces.
945 - Improved LDAP client code by John Hensley of Merit Network, USA.
946 See LDAP_README for details.
948 - Perl-compatible regular expression support for lookup maps by
949 Andrew McNamara, connect.com.au Pty. Ltd., Australia..  Example:
950 "check_recipient_access pcre:/etc/postfix/sample-pcre.cf". Regular
951 expressions provide a powerful tool not only for SMTP access control
952 but also for address rewriting. See PCRE_README for details.
954 - Automatic notification of delayed mail (disabled by default).
955 With "delay_warning_time = 4", Postfix informs senders when mail
956 has not been delivered after 4 hours. Initial version of the code
957 by Daniel Eisenbud, University of California at Berkeley. In order
958 to get postmaster copies of such warnings, specify "notify_classes
959 = delay...".
961 - More configurable local delivery: "mail_spool_directory" to
962 specify the UNIX mail spool directory; "mailbox_transport" to
963 delegate all mailbox delivery to, for example, cyrus, and
964 "fallback_transport" to delegate delivery of only non-UNIX users.
965 And all this without losing local aliases and local .forward
966 processing.  See config/main.cf and config/master.cf.
968 - Several changes to improve Postfix behavior under worst-case
969 conditions (frequent Postfix restarts/reloads combined with lots
970 if inbound mail, intermittent connectivity problems, SMTP servers
971 that become comatose after receiving QUIT).
973 - More NFS-friendly mailbox delivery. The local delivery agent
974 now avoids using root privileges where possible.
976 - For sites that do not receive mail at all, mydestination can now
977 be an empty string. Be sure to set up a transport table entry to
978 prevent mail from looping.
980 - New "postsuper" utility to clean up stale files from Postfix
981 queues.
983 - Workaround for BSD select() collisions that cause performance
984 problems on large BSD systems.
986 - Several questionable but useful features to capture mail:
987 "always_bcc = address" to capture a copy of every message that
988 enters the system, and "luser_relay = address" to capture mail for
989 unknown recipients (does not work when mailbox_transport or
990 fallback_transport are being used).
992 - Junk mail controls: new reject_non_fqdn_{hostname,sender,recipient}
993 restrictions to reject non-FQDN arguments in HELO, MAIL FROM and
994 RCPT TO commands, and stricter checking of numeric HELO arguments.
996 - "fallback_relay" feature for sites that use DNS but that can't
997 talk to the entire world. The fall-back relay gets the mail when
998 a destination is not found in the DNS or when the destination is
999 found but not reachable.
1001 - Several questionable controls that can help to keep mail going:
1002 specify "smtp_skip_4xx_greeting = yes" to skip SMTP servers that
1003 greet with 4XX, "ignore_mx_lookup_error = yes" to look up an A
1004 record when a DNS server does not respond to an MX query.
1006 Incompatible changes with postfix-beta-19990122-pl01:
1007 =====================================================
1009 None.
1011 Major changes with postfix-beta-19990122-pl01:
1012 ==============================================
1014 - Restrict who may use ETRN and what domains may be specified.
1015 Example:  "smtpd_etrn_restrictions = permit_mynetworks, reject".
1017 - BIFF notifications.  For compatibility reasons this feature is
1018 on by default.  Specify "biff = no" in main.cf if your machine has
1019 lots of shell users.
1021 - With "soft_bounce = yes", defer delivery instead of bouncing
1022 mail. This is a safety net for configuration errors with delivery
1023 agents. It has no effect on errors in virtual maps, canonical maps,
1024 or in junk mail restrictions.
1026 - Specify "owner_request_special = no" to turn off special treatment
1027 of owner-foo and foo-request addresses.
1029 Incompatible changes with postfix-beta-19990122:
1030 ================================================
1032 - The syntax of the transport table has changed. An entry like:
1034         customer.org    smtp:[gateway.customer.org]
1036   no longer forwards mail for anything.customer.org. For that you
1037   need to specify:
1039         customer.org    smtp:[gateway.customer.org]
1040         .customer.org   smtp:[gateway.customer.org]
1042   This change makes transport tables more compatible with
1043   sendmail mailer tables.
1045 - The format of syslog records has changed. A client is now always
1046 logged as hostname[address]; the pickup daemon logs queue file uid
1047 and sender address.
1049 Major changes with postfix-beta-19990122:
1050 =========================================
1052 - Junk mail restrictions can now be postponed to the RCPT TO command.
1053 Specify: "smtpd_recipient_restrictions = reject_maps_rbl...".
1055 - More flexible interface for delivery to e.g., cyrus IMAP without
1056 need for PERL scripts to munge recipient addresses. In addition to
1057 $sender, $nexthop and $recipient, the pipe mailer now also supports
1058 $user, $extension and $mailbox.
1060 - New mail now has precedence over deferred mail, plus some other
1061 tweaks to make bulk mail go faster. But it ain't no cure for massive
1062 network outages.
1064 - Watchdog timer for systems that cause the Postfix queue manager
1065 to lock up, so it recovers without human intervention.
1067 - Delivery to qmail-style maildir files, which is good for NFS
1068 environments.  Specify "home_mailbox = Maildir/", or specify
1069 /file/name/ in aliases or in .forward files. The trailing / is
1070 required to turn on maildir delivery.
1072 - Incremental updates of aliases and maps. Specify "postmap -i
1073 mapname" and it will read new entries from stdin.
1075 - Newaliases will now update more than one alias database.
1076 Specify the names with the main.cf "alias_database" parameter.
1078 - Address masquerading exceptions to prevent users from being
1079 masqueraded. Specify "masquerade_exceptions = root".
1081 - A pipelined SMTP client. Deliveries to Postfix, qmail, LSOFT,
1082 zmailer, and exim (once it's fixed) speed up by some 30% for short
1083 messages with one recipient, with more for multi-recipient mails.
1085 - Hook for local delivery to "|command" via the smrsh restricted
1086 shell, to restrict what commands may be used in .forward etc. files.
1087 Specify "local_command_shell = /some/where/smrsh -c".