MH Message Handling System
   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 so ...
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 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 daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
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 man ...
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 Uni ...
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 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 finance ...
. 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 tine (structural), tines with which one ...
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 lice ...
,. It incorporates the "LBL changes" made to MH in the late 80s by Van Jacobson,
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 fo ...
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 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 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 cod ...
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 intermedi ...
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 wi ...
application. After development of xmh ceased, a similar tool called ''exmh'' was developed in Tcl/Tk; 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, ...
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, Novell Evolution, Mutt and
Sylpheed Sylpheed is an open-source e-mail client and news client licensed under GNU GPL-2.0-or-later with the library part ''LibSylph'' under GNU LGPL-2.1-or-later. It provides easy configuration and an abundance of features. It stores mail in the MH Me ...
.


See also

* List of email clients * 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