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

Formats

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

RELATED TO nmh…

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 [email protected].