License | About | Stable release | Experimental release | Non-production release(s) | Still supported releases | Smuggling patches for older releases | Older releases
Postfix is released under a dual Eclipse Public license (EPL 2.0) and IBM Public License (IPL 1.0) (Postfix 3.1 and earlier are released under the IPL 1.0).
All Postfix source code is signed with Wietse's PGP key. See ftp://ftp.porcupine.org/mirrors/project-history/postfix/ for a more extensive archive of stable and experimental tarballs.
See below for past stable releases that are still supported and for releases that are no longer supported.
Stable releases do not change except for bugfixes and for portability fixes. New features are tested out in experimental releases (see below).
Postfix 3.9.1 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Stable releases are called "Postfix a.b.c", where a is the major release number, b is the minor release number, and c is the patchlevel.
Source code changes since Postfix Version 3.9.0.
New features are tested in experimental releases. They become part of the next official release once the code has not changed for a significant amount of time. Although this code is still subject to change, it runs on all of Wietse's systems so it is production quality.
postfix-3.10-20241202 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Experimental releases are named "postfix-a.b-yyyymmdd", where a.b is the next official Postfix release and yyyymmdd is the release date.
Non-production releases contain major changes that need to be tested further before they become part of a regular experimental release.
A non-production release usually includes all the features and fixes of the regular experimental relase of the same or earlier date.
postfix-3.8-20220816-nonprod introduces infrastructure for unit tests (ptest) and for mocking dependencies (pmock). Mocks make tests independent of host and network configuration, and independent of DNS. There should be no externally visible change in behavior, because test and mock code is not installed.
postfix-3.8-20220816-nonprod non-production release Source code | GPG2 signature | GPG1 signature | PGP signature | Release notes | Change log
Postfix 3.8 Patchlevel 7 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.7 Patchlevel 12 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.6 Patchlevel 16 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 16 gpg2-sig gpg1-sig pgp-sig | 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.5 Patchlevel 25 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 25 gpg2-sig gpg1-sig pgp-sig | 24 gpg2-sig gpg1-sig pgp-sig | 23 gpg2-sig gpg1-sig pgp-sig | 22 gpg2-sig gpg1-sig pgp-sig | 21 gpg2-sig gpg1-sig pgp-sig | 20 gpg2-sig gpg1-sig pgp-sig | 19 gpg2-sig gpg1-sig pgp-sig | 18 gpg2-sig gpg1-sig pgp-sig | 17 gpg2-sig gpg1-sig pgp-sig | 16 gpg2-sig gpg1-sig pgp-sig | 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.4 Patchlevel 29 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 29 gpg2-sig gpg1-sig pgp-sig | 28 gpg2-sig gpg1-sig pgp-sig | 27 gpg2-sig gpg1-sig pgp-sig | 26 gpg2-sig gpg1-sig pgp-sig | 25 gpg2-sig gpg1-sig pgp-sig | 24 gpg2-sig gpg1-sig pgp-sig | 23 gpg2-sig gpg1-sig pgp-sig | 22 gpg2-sig gpg1-sig pgp-sig | 21 gpg2-sig gpg1-sig pgp-sig | 20 gpg2-sig gpg1-sig pgp-sig | 19 gpg2-sig gpg1-sig pgp-sig | 18 gpg2-sig gpg1-sig pgp-sig | 17 gpg2-sig gpg1-sig pgp-sig | 16 gpg2-sig gpg1-sig pgp-sig | 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.3 Patchlevel 22 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 22 gpg2-sig gpg1-sig pgp-sig | 21 gpg2-sig gpg1-sig pgp-sig | 20 gpg2-sig gpg1-sig pgp-sig | 19 gpg2-sig gpg1-sig pgp-sig | 18 gpg2-sig gpg1-sig pgp-sig | 17 gpg2-sig gpg1-sig pgp-sig | 16 gpg2-sig gpg1-sig pgp-sig | 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.2 Patchlevel 22 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 22 gpg2-sig gpg1-sig pgp-sig | 21 gpg2-sig gpg1-sig pgp-sig | 20 gpg2-sig gpg1-sig pgp-sig | 19 gpg2-sig gpg1-sig pgp-sig | 18 gpg2-sig gpg1-sig pgp-sig | 17 gpg2-sig gpg1-sig pgp-sig | 16 gpg2-sig gpg1-sig pgp-sig | 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.1 Patchlevel 15 Source code | GPG signature | GPG signature | PGP signature | Release notes | Change log
Patch 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 gpg2-sig gpg1-sig pgp-sig | 01 gpg2-sig gpg1-sig pgp-sig
Postfix 3.0 Patchlevel 15 Source code | GPG2 signature | GPG1 signature | PGP signature | Release notes | Change log
Patch 15 gpg2-sig gpg1-sig pgp-sig | 14 gpg2-sig gpg1-sig pgp-sig | 13 gpg2-sig gpg1-sig pgp-sig | 12 gpg2-sig gpg1-sig pgp-sig | 11 gpg2-sig gpg1-sig pgp-sig | 10 gpg2-sig gpg1-sig pgp-sig | 09 gpg2-sig gpg1-sig pgp-sig | 08 gpg2-sig gpg1-sig pgp-sig | 07 gpg2-sig gpg1-sig pgp-sig | 06 gpg2-sig gpg1-sig pgp-sig | 05 gpg2-sig gpg1-sig pgp-sig | 04 gpg2-sig gpg1-sig pgp-sig | 03 gpg2-sig gpg1-sig pgp-sig | 02 sig sig | 01 sig sig
Postfix 2.11 Patchlevel 11 Source code | GPG2 signature | GPG1 signature | PGP signature | Release notes | Change log
Patch 11 (sig) (sig) (sig) 10 (sig) (sig) (sig) 09 (sig) (sig) (sig) 08 (sig) (sig) (sig) 07 (sig) (sig) (sig) 06 (sig) (sig) (sig) 05 (sig) (sig) 04 (sig) (sig) 03 (sig) (sig) 02 (sig) (sig) 01 (sig) (sig)
Postfix 2.10 Patchlevel 10 Source code | GPG2 signature | GPG1 signature | PGP signature | Release notes | Change log
Patch 10 (sig) (sig) (sig) 09 (sig) (sig) (sig) 08 (sig) (sig) 07 (sig) (sig) 06 (sig) (sig) 05 (sig) (sig) 04 (sig) (sig) 03 (sig) 02 (sig) 01 (sig)
Postfix 2.9 Patchlevel 15 Source code | GPG2 signature | GPG1 signature | PGP signature | Release notes | Change log
Patch 15 (sig) (sig) (sig) 14 (sig) (sig) 13 (sig) (sig) 12 (sig) (sig) 11 (sig) (sig) 10 (sig) (sig) 09 (sig) 08 (sig) 07 (sig) 06 (sig) 05 (sig) 04 (sig) 03 (sig) 02 (sig) 01 (sig)
Postfix 2.8 Patchlevel 20 Source code | PGP signature | PGP signature | Release notes | Change log
Patch 20 (sig) (sig) 19 (sig) (sig) 18 (sig) (sig) 17 (sig) 16 (sig) 15 (sig) 14 (sig) 13 (sig) 12 (sig) 11 (sig) 10 (sig) 09 (sig) 08 (sig) 07 (sig) 06 (sig) 05 (sig) 04 (sig) 03 (sig) 02 (sig) 01 (sig)
Postfix 2.7 Patchlevel 16 Source code | PGP signature | Release notes | Change log
Patch 16 (sig) 15 (sig) 14 (sig) 13 (sig) 12 (sig) 11 (sig) 10 (sig) 09 (sig) 08 (sig) 07 (sig) 06 (sig) 05 (sig) 04 (sig) 03 (sig) 02 (sig) 01 (sig)
Postfix 2.6 Patchlevel 19 Source code | PGP signature | Release notes | Change log
Patch 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
Patch (PGP signature ) that back-ports the Postfix 2.7 milter_header_checks feature to Postfix 2.6. This can be used, for example, to control mail flow with Milter-generated headers that contain indicators for badness or goodness. For details, see the postconf(5) section for "milter_header_checks". Currently, all header_checks features are implemented except PREPEND.
Postfix 2.5 Patchlevel 17 Source code | PGP signature | Release notes | Change log
Postfix 2.4 Patchlevel 16 Source code | PGP signature | Release notes | Change log
Patch (PGP signature ) for CVE-2011-1720 (Memory corruption in Postfix SMTP server Cyrus SASL support).
Patch (PGP signature ) to add stress-adaptive behavior to the SMTP server. When some mail flood keeps all server ports busy, this feature can be used to quickly drop connections from clients that make errors, and to reduce the time that Postfix waits for a client command. This may delay some legitimate deliveries, but it will allow you to still keep some mail flowing. After the mail flood ends, Postfix reverts to its normal behavior.
Postfix 2.3 Patchlevel 19 Source code | PGP signature | Release notes | Change log
Patch 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
Patch (PGP signature ) for CVE-2011-1720 (Memory corruption in Postfix SMTP server Cyrus SASL support).
Patch (PGP signature ) to add stress-adaptive behavior to the SMTP server. When some mail flood keeps all server ports busy, this feature can be used to quickly drop connections from clients that make errors, and to reduce the time that Postfix waits for a client command. This may delay some legitimate deliveries, but it will allow you to still keep some mail flowing. After the mail flood ends, Postfix reverts to its normal behavior.
Postfix 2.2 Patchlevel 12 Source code | PGP signature
Patch (PGP signature ) for CVE-2011-1720 (Memory corruption in Postfix SMTP server Cyrus SASL support).
Patch (PGP signature ) for local privilege escalation on Solaris >= 2.0, Linux kernel >= 2.0, and IRIX 5.
Postfix 2.1 Patchlevel 06 Source code | PGP signature
Patch (PGP signature ) for CVE-2011-1720 (Memory corruption in Postfix SMTP server Cyrus SASL support).
Patch (PGP signature ) for local privilege escalation on Solaris >= 2.0, Linux kernel >= 2.0, and IRIX 5.
Postfix 2.0 Patchlevel 20 Source code | PGP signature
Patch 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
Patch (PGP signature ) for CVE-2011-1720 (Memory corruption in Postfix SMTP server Cyrus SASL support).
Patch to black-list domain names by their mail servers (such as Verisign's mail sink) or by their DNS servers (second revision: don't defer mail when DNS lookup fails; lookup grandparent NS records).
Patch (PGP signature ) for local privilege escalation on Solaris >= 2.0, Linux kernel >= 2.0, and IRIX 5.
Postfix 1.1 Patchlevel 13 Source code | PGP signature
Patch (PGP signature ) for CVE-2011-1720 (Memory corruption in Postfix SMTP server Cyrus SASL support).
Version 20010228 Patchlevel 08 Source code | PGP signature
Version 19991231 Patchlevel 13 Source code | PGP signature