MH Message Handling System

Last updated

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.

Contents

Descendants of MH continue to be developed under the names of nmh and mmh. GNU Mailutils also contains an implementation of MH. [2]

Design

Designed with the Unix philosophy in mind, [3] 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. [4] 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") [5] is a 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, and released under the BSD License,. It incorporates the "LBL changes" made to MH in the late 80s by Van Jacobson, Mike Karels and Craig Leres. [6] The most recent release is nmh 1.8, 18 February 2023. . [5]

mmh ("meillo's mail handler") [7] 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 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. For a graphical interface, the original program was xmh, an X Window System application. After development of xmh ceased, a similar tool called exmh was developed in Tcl/Tk; and last updated January 7, 2004. [8] Exmh is considered feature-complete and since 2004 there has been little development beyond bug fixes. An Emacs interface to MH is also provided by the MH-E project. [9]

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.

See also

Related Research Articles

<span class="mw-page-title-main">GNU Hurd</span> Operating system kernel designed as a replacement for Unix

GNU Hurd is a collection of microkernel servers written as part of GNU, for the GNU Mach microkernel. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and released as free software under the GNU General Public License. When the Linux kernel proved to be a viable solution, development of GNU Hurd slowed, at times alternating between stasis and renewed activity and interest.

In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, it is one of the most common protocols for email retrieval.

<span class="mw-page-title-main">Email client</span> Computer program used to access and manage a users email

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.

<span class="mw-page-title-main">Maildir</span> E-mail format

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 added, moved and deleted. A major design goal of Maildir is to eliminate the need for program code to handle file locking and unlocking.

Mbox is a generic term for a family of related file formats used for holding collections of email messages. It was first implemented in Fifth Edition Unix.

<span class="mw-page-title-main">Outlook Express</span> Microsoft e-mail client software

Outlook Express, formerly known as Microsoft Internet Mail and News, is a discontinued email and news client included with Internet Explorer versions 3.0 through 6.0. As such, it was bundled with several versions of Microsoft Windows, from Windows 98 to Windows Server 2003, and was available for Windows 3.x, Windows NT 3.51, Windows 95, Mac System 7, Mac OS 8, and Mac OS 9. In Windows Vista, Outlook Express was superseded by Windows Mail.

<span class="mw-page-title-main">Gnus</span>

Gnus, or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote filesystems.

<span class="mw-page-title-main">Sylpheed</span>

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 Message Handling System. Sylpheed runs on Unix-like systems such as Linux or BSD, and it is also usable on Windows. It uses GTK+.

A message delivery agent (MDA), or mail delivery agent, is a computer software component that is responsible for the delivery of e-mail messages to a local recipient's mailbox. It is also called a local delivery agent (LDA).

<span class="mw-page-title-main">Mutt (email client)</span> Text-based email client for Unix-like systems

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.

<span class="mw-page-title-main">Pegasus Mail</span> Proprietary email system originally released for Novell Netware LAN.

Pegasus Mail is a proprietary email client developed by David Harris. It was originally released in 1990 for internal and external mail on NetWare networks with MS-DOS and later Apple Macintosh clients. It was subsequently ported to Microsoft Windows, which is now the only platform actively supported. Previously freeware, Pegasus Mail is now donationware.

Apple Open Collaboration Environment (AOCE) is a collection of messaging-related technologies introduced for the Classic Mac OS in the early 1990s. It includes the PowerTalk mail engine, which is the primary client-side interface to the system, the PowerShare mail server for workgroup installations, and a number of additional technologies such as Open Directory, encryption, and digital signature support.

The following tables compare general and technical features of notable email client programs.

<span class="mw-page-title-main">Microsoft Mail</span> Several Microsoft email products

Microsoft Mail was the name given to several early Microsoft e-mail products for local area networks, primarily two architectures: one for Macintosh networks, and one for PC architecture-based LANs. All were eventually replaced by the Exchange and Outlook product lines.

The UW IMAP server was the reference server implementation of the Internet Message Access Protocol. It was developed at the University of Washington by Mark Crispin and others.

In computer science, the event loop is a programming construct or design pattern that waits for and dispatches events or messages in a program. The event loop works by making a request to some internal or external "event provider", then calls the relevant event handler. The event loop is also sometimes referred to as the message dispatcher, message loop, message pump, or run loop.

mail is a command-line email client for Unix and Unix-like operating systems.

<span class="mw-page-title-main">Claws Mail</span> E-mail client software

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. Plugins allow to read HTML mail, but there is none to compose HTML messages.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

MH & xmh: Email for Users & Programmers is the first book in history to have been published within the Internet.

References

  1. "How UNIX Email Works: MH & NMH: Email for Users & Programmers".
  2. "GNU Mailutils Manual".
  3. "The MH Mailer -- A brief intro", Marc VanHeyningen, December 1993.
  4. 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 2017-05-09.
  5. 1 2 "nmh - Message Handling System" . Retrieved 20 December 2018.
  6. "nmh - "LBL" changes" . Retrieved 2012-03-23.
  7. "meillo's mail handler (mmh)" . Retrieved 14 March 2021.
  8. "Exmh 2.7.2" . Retrieved 20 December 2018.
  9. "MH-E" . Retrieved 20 December 2018.