1 ==============================================================
2 NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
3 ==============================================================
4 Before upgrading from Postfix 1.1 you must stop Postfix ("postfix
5 stop"). Some internal protocols have changed. No mail will be
6 lost if you fail to stop and restart Postfix, but Postfix won't be
7 able to receive any new mail, either.
8 ==============================================================
9 NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
10 ==============================================================
12 In the text below, changes are labeled with the Postfix snapshot
13 that introduced the change, and whether the change introduced a
14 feature, an incompatibility, or whether the feature is obsolete.
15 If you upgrade from a later Postfix version, then you do not have
16 to worry about incompatibilities introduced in earlier versions.
18 Official Postfix releases are called a.b.c where a=major release
19 number, b=minor release number, c=patchlevel. Snapshot releases
20 are now called a.b.c-yyyymmdd where yyyymmdd is the release date
21 (yyyy=year, mm=month, dd=day). The mail_release_date configuration
22 parameter contains the release date (both for official release and
23 snapshot release). Patches change the patchlevel and the release
24 date. Snapshots change only the release date, unless they include
25 the same bugfixes as a patch release.
27 Major changes with Postfix version 2.0.0 (released 20021222, 20021223)
28 ======================================================================
30 First comes the bad news - things that may break when you upgrade
31 from Postfix 1.1. Then comes the good news - things that evolved
32 in snapshots over the past year.
34 For the release notes of Postfix 1.1 and earlier, see the
35 RELEASE_NOTES-1.1 file.
37 Unknown Recipients are now rejected by default
38 ==============================================
40 [Incompatibility 20021209] The Postfix SMTP server now rejects mail
41 for $mydestination domain recipients that it does not know about.
42 This keeps undeliverable mail out of your queue.
44 [Incompatibility 20021209] To avoid losing mail when upgrading from
45 Postfix 1.1, you need to review the LOCAL_RECIPIENT_README file if
46 one of the following is true:
48 - You define $mydestination domain recipients in files other than
49 /etc/passwd or /etc/aliases. For example, you define $mydestination
50 domain recipients in the $virtual_mailbox_maps files.
51 - You run the Postfix SMTP server chrooted (see master.cf).
52 - You redefined the local delivery agent in master.cf.
53 - You redefined the "local_transport" setting in main.cf.
54 - You use the mailbox_transport feature of the Postfix local delivery agent.
55 - You use the fallback_transport feature of the Postfix local delivery agent.
56 - You use the luser_relay feature of the Postfix local delivery agent.
58 Name change of virtual domain tables
59 ====================================
61 This release introduces separation of lookup tables for addresses
62 and for domain names of virtual domains.
64 [Incompat 20021209] the virtual_maps parameter is replaced by
65 virtual_alias_maps (for address lookups) and virtual_alias_domains
66 (for the names of what were formerly called "Postfix-style virtual
69 For backwards compatibility with Postfix version 1.1, the new
70 virtual_alias_maps parameter defaults to $virtual_maps, and the
71 new virtual_alias_domains parameter defaults to $virtual_alias_maps.
72 This means that you can still keep all information about a domain
73 in one file, just like before.
75 For details, see the virtual(5) and sample-virtual.cf files.
77 [Incompat 20021209] the virtual_mailbox_maps parameter now has a
78 companion parameter called virtual_mailbox_domains (for the names
79 of domains served by the virtual delivery agent). virtual_mailbox_maps
80 is now used for address lookups only.
82 For backwards compatibility with Postfix version 1.1,, the new
83 virtual_mailbox_domains parameter defaults to $virtual_mailbox_maps.
84 This means that you can still keep all information about a domain
85 in one file, just like before.
87 For details, see the VIRTUAL_README file.
89 [Incompat 20021209] If you use the "advanced content filter"
90 technique, you MUST NOT override the virtual aliases and virtual
91 mailbox settings in the SMTP server that receives mail from the
92 content filter, or else mail for virtual recipients will be rejected
95 For details, see the FILTER_README file.
97 Incompatible queue file format changes
98 ======================================
100 [Incompat 20020527] Queue files created with the header/body_checks
101 "FILTER" feature are not compatible with "postqueue -r" (move queue
102 files back to the maildrop directory) of previous Postfix releases.
104 [Incompat 20020512] Postfix queue files contain records that are
105 incompatible with "postqueue -r" on all Postfix versions prior to
106 1.1 and release candidates. This happens whenever the sender
107 specifies MIME body type information via the SMTP `MAIL FROM'
108 command, via the `sendmail -B' command line option, or via the
109 Content-Transfer-Encoding: message header.
111 [Incompat 20020512] Postfix queue files may contain records that
112 are incompatible with "postqueue -r" on previous 1.1 Postfix versions
113 and release candidates. This happens whenever the sender specifies
114 the MIME body type only via the Content-Transfer-Encoding: message
115 header, and not via `MAIL FROM' or `sendmail -B'.
117 Features that are going away
118 ============================
120 [Obsolete 20021209] Sendmail-style virtual domains are no longer
121 documented. This part of Postfix was too confusing.
123 [Obsolete 20021209] The "reject_maps_rbl" restriction is going
124 away. The SMTP server now logs a warning and suggests using the
125 more flexible "reject_rbl_client" feature instead.
127 [Obsolete 20021209] The "check_relay_domains" restriction is going
128 away. The SMTP server logs a warning and suggests using the more
129 robust "reject_unauth_destination" instead. This means that Postfix
130 by default no longer grants relay permissions on the basis of the
131 client hostname, and that relay clients must be authorized via
132 other means such as permit_mynetworks.
134 [Obsolete 20020917] In regexp lookup tables, the form /pattern1/!/pattern2/
135 is going away. Use the cleaner and more flexible "if !/pattern2/..endif"
136 form. The old form still exists but is no longer documented, and
137 causes a warning (suggesting to use the new format) to be logged.
138 For details, see "man regexp_table".
140 [Obsolete 20020819] The qmgr_site_hog_factor feature is gone (this
141 would defer mail delivery for sites that occupy too much space in
142 the active queue, and be a real performance drain due to excessive
143 disk I/O). The new qmgr_clog_warn_time feature (see below) provides
144 more useful suggestions for dealing with Postfix congestion.
146 [Obsolete 20020819] The "permit_naked_ip_address" restriction on
147 HELO command syntax is unsafe when used with most smtpd_XXX_restrictions
148 and will go away. Postfix logs a warning, suggesting to use
149 "permit_mynetworks" instead.
154 [Feature 20020527] Postfix now has real MIME support. This improves
155 content filtering efficiency and accuracy, and improves inter-operability
156 with mail systems that cannot receive 8-bit mail. See conf/sample-mime.cf
159 [Feature 20020527] Postfix header_checks now properly recognize
160 MIME headers in attachments. This is much more efficient than
161 previous versions that recognized MIME headers via body_checks.
162 MIME headers are now processed one multi-line header at a time,
163 instead of one body line at a time. To get the old behavior,
164 specify "disable_mime_input_processing = yes". More details in
165 conf/sample-filter.cf.
167 [Feature 20020527] Postfix now has three classes of header patterns:
168 header_checks (for primary message headers except MIME headers),
169 mime_header_checks (for MIME headers), and nested_header_checks
170 (for headers of attached email messages except MIME headers). By
171 default, all headers are matched with header_checks.
173 [Feature 20020527] The Postfix SMTP client will now convert 8BITMIME
174 mail to 7BIT when delivering to an SMTP server that does not announce
175 8BITMIME support. To disable, specify "disable_mime_output_conversion
176 = yes". However, this conversion is required by RFC standards.
178 [Feature 20020528] Postfix can enforce specific aspects of the MIME
179 standards while receiving mail.
181 * Specify "strict_7bit_headers = yes" to disallow 8-bit characters
182 in message headers. These are always illegal.
184 * Specify "strict_8bitmime_body = yes" to block mail with 8-bit
185 content that is not properly labeled as 8-bit MIME. This blocks
186 mail from poorly written mail software, including (bounces from
187 qmail, bounces from Postfix before snapshot 20020514, and Majordomo
188 approval requests) that contain valid 8BITMIME mail.
190 * Specify "strict_8bitmime = yes" to turn on both strict_7bit_headers
191 and strict_8bitmime_body.
193 * Specify "strict_mime_encoding_domain = yes" to block mail from
194 poorly written mail software. More details in conf/sample-mime.cf.
196 [Incompat 20020527] Postfix now rejects mail if the MIME multipart
197 structure is nested more than mime_nesting_limit levels (default:
198 100) when MIME input processing is enabled while receiving mail, or
199 when Postfix is performing 8BITMIME to 7BIT conversion while
202 [Incompat 20020527] Postfix now recognizes "name :" as a valid
203 message header, but normalizes it to "name:" for consistency
204 (actually, there is so much code in Postfix that would break with
205 "name :" that there is little choice, except to not recognize "name
208 [Incompat 20020512] Postfix queue files contain records that are
209 incompatible with "postqueue -r" on all Postfix versions prior to
210 1.1 and release candidates. This happens whenever the sender
211 specifies MIME body type information via the SMTP `MAIL FROM'
212 command, via the `sendmail -B' command line option, or via the
213 Content-Transfer-Encoding: message header.
215 [Incompat 20020512] Postfix queue files may contain records that
216 are incompatible with "postqueue -r" on previous 1.1 Postfix versions
217 and release candidates. This happens whenever the sender specifies
218 the MIME body type only via the Content-Transfer-Encoding: message
219 header, and not via `MAIL FROM' or `sendmail -B'.
221 [Feature 20020512] The Postfix SMTP and LMTP clients now properly
222 pass on the MIME body type information (7BIT or 8BITMIME), provided
223 that the sender properly specifies MIME body type information via
224 the SMTP MAIL FROM command, via the sendmail -B command line option,
225 or via MIME message headers. This includes mail that is returned
231 [Incompat 20021209] The default queue directory hash_queue_depth
232 setting is reduced to 1 level of subdirectories per Postfix queue.
233 This improves "mailq" performance on most systems, but can result
234 in poorer worst-case performance on systems with lots of mail in
237 [Incompat 20021209] The Postfix SMTP client no longer expands CNAMEs
238 in MAIL FROM or RCPT TO addresses (as permitted by RFC 2821). This
239 eliminates one DNS lookup per sender and recipient, and can make
240 a dramatic difference when sending mailing list mail via a relayhost.
242 [Incompat 20021209] The Postfix installation procedure no longer
243 sets the "chattr +S" bit on Linux queue directories. Wietse has
244 gotten too annoyed with naive reviewers who complain about performance
245 without having a clue of what they are comparing.
247 [Feature 20021209] On mail gateway systems, separation of inbound
248 mail relay traffic from outbound traffic. This eliminates a problem
249 where inbound mail deliveries could become resource starved in the
250 presence of a high volume of outbound mail.
252 [Feature 20021013] The body_checks_size_limit parameter limits the
253 amount of text per message body segment (or attachment, if you
254 prefer to use that term) that is subjected to body_checks inspection.
255 The default limit is 50 kbytes. This speeds up the processing of
256 mail with large attachments.
258 [Feature 20020917] Speedups of regexp table lookups by optimizing
259 for the $number substitutions that are actually present in the
260 right-hand side. Based on a suggestion by Liviu Daia.
262 [Feature 20020917] Speedups of regexp and pcre tables, using
263 IF..ENDIF support. Based on an idea by Bert Driehuis. To protect
264 a block of patterns, use:
271 IF..ENDIF can nest. Don't specify blanks at the beginning of lines
272 inside IF..ENDIF, because lines beginning with whitespace are
273 appended to the previous line. More details about the syntax are
274 given in the pcre_table(5) and regexp_table(5) manual pages.
276 [Feature 20020717] The default timeout for establishing an SMTP
277 connection has been reduced to 30 seconds, because many system
278 TCP/IP stacks have an atrociously large default timeout value.
280 [Feature 20020505] Finer control over Berkeley DB memory usage,
281 The parameter "berkeley_db_create_buffer_size" (default: 16 MBytes)
282 specifies the buffer size for the postmap and postalias commands.
283 The parameter "berkeley_db_read_buffer_size" (default: 128 kBytes)
284 specifies the buffer size for all other applications. Specify
285 "berkeley_db_read_buffer_size = 1048576" to get the old read buffer
286 size. Contributed by Victor Duchovni. For more information, see
287 the last paragraphs of the DB_README file.
289 [Incompat 20021211] The default process limit is doubled from 50
290 to 100. The default limits on the number of active queue files or
291 recipients are doubled from 10000 to 20000. The default concurrency
292 for parallel delivery to the same destination is doubled from 10
295 Improved compatibility
296 ======================
298 [Feature 20020527] The Postfix SMTP client will now convert 8BITMIME
299 mail to 7BIT when delivering to an SMTP server that does not announce
300 8BITMIME support. To disable, specify "disable_mime_output_conversion
301 = yes". However, this conversion is required by RFC standards.
303 [Feature 20020512] The Postfix SMTP and LMTP clients now properly
304 pass on the MIME body type information (7BIT or 8BITMIME), provided
305 that the sender properly specifies MIME body type information via
306 the SMTP MAIL FROM command, via the sendmail -B command line option,
307 or via MIME message headers. This includes mail that is returned
310 [Incompat 20020326] The Postfix SMTP client now breaks message
311 header or body lines that are longer than $smtp_line_length_limit
312 characters (default: 990). Earlier Postfix versions broke lines
313 at $line_length_limit characters (default: 2048). Postfix versions
314 before 20010611 did not break long lines at all. Reportedly, some
315 mail servers refuse to receive mail with lines that exceed the 1000
316 character limit that is specified by the SMTP standard.
318 [Incompat 20020326] The Postfix SMTP client now breaks long message
319 header or body lines by inserting <CR> <LF> <SPACE>. Earlier
320 Postfix versions broke long lines by inserting <CR> <LF> only. This
321 broke MIME encapsulation, causing MIME attachments to "disappear"
322 with Postfix versions after 20010611.
324 [Incompat 20020326] Postfix now discards text when a logical message
325 header exceeds $header_size_limit characters (default: 102400).
326 Earlier Postfix versions would place excess text, and all following
327 text, in the message body. The same thing was done when a physical
328 header line exceeded $line_length_limit characters (default: 2048).
329 Both behaviors broke MIME encapsulation, causing MIME attachments
330 to "disappear" with all previous Postfix versions.
332 [Incompat 20021015] The Postfix LMTP client no longer lowercases email
333 addresses in MAIL FROM and RCPT TO commands.
335 [Incompat 20021013] The default Linux kernel lock style for mailbox
336 delivery is changed from flock() to fcntl(). This has no impact if
337 your system uses procmail for local delivery, if you use maildir-style
338 mailboxes, or when mailbox access software locks mailboxes with
339 username.lock files (which is usually the case with non-maildir
345 [Feature 20021209] This release introduces the concept of address
346 domain classes, each having its own default mail delivery transport:
348 Destination matches Default transport Default name
349 ==============================================================
351 $inet_interfaces $local_transport local
352 $virtual_alias_domains (not applicable) (not applicable)
353 $virtual_mailbox_domains $virtual_transport virtual
354 $relay_domains $relay_transport relay
355 other $default_transport smtp
357 The benefits of these changes are:
359 - You no longer need to specify all the virtual(8) domains in the
360 Postfix transport map. The virtual(8) delivery agent has
361 become a first-class citizen just like local(8) or smtp(8).
363 - On mail gateway systems, separation of inbound mail relay traffic
364 from outbound traffic. This eliminates a problem where inbound
365 mail deliveries could become resource starved in the presence of
366 a high volume of outbound mail.
368 - The SMTP server rejects unknown recipients in a more consistent
369 manner than was possible with previous Postfix versions.
371 See the ADDRESS_CLASS_README file for a description of address
372 classes, their benefits, and their incompatibilities.
374 New relay transport in master.cf
375 ================================
377 [Incompat 20021209] Postfix no longer defaults to the "smtp"
378 transport for all non-local destinations. In particular, Postfix
379 now uses the "relay" mail delivery transport for delivery to domains
380 matching $relay_domains. This may affect your defer_transports
383 On mail gateway systems, this allows us to separate inbound mail
384 relay traffic from outbound traffic, and thereby eliminate a problem
385 where inbound mail deliveries could become resource starved in the
386 presence of a high volume of outbound mail.
388 [Incompat 20021209] This release adds a new "relay" service to the
389 Postfix master.cf file. This is a clone of the "smtp" service. If
390 your Postfix is unable to connect to the "relay" service then you
391 have not properly followed the installation procedure.
393 Revision of RBL blacklisting code
394 =================================
396 [Feature 20020923] Complete rewrite of the RBL blacklisting code.
397 The names of RBL restrictions are now based on a suggestion that
398 was made by Liviu Daia in October 2001. See conf/sample-smtpd.cf
399 or html/uce.html for details.
401 [Feature 20020923] "reject_rbl_client rbl.domain.tld" for client
402 IP address blacklisting. Based on code by LaMont Jones. The old
403 "reject_maps_rbl" is now implemented as a wrapper around the
404 reject_rbl_client code, and logs a warning that "reject_maps_rbl"
405 is going away. To upgrade, specify "reject_rbl_client domainname"
406 once for each domain name that is listed in maps_rbl_domains.
408 [Feature 20020923] "reject_rhsbl_sender rbl.domain.tld" for sender
409 domain blacklisting. Also: reject_rhsbl_client and reject_rhsbl_recipient
410 for client and recipient domain blacklisting.
412 [Feature 20020923] "rbl_reply_maps" configuration parameter for
413 lookup tables with template responses per RBL server. Based on code
414 by LaMont Jones. If no reply template is found the default template
415 is used as specified with the default_rbl_reply configuration
416 parameter. The template responses support $name expansion of
417 client, helo, sender, recipient and RBL related attributes.
419 [Incompat 20020923] The default RBL "reject" server reply now
420 includes an indication of *what* is being rejected: Client host,
421 Helo command, Sender address, or Recipient address. This also
422 changes the logfile format.
424 [Feature 20020923] "smtpd_expansion_filter" configuration parameter
425 to control what characters are allowed in the expansion of template
426 RBL reply $name macros. Characters outside the allowed set are
429 More sophisticated handling of UCE-related DNS lookup errors
430 ============================================================
432 [Feature 20020906] More sophisticated handling of UCE-related DNS
433 lookup errors. These cause Postfix to not give up so easily, so
434 that some deliveries will not have to be deferred after all.
436 [Feature 20020906] The SMTP server sets a defer_if_permit flag when
437 an UCE reject restriction fails due to a temporary (DNS) problem,
438 to prevent unwanted mail from slipping through. The defer_if_permit
439 flag is tested at the end of the ETRN and recipient restrictions.
441 [Feature 20020906] A similar flag, defer_if_reject, is maintained
442 to prevent mail from being rejected because a whitelist operation
443 (such as permit_mx_backup) fails due to a temporary (DNS) problem.
445 [Feature 20020906] The permit_mx_backup restriction is made more
446 strict. With older versions, some DNS failures would cause mail to
447 be accepted anyway, and some DNS failures would cause mail to be
448 rejected by later restrictions in the same restriction list. The
449 improved version will defer delivery when Postfix could make the
452 - After DNS lookup failure, permit_mx_backup will now accept the
453 request if a subsequent restriction would cause the request to be
454 accepted anyway, and will defer the request if a subsequent
455 restriction would cause the request to be rejected.
457 - After DNS lookup failure, reject_unknown_hostname (the hostname
458 given in HELO/EHLO commands) reject_unknown_sender_domain and
459 reject_unknown_recipient_domain will now reject the request if a
460 subsequent restriction would cause the request to be rejected
461 anyway, and will defer the request if a subsequent restriction
462 would cause the request to be accepted.
464 [Feature 20020906] Specify "smtpd_data_restrictions =
465 reject_unauth_pipelining" to block mail from SMTP clients that send
466 message content before Postfix has replied to the SMTP DATA command.
468 Other UCE related changes
469 =========================
471 [Feature 20020717] The SMTP server reject_unknown_{sender,recipient}_domain
472 etc. restrictions now also attempt to look up AAAA (IPV6 address)
475 [Incompat 20020513] In order to allow user@domain@domain addresses
476 from untrusted systems, specify "allow_untrusted_routing = yes" in
477 main.cf. This opens opportunities for mail relay attacks when
478 Postfix provides backup MX service for Sendmail systems.
480 [Incompat 20020514] For safety reasons, the permit_mx_backup
481 restriction no longer accepts mail for user@domain@domain. To
482 recover the old behavior, specify "allow_untrusted_routing = yes"
483 and live with the risk of becoming a relay victim.
485 [Incompat 20020509] The Postfix SMTP server no longer honors OK
486 access rules for user@domain@postfix-style.virtual.domain, to close
487 a relaying loophole with postfix-style virtual domains that have
488 @domain.name catch-all patterns.
490 [Incompat 20020201] In Postfix SMTPD access tables, Postfix now
491 uses <> as the default lookup key for the null address, in order
492 to work around bugs in some Berkeley DB implementations. This
493 behavior is controlled with the smtpd_null_access_lookup_key
494 configuration parameter.
496 Changes in transport table lookups
497 ==================================
499 [Feature 20020610] user@domain address lookups in the transport
500 map. This feature also understands address extensions. Transport
501 maps still support lookup keys in the form of domain names, but
502 only with non-regexp tables. Specify mailer-daemon@my.host.name
503 in order to match the null address. More in the transport(5) manual
506 [Feature 20020505] Friendlier behavior of Postfix transport tables.
507 There is a new "*" wildcard pattern that always matches. The
508 meaning of null delivery transport AND nexhop information field
509 has changed to "do not modify": use the information that would be
510 used if the transport table did not exist. This change makes it
511 easier to route intranet mail (everything under my.domain) directly:
512 you no longer need to specify explicit "local" transport table
513 entries for every domain name that resolves to the local machine.
514 For more information, including examples, see the updated transport(5)
517 [Incompat 20020610] Regexp/PCRE-based transport maps now see the
518 entire recipient address instead of only the destination domain
521 [Incompat 20020505, 20021215] The meaning of null delivery transport
522 and nexhop fields has changed incompatibly.
524 - A null delivery transport AND nexthop information field means
525 "do not modify": use the delivery transport or nexthop information
526 that would be used if no transport table did not exist.
528 - The delivery transport is not changed with a null delivery
529 transport field and non-null nexthop field.
531 - The nexthop is reset to the recipient domain with a non-null
532 transport field and a null nexthop information field.
534 Address manipulation changes
535 ============================
537 [Incompat 20020717] Postfix no longer strips multiple '.' characters
538 from the end of an email address or domain name. Only one '.' is
541 [Feature 20020717] The masquerade_domains feature now supports
542 exceptions. Prepend a ! character to a domain name in order to
543 not strip its subdomain structure. More information in
544 conf/sample-rewrite.cf.
546 [Feature 20020717] The Postfix virtual delivery agent supports
547 catch-all entries (@domain.tld) in lookup tables. These match users
548 that do not have a specific user@domain.tld entry. The virtual
549 delivery agent now ignores address extensions (user+foo@domain.tld)
550 when searching its lookup tables, but displays the extensions in
551 Delivered-To: message headers.
553 [Feature 20020610] user@domain address lookups in the transport
554 map. This feature also understands address extensions. Transport
555 maps still support lookup keys in the form of domain names, but
556 only with non-regexp tables. Specify mailer-daemon@my.host.name
557 in order to match the null address. More in the transport(5) manual
560 [Incompat 20020610] Regexp/PCRE-based transport maps now see the
561 entire recipient address instead of only the destination domain
564 [Incompat 20020513] In order to allow user@domain@domain addresses
565 from untrusted systems, specify "allow_untrusted_routing = yes" in
566 main.cf. This opens opportunities for mail relay attacks when
567 Postfix provides backup MX service for Sendmail systems.
569 [Incompat 20020509] The Postfix SMTP server no longer honors OK
570 access rules for user@domain@postfix-style.virtual.domain, to close
571 a relaying loophole with postfix-style virtual domains that have
572 @domain.name catch-all patterns.
574 [Incompat 20020509] The appearance of user@domain1@domain2 addresses
575 has changed. In mail headers, such addresses are now properly
576 quoted as "user@domain1"@domain2. As a side effect, this quoted
577 form is now also expected on the left-hand side of virtual and
578 canonical lookup tables, but only by some of the Postfix components.
579 For now, it is better not to use user@domain1@domain2 address forms
580 on the left-hand side of lookup tables.
582 Regular expression and PCRE related changes
583 ===========================================
585 [Feature 20021209] Regular expression maps are now allowed with
586 local delivery agent alias tables and with all virtual delivery
587 agent lookup tables. However, regular expression substitution of
588 $1 etc. is still forbidden for security reasons.
590 [Obsolete 20020917] In regexp lookup tables, the form /pattern1/!/pattern2/
591 is going away. Use the cleaner and more flexible "if !/pattern2/..endif"
592 form. The old form still exists but is no longer documented, and
593 causes a warning (suggesting to use the new format) to be logged.
595 [Incompat 20020610] Regexp/PCRE-based transport maps now see the
596 entire recipient address instead of only the destination domain
599 [Incompat 20020528] With PCRE pattern matching, the `.' metacharacter
600 now matches all characters including newline characters. This makes
601 PCRE pattern matching more convenient to use with multi-line message
602 headers, and also makes PCRE more compatible with regexp pattern
603 matching. The pcre_table(5) manual page has been greatly revised.
605 New mail "HOLD" action and "hold" queue
606 =======================================
608 [Feature 20020819] New "hold" queue for mail that should not be
609 delivered. "postsuper -h" puts mail on hold, and "postsuper -H"
610 releases mail, moving mail that was "on hold" to the deferred queue.
612 [Feature 20020821] HOLD and DISCARD actions in SMTPD access tables.
613 As with the header/body version of the same, these actions apply
614 to all recipients of the same queue file.
616 [Feature 20020819] New header/body HOLD action that causes mail to
617 be placed on the "hold" queue. Presently, all you can do with mail
618 "on hold" is to examine it with postcat, to take it "off hold" with
619 "postsuper -H", or to destroy it with "postsuper -d". See
620 conf/sample-filter.cf.
622 [Incompat 20020819] In mailq output, the queue ID is followed by
623 the ! character when the message is in the "hold" queue (see below).
624 This may break programs that process mailq output.
629 [Feature 20020823] Selective content filtering. In in SMTPD access
630 tables, specify "FILTER transport:nexthop" for mail that needs
631 filtering. More info about content filtering is in the Postfix
632 FILTER_README file. This feature overrides the main.cf content_filter
633 setting. Presently, this applies to all the recipients of a queue
636 [Feature 20020527] Selective content filtering. In header/body_check
637 patterns, specify "FILTER transport:nexthop" for mail that needs
638 filtering. This requires different cleanup servers before and after
639 the filter, with header/body checks turned off in the second cleanup
640 server. More info about content filtering is in the Postfix
641 FILTER_README file. This feature overrides the main.cf content_filter
642 setting. Presently, this applies to all the recipients of a queue
645 [Feature 20020527] Postfix now has real MIME support. This improves
646 content filtering efficiency and accuracy, and improves inter-operability
647 with mail systems that cannot receive 8-bit mail. See conf/sample-mime.cf
650 [Feature 20020527] Postfix header_checks now properly recognize
651 MIME headers in attachments. This is much more efficient than
652 previous versions that recognized MIME headers via body_checks.
653 MIME headers are now processed one multi-line header at a time,
654 instead of one body line at a time. To get the old behavior,
655 specify "disable_mime_input_processing = yes". More details in
656 conf/sample-filter.cf.
658 [Feature 20020527] Postfix now has three classes of header patterns:
659 header_checks (for primary message headers except MIME headers),
660 mime_header_checks (for MIME headers), and nested_header_checks
661 (for headers of attached email messages except MIME headers). By
662 default, all headers are matched with header_checks.
664 [Feature 20021013] The body_checks_size_limit parameter limits the
665 amount of text per message body segment (or attachment, if you
666 prefer to use that term) that is subjected to body_checks inspection.
667 The default limit is 50 kbytes. This speeds up the processing of
668 mail with large attachments.
670 [Feature 20020917] Speedups of regexp table lookups by optimizing
671 for the $number substitutions that are actually present in the
672 right-hand side. Based on a suggestion by Liviu Daia.
674 [Feature 20020917] Speedups of regexp and pcre tables, using
675 IF..ENDIF support. Based on an idea by Bert Driehuis. To protect
676 a block of patterns, use:
683 IF..ENDIF can nest. Don't specify blanks at the beginning of lines
684 inside IF..ENDIF, because lines beginning with whitespace are
685 appended to the previous line. More details about the syntax are
686 given in the pcre_table(5) and regexp_table(5) manual pages.
688 Postmap/postalias/newaliases changes
689 ====================================
691 [Incompat 20020505] The postalias command now copies the source
692 file read permissions to the result file when creating a table for
693 the first time. Until now, the result file was created with default
694 read permissions. This change makes postalias more similar to
697 [Incompat 20020505] The postalias and postmap commands now drop
698 super-user privileges when processing a non-root source file. The
699 file is now processed as the source file owner, and the owner must
700 therefore have permission to update the result file. Specify the
701 "-o" flag to get the old behavior (process non-root files with root
704 [Incompat 20020122] When the postmap command creates a non-existent
705 result file, the new file inherits the group/other read permissions
711 [Feature 20021028] The local(8) and virtual(8) delivery agents now record
712 the original recipient address in the X-Original-To: message header.
713 This header can also be emitted by the pipe(8) delivery agent.
715 [Incompat 20021028] With "domain in one mailbox", one message with
716 multiple recipients is no longer delivered only once. It is now
717 delivered as one copy for each original recipient, with the original
718 recipient address listed in the X-Original-To: message header.
720 [Feature 20021024] New proxy_interfaces parameter, for sites behind a
721 network address translation gateway or other type of proxy. You
722 should specify all the proxy network addresses here, to avoid avoid
725 [Feature 20021013] Updated MacOS X support by Gerben Wierda. See
726 the auxiliary/MacOSX directory.
728 [Incompat 20021013] Subtle change in ${name?result} macro expansions:
729 the expansion no longer happens when $name is an empty string. This
730 probably makes more sense than the old behavior.
732 [Incompat 20020917] The relayhost setting now behaves as documented,
733 i.e. you can no longer specify multiple destinations.
735 [Incompatibility 20021219] The use of the XVERP extension in the
736 SMTP MAIL FROM command is now restricted to SMTP clients that match
737 the hostnames, domains or networks listed with the authorized_verp_clients
738 parameter (default: $mynetworks).
740 [Feature 20020819] When the Postfix local delivery agent detects
741 a mail delivery loop (usually the result of mis-configured mail
742 pickup software), the undeliverable mail is now sent to the mailing
743 list owner instead of the envelope sender address (usually the
744 original poster who has no guilt, and who cannot fix the problem).
746 [Warning 20020819] The Postfix queue manager now warns when mail
747 for some destination is piling up in the active queue, and suggests
748 a variety of remedies to speed up delivery (increase per-destination
749 concurrency limit, increase active queue size, use a separate
750 delivery transport, increase per-transport process limit). The
751 qmgr_clog_warn_time parameter controls the time between warnings.
752 To disable these warnings, specify "qmgr_clog_warn_time = 0".
754 [Warning 20020717] The Postfix SMTP client now logs a warning when
755 the same domain is listed in main.cf:mydestination as well as a
756 Postfix-style virtual map. Such a mis-configuration may cause mail
757 for users to be rejected with "user unknown".
759 [Feature 20020331] A new smtp_helo_name parameter that specifies
760 the hostname to be used in HELO or EHLO commands; this can be more
761 convenient than changing the myhostname parameter setting.
763 [Feature 20020331] Choice between multiple instances of internal
764 services: bounce, cleanup, defer, error, flush, pickup, queue,
765 rewrite, showq. This allows you to use different cleanup server
766 settings for different SMTP server instances. For example, specify
767 in the master.cf file:
769 localhost:10025 ... smtpd -o cleanup_service_name=cleanup2 ...
770 cleanup2 ... cleanup -o header_checks= body_checks= ...
772 Logfile format changes
773 ======================
775 [Incompat 20021209] The Postfix SMTP client no longer expands CNAMEs
776 in MAIL FROM addresses (as permitted by RFC 2821) before logging
777 the recipient address.
779 [Incompat 20021028] The Postfix SMTP server UCE reject etc. logging
780 now includes the queue ID, the mail protocol (SMTP or ESMTP), and
781 the hostname that was received with the HELO or EHLO command, if
784 [Incompat 20021028] The Postfix header/body_checks logging now
785 includes the mail protocol (SMTP, ESMTP, QMQP) and the hostname
786 that was received with the SMTP HELO or EHLO command, if available.
788 [Incompat 20021028] The Postfix status=sent/bounced/deferred logging
789 now shows the original recipient address (as received before any
790 address rewriting or aliasing). The original recipient address is
791 logged only when it differs from the final recipient address.
793 [Incompat 20020923] The default RBL "reject" server reply now
794 includes an indication of *what* is being rejected: Client host,
795 Helo command, Sender address, or Recipient address. This also
796 changes the logfile format.
801 [Incompat 20020819] LDAP API version 1 is no longer supported. The
802 memory allocation and deallocation strategy has changed too much
803 to maintain both version 1 and 2 at the same time.
805 [Feature 20020513] Updated LDAP client module with better handling
806 of dead LDAP servers, and with configurable filtering of query
812 [Incompat 20020819] The smtpd_sasl_local_domain setting now defaults
813 to the null string, rather than $myhostname. This seems to work
814 better with Cyrus SASL version 2. This change may cause incompatibility
815 with the saslpasswd2 command.
817 [Feature 20020331] Support for the Cyrus SASL version 2 library,
818 contributed by Jason Hoos. This adds some new functionality that
819 was not available in Cyrus SASL version 1, and provides bit-rot
820 insurance for the time when Cyrus SASL version 1 eventually stops
823 Berkeley DB related changes
824 ===========================
826 [Feature 20020505] Finer control over Berkeley DB memory usage,
827 The parameter "berkeley_db_create_buffer_size" (default: 16 MBytes)
828 specifies the buffer size for the postmap and postalias commands.
829 The parameter "berkeley_db_read_buffer_size" (default: 256 kBytes)
830 specifies the buffer size for all other applications. Specify
831 "berkeley_db_read_buffer_size = 1048576" to get the old read buffer
832 size. For more information, see the last paragraphs of the DB_README
835 [Incompat 20020201] In Postfix SMTPD access tables, Postfix now
836 uses <> as the default lookup key for the null address, in order
837 to work around bugs in some Berkeley DB implementations. This
838 behavior is controlled with the smtpd_null_access_lookup_key
839 configuration parameter.
841 [Incompat 20020201] Postfix now detects if the run-time Berkeley
842 DB library routines do not match the major version number of the
843 compile-time include file that was used for compiling Postfix. The
844 software issues a warning and aborts in case of a discrepancy. If
845 it didn't, the software was certain to crash with a segmentation
851 [Incompat 20020201] On SCO 3.2 UNIX, the input rate flow control
852 is now turned off by default, because of limitations in the SCO