|Developer(s)||Wietse Venema and many others|
|Initial release||December 1998|
|Stable release||2.10.2 / September 5, 2013|
|Preview release||2.11-20131126 / November 26, 2013|
|Type||Mail transfer agent|
|License||IBM Public License|
Originally written in 1997 by Wietse Venema at the IBM Thomas J. Watson Research Center and first released in December 1998, Postfix continues as of 2013[update] to be actively developed by its creator and other contributors. The software is also known by its former names VMailer and IBM Secure Mailer.
In October 2012 in a study performed by E-Soft, Inc., approximately 25% of the publicly reachable mail-servers on the Internet ran Postfix.
- 1 Typical deployment
- 2 Features
- 3 Operating systems
- 4 Architecture
- 5 Implementation
- 6 Robustness
- 7 Performance
- 8 Base configuration
- 9 Release history
- 10 Users of Postfix
- 11 See also
- 12 Further reading
- 13 References
- 14 External links
As an SMTP server, Postfix implements a first layer of defense against spambots and malware. Postfix is often combined with other software that provides spam/virus filtering (e.g., Amavisd-new), message store access (e.g., Dovecot), or complex SMTP-level access policies (e.g., postfwd, policyd-weight or greylisting).
Postfix implements a limited number of features in the MTA, and relies on third-party extensions for the rest.
Main Postfix built-in features
- Standards-compliant support for LMTP, STARTTLS encryption, SASL authentication, MIME encapsulation and transformation, DSN delivery status notifications, IPv4, and IPv6
- Configurable SMTP-level access policy that automatically adapts to overload
- "Virtual" domains with distinct address-namespaces
- UNIX-system interfaces for command-line submission, for delivery to command, and for direct delivery to message stores in mbox and maildir format
- Light-weight content inspection based on regular expressions
- A large number of database lookup mechanisms including Berkeley DB, CDB, OpenLDAP LMDB, Memcached, LDAP and multiple SQL database implementations
- A sophisticated scheduler that implements parallel deliveries, with configurable concurrency and back-off strategies
- A scalable zombie blocker that reduces SMTP server load due to botnet spam
Typical Postfix extension features
Postfix extensions use the SMTP or Milter (Sendmail mail filter) protocols which both give full control over the message envelope and content, or a simple text-based protocol that enables complex SMTP-level access control policies.
- Deep content inspection before or after a message is accepted into the mail queue;
- Mail authentication with DKIM, SPF, or other protocols;
- SMTP-level access policies such as greylisting or rate control.
Postfix runs on AIX, BSD, HP-UX, GNU/Linux, OS X, Solaris and, generally speaking, on every Unix-like operating system that ships with a C compiler and delivers a standard POSIX development environment. It is the default MTA for the OS X, NetBSD and Ubuntu operating systems.
Postfix consists of a combination of server programs that run in the background, and client programs that are invoked by user programs or by system administrators.
The Postfix core consists of several dozen daemon programs that run in the background, each handling one specific aspect of email delivery. Examples are the SMTP server, the scheduler, the address rewriter, and the local delivery daemon. For damage-control purposes, most daemon programs run with fixed reduced privileges, and terminate voluntarily after processing a limited number of requests. To conserve system resources, most daemon programs terminate when they become idle.
User programs run outside the Postfix core. They interact with Postfix daemon programs through mail delivery instructions in the user's ~/.forward file, and through small "gate" programs that provide services such as mail submission or queue status information.
Other programs provide administrative support to start or stop Postfix, query status information, manipulate the queue, or to examine or update its configuration files.
The Postfix implementation uses safe subsets of the C language and of the POSIX system API. These subsets are buried under an abstraction layer that contains about 50% of all Postfix source code, and that provides the foundation on which all Postfix programs are built. For example, the "vstring" primitive makes Postfix code resistant to buffer overflow attacks, and the "safe open" primitive makes Postfix code resistant to race condition attacks on systems that implement the POSIX file system API. This abstraction layer does not affect the attack resistance of non-Postfix code, such as code in system libraries or in third-party libraries.
Conceptually, Postfix manages pipelines of processes that pass the responsibility for message delivery and error notification from one process to the next. All message and notification "state" information is persisted in the file system. The processes in a pipeline operate mostly without centralized control; this relative autonomy simplifies error recovery. When a process fails before completing its part of a file or protocol transaction, its predecessor in the pipeline backs off and retries the request later, and its successor in the pipeline discards unfinished work. Many Postfix daemons can simply "die" when they run into a problem; they are automatically restarted when the next service request arrives. This approach makes Postfix highly resilient, as long as the operating system or hardware don't fail catastrophically.
Postfix has been clocked at ~300 message deliveries/second across the Internet, running on commodity hardware (a vintage-2003 Dell 1850 system with battery-backed MegaRAID controller and two SCSI disks). This delivery rate is an order of magnitude below the "intrinsic" limit of 2500 message deliveries/second that was achieved with the mail queue on a RAM disk while delivering to the "discard" transport (with a dual-core Opteron system in 2007).
Mail systems such as Postfix and Qmail achieve high performance by delivering mail in parallel sessions. With mail systems such as Sendmail and Exim that make one connection at a time, high performance can be achieved by submitting limited batches of mail in parallel, so that each batch is delivered by a different process. Postfix and Qmail require parallel submission into different MTA instances once they reach their intrinsic performance limit, or the performance limits of the hardware or operating system.
It should be noted that the delivery rates cited above are largely academic. With bulk mail delivery, the true delivery rate is primarily determined by the receiver's mail receiving policies and by the sender's reputation.
The main.cf file stores site specific Postfix configuration parameters while master.cf defines daemon processes. The Postfix Basic Configuration tutorial covers the core settings that each site needs to consider.
The Postfix Standard Configuration Examples document discusses configuration settings for a few common environments.
More complex Postfix implementations include integration with (for example) SpamAssassin and support for multiple (virtual) domain names, where data in databases such as MySQL can drive complex configurations.
|Version||Release date ||Significant changes|
|Old version, no longer supported: 2.0|
|Old version, no longer supported: 2.1|
|Old version, no longer supported: 2.2|
|Old version, no longer supported: 2.3|
|Old version, no longer supported: 2.4|
|Old version, no longer supported: 2.5||2.5.0||24 January 2008|
|2.5.1||18 February 2008|
|2.5.2||8 March 2008|
|2.5.3||27 July 2008|
|2.5.4||14 August 2008|
|2.5.5||2 September 2008|
|2.5.6||3 January 2009|
|2.5.7||12 May 2009|
|2.5.8||28 August 2009||Withdrawn release.|
|2.5.9||28 August 2009|
|2.5.10||23 March 2010|
|2.5.11||23 November 2010|
|2.5.12||7 March 2011|
|2.5.13||9 May 2011|
|2.5.14||11 July 2011|
|2.5.15||3 September 2011|
|2.5.16||24 October 2011|
|2.5.17||6 February 2012||EOL 2.5|
|Old version, no longer supported: 2.6||2.6.0||12 May 2009|
|2.6.1||19 May 2009|
|2.6.2||3 June 2009|
|2.6.3||2 August 2009||Unannounced release.|
|2.6.4||26 August 2009||Withdrawn release.|
|2.6.5||28 August 2009|
|2.6.6||23 March 2010|
|2.6.7||8 June 2010|
|2.6.8||23 November 2010|
|2.6.9||7 March 2011|
|2.6.10||9 May 2011|
|2.6.11||11 July 2011|
|2.6.12||3 September 2011|
|2.6.13||24 October 2011|
|2.6.14||6 February 2012|
|2.6.19||4 February 2013||EOL 2.6|
|Older version, yet still supported: 2.7||2.7.0||13 February 2010|
|2.7.1||8 June 2010|
|2.7.2||23 November 2010|
|2.7.3||7 March 2011|
|2.7.4||9 May 2011|
|2.7.5||11 July 2011|
|2.7.6||3 September 2011|
|2.7.7||24 October 2011|
|2.7.8||6 February 2012|
|Older version, yet still supported: 2.8||2.8.0||20 January 2011||Zombie blocker, DNS whitelisting, SQLite support|
|2.8.1||22 February 2011|
|2.8.2||21 March 2011|
|2.8.3||9 May 2011|
|2.8.4||7 July 2011|
|2.8.5||3 September 2011|
|2.8.6||24 October 2011|
|2.8.7||7 November 2011|
|2.8.8||1 February 2012|
|2.8.9||5 March 2012|
|Older version, yet still supported: 2.9||2.9.0||1 February 2012||Memcache support, gradual degradation|
|2.9.1||18 February 2012|
|2.9.2||24 April 2012|
|2.9.3||20 May 2012|
|2.9.4||1 August 2012|
|2.9.5||13 December 2012|
|2.9.6||4 February 2013|
|Current stable version: 2.10||2.10.0||11 February 2013||Support for TLSv1.1 and TLSv1.2|
|2.10.1||22 June 2013|
Users of Postfix
- Stanford University
- United States Navy
- Large ISP 
- Kyle D. Dent (2003). Postfix: The Definitive Guide. O'Reilly Media. ISBN 0-596-00212-2.
- Ralf Hildebrandt and Patrick Koetter (2005). The book of Postfix: state-of-the-art message transport. No Starch Press. ISBN 1-59327-001-1.
- Lextrait, Vincent (July 2010). "The Programming Languages Beacon, v10.3". Retrieved 5 September 2010.
- "E-Soft MX survey".
- "The NetBSD Guide. Chapter 27. Mail and news.". Retrieved 2010-05-10.
- "Postfix". Community Documentation, Ubuntu Wiki. Retrieved 2012-03-09.
- Hontañón, Ramón J (July 10, 2001). Linux Security. San Francisco: Sybex. p. 166. ISBN 0-7821-2741-X. Retrieved 2011-09-21.
- "Bulk Mailing Performance". Retrieved 2012-09-09.
- Postfix-Tutorial.com: Postfix, Courier/POP, SASL & Spamassassin – with MySQL admin
- Postfix Announcements
- Postfix stable release 2.8.0. Postfix.org. Retrieved on 2013-09-19.
- Postfix stable release 2.9.0. Postfix.org. Retrieved on 2013-09-19.
- "Postfix stable release 2.10.0". Postfix.org. Retrieved 2013-09-19.
- "Large ISPs which use Postfix". Retrieved 2013-08-21.
- Official website
- Postfix "how to" with configuration examples and explanation
- Postfix policy delegation server
- Postfix policy delegation server
- Postfix introduction and analysis for secure environments
- #postfix on freenode
- Postfix Architecture Overview