annotate thesis/tex/3-MailTransferAgents.tex @ 128:6f622eb5c812

some sentences about MTA comparison
author meillo@marmaro.de
date Tue, 09 Dec 2008 18:01:20 +0100
parents 27ddf2506157
children 6ce355da579f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
1 \chapter{Mail transfer agents}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
2
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
3 After having analyzed the market for electronic mail and trends for it in the last chapter, this chapter takes a look at \mta{}s, the intelligent most important parts of the email infrastructure. \MTA{}s will be grouped by similarities, and the four most popular \freesw\ \mta{}s, will be presented to the reader in a short overview and with the most important facts. At the end of this chapter a comparison of these programs in several disciplines will be done.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
4
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
5
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
6
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
7
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
8 \section{Types of MTAs}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
9 ``Mail transfer agent'' is a term covering a variety of programs. One thing is common to them: they transfer email from one machine to another.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
10
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
11 This is how Bryan Costales defines a \mta\ in \cite{costales97}:
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
12 \begin{quote}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
13 A mail transfer agent (MTA) is a highly specialized program that delivers mail and transports it between machines, like the post office.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
14 \end{quote}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
15 \name{The Free Dictionary} is a bit more concrete on the term: \citeweb{website:thefreedictionary}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
16 \begin{quote}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
17 Message Transfer Agent - (MTA, Mail Transfer Agent): Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, [...] it [...] delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
18 \end{quote}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
19
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
20 Common to all \MTA{}s is the transfer of mail to other machines; this is the actual job. Besides this similarity, \MTA{}s can be very different. Some of them have \NAME{POP3} and/or \NAME{IMAP} servers included. Some can fetch mails through these protocols. Others have have all features you can think of. And maybe there are some that do nothing else but transporting email.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
21
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
22 Following is a classification of \mta{}s into groups of similar programs, regarding what is viewable from the outside.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
23
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
24
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
25 \subsubsection*{Relay-only MTAs}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
26 \label{subsec:relay-only}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
27 This is the most simple kind of \MTA. It transfers mail only to defined \name{smart hosts}\footnote{\name{smart host}s are \MTA{}s that receives email and route it to the actual destination}. \name{Relay-only} \MTA{}s do not receive mail from outside the system, and they do not deliver locally.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
28
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
29 Most \MTA{}s can be configured to act as such a \name{forwarder}. But this is usually an additional functionality.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
30
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
31 One would use such a program to give a system the possibility to send mail, without the need to do lots of configuration. In a local network, usually the clients are set up with a \name{relay-only} \MTA, while there is one \name{mail server} that acts as a \name{smart host}. The ``dumb'' clients send mail to this one \name{mail server} which does all the work.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
32
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
33 Examples for that group are: \name{nullmailer}, \name{ssmtp} and \name{esmtp}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
34
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
35
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
36 \subsubsection*{Groupware}
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
37 Normally the term ``groupware'' does not mean one single program, but a suite of programs. They build a framework which is then populated with various modules that provide actual functionality. Modules for mail transfer, file storage, calendars, resource management, instant messaging, etc., are commonly available.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
38
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
39 One would use one of these program suites if the main work to do is not mail transfer, but providing integrated communication facilities and team working support for a group of people. The most common scenario are companies. They have \name{groupware} running to provide adequate services for their teams to work efficiently. But one may use \name{groupware} on the home server for his family members also.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
40
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
41 Examples are: \name{Lotus Notes}, \name{Microsoft Exchange}, \name{OpenGroupware.org} and \name{eGroupWare}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
42
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
43
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
44 \subsubsection*{``Real'' MTAs}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
45 There is a third type of \mta{}s in between the minimalistic \name{relay-only} \MTA{}s and the bloated \name{groupware}. Those programs may be named ``real \MTA{}s'', or ``proper \MTA{}s'', though there is no common name. They are what is meant with the term ``\mta''---programs that transfer mail between hosts.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
46
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
47 Common to them is their focus on transferring email, while being able to act as \name{smart host}. Their variety ranges from ones mostly restricted to mail transfer (\name{qmail}) to others already having interfaces for adding further mail processing modules (\name{postfix}). They cover everything in between the other two groups. %FIXME: are postfix and qmail good examples?
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
48
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
49 This group is of importance in this document. All programs selected for the comparison in the following section are ``real \MTA{}s''. \masqmail\ is one too.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
50
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
51
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
52 \subsubsection*{Other segmenting}
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
53 \name{Mail transfer agents} can also be split in other ways.
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
54 \begin{itemize}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
55 \item
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
56 Due to \sendmail's significance---described in section \ref{sec:sendmail}---compatibility interfaces for \sendmail\ are of importance for \unix\ \MTA{}s. Being not \emph{sendmail-compatible} does not need to matter for some fields of action, but makes the program ineligible for serving as a general purpose \MTA\ on \unix\ systems. Hence being sendmail-compatible is a major property of a \mta. %todo: how many MTAs are sendmail-compatible?
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
57 \MTA{}s not having a \emph{sendmail-compatible} interface or not offering it as a compatibility add-on, will not be covered here. One example for such a program is \name{Apache James}. %FIXME: check if correct
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
58
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
59 \item
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
60 Another separation can be done between \freesw\ programs and proprietary software. Many of the \MTA{}s for \unix\ systems are \freesw. Only these are regarded in the following sections, because comparing \freesw\ with proprietary or commercial software is not what typical users of programs like \masqmail\ do. %fixme: what are typical users?
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
61 Comparison with those non-free programs may be a point for large \freesw\ projects, trying to step into the business world. Small projects, mostly used by individuals at home, %fixme: is this the right target field? see chap02
119
73fe291f79e6 added missing backslashes
meillo@marmaro.de
parents: 117
diff changeset
62 need to be compared against other projects of similar shape. The document should be seen from \masqmail's point of view---an \MTA\ for a \unix\ system on home servers, workstations, or maybe embedded platforms---so non-free software is out of the way.
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
63 \end{itemize}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
64
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
65
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
66
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
67
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
68 \section{Popular MTAs}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
69
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
70 %todo: include market share analyses here
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
71 << some info about market shares >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
72
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
73 One would not use a program for a job it is not suited for. Therefor only \mta{}s that are mostly similar to \masqmail\ are regarded here. These are \emph{sendmail-compatible} ``smart'' \freesw\ \MTA{}s that focus on mail transfer.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
74
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
75 For the comparison, five programs are taken: \sendmail, \name{exim}, \name{qmail}, \name{postfix}, and \masqmail. The four alternatives to \masqmail\ are the most important representatives of the regarded group. % FIXME: add ref that affirm that
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
76
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
77 Other members are: \name{smail}, \name{zmailer}, \name{mmdf}, and \name{courier-mta}; they all are less important and rarely used.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
78
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
79 Following is a small introduction to each of the five programs chosen for comparison, except \masqmail\ which already was introduced in chapter \ref{chap:introduction}.
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
80
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
81
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
82
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
83 \subsubsection*{sendmail}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
84 \label{sec:sendmail}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
85 \sendmail\ is the most popular \mta, since it was one of the first and was shipped as default \MTA{}s by many vendors of \unix\ systems. %fixme: ref
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
86
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
87 The program was written by Eric Allman as the successor of his program \name{delivermail}. \sendmail\ was first released with \NAME{BSD} 4.1c in 1983. Allman was not the only one working on the program. Other people developed own versions of it and a variety of flavors came up, especially in the late eighties when Allman was inactive. %fixme: ref
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
88
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
89 \sendmail\ is focused on transferring mails between different protocols and networks, this lead to a very flexible (though complex) configuration.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
90
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
91 The latest version is 8.14.3 from May 2008. The program is distributed under the \name{Sendmail License} as both, \freesw\ and proprietary software of \name{Sendmail, Inc.}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
92
128
6f622eb5c812 some sentences about MTA comparison
meillo@marmaro.de
parents: 126
diff changeset
93 Further development will go into the project \name{MeTA1} (the former name was \name{sendmail X}) which succeeds \sendmail.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
94
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
95 More information can be found on the \sendmail\ homepage \citeweb{sendmail:homepage} and on \citeweb{wikipedia:sendmail} and \citeweb{jdebp}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
96
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
97
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
98
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
99 \subsubsection*{exim}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
100 \label{sec:exim}
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
101 \name{exim} was started in 1995 by Philip Hazel at the \name{University of Cambridge}. It is forked of \name{smail-3}, and inherited the monolithic architecture, similar to \sendmail's. But having no separation of the individual components of the system, like \name{qmail} and \name{postfix} have, did not hurt. Its security is comparably good. %fixme: ref
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
102
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
103 \name{exim} is highly configurable, especially in the field of mail policies. This makes it easy to specify how mail is routed through the system and who is allowed to send email to whom. Also interfaces for integration of virus and spam check programs are provided by design. %fixme: ref
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
104
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
105 The program is \freesw, released under the \GPL. The latest stable version is 4.69 from December 2007.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
106
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
107 One finds \name{exim} on its homepage \citeweb{exim:homepage}. More information about it can be retrieved from \citeweb{wikipedia:exim} and \citeweb{jdebp}.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
108
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
109
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
110
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
111 \subsubsection*{qmail}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
112 \label{sec:qmail}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
113 \name{qmail} is seen by its community as ``a modern SMTP server which makes sendmail obsolete''.%fixme: ref
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
114 It was written by Daniel~J.\ Bernstein starting in 1995. His primary goal was to create a secure \MTA\ to replace the popular, but vulnerable, \sendmail. %fixme: ref
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
115
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
116 \name{qmail} first introduced many innovative concepts in \mta\ design and is generally seen as the first security-aware \MTA\ developed. %fixme:ref
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
117 %fixme: what about mmdf?
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
118
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
119 Since November 2007, \name{qmail} is released in the \name{public domain} which makes it \freesw. The latest release is 1.03 from July 1998.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
120
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
121 The programs homepages are \citeweb{qmail:homepage1} and \citeweb{qmail:homepage2}. Further information about \name{qmail} is available on \citeweb{lifewithqmail}, \citeweb{wikipedia:qmail} and \citeweb{jdebp}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
122
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
123
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
124
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
125 \subsubsection*{postfix}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
126 \label{sec:postfix}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
127 The \name{postfix} project was started in 1999 at \name{IBM research}, then called \name{VMailer} or \name{IBM Secure Mailer}. Wietse Venema's program ``attempts to be fast, easy to administer, and secure. The outside has a definite Sendmail-ish flavor, but the inside is completely different.''\citeweb{postfix:homepage} In fact, \name{postfix} was mainly designed after qmail's architecture to gain security. But in contrast to \name{qmail} it aims much more on being fast and full-featured.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
128
119
73fe291f79e6 added missing backslashes
meillo@marmaro.de
parents: 117
diff changeset
129 Today \name{postfix} is taken by many \unix\ systems and \gnulinux\ distributions as default \MTA.
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
130
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
131 The latest stable version is numbered 2.5.5 from August 2008. \name{postfix} is covered by the \name{IBM Public License 1.0} which is a \freesw\ license.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
132
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
133 Additional information is available on the program's homepage \citeweb{postfix:homepage}, on \citeweb{jdebp} and \citeweb{wikipedia:postfix}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
134
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
135
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
136
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
137
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
138
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
139
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
140 \section{Comparison of MTAs}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
141
128
6f622eb5c812 some sentences about MTA comparison
meillo@marmaro.de
parents: 126
diff changeset
142 This section tries not to provide an overall \MTA\ comparison, because this is already done by others. Remarkable are the one by Shearer \cite{shearer06} and an email discussion on the mailing list \name{plug@lists.q-linux.com} \citeweb{plug:mtas}. Tabulary overviews may be found at \citeweb{mailsoftware42} and \citeweb{wikipedia:comparison-of-mail-servers}. Hafiz \cite{hafiz05} discusses in detail on \mta\ architecture (comparing \sendmail, \name{qmail}, \name{postfix}, and \name{sendmail X}).
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
143
128
6f622eb5c812 some sentences about MTA comparison
meillo@marmaro.de
parents: 126
diff changeset
144 Here provided is an overview on a selection of important properties, covering the four previously introduced programs. The data comes from the above stated sources and is collected in table \ref{tab:mta-comparison}.
6f622eb5c812 some sentences about MTA comparison
meillo@marmaro.de
parents: 126
diff changeset
145
6f622eb5c812 some sentences about MTA comparison
meillo@marmaro.de
parents: 126
diff changeset
146 \url{http://archives.neohapsis.com/archives/postfix/2006-07/1762.html} %sloc evolution of postfix, sendmail, qmail
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
147
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
148
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
149
121
0d34a3283c1c added masters thesis by Munawar Hafiz, but text talking about it is still missing
meillo@marmaro.de
parents: 120
diff changeset
150
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
151 \begin{table}
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
152 \begin{center}
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
153 \input{input/mta-comparison.tex}
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
154 \end{center}
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
155 \caption{Comparison of MTAs}
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
156 \label{tab:mta-comparison}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
157 \end{table}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
158
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
159
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
160 \subsection{about market share}
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
161 \url{http://www.oreillynet.com/lpt/a/6849}
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
162
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
163 \url{http://www.mailradar.com/mailstat/}
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
164
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
165 Market share (by Bernstein in 2001): sendmail 42\% , exim 1.6\% , qmail 17\% , postfix 1.6\%.
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
166 masqmail has no relevant market share (debian popcon)
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
167
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
168
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
169
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
170
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
171 \subsection{About architecture}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
172
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
173 \subsection{Security comparison}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
174
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
175
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
176
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
177
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
178
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
179
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
180
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
181
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
182 << complexity >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
183
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
184 << security >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
185
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
186 << simplicity of configuration and administration >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
187
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
188 << flexibility of configuration and administration >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
189
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
190 << code size >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
191
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
192 << code quality >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
193
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
194 << documentation (amount and quality) >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
195
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
196 << community (amount and quality) >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
197
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
198 << used it myself >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
199
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
200 << had problems with it >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
201
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
202
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
203
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
204
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
205 << quality criteria >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
206
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
207 << standards of any kind >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
208
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
209 << how to compare? >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
210
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
211 << (bewertungsmatrix) objectivity >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
212
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
213 << how many criteria for ``good''? >> %FIXME
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
214
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents: 92
diff changeset
215
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents: 92
diff changeset
216
126
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
217
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
218
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
219 Ref back to \ref{sec:what-will-be-important}:
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
220
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
221 provider indepencence -> easy config:
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
222 \sendmail\ and \name{qmail} appear to have bad positions at this point. Their configuration is complex, thus they would need simplification wrappers around them to provide easy configuration.
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
223
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
224 performance not so important:
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
225 \name{postfix} focuses much on performance, this might not be an important point then.
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
226
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
227 security:
27ddf2506157 outsourced floats; minor stuff
meillo@marmaro.de
parents: 124
diff changeset
228 It seems as if all widely used \mta{}s provide good security nowadays. \name{qmail}'s architecture, also used in \name{postfix}, is generally seen to be conceptually more secure, however.
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
229
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
230
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
231 ---
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
232
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
233 But for example delivery of mail to local users is \emph{not} what \mta{}s should care about, although most \MTA\ are able to deliver mail, and many do. (\name{mail delivery agents}, like \name{procmail} and \name{maildrop}, are the right programs for this job.)
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents: 92
diff changeset
234
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
235
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
236 protocols like \NAME{SMTP} and \NAME{UUCP}, between which mail is transferred.\footnote{\sendmail{}'s initial purpose was moving mail between \NAME{UUCP}, \NAME{SMTP}, and \name{Berknet}.}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
237
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
238
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
239 ---
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
240
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
241
124
1cb6a2f5f077 spell checking done
meillo@marmaro.de
parents: 121
diff changeset
242 Like its ancestor \sendmail, \masqmail\ is a monolithic program. It consists of only one \emph{setuid root}\footnote{Runs as user root, no matter which user invoked it.}\index{setuid root} binary file, named \path{masqmail}. All functionality is included in it; of course some more comes from dynamic libraries linked.