Mercurial > docs > master
annotate ch01.roff @ 8:3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Wed, 07 Mar 2012 16:04:08 +0100 |
parents | f3425905d7d1 |
children | 34727751be7e |
rev | line source |
---|---|
0
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
1 .H0 "Introduction |
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
2 .P |
2
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
3 This chapter describes the background of the topics in this thesis. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
4 General knowledge of electronic mail is assumed. |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
5 It explains the situation at the start of the project. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
6 It tries to describe from what state the project lifted of and where |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
7 it headed to. This shall give an overview. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
8 |
0
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
9 |
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
10 .H1 "What is MH? |
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
11 .P |
2
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
12 MH is an electronic mail system, originating in the RAND Corporation. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
13 Historically, it had been a all-in-one mail system, with Mail Transfer |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
14 Agent (MTA) and Mail User Agent (MUA). |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
15 Later, when electronic mail systems changed, Mail Submission Agent (MSA) |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
16 and Mail Retrieval Agent (MRA) facilities were added. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
17 The MTA became less important, whereas the MUA became even more the |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
18 central part. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
19 .P |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
20 First of all, MH is a style of a mail handling system. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
21 It had started as a design proposal, not as an implementation, and |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
22 had in spirit remained so. This is similar to Unix, which much less |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
23 is a specific software product, as it is a style of system design. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
24 |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
25 .H2 "History" no |
2
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
26 .P |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
27 MH is an electronic mail system, originating in the RAND Corporation. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
28 In 1977, Norman Shapiro and Stockton Gaines had proposed the design |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
29 of a new mail handling system, called ``Mail Handler'' (MH) for RAND, |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
30 to superseed their ``Mail System'' (MS). |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
31 Two years later, in 1979, XXX took the proposal and implemented a |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
32 prototype of MH. It proved successful and replaced MS thereafter. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
33 .P |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
34 A decade later, the University of California had started to use MH. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
35 They also took over its development and pushed MH forward. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
36 This had been the time when the Internet appeared, Berkeley implemented |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
37 the TCP stack, and Sendmail was born. MH had often contained the first |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
38 implementation of new RFCs. |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
39 .P |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
40 In the nineties, MH had been moved into the public domain, making it |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
41 attractive to Free Software developers. The Internet had started to become |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
42 mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler'' |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
43 (nmh), a fork of MH. He intended to modernize MH, improve its MIME |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
44 capabilities, and this should be done openly within the Internet |
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
45 community. Today, nmh almost completely replaced the original MH. |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
46 .P |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
47 Three versions of MH are currently available: |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
48 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
49 .B "Old MH" . |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
50 In most cases it has been replaced by nmh, but there are still systems |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
51 that provide old MH. As nmh is old MH-compatible, there exist few reasons |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
52 not to upgrade to new. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
53 The development of old MH stopped almost completely. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
54 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
55 .B Nmh . |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
56 The most widespread version of MH. Backward-compatible to old MH. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
57 Provides new featues, which need to be activated explicitely. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
58 Its development went slowly in the previous years, but had revived |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
59 in Fall 2011. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
60 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
61 .B Mmh |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
62 A descendent of nmh. Had started as a non-compatible experimental |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
63 version, but became de facto a fork. Tries to expand the same |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
64 principal concepts in a more modern way. This version of MH is the |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
65 subject of this thesis. |
0
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
66 |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
67 .H2 "Concepts" no |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
68 .P |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
69 MH is a toolchest, modelled after the Unix toolchest. It consists of a |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
70 bunch of tools, each covering one task of email handling. These programs |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
71 operate on a common mail storage. The specific format of the mail storage |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
72 also defines MH, like the file system structure defines Unix. It |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
73 consists of directories (mail folders) and files (mail messages). |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
74 Each file contains exactly one message in the format it had been |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
75 received (i.e. transfer format). MH tools carry a state (context), |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
76 consisting of current mail folder and current message. Messages can |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
77 have symbolic names, like the next or last message or for some |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
78 arbitrary group of messages. These names are called sequences. |
0
dc2bfef4cda7
Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff
changeset
|
79 .P |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
80 New MH tools can be build out of existing ones easily. Default values to |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
81 commands are stored on a command name-basis, making it trivial to have |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
82 different versions of the same command with different defaults. Most |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
83 of the configuration is stored in the user's profile. Form templates, |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
84 e.g. for new messages or replies, are exchangeable and output is generally |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
85 adjustable with format files. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
86 .P |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
87 MH allows the user to automate almost everything and to modify amost |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
88 any behavior. The system is scriptable and extendable. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
89 |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
90 |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
91 .H1 "Understanding of the Code and Community |
2
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
92 .P |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
93 In order to understand the state, goals and dynamics of a project, |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
94 one needs to know its history. MH comes from a time before the |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
95 Internet, a time before networking became universal, a time when |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
96 emailing was small, short and simple. Then it grew, spread and |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
97 adopted to the changes. The core-concepts, however, remained the |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
98 same. During the XXX a small group of students at the University of |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
99 California, actively worked on MH. They added features and optimized, |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
100 like it is common for scientific work. This is still in pre-ANSI C |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
101 times. The source code contains many ancient parts. Code constructs |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
102 specific to BSD or hardware of that time are usual. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
103 .P |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
104 Nmh started eight years after the ANSI C standard had been |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
105 established. A more modern coding style entered the code base. Still |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
106 a part of the developers come from ``the old days''. The developer |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
107 base became more diverse and thus the code. Programming practices |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
108 from different decades merged into the project. Different coding |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
109 styles came together. It appears as if multiple peers added code |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
110 parts, resulting in a conclomeration rather than an homogenic |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
111 of-one-cast mail system. Still, the basic concepts hold it together. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
112 They were mostly untouched throughout the years. |
2
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
113 .P |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
114 Although, at the surface, nmh is a toolchest, meaning a collection |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
115 of completely modularized small programs, on the source code level, |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
116 it is much more interweaved. Parts of the basic functions are |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
117 collected in a MH standard library, which is good, but often |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
118 separate functions are compiled into programs, for effiency reasons. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
119 This lead to intricate innards. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
120 The advent of MIME rose the complexity of email by a magnitude. This |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
121 is visible in nmh. The MIME-related parts are the most complex ones. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
122 It's also visible that MIME support had been added on top of the |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
123 original MH later. The MH style made this easily possible, but it |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
124 also lead to duplicated functions (e.g. \fLshow\fP, \fLmhshow\fP) |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
125 and had not been thoroughly included into the concepts (e.g. the |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
126 user-visible access to whole messages and MIME parts are inherently |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
127 different). |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
128 .P |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
129 For compatibility's sake, it is a common understanding to have the |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
130 default settings to be compatible, requiring any new feature to be |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
131 explicitely enabled. This puts a burden on new users, because nmh |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
132 out-of-the-box keeps staying in the same ancient style, where users |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
133 usually want to have it practical for modern emailing. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
134 But of course, this depends on if nmh is seen to be a front-end or a |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
135 back-end. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
136 |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
137 |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
138 .H1 "My Vision |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
139 .P |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
140 The general goals of the mmh project are the following: |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
141 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
142 I believe that mmh should be perfectly suited for modern emailing, |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
143 out-of-the-box. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
144 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
145 I care less about compatibility and more about conceptionally elegant |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
146 approaches. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
147 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
148 I care for general, clear, and simple concepts. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
149 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
150 I like to create an of-one-style email system. It should feel like |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
151 cast as one. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
152 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
153 I plan to remove any optimizations that rises obscurity, unless it |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
154 appears to be neccessary to make mmh usable at all. |
2
65e4327aa9f8
Added some introduction text.
markus schnalke <meillo@marmaro.de>
parents:
0
diff
changeset
|
155 .P |
8
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
156 .B "The target user in mind |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
157 likes Unix and its philosophy. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
158 He likes to use programs that are conceptionally appealing. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
159 He's familiar with the command line and enjoys its power. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
160 He is at least capable of shell scripting and wants to improve his |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
161 productivity by scripting the mail system. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
162 His computer and operating system are from post-ANSI C times. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
163 He likes to attach files, exchanges text containing non-ASCII |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
164 characters, signs or encrypts his messages. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
165 He does not use bulletin boards anymore, nor non-mbox style mail |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
166 drops, nor does he rely on compatibility to nmh. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
167 He already has and MTA/MSA and MRA running or is able to set them |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
168 up. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
169 He does not want to have to read a book in order to make his MUA |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
170 usable. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
171 |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
172 |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
173 .H1 "Things to do |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
174 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
175 Remove any MTA and MRA facilities. Mmh shall concentrate on the MUA |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
176 task. Mail shall enter mmh's mail storage via the system mail drop |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
177 and it shall leave mmh via the local \fLsendmail\fP command. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
178 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
179 Remove any further functions that are not related to mmh's main task. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
180 Bulletin board support is on example. Also remove support for ancient |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
181 technologies, like hardcopy terminals. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
182 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
183 Refactor the source code to meet modern style criteria. Use |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
184 standardized library functions when possible. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
185 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
186 Replace performance optimizations by clear and readable code. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
187 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
188 Reduce the feature set to the commonly used one, removing |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
189 corner-cases. Set sane default values. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
190 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
191 Add better attachment support. Add support for digital signatures and |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
192 encryption. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
193 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
194 Merge \fLshow\fP and \fLmhshow\fP into one single mail display program. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
195 Integrate MIME support deeper and more natural into MH. |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
196 .BU |
3ef5449c1175
Moved text; wrote more text; removed ch02.roff.
markus schnalke <meillo@marmaro.de>
parents:
3
diff
changeset
|
197 Provide a ready-to-use setup out-of-the-box. |