Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Postfix (software)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Mail transfer agent}} {{About|the Mail Transfer Agent||Postfix (disambiguation)}} {{Infobox software | name = Postfix | logo = [[File:Postfix Logo.svg|250px|The Postfix logo]] | screenshot = | caption = | author = [[Wietse Venema]] at the [[IBM]] [[Thomas J. Watson Research Center]] | developer = Venema and many others | released = {{start date and age|1998|12|14}} | latest release version = 3.10.1 | latest release date = {{start date and age|2025|02|24}} | latest preview version = 3.11-20250418 | latest preview date = {{start date and age|2025|04|18}} | operating system = [[Cross-platform]] | programming language = [[C (programming language)|C]]<ref>{{cite web|url=http://www.lextrait.com/Vincent/implementations.html|title=The Programming Languages Beacon, v10.3|first=Vincent|last=Lextrait|date=July 2010|access-date=5 September 2010|archive-url=https://archive.today/20120530/http://www.lextrait.com/Vincent/implementations.html|archive-date=30 May 2012|url-status=dead}}</ref> | genre = [[Mail transfer agent]] | license = [[IBM Public License]] or [[Eclipse Public License]] | website = {{URL|https://www.postfix.org/}} }} '''Postfix''' is a [[free software|free]] and [[open-source software|open-source]] [[mail transfer agent]] (MTA) that routes and delivers [[E-mail|electronic mail]]. It is released under the [[IBM Public License]] 1.0 which is a [[free software license]]. Alternatively, starting with version 3.2.5, it is available under the [[Eclipse Public License]] 2.0 at the user's option.<ref>{{cite web|url=https://www.postfix.org/announcements/postfix-3.2.5.html|title=Postfix stable release 3.2.5, and legacy releases 3.1.8, 3.0.12, and 2.11.11|date=January 2018|access-date=30 January 2018}}</ref> Originally written in 1997 by [[Wietse Venema]] at the [[IBM]] [[Thomas J. Watson Research Center]] in [[New York (state)|New York]], and first released in December 1998,<ref>{{cite web|url=https://www.nytimes.com/library/tech/98/12/biztech/articles/14blue.html|title=Sharing Software, IBM to Release Mail Program Blueprint|first=John|last=Markoff|website=[[The New York Times]] |date=December 1998|access-date=17 September 2017}}</ref> Postfix continues {{as of|2024|lc=on||df=}} to be actively developed by its creator and other contributors. The software is also known by its former names '''VMailer''' and '''IBM Secure Mailer'''. The name Postfix is a compound of "post" (which is another word for "mail") and "[[bugfix]]" (which is for other software that inspired Postfix development). ==Typical deployment== As an [[Simple Mail Transfer Protocol|SMTP]] server, Postfix implements a first layer of defense against [[spambot]]s and [[malware]]. Administrators can combine Postfix with other software that provides spam/virus filtering (e.g., [[Amavisd-new]]), message-store access (e.g., [[Dovecot (software)|Dovecot]]), or complex [[Simple Mail Transfer Protocol|SMTP]]-level access-policies (e.g., [https://www.postfwd.org/ postfwd], [https://www.mtpolicyd.org/ mtpolicyd], [https://www.benzedrine.ch/milter-regex.html milter-regex], [[policyd-weight]]). As an [[Simple Mail Transfer Protocol|SMTP]] client, Postfix implements a high-performance parallelized mail-delivery engine. Postfix is often combined with [[Mailing list|mailing-list]] software (such as [[Mailman (GNU)|Mailman]]). ==Operating systems== Postfix runs (or has run) on [[AIX operating system|AIX]], [[BSD]], [[HP-UX]], [[Linux]], [[macOS]], [[Solaris (operating system)|Solaris]] and, generally speaking, on every [[Unix-like]] operating system that ships with a [[C (programming language)|C]] [[compiler]] and delivers a standard [[POSIX]] development environment. It is the default [[Message transfer agent|MTA]] for the [[macOS]], [[NetBSD]],<ref name="netbsd">{{cite web | url = http://netbsd.org/docs/guide/en/chap-mail.html | title = The NetBSD Guide. Chapter 27. Mail and news | access-date = 2010-05-10 }}</ref> [[RedHat]]/[[CentOS]]<ref name="redhat">{{cite web | url = https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/chap-managing_confined_services-postfix | title = CHAPTER 24. POSTFIX}}</ref> and [[Ubuntu (operating system)|Ubuntu]] operating systems.<ref name="ubuntu">{{cite web |url=https://help.ubuntu.com/community/Postfix |title=Postfix |publisher=Community Documentation, Ubuntu Wiki |access-date=2012-03-09 }}</ref> ==Architecture== {{Cleanup colors}} Postfix consists of a combination of server programs that run in the background, and client programs that are invoked by [[User (computing)|user]] programs or by system administrators. The Postfix core consists of several dozen [[Server (computing)|server]] programs that run in the background, each handling one specific aspect of email delivery. Examples are the [[Simple Mail Transfer Protocol|SMTP]] server, the [[Scheduling (computing)|scheduler]], the address rewriter, and the local delivery server. For damage-control purposes, most server programs run with fixed reduced [[Privilege (computing)|privileges]], and terminate voluntarily after processing a limited number of requests. To conserve system resources, most server programs terminate when they become idle. [[Client (computing)|Client]] programs run outside the Postfix core. They interact with Postfix server programs through mail delivery instructions in the user's [[email forwarding|~/.forward]] file, and through small "gate" programs to submit mail or to request 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. [[File:Architecture of the software Postfix (Mail Transfer Agent).png|800px|center]] ; Yellow ellipses: One of Postfix' many daemons serving exactly one purpose. This split-up into many smaller pieces of software is considered one of the reasons why Postfix is secure and stable. ; Blue boxes: The blue boxes represent so-called ''lookup tables''. A lookup table consists of two columns (key and value) containing information used for access control, e-mail routing etc. ; Orange boxes: The orange boxes are either mail queues or files. In either case, e-mails are stored on persistent media (e.g., a hard disk). ; White clouds: The clouds stand for points at which e-mails enter or leave Postfix. For example, ''smtpd'' receives mail from other mail servers or users whereas ''smtp'' relays mail to other MTAs. ==Implementation== The Postfix implementation uses safe subsets of the [[C (programming language)|C]] language and of the [[POSIX]] system [[Application programming interface|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]]<ref>{{ cite book | last1 = Hontañón | first1 = Ramón J | title = Linux Security | publisher = [[Sybex]] | date = July 10, 2001 | location = San Francisco | page = 166 | url = https://books.google.com/books?id=wYBbM8ol2McC&dq=postfix+resilient+against+buffer+overflow&pg=PA166 | access-date = 2011-09-21 | isbn = 978-0-7821-2741-6 }}</ref> 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. ==Robustness== Conceptually, Postfix manages [[Pipeline (software)|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. ==Performance== One single Postfix instance has been clocked at ~300 message deliveries/second<ref name="groups.google.com">{{cite web | url = https://groups.google.com/forum/?fromgroups=#!topic/mailing.postfix.users/pPcRJFJmdeA | title = Bulk Mailing Performance | access-date=2012-09-09 }}</ref> 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<ref name="groups.google.com"/> that was achieved with the mail queue on a RAM disk while delivering to the "[https://www.postfix.org/discard.8.html 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 do one delivery 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. The delivery rates cited above are largely theoretical. With bulk mail delivery, the actual delivery rate primarily depends on the receiver's mail receiving policies and by the sender's reputation. ==Base configuration== The [https://www.postfix.org/postconf.5.html main.cf] file stores site-specific Postfix configuration parameters while [https://www.postfix.org/master.5.html master.cf] defines daemon processes.<ref>[http://www.postfix-tutorial.com/ Postfix-Tutorial.com: Postfix, Courier/POP, SASL & Spamassassin – with MySQL admin] </ref> The [https://www.postfix.org/BASIC_CONFIGURATION_README.html Postfix Basic Configuration] tutorial covers the core settings that each site needs to consider, and the [https://www.postfix.org/STANDARD_CONFIGURATION_README.html Postfix Standard Configuration Examples] document discusses configuration settings for a few common environments. The [https://www.postfix.org/ADDRESS_REWRITING_README.html Postfix Address Rewriting] document covers address rewriting and mail routing. The full documentation collection is at [https://www.postfix.org/documentation.html Postfix Documentation] More complex Postfix implementations may include: integration with other applications such as [[SpamAssassin]]; support for multiple virtual [[domain names]] - and use databases such as [[MySQL]] to control complex configurations. ==Surveys== Large: In [[Shodan (website)|Shodan]] scan results from middle February 2025,<ref>{{Cite web |url=https://www.shodan.io/search/facet?query=esmtp&facet=product|title=Facet Analysis|publisher=Shodan Search Engine|access-date=18 February 2025}}</ref> Postfix was detected 2.57 million times, Exim 2.56 million times. Some sites block Shodan probes, but it is unclear whether this would materially affect the Postfix to Exim ratio. Small: In a 10 times smaller study published on February 1, 2025 by E-Soft, Inc.,<ref>{{Cite web |url=https://www.securityspace.com/s_survey/data/man.202412/mxsurvey.html |title=Mail (MX) Server Survey |website=securityspace.com |publisher=E-Soft, Inc. |date=1 February 2025 |access-date=18 February 2025}}</ref> 0.21 million mail servers ran Postfix, making it a distant second behind [[Exim]] with 0.31 million. The E-Soft survey is often cited, but it reports on a much smaller population than Shodan. ==See also== {{Portal|Free and open-source software}} * [[List of mail servers]] * [[Comparison of mail servers]] * [[Email filtering]] ==References== {{Reflist|30em}} ==Further reading== * {{cite book|author=Kyle D. Dent|title=Postfix: The Definitive Guide|publisher=[[O'Reilly Media]]|year=2003|isbn=978-0-596-00212-1}} * {{cite book|author=Ralf Hildebrandt and Patrick Koetter|title=The book of Postfix: state-of-the-art message transport|publisher=[[No Starch Press]]|year=2005|isbn=978-1-59327-001-8}} ==External links== * {{official website}} * [https://calomel.org/postfix.html Postfix "how to" with configuration examples and explanation] {{Email servers}} {{IBM FOSS}} {{Authority control}} [[Category:Message transfer agents]] [[Category:Free email server software]] [[Category:IBM software]] [[Category:Unix network-related software]] [[Category:1997 software]] [[Category:Email server software for Linux]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:As of
(
edit
)
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Cleanup colors
(
edit
)
Template:Email servers
(
edit
)
Template:IBM FOSS
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)