Sendmail
sendmail X is a message transfer agent that has been designed with these main topics in minds:
security reliability efficiency configurability extendibility sendmail X consists of five main modules of which only one runs as root:
mcp: the main control program is similar to inetd(8): it starts all other sendmail X modules and watches over their execution. mcp runs as root in order to bind to port 25 and to change the uid of the processes it starts. smtps: the SMTP server receives e-mails. smtpc: the SMTP client sends e-mails. smar: the address resolver provides lookups in various maps including DNS for mail routing. qmgr: the queue manager controls the flow of e-mails through the SMTP servers and clients. All of these modules run persistently. smtps and smtpc make use of the statethreads library which provides a threading API well suited for Internet applications, smar and qmgr use the POSIX threads API.
The syntax of the sendmail X configuration file is very simple and resembles C programs or the BIND 9 configuration files. A configuration file does not require any special layout, e.g., tabs or one option per line, but relies on braces and semicolons as structuring elements.
The first release of sendmail X (X.0) is intended to be used as a secure and efficient mail gateway. It offers features that are not available in sendmail 8 (or some other open source MTAs), but it does not provide any mail content modification capabilities, e.g., masquerading of addresses or changing (addition, removal) of headers. Later versions will probably add such capabilities.
Moreover, this version of sendmail X does not come with a local delivery agent nor with a mail submission program. The documentation explains which programs can be used to perform these tasks and how other features that are not directly available can be implemented.
sendmail X.0 comes with a policy mail filter library (libpmilter) which offers similar features as libmilter known from sendmail 8, however, without mail content modification capabilities (as mentioned before). Two milter programs have been ported to the pmilter API and are available in the contrib directory.
All aspects of sendmail X (including installation, configuration, and operation) are documented in a single README file which is available in various formats (dvi, HTML, PostScript, PDF, and plain text) such that the user can select the most appropriate format for her needs. Additionally, a design document is separately available for background reading which also covers the implementation and many other aspects.
Sendmail X Design Document A version (2005-05-05) of the sendmail X design document is available in several formats. Note: this document is more than 300 pages long. HTML (split into chapters) PostScript.gz PDF.gz Sendmail X License Sendmail X had a slightly different LICENSE than sendmail 8 until 2006-05-19. Starting with version smX-0.1.Beta2.0 the license has been changed to be the same as the one for sendmail 8.