annotate thesis/attic/mta-history-definition-sendmail.tex @ 292:83b0f64c0fc6

small design changes in cover
author meillo@marmaro.de
date Sat, 17 Jan 2009 17:21:06 +0100 (2009-01-17)
parents 2aad3d950640
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
94
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
1 \subsection{History of electronic mail}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
2 %FIXME: shorter!!!
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
3
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
4 Electronic mail\index{electronic mail} (short: \name{email})\citeweb{wikipedia:email} is a basic concept in \unix.\citeweb{unix-mail-intro} On \unix\ machines, a lot of information is distributed by \name{system mail}, which is email sent by the operating system. Beside that, email is the common communication system between humans working on computers.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
5
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
6 The \unix\ operating system supports email through the \name{mail user agent} (short: \NAME{MUA}) \name{/bin/mail}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
7
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
8 Development of \unix\ was not only made in the \name{Bell Labratories} of \NAME{AT\&T}. The \name{Univerity of California at Berkeley} worked on their version of a \unix\ operating system, too. It is refered to as \NAME{UCB} \unix, or \name{Berkeley} \unix\index{Berkeley Unix}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
9
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
10 The few features of \name{/bin/mail} lead to a second \NAME{MUA} from Berkeley: \name{Mail} (with a capital `M'). Later, the superior functionality of \name{Mail} went back to \name{Bell Labs} and into the program \name{mailx}, the successor of \name{/bin/mail}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
11
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
12 Nowadays, \name{mailx} and \name{Mail} are quite equivalent and \name{/bin/mail} is linked to either of them---whichever is installed.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
13
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
14 At that time, computers were connected by various kinds of networks. \name{Bell Labs} had invented the \NAME{UUCP} program and protocol suite (for ``\unix\ to \unix\ copy'')\citeweb{wikipedia:uucp}. Berkeley however had an own creation called \name{Berknet} in use. And the \name{United States Department of Defence Advanded Research Projects Agency}'s (\NAME{ARPA}) effort on designing a new wide area network, led to the \NAME{ARPANET}\citeweb{wikipedia:arpanet}, based on the \name{transmission control protocol} (\NAME{TCP}). There were also other, minor, kinds of networks in use.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
15
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
16 Email was transfered between different machines within the same networks. The file transfer itself was made uniformly using \NAME{FTP}, but the higher layered logic of the transfer was different. For example was addressing done different: \NAME{UUCP} used a flat-style schema, while \NAME{ARPANET}'s was hierachical.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
17
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
18 Mail transport from one machine connected to one kind of network to a second machine connected to another was a problem. This showed up at Berkeley where some departments of the university had switched to \NAME{ARPANET}, and some to \NAME{UUCP}, while the rest used \name{Berknet}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
19
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
20 It was around 1982, when Eric Allman, then a student at Berkeley, wrote \name{delivermail}. Its purpose was to transform email from one network to another. \name{delivermail}, like its successor---the more flexible \sendmail---intermediated between the different networks. They were able to transform email messages from any network to any other.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
21
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
22 Todays email structure is basicly the same as then. The major difference is the uniformity of the underlying network, which is nearly always the \NAME{ARPANET}-based \name{Internet}. Hence lowering the importance of the transformation capabilities of \MTA{}s, that was essential to \sendmail's success---yet being the primary motivation for the program.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
23
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
24 More information about the history of electronic mail can be found at: \citeweb{email:griffiths}, \citeweb{email:crocker}, \citeweb{email:vleck}, \citeweb{email:akkad}, \citeweb{email:murakami}, and \citeweb{email:tomlinson}. A good starting point for general information on internet history is \citeweb{wikipedia:historyoftheinternet}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
25 %TODO: check the websites which ones are the important ones; remove unnessesary ones
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
26
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
27
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
28
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
29 \subsection{Definition of \MTA}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
30 %FIXME: better title; work text over!
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
31 %TODO: when was the term ``mail transfer agent'' established?
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
32 % shorter!
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
33
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
34 This thesis is about a \name{mail transfer agent} (or \index{mail transport agent|see{mail transfer agent}}\name{mail transport agent}, short \NAME{MTA}): \masqmail. \sendmail\ is one too---the most important one.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
35
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
36 The basic job of a \mta\ is to transfer/transport electronic mail from one host to another.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
37
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
38 Here are definitions from others:
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
39
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
40 \begin{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
41 A mail transfer agent (MTA) is a highly specialized program that delivers mail and transports it between machines, like the post office.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
42 \cite{costales97}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
43 \end{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
44
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
45 \begin{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
46 A mail transfer agent (MTA) (also called a mail transport agent, message transfer agent, or smtpd (short for SMTP daemon)), is a computer program or software agent that transfers electronic mail messages from one computer to another.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
47 \citeweb{wikipedia:mta}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
48 \end{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
49
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
50 \begin{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
51 mail server (also known as a mail transfer agent or MTA, a mail transport agent, a mail router or an Internet mailer) is an application that receives incoming e-mail from local users (people within the same domain) and remote senders and forwards outgoing e-mail for delivery.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
52 \citeweb{website:techtarget}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
53 \end{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
54
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
55 \begin{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
56 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.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
57 %Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, often by SMTP over the Internet, it stores it temporarily locally and analyses the recipients and delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients. In either case it may edit and/or add to the message headers.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
58 %
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
59 %The most widely used MTA for Unix is sendmail, which communicates using SMTP.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
60 %
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
61 %RFC 2821 (SMTP) expands MTA as ``Mail Transfer Agent'' though this is less common. Alternatives with ``Transport'' are also seen but less correct.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
62 \citeweb{website:thefreedictionary}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
63 \end{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
64
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
65 Common is the transfer of mail to other machines; this is the actual job. \MTA{}s work with mail, received from local users and/or remote machines. Mail delivery however is \emph{not} what \mta{}s are for, although probably every \MTA\ is able to deliver mail, and many do. \name{mail delivery agents} (short: \NAME{MDA}) are the programs for this job. Two of the best known \NAME{MDA}s are \name{procmail} and \name{maildrop}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
66
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
67
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
68
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
69 \subsection{\name{sendmail-compatibility}}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
70 \label{sec:sendmail}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
71 %FIXME: rewrite!
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
72 % shorter!
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
73
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
74 Allman wrote it to transfer emails between different networks, thus giving \sendmail\ mighty address rewriting abilities. In contrast to its predecessor \name{delivermail}, was \sendmail\ designed to offer greatest flexiblity in configuration; this enabled it to deal with any type of network.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
75
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
76 \sendmail\ was, and still is, very successful. So successful that it stands, like no other, for the whole group of \MTA{}s: \name{sendmail} actually is the \emph{de facto standard} for \mta{}s.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
77
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
78 Its author, Allman, sees three reasons for the huge success: the ``sloopy'' approach (accepting badly formed messages); its focus on the routing function; and the flexible configuration (this was important in \sendmail's early days).
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
79 \cite[page xviii]{costales97}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
80
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
81 Others see \sendmail's success more critical. One of them is quoted in the \name{MMDF} FAQs \citeweb{faqs:mmdf}:
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
82 \begin{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
83 Sendmail was once compared by one old Internet hand to ``those killer bees that escaped from the laboratory---and now they're everywhere and you can't get rid of 'em''.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
84 \end{quote}
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
85 He definately hints here at \sendmail's many security vulnerabilities that came to light and on its complexity, in particular its obscure configuration file \path{sendmail.cf}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
86
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
87 No matter how \sendmail\ is seen, one must admit its influence on \unix\ emailing programs. Most existing substitutes mimic \sendmail's interface and behavior. Most notable, they create a symbolic link named ``sendmail'' pointing to their own executable. The reason herefor are the many programs assuming an executable called ``sendmail'' on every computer system existing.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
88
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
89 \sendmail\ is not only ported to many platforms, even including \name{Microsoft Windows}, but also it is still the prefered \MTA\ on many systems.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
90
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
91 For deeper knowledge on \sendmail's history, see \cite{costales97} and \cite{vixie01}.
7c0357cd4590 excluded general text about MTAs (to reuse some bits (perhaps))
meillo@marmaro.de
parents:
diff changeset
92