MH & nmh: Email for Users & Programmers

May, 2006

Why Choose MH?

One big difference between MH and most other mail user agents is that you can use MH from a UNIX shell prompt (like % or $). In MH, each command is a separate program, and the shell is used as an interpreter. So all the features of UNIX shells (pipes, redirection, history, aliases, and so on) work with MH -- you don't have to learn a new interface.

MH is an incredibly rich and flexible email environment. The difference between MH and other mail systems reminds me of the difference between a wide-open powerful operating system like UNIX and a more-restricted environment like Microsoft Windows. At first, the limited environment looks good because it's simpler: the system designer gave you a limited set of choices -- usually with menus that remind you of the (limited) choices you have. But once you reach the limits and want to do more, you may be out of luck. Starting with MH really isn't that difficult -- and, with the flexibility you'll gain (whether you do the customization or someone else does), there's almost no limit to what you can do with email under MH.

One more advantage of MH is the "user-friendly" interfaces that have been designed for it. This book covers two of them: xmh and exmh (this book once covered MH-E, but MH-E's documentation has been moved to The MH-E Manual). If you don't like working at the UNIX command line all of the time, these interfaces make MH commands easier to use: they execute the standard MH commands for you. When you need to do something more, you can go to a UNIX command line and type MH commands. Switching between standard MH commands and the three front-ends to MH takes little or no time.