*** Welcome to piglix ***

Qmail

qmail
Developer(s) Daniel J. Bernstein
Stable release
1.03 / June 15, 1998 (1998-06-15)
Preview release
netqmail 1.06 / November 11, 2007
Repository cr.yp.to/software/qmail-1.03.tar.gz
Written in C (programming language)
Operating system Unix-like
Type Mail transfer agent
License public domain
Website http://cr.yp.to/qmail.html

qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. Originally license-free software, qmail's source code was later dedicated in the public domain by the author.

When first published, qmail was the first security-aware mail transport agent; since then, other security-aware MTAs 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 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 and heap overflows, format string attacks, or temporary file race conditions.

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 for managing large mailing lists

At the time of qmail's introduction, Sendmail configuration was notoriously complex, while qmail was simple to configure and deploy.

qmail encourages the use of several innovations in mail (some originated by Bernstein, others not):

qmail also introduces the (QMTP) and (QMQP) protocols.

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.


...
Wikipedia

...