The MH Message Handling System is a
free,
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
e-mail client
An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email.
A web application which provides message management, composition, and reception functio ...
. 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
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
** Thin-shell structure
Science Biology
* Seashell, a hard o ...
on
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
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
A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manip ...
ing tools.
Descendants of MH continue to be developed under the names of nmh and mmh. GNU Mailutils also contains an implementation of MH.
Design
Designed with the
Unix philosophy
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix dev ...
in mind,
["The MH Mailer -- A brief intro"]
Marc VanHeyningen, December 1993. 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
Norman Zalmon Shapiro was an American mathematician, who was the co-author of the Rice–Shapiro theorem.
Education
Shapiro obtained a BS in Mathematics at University of Illinois in 1952.
Shapiro spent the summer of 1954 at Bell Laboratories in ...
and developed by Bruce S. Borden and others at
RAND Corporation
The RAND Corporation (from the phrase "research and development") is an American nonprofit global policy think tank created in 1948 by Douglas Aircraft Company to offer research and analysis to the United States Armed Forces. It is financed ...
. 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, and it's in the public domain.
nmh ("new MH")
is a current active version of MH. It was
fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
ed from version MH 6.8.3 by Richard Coleman while working at the Georgia Institute of Technology, and released under the
BSD License
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
,. It incorporates the "LBL changes" made to MH in the late 80s by
Van Jacobson
Van Jacobson (born 1950) is an American computer scientist, renowned for his work on TCP/IP network performance and scaling. ,
Mike Karels
Michael J. (Mike) Karels is an American Software Engineer and one of the key people in history of BSD UNIX.
A graduate of University of Notre Dame with a Bachelor of Science in Microbiology. Mike went on to University of California, Berkeley for ...
and Craig Leres. The most recent release is nmh 1.7.1, March 7th, 2018.
[
mmh ("meillo's mail handler")] is a fork of nmh, but their user interface are incompatible.
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 is a generic term for a family of related file formats used for holding collections of email messages. It was first implemented in Research Unix, Fifth Edition Unix.
All messages in an mbox mailbox are concatenated and stored as plain text ...
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.
The maildir
The Maildir e-mail format is a common way of storing email messages in which each message is stored in a separate file with a unique name, and each mail folder is a file system directory. The local file system handles file locking as messages are ...
storage format made popular by qmail
qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. Originally license-free software, qmail's source code was ...
and the Courier Mail Server
The Courier Mail Server is a mail transfer agent (MTA) server that provides SMTP, IMAP, POP3, SMAP, webmail, and mailing list services with individual components. It is best known for its IMAP server component.
Courier can function as an interme ...
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. For a graphical interface, the original program was ''xmh'', an X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
application. After development of xmh ceased, a similar tool called ''exmh'' was developed in Tcl/Tk
Tk is a free and open-source, cross-platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface (GUI) in many programming languages.
Tk provides a number of widgets commonly needed to ...
; and last updated January 7, 2004. Exmh is considered feature-complete and there has been little development beyond bug fixes. An Emacs
Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
interface to MH is also 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 is a free and open-source, C/GTK-based e-mail client, which is both lightweight and highly configurable. Claws Mail runs on both Windows and Unix-like systems such as Linux, BSD, and Solaris. It stores mail in the MH mailbox format. ...
, Novell Evolution
GNOME Evolution (formerly Novell Evolution and Ximian Evolution, prior to Novell's 2003 acquisition of Ximian) is the official personal information manager for GNOME. It has been an official part of GNOME since Evolution 2.0 was included with th ...
, Mutt and Sylpheed.
See also
* List of email clients
The following tables compare general and technical features of notable email client programs.
General
Basic general information about the clients: creator/company, O/S, licence, & interface. Clients listed on a light purple background are no long ...
* MH & xmh: Email for Users & Programmers
nmh Message Handling System
meillo's mail handler (mmh)
References
External links
*
Current MH homepage
{{Authority control
Email storage formats
Email client software for Linux
Free email software
Unix Internet software
Software using the BSD license