MH Message Handling System
The MH Message Handling System is a free, open source e-mail client. It is different from almost all other mail reading systems in that, instead of a single program, it is made from several different programs which are designed to work from the command line provided by the shell on Unix-like operating systems.[1] Another difference is that rather than storing multiple messages in a single file, messages each have their own separate file in a special directory. Taken together, these design choices mean that it is very easy and natural to script actions on mail messages using the normal shell scripting tools. A descendant of MH continues to be developed under the name of nmh.
Design
Designed with the Unix philosophy in mind,[2] MH is composed of separate programs such as show
, to view a message, scan
, to see message titles and rmm
to remove messages. By using the pick
program, it is possible to select messages, based on sender for example, which the other programs act on.
Because the different programs are run separately and at different times, communication between them has to be arranged specially. Information such as the mail which is currently selected is stored in files (in this case by an .mh_sequences
file in the user's MH directory tree).
History
MH was proposed by R. Stockton Gaines and Norman Shapiro and developed by Bruce S. Borden and others at RAND Corporation.[3] The initial version of MH had been created by 1979. Subsequently development was taken over by Marshall T. Rose and John L. Romine working at University of California, Irvine. The last release of MH was 6.8.4 which was a maintenance patch for the 6.8.3 release.
nmh is the current active version of MH. It was forked from version MH 6.8.3 by Richard Coleman while working at the Georgia Institute of Technology. It actually removed some features such as the POP daemon but also improved others such as portability and MIME support. Earlier versions of nmh known as "LBL" changes were made in the late 80s by Van Jacobson, Mike Karels and Craig Leres.[4] The most recent release of nmh is version 1.6.[5]
MH is in the public domain. nmh is released under the BSD License.
Performance
The performance of MH is very much dependent on the file system and other features of the operating system that it runs on. Every read of a message will require starting a separate program, a directory scan in a large directory and a file open before the data can even be accessed. On the other hand, mailbox formats such as mbox which use a single file often require insertion or removal of data in the middle of the file when messages are read or altered and this can be a very slow procedure. In these cases MH will be much faster.
With a modern file system designed for large directories and small files such as ReiserFS the performance of MH can be comparable to that of a database based mail storage system.
The maildir storage format made popular by qmail and the Courier Mail Server improves upon several features first shown in MH: a separate file per message, a separate directory per mail "folder," and exploitation of hardlinks and other advanced filesystem features for improved performance in space and time.
Interface
MH is inherently a command line based system. Thus it does not allow direct viewing of graphical content in email. For this reason, among others, some users may want to use a graphical interface to read their MH mailbox. The original program for this purpose was xmh, an X Window System application. After development of xmh ceased, a similar tool called exmh was developed in Tcl/Tk. Exmh is considered feature-complete and since 2004 there has been little development beyond bug fixes. An open source Emacs interface to MH is provided by the MH-E project. In addition to these dedicated MH clients, support for MH mailboxes is included in several other clients such as Claws Mail, Novell Evolution, Mutt and Sylpheed.
The nnml format used by Gnus is an extension of the MH mailbox format.
See also
References
- ↑ http://rand-mh.sourceforge.net/book/overall/howwor.html
- ↑ "The MH Mailer -- A brief intro", Marc VanHeyningen, December 1993.
- ↑ Robert H. Anderson, Norman Z. Shapiro, Tora K. Bikson, Phyllis H. Kantar (December 1989). "The Design of the MH Mail System" (PDF). p. 11 note 2. Retrieved 2015-10-25.
- ↑ "nmh - "LBL" changes". Retrieved 2012-03-23.
- ↑ "nmh — New Message Handler". Retrieved 2014-08-01.
External links
- Original MH homepage at the Wayback Machine (archive index)
- Current MH homepage
- Early history from MH & xmh: Email for Users & Programmers, by Jerry Peek