Mercurial > docs > master
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, |