MH Message Handling System
Encyclopedia
The MH Message Handling System is a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

, open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 e-mail client
E-mail client
An email client, email reader, or more formally mail user agent , is a computer program used to manage a user's email.The term can refer to any system capable of accessing the user's email mailbox, regardless of it being a mail user agent, a relaying server, or a human typing on a terminal...

. 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
Unix shell
A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems...

 on Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s. 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 script
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...

ing tools. A descendant of MH continues to be developed under the name of nmh.

Design

MH is made up 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 .mh_profile in the user's own directory).

MH follows the Unix philosophy
Unix philosophy
The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system.-McIlroy: A Quarter Century of Unix:...

 of write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface (Doug McIlroy
Douglas McIlroy
Malcolm Douglas McIlroy is a mathematician, engineer, and programmer. As of 2007 he is an Adjunct Professor of Computer Science at Dartmouth College. Dr...

).

History

MH was proposed by R Stockton Gaines and Norman Shapiro
Norman Shapiro
Norman Z. Shapiro is an American mathematician,who is the co-author of the Rice–Shapiro theorem.Shapiro spent the summer of 1954 at Bell Laboratories in Murray Hill, New Jerseywhere, in collaboration withKarel de Leeuw,Ed Moore, and...

 and developed by Bruce S. Borden and others at RAND Corporation. Subsequently development was taken over by Marshall T. Rose
Marshall Rose
Marshall T. Rose is a network protocol and software engineer, author and speaker who has contributed to the Internet Engineering Task Force , the Internet, and Internet and network applications. More specifically, he has specialized in:...

 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
Post Office Protocol
In computing, the Post Office Protocol is an application-layer Internet standard protocol used by local e-mail clients to retrieve e-mail from a remote server over a TCP/IP connection. POP and IMAP are the two most prevalent Internet standard protocols for e-mail retrieval. Virtually all modern...

 daemon but also improved others such as portability and MIME
MIME
Multipurpose Internet Mail Extensions is an Internet standard that extends the format of email to support:* Text in character sets other than ASCII* Non-text attachments* Message bodies with multiple parts...

 support. The most recent release of nmh is version 1.3.

MH is in the public domain. nmh is released under the BSD Licence.

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
Mbox
mbox is a generic term for a family of related file formats used for holding collections of electronic mail messages. All messages in an mbox mailbox are concatenated and stored as plain text in a single file...

 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
ReiserFS
ReiserFS is a general-purpose, journaled computer file system designed and implemented by a team at Namesys led by Hans Reiser. ReiserFS is currently supported on Linux . Introduced in version 2.4.1 of the Linux kernel, it was the first journaling file system to be included in the standard kernel...

 the performance of MH can be comparable to that of a database based mail storage system.

The maildir
Maildir
The Maildir e-mail format is a common way of storing e-mail messages, where each message is kept in a separate file with a unique name, and each folder is a directory...

 storage format made popular by qmail
Qmail
qmail is a mail transfer agent that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program...

 and the Courier Mail Server
Courier Mail Server
The Courier mail server is a mail transfer agent server that provides ESMTP, IMAP, POP3, SMAP, webmail, and mailing list services with individual components. It is best known for its IMAP server component....

 improves upon several features first shown in MH: a separate file per message, a separate directory per mail "folder," and exploitation of hardlinks
Hard link
In computing, a hard link is a directory entry that associates a name with a file on a file system. . The term is used in file systems which allow multiple hard links to be created for the same file. This has the effect of creating multiple names for the same file, causing an aliasing effect: e.g...

 and other advanced filesystem features for improved performance in space and time.

Graphical interfaces

MH is inherently a command line based system, which limits its marketability to some extent, but also may not always be ideal for viewing emails with graphical content. For these reasons, among others, many users want to have a graphical interface which can also read their MH mailbox. The original program for this purpose was xmh, an X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 application. After development of xmh ceased, a similar tool called exmh was developed in Tcl/Tk. Exmh is considered feature-complete and there has been little development beyond bug fixes. An open source Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...

 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
Claws Mail
Claws Mail is a free, GTK+-based, open source email and news client. It offers easy configuration and an abundance of features. It stores mail in the MH mailbox format and also the Mbox mailbox format via a plugin...

, Novell Evolution
Novell Evolution
Evolution or Novell Evolution is the official personal information manager and workgroup information management tool for GNOME. It combines e-mail, calendar, address book, and task list management functions. It has been an official part of GNOME since version 2.8 in September 2004...

, Mutt
Mutt (e-mail client)
Mutt is a text-based email client for Unix-like systems. It was originally written by Michael Elkins in 1995 and released under the GNU General Public License version 2 or any later version....

 and Sylpheed
Sylpheed
Sylpheed is an open source e-mail client and news client licensed under the GPL. It provides easy configuration and an abundance of features. It stores mail in the MH Message Handling System. Sylpheed runs on Unix-like systems such as Linux or BSD as well as on Mac OS X and Windows. It uses...

.

The Gnus
Gnus
Gnus is a message reader running under GNU Emacs and XEmacs. It supports reading and composing both news and e-mail.Gnus blurs the distinction between news and e-mail, treating them both as "articles" that come from different sources. News articles are kept separate by group, and e-mail can be...

 nnml format is an extension of the MH mailbox format.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK