NMH(7mh)

πŸ’Œ NMH β€” like, the whole vibe of the Modern MH message system

okay bestie, so this is the NMH(7mh) page β€” the big-picture intro one. it's not a command, it's the ✨orientation✨. think of it as the group chat where everyone explains what the actual system is. sit down, grab a snack πŸ“


🌸 NAME 🌸

mmh β€” Introduction to the Modern MH message system. that's it, that's the whole name. short, iconic, no notes πŸ’…


✨ DESCRIPTION ✨

mmh is a powerful message handling system, based on nmh, which in turn bases on MH, the Rand Corporation's Message Handler. so it's a whole lineage, a dynasty, if you will πŸ‘‘

Rather than being one giant comprehensive program, mmh consists of a collection of fairly simple single-purpose programs to send, retrieve, organize, and manipulate messages. tiny little specialists. a whole crew. we love a modular moment 🫢

Unlike most other mail clients, mmh is not a closed system which must be explicitly run, then exited when you wish to return to the shell. nope! instead, you may freely intersperse mmh commands with other shell commands, allowing you to read and answer your mail while you search for a file or run programs as needed to find the answer to someone's question before answering their mail. multitasking queen behaviour, honestly 😌

The rest of this manual entry is a quick tutorial which will teach you the basics of mmh. You should read the manual entries for the individual programs for complete documentation. (yes bestie, there's more. there's always more.)

To get started using mmh, put the directory /usr/bin/mh on your $PATH. This is best done in one of the files: .profile, .login, .bashrc, or .cshrc in your home directory. (Check the manual entry for the shell you use, in case you don't know how to do this.) Then run the mmh command. If you've never used mmh before, it will create the necessary default files and directories after asking you if you wish it to do so. so polite. so considerate. consent-based config setup πŸŽ€

inc moves mail from your system maildrop into your mmh +inbox folder, converting it to the MH format (one file per message). It prints one line for each message it processes, containing the date, from and subject fields. It leaves the first message it processes as your current message. You'll need to run inc each time you wish to incorporate new mail into your mmh mail storage. it's giving "mailbox doorman" πŸšͺ

scan prints a list of the messages in your current folder. the lil table of contents, the tl;dr, the vibe check ✨

The commands: show, next, and prev are used to read specific messages from the current folder. show displays the current message, or a specific message, which may be specified by its number, which you pass as an argument to show. next and prev display, respectively, the message numerically after or before the current message. In all cases, the message displayed becomes the current message. If there is no current message, show may be called with an argument, or next may be used to advance to the first message.

rmm (remove message) deletes the current message. It may be called with message numbers passed as arguments, to delete specific messages. bye bye πŸ‘‹

repl is used to respond to the current message (by default). It places you in the editor with a prototype response form. After completing your response, type li to list (review) it, or s to send it.

comp allows you to compose a fresh message by putting you in the editor on a prototype message form, and then lets you send it. brand new message, main character energy πŸ’œ

All the mmh commands may be run with the single argument: -help, which causes them to print a list of the arguments they may be invoked with and then exit. your built-in cheat sheet, no cap πŸ“

Commands which take a message number as an argument (scan, show, repl, ...) also take one of the letters: f, p, c, n, or l to indicate (respectively) the first, previous, current, next, or last message in the current folder (assuming they are defined). lowkey the handiest thing ever.

Commands which take a range of message numbers (rmm, scan, show, ...) also take any of the abbreviations:

  • <num1>-<num2> β€” Indicates all messages in the range <num1> to <num2>, inclusive. The range must be nonempty.
  • <num>:+N
  • <num>:-N β€” Up to N messages beginning with (or ending with) message num. Num may be any of the pre-defined symbols: f, p, c, n or l.
  • f:N
  • p:N
  • n:N
  • l:N β€” The first, previous, next or last messages, if they exist.

There are many other possibilities such as creating multiple folders for different topics, and automatically refiling messages according to subject, source, destination, or content. These are beyond the scope of this manual entry. (the lore goes deeper, bestie. we're just doing the surface level today 😭)

Following is a list of all the mmh commands:

  • ali(1) β€” list mail aliases
  • anno(1) β€” annotate messages
  • burst(1) β€” explode digests into messages
  • comp(1) β€” compose a message
  • dist(1) β€” redistribute a message to additional addresses
  • flist(1), flists(1) β€” list folders with messages in given sequence(s)
  • folder(1), folders(1) β€” set/list current folder/message
  • forw(1) β€” forward messages
  • inc(1) β€” incorporate new mail
  • mark(1) β€” manipulate message sequences
  • mhbuild(1) β€” translate MIME composition draft
  • mhl(1) β€” produce formatted listings of mh messages
  • mhlist(1) β€” list information about MIME messages
  • mhmail(1) β€” send mail (mailx replacement)
  • mhparam(1) β€” print mmh profile and context components
  • mhpath(1) β€” print full pathnames of mh messages and folders
  • mhpgp(1) β€” verify and decrypt a message with gnupg
  • mhsign(1) β€” sign or encrypt a message with gnupg
  • mhstore(1) β€” store contents of MIME messages into files
  • mmh(1) β€” initialize the mmh environment
  • mmhwrap(1) β€” invoke mmh commands if they are not in $PATH
  • new(1) β€” report on folders with new messages
  • packf(1) β€” pack messages in mh folder into a single mbox file
  • pick(1) β€” select messages by content
  • prompter(1) β€” prompting editor front-end for mmh
  • rcvdist(1) β€” asynchronously redistribute new mail
  • rcvpack(1) β€” asynchronously append message to mbox file
  • rcvstore(1) β€” asynchronously incorporate mail into a folder
  • refile(1) β€” file messages in other folders
  • repl(1) β€” reply to a message
  • rmf(1) β€” remove an mh folder
  • rmm(1) β€” remove messages
  • send(1) β€” send a message
  • sendfiles(1) β€” send multiple files in a MIME message
  • show(1) β€” display (MIME) messages
  • slocal(1) β€” asynchronously filter and deliver new mail
  • sortm(1) β€” sort messages
  • whatnow(1) β€” prompting front-end for sending messages
  • whatnow2(1) β€” front-end for handling drafts
  • whom(1) β€” report to whom a message would go

and the system-level ones:

  • ap(8) β€” parse addresses 822-style
  • dp(8) β€” parse dates 822-style
  • fmtdump(8) β€” decode mh format files
  • spost(8) β€” feed a message to sendmail

The following man pages describe file formats and concepts:

  • mh-alias(5) β€” alias file for mh message system
  • mh-format(5) β€” format file for mh message system
  • mh-mail(5) β€” message format for mh message system
  • mh-profile(5) β€” user customization for the mmh message handler

and:

  • mh-chart(7) β€” Chart of mmh Commands
  • mh-draft(7) β€” draft folder facility for mmh
  • mh-sequence(7) β€” sequence specification for mh message system
  • mmh(7) β€” Introduction to the Modern MH message system

πŸŽ€ FILES πŸŽ€

where everything lives, bestie:

  • /usr/bin/mh β€” contains mmh commands
  • /etc/mmh β€” contains mmh format files
  • /usr/lib/mmh β€” contains mmh library commands
  • $HOME/.mmh β€” The user's mmh directory
  • $HOME/.mmh/profile β€” The user's profile
  • $HOME/.mmh/context β€” The user's context
  • $HOME/Mail β€” Default location of the user's mail storage

πŸ’… PROFILE COMPONENTS πŸ’…

just the one, and it matters:

  • Path: β€” Location of the user's mail storage

πŸ¦‹ HISTORY πŸ¦‹

mmh is an experimental version of nmh, the New Mail Handler. Its name mmh'' stands for meillo's mail handler''. a little self-titled era, we respect it πŸ’œ


⚠️ BUGS ⚠️

If you encounter problems with an mmh program, please report them. When doing this, include the version information, which you can obtain by invoking the program with the -Version switch. (fr fr, include it β€” a bug report without the version is giving nothing 😭)

Send bug reports, comments, and suggestions to <mmh@marmaro.de> or to markus schnalke <meillo@marmaro.de>. he's literally right there, bestie, tell him 🫢


🌈 SEE ALSO 🌈

mmh(1) mh-chart(1)


and that's the whole page, bestie!! this one shipped as part of mmh 0.4, and the page itself is stamped 2019-01-06 β€” with the footer tagging it MH.6.8. so go forth, put /usr/bin/mh on your $PATH, and slay πŸ’–βœ¨πŸ‘‘

πŸ“¦ where this page comes from