NAME¶
nmh - new MH message system
DESCRIPTION¶
nmh is the name of a powerful message handling system. Rather than being
a single comprehensive program,
nmh consists of a collection of fairly
simple single-purpose programs to send, retrieve, save, and manipulate
messages.
Unlike most mail clients in UNIX,
nmh is not a closed system which must
be explicitly run, then exited when you wish to return to the shell. You may
freely intersperse
nmh commands with other shell commands, allowing you
to read and answer your mail while you have (for example) a compilation
running, or search for a file or run programs as needed to find the answer to
someone's question before answering their mail.
The rest of this manual entry is a quick tutorial which will teach you the
basics of
nmh. You should read the manual entries for the individual
programs for complete documentation.
To get started using
nmh, put the directory “/usr/bin/mh”
in your
$PATH. Run the
install-mh command. If you've never used
nmh before, it will create the necessary default files and directories
after asking you if you wish it to do so.
inc moves mail from your system maildrop into your
nmh
“+inbox” folder, breaking it up into separate files and
converting it to
nmh format as it goes. It prints one line for each
message it processes, containing the from field, the subject field and as much
of the first line of the message as will fit. 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
nmh file.
scan prints a list of the messages in your current folder.
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.
repl is used to respond to the current message (by default). It places
you in the editor with a prototype response form. While you're in the editor,
you may peruse the item you're responding to by reading the file
@.
After completing your response, type “l” to
list (review)
it, or “s” to
send it.
comp allows you to compose a message by putting you in the editor on a
prototype message form, and then lets you send it via the
whatnow
command.
whatnow also supports easy-to-use management of MIME
attachments via its
attach and related responses, as described in its
man page.
nmh command arguments are usually called
switches. Some switches
have a corresponding “-no” switch, which negates all previous
occurrences of that switch on the command line. This allows a user to
conveniently override, on the command line, a switch in their profile.
Switches may be abbreviated as long as there is no ambiguity with another
switch of the same command. To avoid ambiguity with any switches that may be
added in the future, it is recommended that full switch names be used in
durable code such as shell scripts, functions, and aliases.
All the
nmh commands may be run with the single switch
-help,
which causes them to print a list of the switches they may be invoked with and
then exit.
All the
nmh commands may be run with the single switch
-version,
which causes them to print the version number of the
nmh distribution,
and then exit.
Commands which take a message number as an argument (
scan,
show,
repl, ...) also take one of the words “first”,
“prev”, “cur”, “next”, or
“last” to indicate (respectively) the first, previous, current,
next, or last message in the current folder (assuming they are defined). As a
shorthand, “.” is equivalent to “cur”.
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.
- all
- Indicates all messages, i.e., first-last.
- <num>:+N
- <num>:-N
- Up to N messages beginning with (or ending with) message
num. Num may be any of the pre-defined symbols first,
prev, cur, next or last.
- first:N
- prev:N
- next:N
- last:N
- The first, previous, next or last messages, if they exist.
Commands that take a folder name (
inc,
refile,
scan, ...)
accept the folder name in two formats: “+folder” or
“@folder”. In both cases, “folder” can be a
“/”-separated path, e.g. “foo/bar”.
“+folder” specifies a directory path to a folder. If
“folder” starts with “/” then it's an absolute
path from the root directory. If it is “.” or
“..”, or starts with “./” or “../”,
then it's relative to the current working directory. Otherwise it's relative
to
mh-profile(5)'s “
Path”, i.e. as given by `
mhpath
+`. “@folder” is a shorthand for
“+curfolder/folder”; it's a relative path from the current
folder. “curfolder” is given by `
mhpath`. For example,
assuming a
Path profile component of Mail,
- scan +inbox
- scans $HOME/Mail/inbox
- scan +work/todo
- scans $HOME/Mail/work/todo
- scan @todo
- scans $HOME/Mail/work/todo, if current folder is +work
- refile @../done
- refiles to $HOME/Mail/work/done, if the current folder is +work/todo
- scan +/tmp
- scans /tmp
- scan +.
- scans the current directory
- refile @.
- refiles current message to end of current folder.
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.
COMMANDS¶
Following is a list of all the
nmh commands, grouped loosely according to
their role.
Sending¶
- comp(1)
- compose a message
- forw(1)
- forward messages
- repl(1)
- reply to a message
- whatnow(1)
- prompting front-end for send
Note that although
whatnow provides much of the primary
nmh user
interface for sending mail, it is almost never invoked manually, but rather is
invoked indirectly by one of the above commands, after you've composed a
message in your editor, and before you've decided to send it. Here you can add
attachments, check the recipient list, decide to quit and send it later, etc.
Related utilities:
- ali(1)
- list mail aliases
- anno(1)
- annotate messages
- whom(1)
- report to whom a message would go
- dist(1)
- redistribute a message to additional addresses
Advanced commands, only sometimes invoked directly:
- mhbuild(1)
- translate MIME composition draft
- send(1)
- send a message
- sendfiles(1)
- send multiple files in a MIME message
Incorporating¶
- inc(1)
- incorporate new mail
Related utilities:
- burst(1)
- explode digests into messages
- msgchk(1)
- check for messages
- rcvdist(1)
- asynchronously redistribute new mail
- rcvpack(1)
- append message to file
- rcvstore(1)
- asynchronously incorporate new mail
- slocal(1)
- asynchronously filter and deliver new mail
Viewing¶
- next(1)
- show the next message
- prev(1)
- show the previous message
- show(1)
- show(display) messages
- scan(1)
- produce a one line per message scan listing
- fnext(1)
- select the next folder with new messages
- fprev(1)
- select the previous folder with new messages
Related utilities, only sometimes invoked directly:
- mhl(1)
- produce formatted listings of nmh messages
- mhlist(1)
- list information about content of MIME messages
- mhn(1)
- display/list/store/cache MIME messages
- mhshow(1)
- display MIME messages
- mhstore(1)
- store contents of MIME messages into files
Searching¶
Within a folder:
- pick(1)
- select messages by content
Across folders:
- new(1)
- list folders with new messages
- unseen(1)
- list new messages in a give set of folders
- flist(1)
- list folders with messages in given sequence(s)
- flists(1)
- list all folders with messages in given sequence(s)
- folder(1)
- set/list current folder/message
- folders(1)
- list all folders
Organizing¶
- mark(1)
- mark messages
- refile(1)
- file messages in other folders
- rmf(1)
- remove folder
- rmm(1)
- remove messages
- sortm(1)
- sort messages
Convenience Wrappers¶
- mhmail(1)
- send or read mail
- msh(1)
- nmh shell
Utilities¶
- mhfixmsg(1)
- rewrite MIME messages with various transformations
- mhparam(1)
- print nmh profile components
- mhpath(1)
- print full pathnames of nmh messages and folders
- packf(1)
- compress a folder into a single file
- prompter(1)
- prompting editor front end
- rcvtty(1)
- report new mail
Indirectly Invoked Commands¶
- ap(8)
- parse addresses RFC 822-style
- conflict(8)
- search for alias/password conflicts
- dp(8)
- parse dates RFC 822-style
- fmtdump(8)
- decode mh-format(5) files
- install-mh(8)
- initialize the nmh environment
- post(8)
- deliver a message
Files Used by nmh Commands¶
- mh-alias(5)
- alias file for nmh message system
- mh-format(5)
- format file for nmh message system
- mh-profile(5)
- user customization for nmh message system
- mh-tailor(5)
- mail transport customization for nmh message system
- mh-draft(5)
- draft folder facility
- mh-folders(5)
- nmh message storage format specification
- mh-mail(5)
- message format for nmh message system
- mh-sequence(5)
- sequence specification for nmh message system
FILES¶
- /usr/bin/mh
- contains nmh commands
- /etc/nmh
- contains nmh format files
- /usr/lib/mh
- contains nmh library commands
- $HOME/.mh-profile
- The user's nmh profile
SEE ALSO¶
install-mh(1),
mh-profile(5),
mh-chart(7),
mh-mime(7)
BUGS¶
If problems are encountered with an
nmh program, the problems should be
reported to the local maintainers of
nmh. When doing this, the name of
the program should be reported, along with the version information for the
program.
To find out what version of an
nmh program is being run, invoke the
program with the
-version switch. This prints the version of
nmh, the host it was compiled on, and the date the program was linked.
Send bug reports and suggestions to
nmh-workers@nongnu.org.