{
    "mode": "man",
    "parameter": "mh",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/mh/7/json",
    "generated": "2026-10-09T16:59:47Z",
    "sections": {
        "NAME": {
            "content": "nmh - overview of the new MH message system\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "nmh is the name of a powerful message handling system.  Rather than being a single comprehen‐\nsive  program, nmh consists of a collection of fairly simple single-purpose programs to send,\nretrieve, save, and manipulate messages.\n\nUnlike most mail clients in Unix, nmh is not a closed system which must  be  explicitly  run,\nthen  exited  when  you wish to return to the shell.  You may freely intersperse nmh commands\nwith other shell commands, allowing you to read and answer your mail while you have (for  ex‐\nample)  a compilation running, or search for a file or run programs as needed to find the an‐\nswer to someone's question before answering their mail.\n\nThe rest of this manual entry is a quick tutorial which will teach you  the  basics  of  nmh.\nYou  should  read  the  manual entries for the individual programs for complete documentation\n(see the section on COMMANDS below).\n\nTo get started using nmh, put the directory “/usr/bin/mh” in your $PATH.  Run the  install-mh\ncommand.  If you've never used nmh before, it will create the necessary default files and di‐\nrectories after asking you if you wish it to do so.\n\ninc  moves mail from your system mail drop into your nmh “+inbox” folder, breaking it up into\nseparate files and converting it to nmh format.  It prints  one  line  for  each  message  it\nprocesses,  containing the from field, the subject field and as much of the first line of the\nmessage as will fit.  It leaves the first message  it  processes  as  your  current  message.\nYou'll need to run inc each time you wish to incorporate new mail into your nmh file.\n\nscan prints a list of the messages in your current folder.\n\nThe commands show, next, and prev are used to read specific messages from the current folder.\nshow  displays  the  current  message, or a specific message specified by its number which is\npassed as an argument.  next and prev display, respectively, the message numerically after or\nbefore the current message.  In all cases, the message displayed becomes the current message.\nIf there is no current message, show may be called with an argument, or next may be  used  to\nadvance to the first message.\n\nrmm  (remove  message)  deletes  the current message.  It may be called, with message numbers\npassed as arguments, to delete specific messages.\n\nrepl is used to respond to the current message (by default).  It places  you  in  the  editor\nwith  a  prototype response form.  While you're in the editor, you may peruse the item you're\nresponding to by reading the file @.  After completing your response, type “l” to  list  (re‐\nview) it, or “s” to send it.\n\ncomp  allows  you  to  compose  a message by putting you in the editor on a prototype message\nform, and then lets you send it via the whatnow command.  whatnow also  supports  easy-to-use\nmanagement  of MIME attachments via its attach and related responses, as described in its man\npage.\n\nnmh command arguments are usually called switches.  Some switches have a corresponding  “-no”\nswitch,  which negates all previous occurrences of that switch on the command line.  This al‐\nlows a user to conveniently override, on  the  command  line,  a  switch  in  their  profile.\nSwitches  may be abbreviated as long as there is no ambiguity with another switch of the same\ncommand.  To avoid ambiguity with any switches that may be added in the future, it is  recom‐\nmended  that  full switch names be used in durable code such as shell scripts, functions, and\naliases.\n\nEach nmh command may be run with the single switch -help, which causes it to print its avail‐\nable switches, along with any profile components that apply, and then exit.\n\nAll the nmh commands may be run with the single switch -version, which causes them  to  print\nthe version number of the nmh distribution, and then exit.\n\nCommands which take a message number as an argument (scan, show, repl, ...)  also take one of\nthe  words  “first”,  “prev”,  “cur”, “next”, or “last” to indicate (respectively) the first,\nprevious, current, next, or last message in the current folder (assuming they  are  defined).\nAs a shorthand, “.” is equivalent to “cur”.\n\nCommands  which  take a range of message numbers (rmm, scan, show, ...)  also take any of the\nabbreviations:\n\n<num1>-<num2>   Indicates all messages in the range <num1> to <num2>, inclusive.   The  range\nmust be nonempty.\n\nall             Indicates all messages, i.e., first-last.\n\n<num>:+N\n<num>:-N        Up  to N, where N must be a positive number, messages beginning with (or end‐\ning with) message num.  Num may be any  of  the  pre-defined  symbols  first,\nprev, cur, next or last.  The + can be omitted.\n\nfirst:N\nprev:N\nnext:N\nlast:N          As  many  of  the  first,  previous, next, or last N messages that exist.  As\nabove, N can be preceded with - to end the listing at the specified  message,\nor with an optional +.\n\nCommands  that take a folder name (inc, refile, scan, ...) accept the folder name in two for‐\nmats:  “+folder” or “@folder”.  In both cases, “folder” can be  a  “/”-separated  path,  e.g.\n“foo/bar”.   “+folder”  specifies  a directory path to a folder.  If “folder” starts with “/”\nthen it's an absolute path from the root directory.  If it is “.” or  “..”,  or  starts  with\n“./”  or “../”, then it's relative to the current working directory.  Otherwise it's relative\nto mh-profile(5)'s “Path”, i.e. as given by `mhpath +`.  “@folder” is a shorthand for  “+cur‐\nfolder/folder”;  it's  a relative path from the current folder.  “curfolder” is given by `mh‐\npath`.  For example, assuming a Path profile component of Mail,\n\nscan +inbox     scans $HOME/Mail/inbox\nscan +work/todo scans $HOME/Mail/work/todo\nscan @todo      scans $HOME/Mail/work/todo, if current folder is +work\nrefile @../done refiles to $HOME/Mail/work/done, if the current folder is +work/todo\nscan +/tmp      scans /tmp\nscan +.         scans the current directory\nrefile @.       refiles current message to end of current folder.\n\nThere are many other possibilities such as creating multiple folders  for  different  topics,\nand  automatically  refiling  messages according to subject, source, destination, or content.\nThese are beyond the scope of this manual entry.\n",
            "subsections": []
        },
        "COMMANDS": {
            "content": "Following is a list of all the nmh commands, grouped loosely according to their role.\n",
            "subsections": [
                {
                    "name": "Sending",
                    "content": "comp(1)         compose a message\nforw(1)         forward messages\nrepl(1)         reply to a message\nwhatnow(1)      prompting front-end for send\n\nNote that although whatnow provides much of the primary nmh user interface for sending  mail,\nit  is  almost  never  invoked manually, but rather is invoked indirectly by one of the above\ncommands, after you've composed a message in your editor, and before you've decided  to  send\nit.   Here  you  can  add  attachments,  check the recipient list, decide to quit and send it\nlater, etc.\n\nRelated utilities:\n\nali(1)          list mail aliases\nanno(1)         annotate messages\nwhom(1)         report to whom a message would go\ndist(1)         redistribute a message to additional addresses\n\nAdvanced commands, only sometimes invoked directly:\n\nmhbuild(1)      translate MIME composition draft\nsend(1)         send a message\nsendfiles(1)    send multiple files in a MIME message\n"
                },
                {
                    "name": "Incorporating",
                    "content": "inc(1)          incorporate new mail\n\nRelated utilities:\n\nburst(1)        explode digests into messages\nmsgchk(1)       check for messages\nrcvdist(1)      asynchronously redistribute new mail\nrcvpack(1)      append message to file\nrcvstore(1)     asynchronously incorporate new mail\nslocal(1)       asynchronously filter and deliver new mail\n"
                },
                {
                    "name": "Viewing",
                    "content": "next(1)         show the next message\nprev(1)         show the previous message\nshow(1)         show (display) messages\nscan(1)         produce a one line per message scan listing\nfnext(1)        select the next folder with new messages\nfprev(1)        select the previous folder with new messages\n\nRelated utilities, only sometimes invoked directly:\n\nmhl(1)          produce formatted listings of nmh messages\nmhlist(1)       list information about content of MIME messages\nmhn(1)          display/list/store MIME messages\nmhshow(1)       display MIME messages\nmhstore(1)      store contents of MIME messages into files\n"
                },
                {
                    "name": "Searching",
                    "content": "Within a folder:\n\npick(1)         select messages by content\n\nAcross folders:\n\nnew(1)          list folders with new messages\nunseen(1)       list new messages in a given set of folders\nflist(1)        list folders with messages in given sequence(s)\nflists(1)       list all folders with messages in given sequence(s)\nfolder(1)       set/list current folder/message\nfolders(1)      list all folders\n"
                },
                {
                    "name": "Organizing",
                    "content": "mark(1)         mark messages\nrefile(1)       file messages in other folders\nrmf(1)          remove folder\nrmm(1)          remove messages\nsortm(1)        sort messages\n"
                },
                {
                    "name": "Convenience Wrappers",
                    "content": "mhmail(1)       send or read mail\n"
                },
                {
                    "name": "Utilities",
                    "content": "mhfixmsg(1)     rewrite MIME messages with various transformations\nmhparam(1)      print nmh profile components\nmhpath(1)       print full pathnames of nmh messages and folders\npackf(1)        compress a folder into a single file\nprompter(1)     prompting editor front end\nrcvtty(1)       report new mail\n"
                },
                {
                    "name": "Indirectly Invoked Commands",
                    "content": "ap(8)           parse addresses RFC 822-style\ndp(8)           parse dates RFC 822-style\nfmtdump(8)      decode mh-format(5) files\ninstall-mh(8)   initialize the nmh environment\npost(8)         deliver a message\n"
                },
                {
                    "name": "Files Used by nmh Commands",
                    "content": "mh-alias(5)     alias file for nmh message system\nmh-format(5)    format file for nmh message system\nmh-profile(5)   user customization for nmh message system\nmh-tailor(5)    mail transport customization for nmh message system\n"
                },
                {
                    "name": "Formats",
                    "content": "mh-draft(5)     draft folder facility\nmh-folders(5)   nmh message storage format specification\nmh-mail(5)      message format for nmh message system\nmh-sequence(5)  sequence specification for nmh message system\n"
                }
            ]
        },
        "FILES": {
            "content": "/usr/bin/mh\ncontains nmh commands\n\n/etc/nmh\ncontains nmh format files\n\n/usr/lib/mh\ncontains nmh library commands\n\n$HOME/.mhprofile\nThe user's nmh profile\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "install-mh(1), mh-profile(5), mh-chart(7), mh-mime(7)\n",
            "subsections": []
        },
        "BUGS": {
            "content": "Send bug reports, questions, suggestions, and patches to nmh-workers@nongnu.org.  That  mail‐\ning list is relatively quiet, so user questions are encouraged.  Users are also encouraged to\nsubscribe, and view the archives, at https://lists.gnu.org/mailman/listinfo/nmh-workers .\n\nIf  problems  are encountered with an nmh program, they should be reported to the local main‐\ntainers of nmh, if any, or to the mailing list noted above.  When doing this, the name of the\nprogram should be reported, along with the version information for the program.\n\nTo find out what version of an nmh program is being run, invoke the program with the -version\nswitch.  This prints the version of nmh, the host it was compiled on, and the date  the  pro‐\ngram was linked.\n\nNew   releases,   and   other   information   of   potential   interest,   are  announced  at\nhttp://www.nongnu.org/nmh/\n\nnmh-1.8                                      2016-09-26                                     NMH(7mh)",
            "subsections": []
        }
    },
    "summary": "nmh - overview of the new MH message system",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "install-mh",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/install-mh/1/json"
        },
        {
            "name": "mh-profile",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/mh-profile/5/json"
        },
        {
            "name": "mh-chart",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/mh-chart/7/json"
        },
        {
            "name": "mh-mime",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/mh-mime/7/json"
        }
    ]
}