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
Qmail
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 for Unix}} {{lowercase|title=qmail}} {{Infobox software | name = qmail | logo = | screenshot = | caption = | author = [[Daniel J. Bernstein]] | latest release version = 1.03 | latest release date = {{Start date and age|1998|06|15}} | operating system = [[Unix-like]] | programming language = [[C (programming language)|C]] | platform = | genre = [[Mail transfer agent]] | license = [[public domain]]<ref name=rewardraised> {{cite web |url=http://cr.yp.to/qmail/qmailsec-20071101.pdf |title=Some thoughts on security after ten years of qmail 1.0 |access-date=2007-12-01 }}</ref> | website = {{URL|cr.yp.to/qmail.html}} | repo = {{URL|https://cr.yp.to/software/qmail-1.03.tar.gz}} | discontinued = yes }} {{lowercase|title=netqmail}} {{Infobox software | name = netqmail | latest release version = 1.06 | latest release date = {{Start date and age|2007|11|30}} | website = {{URL|netqmail.org/}} | repo = {{URL|netqmail.org/netqmail-1.06.tar.gz}} | discontinued = yes }} {{lowercase|title=s/qmail}} {{Infobox software | name = s/qmail | latest release version = 4.3.20 | latest release date = {{Start date and age|2025|01|16}} | website = {{URL|fehcom.de/sqmail/sqmail.html}} }} {{lowercase|title=notqmail}} {{Infobox software | name = notqmail<ref>[https://schmonz.com/2019/08/20/announcing-notqmail/ Announcing notqmail ]</ref> | latest release version = 1.09 | latest release date = {{Start date and age|2024|05|06}} | website = {{URL|notqmail.org/}} | repo = {{URL|github.com/notqmail/notqmail}} }} '''qmail''' is a [[mail transfer agent]] (MTA) that runs on [[Unix]]. It was written, starting December 1995,<ref>{{Cite web |last=Bernstein |first=Daniel J. |title=Some thoughts on security after ten years of qmail 1.0 |url=https://cr.yp.to/qmail/qmailsec-20071101.pdf}}</ref> by [[Daniel J. Bernstein]] as a more [[computer security|secure]] alternative to the popular [[Sendmail]] program. Originally [[license-free software]], qmail's [[source code]] was later dedicated to the [[public domain]] by the author.<ref name="source-pd">{{cite web |url=http://cr.yp.to/qmail/dist.html |title=Information for distributors |quote=I hereby place the qmail package (in particular, qmail-1.03.tar.gz, with [[MD5]] checksum 622f65f982e380dbe86e6574f3abcb7c) into the public domain. You are free to modify the package, distribute modified versions, etc. }}</ref> ==Features== {{unreferenced section|date=March 2015}} ===Security=== When first published, qmail was the first security-aware mail transport agent; since then, other security-aware [[Mail transfer agent|MTA]]s have been published. The most popular predecessor to qmail, [[Sendmail]], was not designed with security as a goal and, as a result, has been a perennial target for attackers. In contrast to sendmail, qmail has a modular architecture composed of mutually untrusting components; for instance, the [[SMTP]] listener component of qmail runs with different [[User identifier (Unix)|credentials]] from the queue manager or the SMTP sender. qmail was also implemented with a security-aware replacement to the [[C standard library]] and, as a result, has not been vulnerable to [[Stack buffer overflow|stack]] and [[Heap overflow|heap]] overflows, [[format string attack]]s or temporary file [[race condition]]s. ===Performance=== When it was released, qmail was significantly faster than Sendmail, particularly for bulk mail tasks such as mailing list servers. qmail was originally designed as a way to manage large mailing lists. ===Simplicity=== At the time of qmail's introduction, Sendmail configuration was notoriously complex, while qmail was simple to configure and deploy. ===Innovations=== qmail encourages the use of several innovations in mail (some originated by Bernstein, others not): ; Maildir : Bernstein invented the [[Maildir]] format for qmail, which splits individual email messages into separate files. Unlike the ''de facto'' standard [[mbox]] format, which stored all messages in a single file, Maildir avoids many locking and concurrency problems, and can safely be provisioned over [[Network File System (protocol)|NFS]]. qmail also delivers to mbox mailboxes. ; Wildcard mailboxes : qmail introduced the concept of user-controlled wildcards. Out of the box, mail addressed to "user-''wildcard''" on qmail hosts is delivered to separate mailboxes, allowing users to publish multiple mail addresses for mailing lists and spam management. qmail also introduces the Quick Mail Transport Protocol (QMTP), an e-mail transmission protocol that is designed to have better performance than Simple Mail Transfer Protocol (SMTP), the de facto standard;<ref>{{cite web |title=Quick Mail Transfer Protocol (QMTP) |url=http://cr.yp.to/proto/qmtp.txt |date=February 1, 1997 |access-date=6 May 2023}}</ref> and Quick Mail Queuing Protocol (QMQP), a network protocol designed to share e-mail queues between several hosts.<ref>{{cite web |title=QMQP: Quick Mail Queueing Protocol |url=http://cr.yp.to/proto/qmqp.html |access-date=6 May 2023}}</ref> ===Modularity=== qmail is nearly a completely modular system in which each major function is separated from the other major functions. It is easy to replace any part of the qmail system with a different module as long as the new module retains the same interface as the original. ==Controversy== ===Security reward and Georgi Guninski's vulnerability=== In 1997, Bernstein offered a US$500 reward for the first person to publish a verifiable [[security hole]] in the latest software version.<ref name=guarantee> {{cite web |url=http://cr.yp.to/qmail/guarantee.html |title=The qmail security guarantee |access-date=2007-10-05 }}</ref> In 2005, security researcher [[Georgi Guninski]] found an [[integer overflow]] in qmail. On 64-bit platforms, in default configurations with sufficient virtual memory, the delivery of huge amounts of data to certain qmail components may allow remote code execution. Bernstein disputes that this is a practical attack, arguing that no real-world deployment of qmail would be susceptible. Configuration of resource limits for qmail components mitigates the vulnerability.<ref> {{cite web |author = Georgi Guninski |title = Georgi Guninski security advisory #74, 2005 |url = http://www.guninski.com/where_do_you_want_billg_to_go_today_4.html |access-date= 2007-10-05 }}</ref> On November 1, 2007, Bernstein raised the reward to US$1000.<ref name="rewardraised"/> At a slide presentation the following day, Bernstein stated that there were 4 "known bugs" in the ten-year-old qmail-1.03, none of which were "security holes". He characterized the bug found by Guninski as a "potential overflow of an unchecked counter". "Fortunately, counter growth was limited by memory and thus by configuration, but this was pure luck."<ref name=slideshow> {{cite web |url=http://cr.yp.to/talks/2007.11.02/slides.pdf |title=Some thoughts on security after ten years of qmail 1.0 [Slide presentation] |access-date=2008-01-17 }}</ref> On May 19, 2020, a working exploit for Guninski's vulnerability was published by [[Qualys]]<ref>{{Cite web|title='[oss-security] Remote Code Execution in qmail (CVE-2005-1513)' - MARC|url=https://marc.info/?l=oss-security&m=158990858630691&w=2|access-date=2021-03-03|website=marc.info}}</ref> but exploit authors' state they were denied the reward because it contains additional environmental restrictions. ===Frequency of updates=== The core qmail package has not been updated for many years.<ref> {{cite web | url = http://www.lifewithqmail.org/lwq.html#history | title = Life with qmail; History | access-date = 2007-12-01 }}</ref> New features were initially provided by third-party patches, from which the most important at the time were brought together in a single meta-patch called ''netqmail''.<ref>{{Cite web|title=netqmail|url=http://netqmail.org/|access-date=2021-03-03|website=netqmail.org}}</ref> ===Standards compliance=== qmail was not designed as a drop-in replacement for [[Sendmail]], and does not behave exactly as [[Sendmail]] did in all situations. In some cases, these differences in behavior have become grounds for criticism. For instance, qmail's approach to bounce messages (a format called QSBMF) differs from the standard format of [[bounce message|delivery status notifications]] specified by the [[IETF]] in <nowiki>RFC 1894</nowiki>,<ref>{{Cite journal|last1=Vaudreuil|first1=Gregory M.|last2=Moore|first2=Keith|title=An Extensible Message Format for Delivery Status Notifications|url=https://tools.ietf.org/html/rfc1894.html|access-date=2021-03-03|website=tools.ietf.org|year=1996 |doi=10.17487/RFC1894 |language=en|url-access=subscription}}</ref> meanwhile advanced to [[Internet standard#Draft Standard|draft standard]] as <nowiki>RFC 3464</nowiki>,<ref>{{Cite journal|last1=Vaudreuil|first1=Gregory M.|last2=Moore|first2=Keith|title=An Extensible Message Format for Delivery Status Notifications|url=https://tools.ietf.org/html/rfc3464.html|access-date=2021-03-03|website=tools.ietf.org|year=2003 |doi=10.17487/RFC3464 |language=en|url-access=subscription}}</ref> and recommended in the [[Simple Mail Transfer Protocol|SMTP]] specification. Some qmail features have been criticized for introducing mail forwarding complications; for instance, qmail's "wildcard" delivery mechanism and security design prevents it from rejecting messages from forged or nonexistent senders during SMTP transactions.<ref>{{cite journal|url=https://linuxgazette.net/131/moen.html |title=On Qmail, Forged Mail, and SPF Records |first=Rick |last=Moen |journal=[[Linux Gazette]] |issue=131 |date=October 2006}}</ref> In the past, these differences may have made qmail behave differently when abused as a spam relay, though modern spam delivery techniques are less influenced by bounce behavior. ===Copyright status=== qmail was released to the [[Public Domain|public domain]] in November 2007.<ref> {{cite web | url = http://video.google.com/videoplay?docid=-3147768955127254412&q=%22Bernstein+releases+code+to+public+domain%22&total=1&start=0&num=10&so=0&type=search&plindex=0 | title = Bernstein releases code into the public domain | access-date = 2007-11-30 }}</ref> Until November 2007, qmail was [[license-free software]], with permission granted for distribution in source form or in pre-compiled form (a "var-qmail package") only if certain restrictions (primarily involving compatibility) were met. This unusual licensing arrangement made qmail non-free according to some guidelines (such as the [[DFSG]]) and was a cause of controversy. qmail is the only broadly deployed [[public domain software]] message transfer agent ([[Message transfer agent|MTA]]). ==See also== {{Portal|Free and open-source software}} * [[qpsmtpd]] * [[djbdns]] * [[List of mail servers]] * [[Comparison of mail servers]] ==References== {{reflist|30em}} ==External links== * {{Official website}}, maintained by the author. * [http://qmail.org qmail.org], maintained by Russ Nelson * [http://sourceforge.net/projects/qmail-ldap-ui/ qmail-LDAP-UI] β qmail-LDAP-UI is a Web-based User Administration tool * [http://www.qmailtoaster.com/ Qmailtoaster] β Distributes RPM files for appropriate distros to install qmail quickly and easily. Has a wiki and mailing list. * pkgsrc [http://pkgsrc.se/mail/qmail qmail] and [http://pkgsrc.se/mail/qmail-run qmail-run], a pair of easy-to-install cross-platform qmail source packages included in [http://www.pkgsrc.org/ pkgsrc] * [https://web.archive.org/web/20080723183108/http://qmail.faqts.com/ The qmail section of FAQTS], an extensive knowledgebase built by qmail users * [https://web.archive.org/web/20180824123533/http://www.qmailwiki.org/Main_Page qmail wiki] formerly hosted by Inter7 * [http://qmail.jms1.net/ J.M.Simpson qmail site] Useful Information about qmail, including explanations and patches, by John M. Simpson (Updated regularly) * [https://archive.today/20120630212728/http://home.pages.de/~mandree/qmail-bugs.html Unofficial qmail Bug and Wishlist] * [https://web.archive.org/web/20080923121814/http://xzdev.com/qmail_queue.html qmail queue messages deliver (PHP)] * [http://code.google.com/p/qmail-distributions qmail-distributions] β qmail patches combined into easy-to-use distributions * [https://notes.sagredo.eu/en/qmail-notes-185/qmail-vpopmail-dovecot-roberto-s-qmail-notes-8.html Roberto's qmail notes] β An English/Italian howto on qmail and related software. A big patch is included and is updated regularly. {{Email servers}} {{Authority control}} [[Category:Message transfer agents]] [[Category:Free email server software]] [[Category:Free software programmed in C]] [[Category:Public-domain software with source code]] [[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:Ambox
(
edit
)
Template:Authority control
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Email servers
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Lowercase
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Unreferenced
(
edit
)
Template:Unreferenced section
(
edit
)