The stable Postfix release is called postfix-2.2.x where 2=major release number, 2=minor release number, x=patchlevel. The stable release never changes except for patches that address bugs or emergencies. Patches change the patchlevel and the release date. New features are developed in snapshot releases. These are called postfix-2.3-yyyymmdd where yyyymmdd is the release date (yyyy=year, mm=month, dd=day). Patches are never issued for snapshot releases; instead, a new snapshot is released. The mail_release_date configuration parameter (format: yyyymmdd) specifies the release date of a stable release or snapshot release. Incompatibility with Postfix 2.1 and earlier ============================================ If you upgrade from Postfix 2.1 or earlier, read RELEASE_NOTES-2.2 before proceeding. Major changes with snapshot 20050615 ==================================== DSN support as described in RFC 3461..3464. This gives users control over successful and failed delivery notifications. DSN involves extra parameters to the SMTP MAIL FROM and RCPT TO commands, as well as new Postfix sendmail command line options that provide a sub-set of the functions of the extra SMTP command parameters. Just like reports of bounced mail, DSN reports of successful delivery can give away information about the internal infrastructure. To disallow DSN requests from any system, specify in main.cf: smtpd_discard_ehlo_keywords = dsn Or use smtpd_discard_ehlo_keyword_address_maps if you wish to be more selective: # Allow DSN requests from local subnet only 192.168.0.0/28 silent-discard 0.0.0.0/0 silent-discard, dsn To specify what notifications are to be sent: -N success,delay,failure (one or more of these) -N never (or just this by itself) To specify the envelope ID which is to reported in delivery status notifications: -V EnvelopeID Older Postfix sendmail commands used -V for VERP-style delivery. In order to request VERP style delivery, you must now specify -XV instead of -V. The Postfix sendmail command will recognize if you try to use -V for VERP-style delivery. It will do the right thing and will remind you of the new syntax. Major changes with snapshot 20050510 ==================================== This release improves usability of enhanced status codes in Postfix access tables, RBL reply templates and in transport maps that use the error(8) delivery agent. - When the SMTP server rejects a sender address, it transforms a recipient DSN status (e.g., 4.1.1-4.1.6) into the corresponding sender DSN status, and vice versa. - When the SMTP server rejects non-address information (such as the HELO command parameter or the client hostname/address), it transforms a sender or recipient DSN status into a generic non-address DSN status (e.g., 4.0.0). These transformations are needed when the same access table or RBL reply template are used for client, helo, sender, or recipient restrictions; or when the same error(8) mailer information is used for both senders and recipients. Incompatibility with snapshot 20050503 ====================================== The format of some "warning:" messages in the maillog has changed so that they are easier to sort: - The logging now talks about "access table", instead of using three different expressions "access table", "access map" and "SMTPD access map" for the same thing. - "non-SMTP command" is now logged BEFORE the client name/address and the offending client input, instead of at the end. Major change with snapshot 20050427+DSN ======================================= This is experimental DSN support added to snapshot 20050427. The code is not for production purposes; it is not fully tested, some names and interfaces are still rough around the edges, and it does not update the oqmgr so you have to use qmgr instead. Some implementation notes and open issues are described in the DSN_SUPPORT_README file (top-level directory). Incompatibility with snapshot 20050329 ====================================== If you use TLS, you need to execute "postfix reload" because the TLS manager protocol has changed. Incompatibility with snapshot 20050328 ====================================== The logging format has changed. Postfix delivery agents now log the RFC 3463 enhanced status code as "dsn=x.y.z" where y and z can be up to three digits each. See the file pfloggsum-dsn-patch for an update to the pfloggsum script. After you upgrade from Postfix 2.2 or 2.3 you need to execute "postfix reload", otherwise you will keep running the old Postfix queue manager, which gives no special treatment to the enhanced status codes that it receives from Postfix delivery agents. Major changes with snapshot 20050328 ==================================== This release introduces support for RFC 3463 enhanced status codes. For example, status code 5.1.1 means "recipient unknown". Postfix recognizes enhanced status codes in remote server replies, generates enhanced status codes while handling email, and reports enhanced status codes in non-delivery notifications. This improves the user interaction with mail clients that hide the text of error messages from users. You can, but don't have to, specify RFC 3463 enhanced status codes in the output from commands that receive mail from a pipe. If a command terminates with non-zero exit status, and an enhanced status code is present at the beginning of the command output, then that status code takes precedence over the non-zero exit status. You can, but don't have to, specify RFC 3463 enhanced status codes in Postfix access maps, header/body_checks REJECT actions, or in RBL replies. For example: REJECT 5.7.1 You can't go here from there The status 5.7.1 means "no authorization, message refused", and is the default for access maps, header/body_checks REJECT actions, and for RBL replies. If you specify your own enhanced status code, the Postfix SMTP server will automatically change a leading '5' digit (hard error) into '4' where appropriate. This is needed, for example, with soft_bounce=yes.