annotate thesis/tex/3-MailTransferAgents.tex @ 123:f2046b9c5382

spell checking done
author meillo@marmaro.de
date Thu, 04 Dec 2008 10:53:34 +0100
parents 0d34a3283c1c
children 1cb6a2f5f077
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}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
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 funktionality. Modules for mail transfer, file storage, calendars, resource management, instant messaging, etc., are commonly available.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
38
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
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 efficently. But one may use \name{groupware} on the home server for his family members also.
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
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
47 Common to them is their focus on transfering 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}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
53 \name{Mail transfer agents} can also be splitted in other ways.
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
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
56 Due to \sendmail's significance---described in section \ref{sec:sendmail}---compatiblity 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?
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
57 \MTA{}s not having a \emph{sendmail-compatible} interface or not offering it as a compatibility addon, 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
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
71
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
72 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
73
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
74 For the comparision, 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
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
75
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
76 \name{courier-mta} is also a member of this group, being even closer to \name{groupware} than \name{postfix}. It is excluded here, because the \NAME{IMAP} and webmail parts of the mail server suite are more in focus than its \MTA. Common mail server setups even bundle \name{courier-imap} with \name{postfix}. %fixme: need this sentence?
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
77
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
78 Other members are: \name{smail}, \name{zmailer}, \name{mmdf}, and more; they all are less important and rarely used.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
79
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
80 Following is a small introduction to each of the five programs chosen for comparision, except \masqmail\ which already was intoduced in chapter \ref{chap:introduction}.
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
81
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
82
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
83
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
84 \subsubsection*{sendmail}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
85 \label{sec:sendmail}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
86 \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
87
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
88 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
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
90 \sendmail\ is focused on transfering mails between different protocols and networks, this lead to a very flexible (though complex) configuration.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
91
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
92 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
93
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
94 Further development will go into the project \name{MeTA1} which succeeds \sendmail.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
95
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
96 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
97
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
98
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
99
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
100 \subsubsection*{exim}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
101 \label{sec:exim}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
102 \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 monolitic 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
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
103
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
104 \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
105
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
106 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
107
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
108 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
109
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
110
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
111
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
112 \subsubsection*{qmail}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
113 \label{sec:qmail}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
114 \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
115 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
116
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
117 \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
118 %fixme: what about mmdf?
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
119
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
120 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
121
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
122 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
123
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
124
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
125
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
126 \subsubsection*{postfix}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
127 \label{sec:postfix}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
128 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
129
119
73fe291f79e6 added missing backslashes
meillo@marmaro.de
parents: 117
diff changeset
130 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
131
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
132 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
133
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
134 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
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
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
140
120
3b5e6ffd7b27 typographic cleanups
meillo@marmaro.de
parents: 119
diff changeset
141 \section{Comparison of MTAs}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
142
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
143 << general fact in table \ref{tab:mta-comparison} >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
144
121
0d34a3283c1c added masters thesis by Munawar Hafiz, but text talking about it is still missing
meillo@marmaro.de
parents: 120
diff changeset
145 Refer to \cite{hafiz05}.
0d34a3283c1c added masters thesis by Munawar Hafiz, but text talking about it is still missing
meillo@marmaro.de
parents: 120
diff changeset
146
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
147 \begin{table}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
148 \begin{tabular}[hbt]{| p{0.13\textwidth} || p{0.13\textwidth} | p{0.13\textwidth} | p{0.13\textwidth} | p{0.13\textwidth} | p{0.13\textwidth} |}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
149 \hline
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
150
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
151 & sendmail & exim & qmail & postfix & masqmail \\
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
152 \hline \hline
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
153 First release & 1983 & 1995 & 1996 & 1999 & 1999 \\
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
154 \hline
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
155 Lines of code (with sloccount on debian packages)& 93k & 54k & 18k & 92k & 14k \\
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
156 \hline
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
157 Architecture & monolitic & monolitic & modular & modular & monolitic \\
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
158 \hline
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
159 Design goals & flexibility & general, flexible \& extensive facilities for checking & security & performance and security & for non-permanent internet connection \\
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
160 \hline
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
161 Market share (by Bernstein in 2001) & 42\% & 1.6\% & 17\% & 1.6\% & (unknown) \\
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
162 \hline
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
163
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
164 \end{tabular}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
165 \caption{Comparison of MTAs}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
166 \label{tab:mta-comparison}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
167 \end{table}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
168
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
169
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
170 \subsection{about market share}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
171
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
172 \subsection{About architecture}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
173
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
174 \subsection{Security comparision}
89
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
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
177 \url{http://shearer.org/MTA_Comparison}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
178
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
179 \url{http://www.geocities.com/mailsoftware42/}
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
180
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
181 \url{http://fanf.livejournal.com/50917.html}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
182
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
183 \url{http://archives.neohapsis.com/archives/postfix/2006-07/1762.html}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
184
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
185 \url{http://www.oreillynet.com/lpt/a/6849}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
186
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
187 \url{http://www.mailradar.com/mailstat/}
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
188
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
189
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
190
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
191
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
192
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 << complexity >>
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 << security >>
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 << simplicity of configuration and administration >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
199
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
200 << flexibility of configuration and administration >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
201
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
202 << code size >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
203
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
204 << code quality >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
205
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
206 << documentation (amount and quality) >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
207
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
208 << community (amount and quality) >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
209
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
210 << used it myself >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
211
101
6e2eaf91e59f some comments
meillo@marmaro.de
parents: 99
diff changeset
212 << had problems with it >>
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
213
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
214
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
215
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
216
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
217 << quality criteria >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
218
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
219 << standards of any kind >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
220
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
221 << how to compare? >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
222
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
223 << (bewertungsmatrix) objectivity >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
224
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
225 << how many criterias for ``good''? >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
226
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents: 92
diff changeset
227
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents: 92
diff changeset
228
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
229 << from the practice of programming: are the names good? check the significant number of characters. (intern: 31char, extern: 6char caseless; ProgC p.184) >>
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
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
234 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
235
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
236
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
237 protocols like \NAME{SMTP} and \NAME{UUCP}, between which mail is transfered.\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
238
117
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
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
242
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 116
diff changeset
243 Like its anchestor \sendmail, \masqmail\ is a monolitic 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.