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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.