comparison ch03.roff @ 60:6a92e0208de0

Wrote about the removal of the mail transfer facilities.
author markus schnalke <meillo@marmaro.de>
date Fri, 01 Jun 2012 15:33:37 +0200
parents 814c33b96d89
children 24aabbfe5794
comparison
equal deleted inserted replaced
59:cd50590902d3 60:6a92e0208de0
7 7
8 8
9 9
10 .H1 "Stream-lining 10 .H1 "Stream-lining
11 11
12
13 .H2 "Removal of non-MUA Tools
14 .P 12 .P
15 MH had been considered an all-in-one system for mail handling. 13 MH had been considered an all-in-one system for mail handling.
16 The community around nmh has a similar understanding. 14 The community around nmh has a similar understanding.
17 In fundamental difference, I believe that mmh should be a MUA but 15 In fundamental difference, I believe that mmh should be a MUA but
18 nothing more. I believe that all-in-one mail systems are not the way 16 nothing more. I believe that all-in-one mail systems are not the way
29 increased, given the small community \(en developers and users \(en 27 increased, given the small community \(en developers and users \(en
30 that MH-based mail systems have. In consequence, I believe that the 28 that MH-based mail systems have. In consequence, I believe that the
31 available resources should be concentrated at the point where MH is 29 available resources should be concentrated at the point where MH is
32 most unique. This is clearly the MUA part. 30 most unique. This is clearly the MUA part.
33 .P 31 .P
32 The goal for mmh was to remove peripheral parts and stream-line
33 it for the MUA task.
34
35
36 .H2 "Removal of Mail Transfer Facilities
37 .P
38 In contrast to nmh, which also provides mail submission and mail retrieval
39 facilities, mmh is a MUA only.
40 .P
41 The MSA is called ``Message Transfer Service'' (MTS) in nmh.
42 The facility establishes TCP/IP connections and speaks SMTP to submit
43 messages for relay to the outside world.
44 This part is implemented in the
45 .Pn post
46 command.
47 Demanded by the changes in
48 emailing, this part of nmh required changes in the last years.
49 Encrypted connections needed to be supported, hence SASL was introduced
50 into nmh. This added complexity to the nmh without improving it in
51 its core functions. Also, keeping up with recent developments in
52 this field needs requires development power and specialists.
53 Mmh cuts this whole facility off and depends on an external MTA instead.
54 The only outgoing interface available to mmh is the
55 .Pn sendmail
56 command.
57 Almost any MTA provides a
58 .Pn sendmail
59 command.
60 It not, any program can be substituted if it reads the
61 message from the standard input, extracts the recipient addresses
62 from the message header and does not conflict
63 with sendmail-specific command line arguments.
64 .P
65 To retrieve mail, the
66 .Pn inc
67 command in nmh has the ability to establish TCP/IP connections
68 and speaks POP3 to retrieve mail from remote servers.
69 As with mail submission, here encrypted connections are required
70 today, thus SASL support was added.
71 As POP3 is superseded by IMAP more and more, support for message
72 retrieval through IMAP will become necessary to be added soon.
73 Mmh has no support for retrieving mail from remote locations.
74 It depends on an external tool to cover this task.
75 There are two ways for messages to enter mmh's mail storage:
76 Incorporate them with
77 .Pn inc
78 from the system maildrop, or with
79 .Pn rcvstore
80 from the standard input.
81 .P
82 In consequence, mmh includes neither networking nor SASL code anymore.
83 Two large separate functional units are removed.
84 They account for about XXX lines of code and XXX libraries.
85 .P
86 With the removal of the MSA and MRA, mmh converted from an all-in-one
87 mail system to the core: the MUA.
88 Following the Unix philosophy, it focuses on one job and to do that well.
89 Now, of course, mmh depends on third-party software.
90 An external MTA/MSA is required to transfer mail to the outside world;
91 an external MRA is required to retrieve mail from remote machines.
92 There exist excellent implementations of such software,
93 which do this specific task likely much better than the internal
94 versions of nmh do it. Also, this provides the choice for the best
95 suiting one of the available implementation.
96 .P
97 As it had already been possible to use an external MSA or MRA,
98 why not keep the internal version for convenience?
99 If this would question the sense in having a fall-back pager in all
100 the command line tools, in case
101 .Pn more
102 or
103 .Pn less
104 wouldn't be available, the answer is intuitively seen.
105 Now, an MSA or MRA is clearly more complex than a text pager, but
106 still the concept holds: If programs become complex, split them;
107 if projects become complex, split them.
108 Complexity is demanded by the problem to solve. Decades ago,
109 emailing had been small and simple.
110 (Remember,
111 .Pn /bin/mail
112 had once covered anything there was to email.)
113 As the complexity in emailing increased, MH remainded mostly unchanged.
114 Nontheless, in nmh the POP server, which the original MH had included,
115 was removed. Now is the time to take one step further and remove
116 the MSA and MRA.
117 Not only does it decrease the code amount of the project,
118 but more important, it removes the whole field of message transfer
119 with all its implications from the project.
120 .P
121 Users of MH are usually able to set up an external MSA and MRA.
122 Also, the popular MSAs and MRAs have large communities and a lot
123 of documentation available.
124 .P
125 Choices for MSAs range from the full-featured
126 .I Postfix
127 over mid-size solutions like
128 .I masqmail
129 and
130 .I dma
131 to small forwarders like
132 .I ssmtp
133 and
134 .I nullmailer .
135 Choices for MRAs include
136 .I fetchmail ,
137 .I getmail ,
138 .I mpop
139 and
140 .I fdm .
141
142
143
144 .H2 "Removal of non-MUA Tools
145 .P
34 Several of nmh's tools were removed from mmh because they didn't 146 Several of nmh's tools were removed from mmh because they didn't
35 match the main focus of adding to the MUA's task. 147 match the main focus of adding to the MUA's task.
36 .P 148 .P
37 .Pn conflict 149 .Pn conflict
38 was removed because it is a mail system maintenance tool. 150 was removed because it is a mail system maintenance tool.
96 together with the truly obsolete programs 208 together with the truly obsolete programs
97 .Pn vmh 209 .Pn vmh
98 and 210 and
99 .Pn wmh , 211 .Pn wmh ,
100 saved more than 7\|000 lines of C code \(en a major achievement. 212 saved more than 7\|000 lines of C code \(en a major achievement.
101
102 .U2 "Removal of the MTS
103 .P
104 213
105 214
106 .H2 "mhshow show Merge 215 .H2 "mhshow show Merge
107 .P 216 .P
108 Since the very beginning, already in the first concept paper, 217 Since the very beginning, already in the first concept paper,