HOME

TheInfoList



OR:

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