Path: senator-bedfellow.mit.edu!senator-bedfellow.mit.edu!dreaderd!not-for-mail
From: Bill Wohler <[email protected]>
Newsgroups: comp.mail.mh,comp.answers,news.answers
Subject: MH Frequently Asked Questions (FAQ) with Answers
Supersedes: <mail/mh-faq/[email protected]>
Followup-To: poster
Date: Wed, 11 Jun 2014 00:02:07 -0400 (EDT)
Organization: Newt Software, Menlo Park, California, USA
Sender: [email protected]
Approved: [email protected]
Expires: 23 Jul 2014 04:02:02 GMT
Message-ID: <mail/mh-faq/[email protected]>
Reply-To: Bill Wohler <[email protected]>
Summary: This document answers Frequently Asked Questions about MH, a
        sophisticated mail interface.  It should be read by new MH
        users and comp.mail.mh readers and before posting to this group.
Keywords: FAQ,mh,mail,question,answer,pop,slocal,letter,signature,
         draft,message,folder,xmh,olmh,vmail,vmailtool,comp,repl,
         forw,scan,SMTP,bind,MH-E,MIME,plum,exmh,nmh
X-Last-Updated: 2013/01/03
Lines: 4876
NNTP-Posting-Host: xvm-75.mit.edu
X-Trace: 1402459327 senator-bedfellow.mit.edu 12198 18.181.2.75:49443
Xref: senator-bedfellow.mit.edu comp.mail.mh:14802 comp.answers:67980 news.answers:334523

Archive-name: mail/mh-faq/part1
Last-modified: $Date: 2013-01-03 15:17:15 -0800 (Thu, 03 Jan 2013) $
Version: $Revision: 11365 $
Posting-Frequency: monthly

 This is a living list of frequently asked questions on the mailer
 user interface, Mail Handler, or MH. The point of this is to
 circulate existing information, and avoid rehashing old answers.
 Better to build on top than start again. Please read this document
 before ever posting to this newsgroup.

 This article is posted monthly. If it has already expired and you're
 not reading this, you can hope that you saved the instructions to
 retrieve the FAQ (see "Where can I get MH") so that you can get a
 copy through other means.

 Please do not post an answer when someone posts a frequently asked
 question; rather, email the relevant section of the FAQ to eliminate
 unnecessary traffic in this newsgroup.

 This list depends on your comments, additions and fixes: please send
 them to Bill Wohler <wohler at newt.com>.

 Copyright 1991-1999, 2001, 2004-2007, 2012, 2013 Bill Wohler

 Permission to use, copy, distribute, and translate this document for
 any non-commercial purpose is hereby granted, provided that this
 copyright notice appears in all copies. Commercial distributions
 require prior written consent.

 This article is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

----------------------------------------------------------------------

Subject: Table of Contents
From: Bill Wohler <wohler at newt.com>
Date: Sat, 3 Mar 2001 11:29:16 -0800

Legend: + new, - deleted, ! changed
__________________

01.00 Introduction

01.01 Why should I use MH?
!01.02 What is the current version/status of MH?
!01.03 Where can I get MH?
01.04 What references exist for MH?
01.05 What other MH software is available?
01.06 How can I print a MH manual?
01.07 How should I report bugs?
01.08 How can I convert from my mailer to MH?
01.09 What is the copyright status of nmh?
_________________

02.00 Building MH

02.01 What machines does MH run on?
02.02 How do I build MH?
02.03 What options should I use?
02.04 What do I need to do to use POP?
02.05 Does MH support IMAP?
02.06 Why does "mailgroup mail" only affect inc and not slocal?
02.07 How can I build MH on Solaris 2?
02.08 How can I build MH on Linux?
02.09 How can I build MH on IRIX?
02.10 How can I get MH to interpret the Content-Length field?
02.11 How do I build MH on HP-UX?
02.12 Can I prevent adding the local hostname to addresses behind firewalls?
02.13 Is there a patch to fix this or that?
02.14 How can I build MH on OS/2?
02.15 Do any POP/IMAP servers handle MH format?
!02.16 How can I build MH on Windows?
!02.17 How can I build MH on a Mac?
________________________

03.00 Scanning & Reading

03.01 What do I do if scan shows the wrong date?
03.02 How would one go about reading Usenet with MH?
03.03 How can I search through multiple folders?
03.04 Why don't MH format commands such as %(friendly) work?
03.05 Why doesn't "show" display all of a MIME message?
03.06 Can I get show not to run "less" so much on MIME messages?
03.07 Why do I get "mhn: don't know how to display content"?
03.08 How can I automatically delete MH backup files?
03.09 Fixing "cannot fopen and lock /var/spool/mail/(user)"
03.10 Can I read my mail with a Web browser?
03.11 How can I run inc automatically with POP?
03.12 Why does inc hang (on Sun)?
03.13 How can I get POP to work?
03.14 How do I persuade mhshow (mhn) not to bring up a new window?
03.15 How do I turn off of all the mhshow (mhn) prompts?
03.16 Why is inc splitting messages improperly?
03.17 Can MH thread messages?
03.18 How can I avoid reading the HTML version of the message?
03.19 How do I view or save attachments?
03.20 How do I view HTML attachments with Netscape?
03.21 Fixing folders: unable to allocate storage for msgstats
03.22 How do I recursively list message attachments?
03.23 Why do folder and flist overlook some of my sub-folders?
____________

04.00 Filing

04.01 Can I append MH messages to a Unix mailbox format file?
04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file?
04.03 Why do I get ".../.mh_sequences is poorly formatted?"
04.04 How can you save News articles into an MH folder?
04.05 Are there any good tools to archive MH messages?
04.06 How can I remove duplicate messages?
04.07 How can I remove holes in numbering?
__________________________

05.00 Composing & Replying

05.01 Why does repl add a "Re:" to a message that already has one?
05.02 How do I include messages in repl with or without ">"?
05.03 How can I eliminate duplicate copies of letters to myself?
05.04 How can I include my signature?
05.05 How do I call my editor with arguments?
05.06 How can I digestify messages in a folder for mail to another user?
05.07 How can I change my return address?
05.08 How can I change my From header?
05.09 How can I save a copy of all messages I send?
05.10 Can the folder in Fcc: be dynamically specified?
05.11 Can I post secure/encryped mail?
05.12 How can I send multi-media (MIME) attachments?
05.13 What's the best way to send mail to a long list of people?
05.14 What is the Dcc header?
05.15 How can I make sense of the replcomps file?
05.16 How can I convert quoted-printable to 8bit in quoted text in replies?
05.17 Can I have aliases include aliases?
05.18 Why doesn't mhmail understand aliases?
05.19 How do I send blind carbon copies?
05.20 When I forward a message, can I use its Subject?
05.21 Why is the timezone field in my 'Date:' field wrong?
05.22 Can I automate the comp -editor mhn process?
05.23 How can I remove those "=20" characters when forwarding?
05.24 Can I use mh-format substitution with forw?
05.25 How can I keep repl from breaking long lines?
05.26 How do I fix a bogus In-Reply-To or missing References field?
_____________

06.00 Posting

06.01 What to do with "Problems with edit - draft removed".
06.02 Can I run my message through a program (e.g., ispell) before sending?
06.03 What to do with "bad address 'xxx' - no at-sign after local-part".
!06.04 Fixing "post: problem initializing server; [BHST] no servers available"
06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender
      already specified"
06.06 Fixing "post: unexpected response; [BHST] no socket opened"
06.07 How do I fix the "X-Authentication-Warning" header?
06.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL
      before RCPT"
!06.09 Fixing "post: problem initializing server; [BHST] premature
      end-of-file on socket"
06.10 Fixing "Sender didn't use the HELO protocol"
06.11 Fixing "post: problem initializing server; [RPLY] 553 Local
      configuration error, hostname not recognized as local"
__________________

07.00 Mail Filters

07.01 What mail filters are available?
07.02 Why slocal writes messages to system mailbox that from(1) can't read.
07.03 Where can I read about slocal and the format of .maildelivery?
07.04 How do I debug my .maildelivery file?
07.05 Why isn't slocal working?
07.06 Are there any good biff applications for MH?
07.07 How do I read new messages filed by procmail?
__________

08.00 MH-E

08.01 I have a question about MH-E
_________

09.00 Xmh

09.01 How can I get xmh to use Emacs as the editor?
09.02 Does xmh support subfolders?
09.03 How do I precede included messages with ">" when replying in xmh?
________

Appendix

Glossary & Acknowledgments
Switching xmh's editor
babyl2mh.pl
inco - babyl to MH converter
t2h - add hyperlinks to message viewed
srvrsmtp.c patch
IRIX config file
HP-UX 10.20 config file
Removing duplicate messages (Bourne)
Removing duplicate messages (Perl)
Removing duplicate messages (Perl)

------------------------------

Subject: Viewing This Article
From: Bill Wohler <wohler at newt.com>
Date: Mon, 27 Nov 1995 14:44:19 -0800

 To skip to a particular question with Subject or number xx, use
 "/^S.*xx" with most pagers. In GNU Emacs type "M-C-s ^S.*xx", (or
 C-r to search backwards), followed by ESC to end the search.

 To skip to new or changed questions, use "/^S.*[!+]" with most
 pagers and "M-C-s ^S.*[!+]" in GNU Emacs.

 This article is in digest format. nn may have already broken this
 message into separate articles; if not, then type "G %". In rn, use
 ^G to skip sections.

 This article is treated as an outline when edited by GNU Emacs. Run
 "M-x describe-mode" to see available outline-mode commands. Useful
 commands are "M-x hide-body", "C-c C-s" (show-subtree) and "M-x
 show-all"

 Check out the Usenet Hypertext FAQ Archive (see "What references
 exist for nn?"). Files available by ftp, man pages, and other Web
 pages, as well as cross-references like the one in this paragraph
 are just a click away.

 A "Date" field whose time is 00:00:00 is approximate. The month and
 year in these fields represent the time they were added to the FAQ,
 rather than when they were contributed by the author, as is the case
 since November, 1995.

 If you should need the Internet address, use nslookup or dig if you
 have them, or send mail to <dns at grasp.insa-lyon.fr> with "help"
 for a Subject.

 References to $MHLIB refer to the directory that contains MH support
 files and routines. This directory is usually /usr/lib/mh or
 /usr/local/lib/mh (or /usr/local/nmh/lib or /etc/nmh for nmh). Do
 not use $MHLIB literally; use the real, absolute path to your MH
 library directory.

 There are slight differences between the original MH and nmh. In the
 text, the nmh command or filename is preferred, and the MH
 equivalent is placed in parenthesis. For example, the MH
 configuration is in $MHLIB/mts.conf (mtstailor); mhshow (mhn -show)
 is used to view attachments.

 Note that due to bottom feeding email address harvesting spam scum,
 mailto links have been removed and @s in addresses have been
 replaced by "at."

------------------------------

Subject: 01.00 ***** Introduction *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 01.01 Why should I use MH?
From: Jerry Peek <jpeek at jpeek.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 The MH message handling system is a set of electronic mail programs
 in the public domain. If your computer runs Unix, it can probably
 run MH.

 The big difference between MH and most other "mail user agents" is
 that you can use MH from a Unix shell prompt. In MH, each command is
 a separate program, and the shell is used as an interpreter. So, all
 the power of Unix shells (pipes, redirection, history, aliases, and
 so on) works with MH--you don't have to learn a new interface. Other
 mail agents have their own command interpreter for their individual
 mail commands (although the mush mail agent simulates a Unix shell).

 Because MH commands aren't part of a monolithic mail system, you can
 use them at any time; you don't have to start or quit the mail
 agent. Because you use them from a shell prompt, you can use all the
 power of the shell.

 If your shell has time-saving aliases or functions (and most do),
 you'll be able to use them with MH, of course. And because MH isn't
 a monolithic mail agent, you can use MH commands in Unix shell
 scripts, or call them from programs in high-level languages like C.

 Unlike most mail agents, MH keeps each message in a separate file.
 The filename is the message number. To rearrange the messages, MH
 just changes the filenames. MH can use standard Unix file system
 operations such as removing, copying and linking messages. The
 message files are grouped into one or more folders, which are
 actually Unix directories.

 MH is free, powerful, flexible--and the basics are easy to learn.

------------------------------

Subject: !01.02 What is the current version/status of MH.
From: Bill Wohler <wohler at newt.com>
Date: Sun, 23 Sep 2007 23:51:52 -0700

 The current official version of MH is 6.8.3, although a beta of
 6.8.4 is available.

 This version includes MIME, a multi-media MH package that implements
 the new IETF work on Multi-media 822 (MIME). This allows you to
 include things like audio, graphics, and the like, in your mail
 messages. --Marshall Rose <mrose at dbc.mtview.ca.us>

 MH now works with Kerberos as well.

 In addition, a new program called mhparam extracts arguments from
 .mh_profile which is useful in shell scripts.

 Please see the file CHANGES in the distribution for more details.

 Due to the languishing state of MH, Richard Coleman <coleman at
 math.gatech.edu> created another version of MH called nmh based upon
 MH 6.8.3. He added GNU autoconf to ease installation considerably
 and fixed several bugs and inconsistencies. Doug Morris <doug at
 mhost.com> hosted the web site, mailing lists, web pages, and CVS
 repository for a long time. Ken Hornstein <kenh at pobox.com> picked
 up the torch in 2002 and moved development to Savannah where Jon
 Steinhart <nmh at fourwinds.com> joined him as a project maintainer.
 See http://www.nongnu.org/nmh/. The stable version of nmh is 1.5.
 The file docs/DIFFERENCES in the nmh distribution contains a list of
 differences between nmh and MH.

 GNU mailutils (version 2.99.97) is a collection of mail-related
 utilities. At the core of mailutils is libmailbox, a library which
 provides access to various forms of mailbox files (including remote
 mailboxes via popular protocols and MH). See
 http://www.gnu.org/software/mailutils/.

------------------------------

Subject: !01.03 Where can I get MH?
From: Bill Wohler <wohler at newt.com>
Date: Fri, 23 Nov 2012 12:19:17 -0800

 MH comes standard with many systems.

 nmh (or mailutils) can be installed on Debian-based systems with:

   aptitude install nmh

 On Red Hat-based systems, use:

   yum install nmh

 nmh source code releases are available at:

   http://download.savannah.nongnu.org/releases/nmh/

 GNU mailutils source code releases are available at:

   http://ftp.gnu.org/gnu/mailutils/mailutils-latest.tar.gz
   (or .bz2 or .lzma or .xz)

------------------------------

Subject: 01.04 What references exist for MH?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 23 Sep 2007 23:51:41 -0700

 The Web:
   http://rand-mh.sourceforge.net/
   http://www.nongnu.org/nmh/
   http://www.gnu.org/software/mailutils/
   http://mh-e.sourceforge.net/

 Books:
   MH & xmh: E-mail for Users & Programmers.  Third edition. Jerry
   Peek, with Bill Wohler and Brent Welch.
   ISBN 1-56592-093-7.  738 pages.
   O'Reilly & Associates, Inc.
   Out of print as of August, 1996.

   References to "the MH book" in this document refer to the third
   edition (plus updates) of this book online at
   http://rand-mh.sourceforge.net/book/. Section numbers for the
   second edition may appear in parentheses.

   There is another book that contains a number of examples of
   advanced mail handing using MH as the example message handler.
   It's also quite a good reference on email in general.

   The Internet Message.  Marshall T. Rose
   ISBN 0-13-092941-7.  396 pages.
   P T R Prentice Hall

 Papers:
   MHN Tutorial by Jerry Sweet
   ftp://ftp.ics.uci.edu/pub/mh/contrib/multimedia/mhn-tutorial.ps.Z   141k
   ftp://ftp.ics.uci.edu/pub/mh/contrib/multimedia/mhn-tutorial.tex.Z  48k

 Usenet:
   comp.mail.mh
   gmane.mail.exmh.devel
   gmane.mail.exmh.user
   gmane.mail.mh-e.announce
   gmane.mail.mh-e.devel
   gmane.mail.mh-e.user
   gmane.mail.nmh.devel

 Mailing lists:
   There are three mailing lists for nmh: nmh-announce, nmh-workers,
   and nmh-commits. See:

     http://savannah.nongnu.org/mail/?group=nmh

   The page for each list contains a link to the archives.

 MH-users archives:
   Current archives can be found at:

     http://lists.nongnu.org/archive/html/nmh-workers/

   Older archive can be found in the mh-users and mh-workers archives
   at:

     http://sourceforge.net/project/showfiles.php?group_id=143658&package_id=188462

   There are directions in the release notes. Basically, you can use
   either "msh" or the individual commands "inc -file" to get the
   messages into a folder, and then "scan", "pick", "show", and so on
   (or your favorite commands in xmh, MH-E, etc.). --Jerry Peek
   <jpeek at jpeek.com>

 This document:
   http://www.newt.com/faq/mh.html
   http://faqs.cs.uu.nl/na-dir/mail/mh-faq/part1.html

 MH-E documentation:
   GNU Emacs 19.29 comes with a version of MH-E that includes online
   (Texinfo) documentation. Try "C-h i m mh-e RET". It is also
   available in HTML and PDF formats at
   http://mh-e.sourceforge.net/manual/. See also "What other MH
   software is available?" to see where you can get the latest
   version of MH-E which includes the documentation sources.

 exmh:
   The FAQ is available at http://www.beedub.com/exmh/exmh-faq.html.
   The online exmh sections from the MH book can be found at

     http://rand-mh.sourceforge.net/book/index.html#chTourexmh

 Signature and Finger FAQ:
   http://www.faqs.org/faqs/usenet/signature-faq/

------------------------------

Subject: 01.05 What other MH software is available?
From: Stephen Gildea <gildea at stop.mail-abuse.org>, Bill Wohler <wohler at newt.com>
Date: Thu, 19 May 2005 21:20:57 -0700

 MH-E is the Emacs interface to the MH mail system. It offers all the
 functionality of MH, the visual orientation and simplicity of use of
 a GUI, and full integration with Emacs and XEmacs, including
 thorough configuration and online help.

 MH-E allows one to read and process mail very quickly: many commands
 are single characters; completion and smart defaults are used for
 folder names and aliases. With MH-E you compose outgoing messages in
 Emacs. This is a big plus for Emacs users, but even non-Emacs users
 have been known to use MH-E after only learning the most basic
 cursor motion commands.

 Additional features include:

     * attractive text rendering with font lock
     * composition and display of MIME body parts
     * display of images and HTML within the Emacs frame
     * folder browsing with speedbar
     * threading
     * ticking messages
     * lightning-fast full-text indexed searches of all of your email
     * virtual folders to view ticked and unseen messages, search results
     * multiple personalities
     * signing and encrypting
     * spam filter interaction
     * XFace, Face, X-Image-URL header field support with picons

 The GNU Emacs distribution includes MH-E.

 MH-E is maintained at SourceForge:

   http://mh-e.sourceforge.net/

From: Chris Menzel <cmenzel at philebus.tamu.edu>
Date: Sat, 15 Dec 2001 10:02:38 -0600

 The terminal-oriented, fast, and powerful mutt mail client not only
 supports the MH mail format but also supports .mh_sequences files,
 providing a robust interface to MH. It is also amazingly
 configurable and is very adept at handling MIME attachments and HTML
 mail.

 Unlike MH, the displayed message numbers do not necessarily
 correspond to the message filenames. This makes threading and
 sorting lightning fast but slower to display very large folders.

   http://www.mutt.org/

From: Brent Welch <welch at acm.org>
Date: Tue, 20 Mar 2001 22:42:15 -0800

 EXMH is a user interface for the MH mail system written in TCL/TK.

 Exmh has MIME support, color feedback in the scan listing, a folder
 display with one label per folder, clever scan caching, facesaver
 bitmap display; background inc, various inc styles, searching over
 folder listing and message body, a dialog-box interface to MH pick,
 a simple built-in emacs-like editor, interfaces to other editors,
 user preferences, user hacking support. For more info or to obtain
 exmh, see:

   http://exmh.sourceforge.net/

From: "Eric D. Friedman" <friedman at hydra.acs.uci.edu>
Date: Tue, 9 Feb 1999 22:52:44 -0800

 Mhtake is a perl script that lets you add people to your mail
 aliases file by typing mhtake [message #].

   http://orion.oac.uci.edu/~friedman/mhtake.txt

From: Steinar Bang <sb at metis.no>
Date: Fri, 26 Jan 1996 13:51:08 +0100

 Mew (an Emacs interface to MH that has MIME and PGP capabilities) is
 found at:

   ftp://ftp.aist-nara.ac.jp/pub/elisp/Mew/mew-current.tar.gz

 [MH-E has had these capabilities since version 7.0 so mew is
 obsolete if you use MH-E. --Ed]

From: James Perkins <jamesp at sp-eug.com>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 Vmh is designed for people using the bulletin-board features of MH,
 where mail is stored in packed (single-file) folders. As a result,
 use of this program cannot be mixed with the use of normal MH
 commands. Vmh is a part of the official MH distribution.

From: James Perkins <jamesp at sp-eug.com>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 Xmh is a X11 mouse-based MH browsing tool. It is very powerful and
 feature-filled and thus comes with a moderate learning curve. Its
 dependence on the X11 environment makes it very reconfigurable, but
 only by people well-versed in X applications programming. Its
 message reply built-in-editor interface is not always popular among
 those used to having MH bring up the editor of their choice.

Date: Fri, 1 Jan 1993 00:00:00 -0800

 xmh is part of the standard X Window System distribution from the X
 Consortium. Ultrix also ships dxmail which is similar.

   ftp://cs.utk.edu/pub/xmh.shar.Z                                     162k

From: Harald Tveit Alvestrand <hta at boheme.er.sintef.no>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 Here's a version of xmh that includes MIME.

   ftp://aun.uninett.no/pub/mail/mixmh/mixmh-0.3.tar.Z                 232k

From: Nathaniel Borenstein <nsb at thumper.bellcore.com>
Date: Sun, 26 Nov 1995 19:04:51 -0800

 Metamail is a package that can be used to convert virtually ANY
 mail-reading program on Unix into a multi-media mail-reading
 program. It is an extremely generic implementation of MIME
 (Multipurpose Internet Mail Extensions), the proposed standard for
 multi-media mail formats on the Internet. The implementation is
 extremely flexible and extensible, using a "mailcap" file mechanism
 for adding support for new data formats when sent through the mail.
 At a heterogeneous site where many mail readers are in use, the
 mailcap mechanism can be used to extend them all to support new
 types of multi-media mail by a single addition to a mailcap file.

 The metamail distribution comes complete with a small patch for each
 of over a dozen popular mail reading programs, including Berkeley
 mail, mh, Elm, Xmh, Xmail, Mailtool, Emacs Rmail, Emacs VM, Andrew,
 and others. Note that the MH patches are now integrated into MH 6.8.

   ftp://ftp.bellcore.com/pub/nsb/mm2.7.tar.Z

From: Tom Christiansen <tchrist at perl.com>
Date: Tue, 9 Feb 1999 22:55:24 -0800

 Plum is a highly configurable and extensible screen-oriented
 front-end for processing MH mail on ASCII terminals. Unlike MH-E,
 the extension language used in plum is perl, not LISP. Plum offers
 many of the advantages of xmh, but lacks several of xmh's
 disadvantages. The look&feel derives more from vi than from emacs.
 Key bindings and functions may be changed on the fly to suit the
 user's preference. It offers filename and word completion on folder,
 variables, and command names.

 Until it is included in the standard distribution (under
 miscellany), you can find a copy on:

   http://www.cpan.org/authors/Tom_Christiansen/scripts/plum.gz        29k

 or mail requests to Tom

From: Jerry Sweet <jsweet at irvine.com>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 Mhunify is a set of perl scripts and templates that provides
 shell-level MH functionality with USENET news. Since MH supports
 MIME, MIME-format news articles just work. I've found that being
 able to handle news in the same way that I handle email is very
 useful, although there are some tradeoffs.

 Mhunify also treats MH folders just like news groups. If you
 subscribe to several mailing lists, and your email is automatically
 delivered to separate folders, say, via procmail or via MMDF's
 .maildelivery, the mhunify package lets you progress automatically
 through your folders just as you would news groups.

   ftp://ftp.ics.uci.edu/pub/mh/contrib/multimedia/mhunify.shar.gz

From: Dale Carstensen <dlc at c3file.c3.lanl.gov>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 olmh is a demo for OLIT (Open Look Interface Toolkit, the Open Look
 wrapper to Xt) in Sun's Open Windows 3 that does handle 3rd and
 subsequent levels of nesting of folders.

 Obtain the Open Windows 3 distribution CD/ROM from Sun (SPARC only).
 To do this, call 1-800-USA-4SUN and send tone "2" for telemarketing
 after it answers. The 4.1.2 CD/ROM may also have Open Windows 3. The
 list price for the 4.1.2 CD/ROM is $200.

From: James Perkins <jamesp at sp-eug.com>
Date: Sun, 1 May 1994 00:00:00 -0800

 Vmail is a curses-based, vi-like message browser which calls on MH
 programs to manipulate mail. It can be used on almost any terminal.
 It organizes mail folders into index pages, from which a message can
 be selected to be shown, replied-to, forwarded, refiled, deleted,
 and so on. The vi-like interface and command keystrokes are
 comfortable to less-experienced Unix users, and it is a small,
 compact program, unlike the MH-E Emacs package.

 This version of vmail has been bugfixed and enhanced from the
 original vmail published on the net in 1987 by J. Zobel.

   ftp://ftp.uu.net/comp.sources.unix/volume12/vmail/part0*.Z          46k
   ftp://ftp.ucs.ubc.ca/pub/mh/vmail.[1-3]of3.Z                        58k

 Or mail requests to James.

From: James Perkins <jamesp at sp-eug.com>
Date: Sun, 1 May 1994 00:00:00 -0800

 vmailtool may be for you if you have a Sun workstation. It is a
 button gadget panel for the above-mentioned vmail program. It brings
 vmail into the windows era where people no longer need to memorize
 specific command keystrokes. It also provides a mail icon with the
 flag that pops up when new mail arrives. Again, this is a compact,
 simple tool, unlike the powerful xmh program. Still, it's a welcome
 alternative for many people who are running SunView or OpenWindows.

   ftp://ftp.ucs.ubc.ca/pub/mh/vmailtool.Z                             18k

 or mail requests to James.

 MMH, My Mail Handler, is a Motif interface for reading and sending
 mail. It uses the MH commands to actually handle sending a receiving
 messages. It does not support all the capabilities of MH, but offers
 a large enough subset to handle the majority of users. Its intended
 user is someone between "bumbling email novice" and "sophisticated
 user". Hooks are provided to allow the user to customize and add new
 commands.

   ftp://ftp.eos.ncsu.edu/pub/bill/bill.tar.Z                          120k

From: Andrew Waugh <ajw at mel.dit.csiro.au>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 X.500 lookups: If a name is enclosed in square brackets, when
 entering a destination address:

   To: [Greg Wickham,CSIRO]

 a search will be made in the X.500 Directory for the individual's
 entry. If an address exists then it will be extracted and placed
 into the headers. Mail requests for the software to the author.

From: Barbara Dyker <dyker at teal.csn.org>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 QueueMH is an email based service request and tracking system based
 on the Rand Mail Handler.

   ftp://ftp.cs.colorado.edu/pub/cs/sysadmin/utilities/queuemh.tar.Z   98k

From: <info at rootgroup.com>
Date: Mon, 1 Mar 1993 00:00:00 -0800

 Qmh is an MH-based group mail management tool. Written entirely in
 perl, Qmh combines the best aspects of MH with group mail heuristics
 and delivers a sensible package for all levels of Unix users. A
 limitless number of individual queues and associated groups of
 permitted users can be established.

 Specific functionality includes the following modes of operation;
 checking header dates and sending reminder/deadline mail, editing
 existing messages, help screens, creating new messages from scratch
 or exiting messages, resolving messages, scanning queue folders, and
 annotating with status both by editing and sending mail.

 Qmh is a single generic program in and of itself from which all
 modes of operation are invoked. Additionally, each separate queue
 may be accessed via a link to the single program. All system
 configuration is maintained in a single file that is read upon each
 invocation of Qmh. Formatting and template files are provided in the
 system library, although individual users can override the defaults
 simply by creating equivalent files in their own MH mail directory.

 Qmh provides a powerful database-like functionality by allowing
 limitless per-queue X-Qmh-<$value> headers to be included in
 messages. These "fields" then form the context of the queue messages
 and provide a user-defined, but yet structured environment for
 queries, reporting, and random information.

 Qmh is designed to provide a complete solution for SA groups, help
 desks, support organizations, or wherever two or more individuals
 are trying to manage multiple mail requests.

 Qmh is also compatible with versions of xmh that provide user-level
 command buttons. Provided in the Qmh package is a ~/.Xdefaults
 template file that's setup to harness the power of Qmh.

From: Jerry Peek <jpeek at jpeek.com>, Shannon Yeh <yeh at netix.com>
Date: Sun, 11 Mar 2001 00:23:21 -0800

 MacMH and PC/MH:
   These were available only for non-commercial degree-granting
   institutions from:

     Networking & Communication Systems
     115 Pine Hall
     Stanford University
     Stanford, CA 94305-4122
     Phone: +1 415-723-3909

   See also:
     ftp://netix.com/pub/pc-mh-info/*

   For more PC/MH info, contact:

     Netix Communications, Inc.
     15375 Barranca Parkway
     Building G, Suite 107
     Irvine, CA 92718
     Phone: +1 714-727-9532
     FAX:   +1 714-727-3922
     Internet: info at netix.com

   In addition, you might try Wollongong, to see if they have
   something you can get.

   [This information appears to be out of date. Please send me
   pointers to valid information. Potential sites include
   jessica.stanford.edu. --Ed]

   Two other potential methods to run MH under Windows: Run Unix
   under Windows with VMware (http://www.vmware.com/) or try to
   compile nmh with the Cygwin tools (http://www.cygwin.com/).

------------------------------

Subject: 01.06 How can I print a MH manual?
From: Bill Wohler <wohler at newt.com>, Jos Vos <jos at bull.nl>
Date: Sun, 23 Sep 2007 23:51:33 -0700

 Documentation in text and PostScript format is found in the
 MH-doc.tgz tarball on:

   http://sourceforge.net/project/showfiles.php?group_id=143658&package_id=188464

 To generate your own copy for printing, first obtain the MH sources
 (see "Where can I get MH?") if you don't already have it. Go into
 the "doc" directory and run "make guide" to create the
 administrators guide and "make manual" to create a user's manual
 which includes tutorials and man pages. If the doc directory is
 empty or is missing the Makefile, you'll have to run "mhconfig MH"
 in the conf directory so that the documentation with correct local
 information is created.

 For properly formatting the documentation (at least the manual
 pages) you might even have to install MH, because a reference to a
 tmac.h file in the MH lib directory is made in the manual pages.

------------------------------

Subject: 01.07 How should I report bugs?
From: Bill Wohler <wohler at newt.com>
Date: Wed, 29 Sep 2004 00:12:42 -0700

 Bugs in nmh should be reported at:

   http://savannah.nongnu.org/bugs/?group=nmh

 Bugs in MH-E should be reported at:

   http://sourceforge.net/tracker/?atid=113357&group_id=13357

------------------------------

Subject: 01.08 How can I convert from my mailer to MH?
From: Mike Sutton <mws115 at llcoolj.dayton.saic.com>
Date: 7 Jul 1995 10:03:50 GMT

 The unrmail function will convert rmail format to mbox format.

From: Jerry Peek <jpeek at jpeek.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 If you use one of a mail agent like 'mail', 'mailx', 'elm' or
 'mush', converting to MH is easy. When you run the 'inc' command, it
 reads all new messages from the system mailbox into your 'inbox'
 folder. Those mail agents also have separate files or "folders" that
 hold messages in the same format as the system mailbox. You can read
 them with the 'inc -file' command. For example, to read the messages
 from your 'mbox' mail file into your MH 'inbox' folder, you'd type:

   % cd
   % cp mbox mbox.backup
   % inc -file mbox

 If you see the usual "Incorporating new mail into inbox..." message
 and a scan listing, the messages probably were converted. Read some
 or all of them (with the 'show' command) and be sure. The 'inc'
 won't remove your mbox unless you use '-truncate'.

From: "Jason R. Mastaler" <jason at Mastaler.COM>
Date: Mon, 1 May 1995 00:00:00 -0800

 You can also specify an alternate folder to inc. Here's how you can
 convert all your folders en masse:

   for arg in `cat flist`; do
       echo "converting $arg"
       inc +"$arg" -file "$arg" -silent
   done

 Section D.4 of the MH book's second edition lists two scripts to
 convert mail files to MH folders: babyl2mh to convert from rmail's
 BABYL format; vmsmail2mh to convert from VMS's mail (see "What
 references exist for MH") to see where the book's examples can be
 ftped from). These scripts aren't in the third edition but are in
 its archive file.

From: Vivek Khera <khera at cs.duke.edu>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 I rewrote the above script in Perl since the original script doesn't
 work for some people (see "babyl2mh.pl" below).

From: Juergen Nickelsen <nickel at cs.tu-berlin.de>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 You can remove the second to last second line ("> $input"), so that
 the script doesn't zero out your RMAIL file.

 Another alternative is to replace this line with "inc -file $tmpmbox
 $folder && > $input", so that the RMAIL is only zeroed if inc
 successfully incorporated the mail. Finally one could add a switch
 -z, so that the RMAIL file is only zeroed if the switch is given.
 (See "Appendix inco".)

Date: Sun, 1 May 1994 00:00:00 -0800

 Use the following to convert a BABYL format file to Unix mail
 format.

   ftp://inf.informatik.uni-stuttgart.de/pub/gnu/emacs_extras/rmailtovm.el.Z
     6k

 See also MH book second edition (Appendix D).

------------------------------

Subject: 01.09 What is the copyright status of nmh?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Mon, 10 Oct 2005 18:16:58 -0700

 nmh is distributed under a variant of the classical BSD copyright.
 Check the COPYRIGHT file in the nmh distribution for the details.
 There are some specific files which were contributed to the original
 MH package that are copyrighted by their original author. We have
 retained the copyright notices of these authors in these files.

------------------------------

Subject: 02.00 ***** Building MH *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 02.01 What machines does MH run on?
From: Bill Wohler <wohler at newt.com>
Date: Thu, 19 May 2005 21:22:55 -0700

 MH isn't just for Unix any more. Versions are reported to run on
 OS/2 (see "How can I build MH on OS/2?"), Windows (see "How can I
 build MH on Windows?"), and Mac (see "How can I build MH on Mac?").
 Oh yeah, the Mac is now Unix. Maybe Windows Longhorn will be built
 on Unix too.

From: Jerry Peek <jpeek at jpeek.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 If you have a computer running Unix, you can probably run MH.

------------------------------

Subject: 02.02 How do I build MH?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 8 Sep 1996 15:13:12 -0700

 If you're using Linux, you can simply install the nmh or MH package
 which is available in most distributions.

 If you want to build nmh, follow the directions in the file named
 INSTALL. Basically, it's simply "./configure; make; make install."

 If you have MH on the other hand, if you carefully read the file
 named READ-ME in the root of the source hierarchy, you should not
 have any trouble building MH.

 If you're having troubles building MH, it could be that the problem
 has already been fixed, but hasn't yet gotten into an official
 release. Please see http://www.gw.com/mail/mh/patches/ for more
 info.

------------------------------

Subject: 02.03 What options should I use?
From: Bill Wohler <wohler at newt.com>
Date: Tue, 1 Dec 1992 00:00:00 -0800

 BERK: Do NOT include the BERK option (in versions 6.7 or later)!
 BERK breaks the mh-format functions that take apart address lines,
 for example mbox, from, and friendly. This would really put a crimp
 on my replcomps file.

 LOCKF: if you have NFS, you need to lock your mailbox with lockf()
 so the lock will be honored by all machines on the local network. If
 you have the lockf() system call, include LOCKF.

 JQ Johnson <jqj at duff.uoregon.edu> makes the point that one should
 use this option carefully since it requires a robust lockf() call.
 For example, this option caused serious problems on his SunOS 4.1.1.
 He suggested using LOK_BELL instead, and adding "lockstyle: 1" to
 $MHLIB/mts.conf (mtstailor).

 ATZ: makes your timezones print like "EST" instead of "-0500". Much
 prettier. --Stephen Gildea <gildea at stop.mail-abuse.org>

 However, Tony Landells <ahl at technix.oz.au> replies: "Yes; very
 pretty. How unfortunate that timezone names are so ambiguous, so
 that EST can be interpreted, at a minimum, as (American) Eastern
 Standard Time, (Australian) Eastern Standard Time, or (Australian)
 Eastern Summer Time (and yes, I think it's dumb having the same
 acronym for both normal and Summer time, but that's a different
 problem). While the numeric timezones may not look as nice, they
 are, at least, reasonably unambiguous. I would urge anyone who ever
 intends/hopes/expects to use email outside the U.S. to NOT use ATZ
 (sorry Stephen)."

 At any rate, the conf/examples directory has been updated and
 contains many examples show you which options are required on your
 platform and which are optional (in the upcoming version MH 6.8). At
 any rate, it is recommended that you examine the options in the
 example configuration files, and read about them in READ-ME.

 RPATHS: a side-effect is that slocal writes messages to your system
 maildrop without the MMDF C-A's that separate messages, so your BSD
 tools like from work.

------------------------------

Subject: 02.04 What do I need to do to use POP?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 8 Sep 1996 23:31:01 -0700

 MH6.7 (and earlier versions too) include a server for version 3 of POP.

From: Morgan Fletcher <morgan at tupelo.best.com>
Date: 14 Mar 1996 19:24:23 -0800

 Ensure that /etc/services contains the following:

     pop2      109/tcp         postoffice      # POP version 2
     pop2      109/udp
   ->pop       110/tcp         # POP version 3 (MH's inc thinks it's "pop")
   ->pop       110/udp
     pop3      110/tcp         # POP version 3
     pop3      110/udp

 Also compile with the POP options: POP, DPOP, RPOP, etc.

From: Richard Coleman <coleman at math.gatech.edu>
Date: 06 Feb 1997 03:43:17 -0500

 To get MH to use the pop3 service, add POPSERVICE=pop3 to your MH
 configuration and recompile:

------------------------------

Subject: 02.05 Does MH support IMAP?
From: Lyndon Nerenberg <lyndon at MessagingDirect.COM>
Date: 27 Jul 1999 11:33:39 -0600

 Run exmh on the laptop, and modify your .mh_profile to inc using
 APOP. This is how I run MH-E and it works fine. (I did have to
 modify MH-E a wee bit to allow it to prompt for the password. You
 would likely have to do something similar with exmh.)

 As a spare time project I'm adding enough IMAP support to MH (6.8.3)
 to allow you to 'inc -imap [-imapfolder foo]'. If I ever get this
 done I'll stick the diffs up somewhere. (It's not a big priority as
 I can get at my IMAP INBOX using APOP.)

From: Tim Showalter <tjs at andrew.cmu.edu>, John Prevost <visigoth at cs.cmu.edu>
Date: Wed, 25 Sep 1996 21:34:56 -0400

 We are developing fmh and intend to support as much of MH as is
 feasible. However, MH and IMAP don't necessarily agree as to what
 things are going to look like. MH has static message numbers until
 you pack a folder; IMAP keeps two numbers on a message, one which is
 absolutely static and one which is relative to the top of a mailbox.
 Messages in IMAP are essentially immutable. IMAP doesn't (currently)
 allow message annotations. fmh will keep state with a background
 daemon instead of writing it to disk, and will probably try and keep
 as little on disk as possible.

 fmh doesn't understand MH folders at the moment, and probably won't
 for a really long time, if ever. As I said before, we're mostly
 interested in the IMAP aspects as we're using a networked file
 system and saving stuff on the local disk just isn't an option.

 fmh is not MH at a very fundamental level. It is very unlikely that
 it will be merged, as we're not quite as interested in creating
 something that is MH and IMAP as we are in writing a good IMAP
 client. Also, the MH code isn't going to take the introduction of
 IMAP without a near complete rewrite.

 It is not available yet. Inquiries are welcome at <tjs+fmh at
 andrew.cmu.edu>.

From: Rahul Dhesi <dhesi at rahul.net>
Date: 23 Sep 1996 08:39:52 GMT

 What prevents people from doing a telnet to their mail server,
 logging in, and firing up MH directly? Site policy? An operating
 system that does not let MH compile or run? Overloaded machine with
 insufficient processing power for MH? All these are site-specific
 problems and the solution lies in solving them locally, not in
 forcing MH to go over IMAP.

 IMAP was never designed to emulate a filesytem. MH was designed to
 make direct advantage of the filesytem structure. There is no
 compatibility between the two. By the time IMAP is revised enough to
 support MH you will have reinvented NFS.

 There *is* scope for redesign here, though. It would be nice to have
 a single-user filesystem. Create a binary telnet session to the
 filesystem server, log in as yourself, and then over that session
 run a filesystem protocol. Normal filesystem protections at the
 other end will be sufficient for all permissions checking, so the
 filesystem protocol would need to do no other permissions checking.
 The question of whom to export directories to would go away: They
 are exported to whoever completes a successful login, and accessible
 to the user if he would be able to access them on the server as his
 login id. You could even use challenge-response for the initial
 login, coupled with ssh-based encryption, so you automatically have
 a secure filesystem without even trying.

 IMAP is too restricted in its scope to be easily modifiable to
 emulate such a filesystem. It would have to be a redesign from
 scratch.

From: John Romine <jromine at ics.uci.edu>
Date: Sun, 8 Sep 1996 15:45:27 -0700

 No. MH only supports retrieving mail using POP3. POP3 is on the
 "standards track"--it is now an elective Internet Draft Standard
 (see RFC 1939 for more details). At this point, IMAP[23] are
 "experimental, limited use" protocols; it is unlikely that MH will
 support them.

From: Bill Wohler <wohler at newt.com>
Date: Sun, 8 Sep 1996 15:45:32 -0700

 Since John posted the message above, IMAP has progressed from an
 "experiemental, limited use" protocol. While IMAP is not universal,
 many vendors now have implementations.

 I've found several things which might help. First, a definition
 lifted from the Pine FAQ:

 What is IMAP?

 IMAP stands for "Internet Message Access Protocol". An IMAP client
 program on any platform at any location on the Internet can access
 email folders on an IMAP server. While the messages appear to be
 local, they reside on the server until the client explicitly moves
 or deletes them. The IMAP protocol is a superset of POP, containing
 all POP commands plus more. For a comparison of IMAP and POP, see
 the paper Comparing Two Approaches to Remote Mailbox Access: IMAP
 vs. POP (in ftp.cac.washington.edu:/mail/imap.vs.pop). IMAP is what
 allows Pine (or any other IMAP client) to get to email on a central
 campus email server. There are current IETF working groups revising
 IMAP and readying it to become an Internet standard. A copy of the
 latest IMAP draft may be obtained from:

   ftp://ftp.cac.washington.edu/mail/latest-imap-draft

 For a list of IMAP clients, see the file imap.software, in the same
 directory.

From: David L Miller <dlm at cac.washington.edu>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 ipop3d from the UW IMAP toolkit can operate in a couple modes. As a
 straight POP3 server, it uses the same C-client library as imapd, so
 it co-exists comfortably with imapd. It can also operate as a
 POP-to-IMAP gateway so that your POP-only clients can access IMAP
 services.

   ftp://ftp.cac.washington.edu/mail/imap.tar.Z                        1.0M

From: Mark Crispin <MRC at Panda.COM>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 The only answer I can give for [how MH users can use IMAP] is that
 Pine can read mailboxes in MH format; and that someone might in the
 future develop a version of MH that can use IMAP.

------------------------------

Subject: 02.06 Why does "mailgroup mail" only affect inc but not slocal?
From: John Romine <jromine at ics.uci.edu>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 If "mailgroup" is set, inc is made set-group-id to this group name.
 Some SYS5 systems want this to be set to "mail". Set this if
 /usr/spool/mail (or /usr/mail) is not world-writable. These changes
 were contributed by Peter Marvit, and "inc" is very careful about
 its use of the set-gid privilege.

 Note that slocal doesn't know how to deal with this, and will not
 work under these systems; just making it set-group-id will open a
 security hole (since it doesn't know when to drop the set-gid
 privileges). If you're using "mailgroup", you should remove slocal
 (and its man page) from your system.

 Alternatives to slocal include deliver, procmail, and mailagent.
 (See "What mail filters are available?")

------------------------------

Subject: 02.07 How can I build MH on Solaris 2?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 nmh builds out of the box on Solaris.

From: Bill Wohler <wohler at newt.com>
Date: Sun, 8 Sep 1996 15:56:31 -0700

 See http://www.gw.com/mail/mh/patches/solaris/ for patches you may need.

From: Neil Rickert <rickert at cs.niu.edu>,
       Scott K. Hutton <shutton at habanero.ucs.indiana.edu>,
       Casper H.S. Dik <casper at fwi.uva.nl>
Date: Sun, 8 Sep 1996 15:57:25 -0700

 First, don't use the BSD compatible stuff. Make sure that the Sun or
 GNU compiler appear before the BSD compiler in your PATH (e.g.,
 /usr/ccs/bin).

 Second, don't use GNU make. Make sure that the Sun make appears
 before the GNU make in your PATH.

 Use conf/examples/solaris2.sun.com and fix the paths, if necessary.
 Optionally change the following to use the GNU compiler, to perform
 optimization, and to create shared libraries.

   cc              gcc
   ccoptions       -O -g -msupersparc
   slflags         -shared

 Fix mhn.c with the diff in

   http://www.gw.com/mail/mh/patches/solaris/si_value_2.3.

 Optionally incorporate the Content-Length header fix. (See "How can
 I get MH to interpret the Content-Length field?")

 Linking with /usr/ucblib/libucb.so is incompatible with including
 <dirent.h>.

 When compiling, you can ignore the following warning:

   fmtcompile.c, line 238: warning: semantics of "/" change in ANSI C;
   use explicit cast

 If you're using AFS, you'll have to replace any occurrence of "ln"
 with "ln -s" wherever the make dies when it tries to make a link "on
 a different file system."

 See also ftp://ftp.fwi.uva.nl/pub/solaris/solaris2.faq.

Date: Thu, 1 Dec 1994 00:00:00 -0800

 Unset LD_LIBRARY_PATH.

From: Gary Strand <strandwg at ncar.ucar.edu>
Date: Mon, 1 May 1995 00:00:00 -0800

 To cure slocal's Segmentation Fault problems, I decided to try 'cc'
 instead of 'gcc' (an alleged no-no under Solaris) and MH built just
 fine, and it's working perfectly.

From: "Jason R. Mastaler" <jason at Mastaler.COM>
Date: Mon, 25 Sep 1995 17:35:13 -0400

 Don't use "ldoptions -s" with gcc. It may cause the compile to fail
 with:

   gcc: Internal compiler error: program ld got fatal signal 11
   *** Error code 1

From: "Jeffrey T. Eaton" <jeaton at galt.com>
Date: Fri, 04 Apr 1997 15:30:36 GMT

 Fixed [DBM_PAGFNO_NOT_AVAILABLE error] by getting the latest gdbm
 package, compiling and installing it and the dbm/ndbm compatability
 stuff, and moving Sun's broken ndbm.h out of /usr/include.

 To fix "../sbr/libmh.so: undefined reference to
 `__builtin_va_arg_incr'", add "option __BUILTIN_VA_ARG_INCR" to your
 MH configuration.

------------------------------

Subject: 02.08 How can I build MH on Linux?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 nmh should build out of the box for most Linux systems.

From: Bill Wohler <wohler at newt.com>
Date: Tue, 9 Feb 1999 23:04:53 -0800

 The Debian distribution of Linux comes with an MH and nmh packages.
 See

   http://www.debian.org/.

 See also http://www.gw.com/mail/mh/patches/linux/.

From: "James A. Robinson" <jimr at simons-rock.edu>
Date: 17 Apr 96 20:39:02 GMT

 Somebody on Debian ported it to Linux ELF. Look on
 ftp://ftp.debian.org/debian/stable/binary/mail/mh_6.8.4-13.deb for
 the .deb package of MH (it's a compressed tar file). The source is
 in ftp://ftp.debian.org/debian/stable/source/mail/mh_6.8.4-orig.tar.gz
 and mh_6.8.4-13.diff.gz.

From: Brian Kirouac <bri at psa.pencom.com>
Date: 18 Apr 96 14:00:20 GMT

 If you are running Redhat and have rpm available you can also use
 ftp://???/pub/redhat-3.0.3/i386/RedHat/RPMS/mh-6.8.3-5.i386.rpm. The
 source code is in
 ftp://???/pub/redhat-3.0.3/i386/SRPMS/mh-6.8.3-5.i386.rpm

From: "Brandon S. Allbery" <bsa at kf8nh.wariat.org>
Date: Sun, 26 Nov 1995 16:18:50 -0800

 The current patch is the first one listed below. The old patch only
 works with libc-4.4, which is no longer used. The current patch is
 split into two pieces, as with the previous patch, but now the
 divisions are purely functional: the first diff enables MH to
 compile, the second allows creation of a shared library. [The paths
 are up to date, but I think the info in this paragraph is old. --Ed]

 Recent versions of GNU make choke on MH's makefiles. Unfortunately,
 the shared library patches depend on "export". If you have problems
 building MH, remove the "export" lines from all of the makefiles (if
 you applied the shared library patches) and try using BSD pmake
 instead.

 If you don't want to compile MH, the second file contains
 pre-compiled ready-to-run binaries which can simply be extracted in
 the root directory.

   ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-diffs.tar.gz
   ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-bin.tar.gz

 The sizes are 650k and 22k respectively.

 Note that these files are occasionally "cleaned up" by accident so
 please let me know if they are missing.

------------------------------

Subject: 02.09 How can I build MH on IRIX?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 nmh should build out of the box for Irix.

From: Bill Wohler <wohler at newt.com>
Date: Sun, 8 Sep 1996 15:33:22 -0700

 See http://www.gw.com/mail/mh/patches/sgi/ for patches you may need.

From: Arne K. Frick <frick at info.uni-karlsruhe.de>
Date: 06 Jun 1995 18:30:01 GMT

 There is a file at viz.tamu.edu:/pub/sgi (see FAQ) containing a diff
 and sample configuration. If you cannot locate it, I can mail it to
 you. Note, however, that I had tremendous difficulties with them
 under 5.3:

 1. Be sure to use /bin/make, NOT GNU make.
 2. patch vomits over the diff.  You can get around this by increasing the
    "fuzz factor" to 4.
 3. The Makefile target for the shared library doesn't work.  I had to do it
    by hand.

 But I'm stuck compiling mhn.c.

From: Shankar Unni <shankar at sgi.com>
Date: 9 Jun 1995 01:53:48 GMT

 The fix for compiling mhn.c is in

   http://www.gw.com/mail/mh/patches/solaris/si_value_2.3.

From: Jack Repenning <jackr at informix.com>
Date: 25 Jul 1995 02:35:41 GMT

 (See "IRIX config file") below.

------------------------------

Subject: 02.10 How can I get MH to interpret the Content-Length field?
From: Casper H.S. Dik <Casper.Dik at Holland.Sun.COM>
Date: Sun, 8 Sep 1996 15:38:30 -0700

 Apply http://www.gw.com/mail/mh/patches/solaris/content_length to
 your MH distribution and add the configuration option
 "CONTENT_LENGTH". It also includes the si_ fix in

   http://www.gw.com/mail/mh/patches/solaris/si_value_2.3

------------------------------

Subject: 02.11 How can I build MH on HP-UX?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 8 Sep 1996 15:50:54 -0700

 If you find that your zotnet/tws directory isn't compiling, upgrade
 your MH (see "What is the current version/status of MH?") which
 includes fixes to lexedit.sed.

 See http://www.gw.com/mail/mh/patches/hp/ for for patches you may need.

------------------------------

Subject: 02.12 Can I prevent adding the local hostname to addresses behind firewalls?

From: Ted Remillard <tedr at hood.sd.com>
Date: 24 Jun 1996 08:53:42 -0700

 You can get MH to stop managing the headers and let the email server
 to do it. To do this, build MH with the options DUMB and REALLYDUMB.
 In the $MHLIB/mts.conf (mtstailor) file, set the server option to
 the IP address of the email server. After this is done, MH sends
 email directly to the email server and Local email To: and From:
 fields just have the user's simple email address, e.g., <fred>, and
 the remote email From: header will contain user@domainname, e.g.,
 <[email protected]>.

 Don't forget to define the REALLYDUMB option in the file
 sbr/addrsbr.c described below.

From: Bret Rothenberg <bretr at endeavour.exar.com>
Date: Tue, 23 Jan 1996 12:25:24 -0800 (PST)

 Yes, use the "localname" parameter in "$MHLIB/mts.conf" (mtstailor)
 to specify the desired hostname.

From: Ken Hornstein <kenh at cmf.nrl.navy.mil>
Date: 18 Aug 1995 23:51:48 -0400

 If you're behind a firewall and sendmail gives you fits because MH
 adds the node name or site name to each address in the To: and CC:
 fields, you'll need to modify the MH source.

 The relevant source has to do with the REALLYDUMB option in
 sbr/addrsbr.c. Essentially what you need to do is set it up so
 REALLYDUMB is turned on (normally, it's turned off if you have MMDF
 or SMTP turned on). This will do what you want. I did this at our
 site, and it's been working great. The stuff for REALLYDUMB starts
 around line 613.

------------------------------

Subject: 02.13 Is there a patch to fix this or that?
From: Kimmo Suominen <kim at tac.nyc.ny.us>
Date: Sat, 3 Mar 2001 13:40:35 -0800

 The MH Patch Archive has been opened at

   http://www.gw.com/mail/mh/patches/

 It is a collection of patches to MH (the RAND MH Message Handling
 System), a set of electronic mail programs in the public domain.
 Since the last complete release of MH (version 6.8.3) UNIX systems
 have evolved making changes in the MH code necessary. Several new
 UNIX systems have emerged requiring new configuration templates and
 examples. This archive tries to collect all these fixes and
 enhancements that in the past have been available only through
 word-of-mouth and occasional reposts to newsgroups or mailing lists.

 The initial archive layout and the very time consuming collecting
 and categorizing of patches has been done by Jerry Peek.

 I will be the primary maintainer of the archive. Even though I will
 be monitoring several sources for new material (mainly the
 comp.mail.mh newsgroup but also the mailing lists <mh-workers at
 ics.uci.edu>, <mh-e-users at lists.sourceforge.net> and
 <exmh-workers at redhat.com>), I'd like to encourage everyone to
 submit patches also directly to the archive at <mh-archive at
 gw.com>.

------------------------------

Subject: 02.14 How can I build MH on OS/2?
From: Sanjay Aiyagari <sanjay at sandbox.snetnsa.com>
Date: 21 Nov 1996 19:37:10 GMT

   ftp://ftp.jaist.ac.jp/pub/os/os2/network/MH/

------------------------------

Subject: 02.15 Do any POP/IMAP servers handle MH format?
From: "Carl S. Gutekunst" <csg at eng.sun.com>
Date: 27 May 1997 07:24:34 GMT

 The University of Washington POP3 and IMAP servers can be backended
 by a variety of stores, including MH. This is the basis for
 Netscape's store, curiously enough. I haven't looked closely at how
 Mark Crispin implemented support for the new IMAP4 features when
 using an MH backend; it seems like there is a lot of computation
 when opening a folder for the first time, writing in the UID fields
 and such. But it basically appears to work.

From: Lyndon Nerenberg <lyndon at MessagingDirect.COM>
Date: 27 Jul 1999 11:36:25 -0600

 But [the UW IMAP server] can't delete/expunge from MH folders. (At
 least I've never been able to get it to work, and I've tried just
 about everything.) #mh in UW imapd isn't something I'd recommend to
 any serious MH user.

From: Mark Crispin <mrc at CAC.Washington.EDU>
Date: Tue, 27 Jul 1999 14:43:25 -0700

 > But it can't delete/expunge from MH folders.

 That's a very old version. delete/expunge has been in imap-4.x for a
 long while. However, there's no sticky flags.

 > #mh in UW imapd isn't something I'd recommend to any serious MH user.

 The converse is also true. The two don't play ball very well.

From: Dieter Weber <dieter at Compatible.COM>
Date: 11 Feb 2003 04:23:38 -0800

 The UW imap server supports MH folders. In order to see the MH
 mailboxes, you need to "subscribe" to the folders or add them to the
 .mailboxlist file in your home directory.

------------------------------

Subject: !02.16 How can I build MH on Windows?
From: David Levine <[email protected]>
Date: Sun Sep 30 22:45:08 CDT 2012

 nmh is now available as a Cygwin package. Select it using Cygwin
 setup. Or, download and build from source. Hacks are no longer
 needed.

From: Satyaki Das <satyaki at theforce.stanford.edu>
Date: Wed, 19 Jun 2002 20:57:19 -0700

 I have gotten MH-E to work on Windows (under Cygwin) using Earl
 Hood's patched nmh. It was really quite simple, but not very
 portable. I just needed to add/subtract "c:/cygwin" from a couple of
 places. Now it can read and send mail (even does PGP attachments).
 Thought this might be of interest to those of you stuck using
 Windows at work.

From: Earl Hood <ehood at earlhood.com>
Date: Sat, 08 Jun 2002 20:30:44 GMT

 I've made a tar/bz2 bundle available at

   <http://www.nacs.uci.edu/indiv/ehood/tmp/nmh-1.0.4-ehood-cygwin.tar.bz2>

 This includes the patched source with binaries pre-built.

 I just remembered that I also had to hack the makefiles to get
 things to install since windoze executables have to end with .exe. I
 hacked the generated makefiles, so if you rerun configure, you may
 lose the hacks. Also, I believe the install will fail when trying to
 install the documentation, so to force things do:

   make -i install

 The binaries and support files should get installed (under
 /usr/local/nmh), but the docs probably won't.

 Then you will need to edit /usr/local/nmh/etc/mts.conf to reflect
 your local configuration.

 If anyone has any problems installing, I could zip up my
 /usr/local/nmh since I think it contains everything needed for
 runtime usage.

From: Bill Goffe <goffe at oswego.edu>
Date: 25 May 1999 18:13:55 GMT

 If you have Windows, consider looking at VMware

   http://www.vmware.com/

 which provides a virtual machine where you can run Unix and
 therefore MH under Windows.

From: Ted Nolan <ted at ags.ga.erg.sri.com>
Date: 24 May 99 17:20:27 GMT

 The latest Cygnus Cygwin, GNU tools that run under Windows,

   http://www.cygwin.com/

 seems to work pretty well and may well be able to build nmh.

------------------------------

Subject: 02.17 How can I build MH on a Mac?
From: David Levine <[email protected]>
Date: Sun Sep 30 22:47:12 CDT 2012

 nmh 1.3 and later build on Mac OS X out of the box.

From: Dr Eberhard W Lisse <el at lisse.na>
Date: Sun, 05 Jun 2005 13:43:19 +0100

 nmh compiles on the G4 iBook running Mac OS X 10.3.7 more or less
 out of the box with the powerpc HOST option. Use make all install.

 Use fink to install the nmh package on Max OS X 10.3.9 (and 10.4.1).

 metamail does not work out of the box. However,
 metamail-2.7.19-1030.src.rpm (SuSE) which compiles and installs
 cleanly.

 For exmh, first use fink to install the tcltk package. Then use fink
 to install exmh.

------------------------------

Subject: 03.00 ***** Scanning & Reading *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 03.01 What do I do if scan shows the wrong date?
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 Upgrade to MH 6.8 or nmh.

From: Darryl Okahata <darrylo at sr.hp.com>
Date: 19 Jan 2000 23:01:10 -0800

 MH 6.8.3 and nmh 1.0 still have a minor buglet where sortm doesn't
 always sort messages properly. If a (questionable) mail client sends
 messages with 2-digit years, like:

   Date: Sat, 23 Oct 09 22:02:01 EST

 or sends out buggy dates like (as buggy versions of Elm do):

   Date: Sat, 23 Oct 100 22:02:01 EST

 then sortm will not sort these messages properly.

 I have submitted patches to nmh-workers.

------------------------------

Subject: 03.02 How would one go about reading Usenet with MH?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 26 Nov 1995 12:32:09 -0800

 You can post via mail. Send your article to <mail2news at
 news.demon.co.uk> with a legitimate Newsgroups field.

From: Jerry Peek <jpeek at jpeek.com>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 You can save articles in the news readers for later perusal with MH.

 First, create a symbolic link from your mail directory (e.g.,
 usenet) to your news directory (e.g., "ln -s ~/News ~/Mail/usenet").
 You can then treat your news directory as a mail folder. Thus, to
 select a news group, use "folder +usenet/comp/mail/mh".

 To set the default save location correctly in rn, use:

   rn -M -/

 or in your nn presentation sequence:

   news.announce.              +$F/$N
   comp.mail.mh                +
   .
   .

 If there's news spooled on your machine (that is, not via NNTP) then
 you can read a newsgroup with commands like:

   show first +/usr/spool/news/comp/mail/mh
   next
   ...

 You can also use sequences to keep track of what you've read. MH
 will automatically set a "cur" sequence in each newsgroup you read
 that way. So, to continue reading the newsgroup sometime later,
 after you've read some other folder, you can do:

   next +/usr/spool/news/comp/mail/mh

 and you'll read the next (new) article (if any) in that newsgroup.

 Note that this can eventually make your private context file pretty
 huge; if there's a group you don't read often, you can remove its
 context entries with a command like:

   rmf +/usr/spool/news/comp/mail/mh

 Don't try that on a folder full of mail (a folder that isn't
 read-only), though... in that case, it'll remove all the messages!

 I haven't looked into posting. It seems like it shouldn't be hard.
 You could set up a "sendproc" that would look at outgoing email
 messages. If the message had a Newsgroups: header field, your
 sendproc could call inews(1) instead of post(8). I haven't seen much
 in the MH manpages or documentation about sendprocs (though I
 haven't looked for a couple of years...). See the "mysend" script in
 the MH book section 7.1.4 (13.13), or the URL:

   http://rand-mh.sourceforge.net/book/mh/senove.html#ASAtDm

 A threaded news reader like trn or tin is so much nicer, though,
 that reading news with MH may not be worth the hassle.

 See also MH book section 9.9 (8.7), or the URL:

   http://rand-mh.sourceforge.net/book/mh/shafol.html

From: Stephen Gildea <gildea at stop.mail-abuse.org>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 Although news readers are better, if one really wants to use MH, bbc
 will do the job. For example, "bbc comp.mail.mh" reads this
 newsgroup. To enable bbc, you have to specify "bboards" when you
 build MH.

From: Kimmo Suominen <kim at tac.nyc.ny.us>
Date: 15 Aug 1996 18:18:10 GMT

 Sendmail v8 comes with MAILER(pop) which was written for the MH
 spop. Since I use bboards with NNTP, I never looked at the bboards
 setup.

Date: Tue, 1 Nov 1994 00:00:00 -0800

 See mhunify in (see also "What other MH software is available?").

------------------------------

Subject: 03.03 How can I search through multiple folders?
From: Jerry Peek <jpeek at jpeek.com>
Date: Mon, 1 Mar 1993 00:00:00 -0800

 Recurse through the folders (in csh and sh):

 % foreach f (`folders -f`)            $ for f in `folders -f`
 ? pick [switches] +$f                 > pick [switches] +$f
 ? end                                 > done

 Or create a folder that contains links to all messages (in csh and sh):

   % foreach f (`folders -f | grep -v -x ln`)
   ? refile -src +$f -link all +ln
   ? end

   $ for f in `folders -f | grep -v -x ln`
   > do refile -src +$f -link all +ln
   > done

 and in the future, refile messages with "refile +folder +ln". To
 find something, use:

   % pick [switches] +ln

 See MH book sections 8.2.9 (7.2.9), 8.9.3 (7.8.3), or the URLs:

   http://rand-mh.sourceforge.net/book/mh/finpic.html#SeMTOnFo
   http://rand-mh.sourceforge.net/book/mh/usilin.html#AFoFuoLi

------------------------------

Subject: 03.04 Why don't MH format commands such as %(friendly) work?
From: Anthony Baxter <anthony at aaii.oz.au>
Date: Sun, 1 May 1994 00:00:00 -0800

 The BERK option disables address parsing and therefore functions
 such as %(friendly). Recompile MH without the BERK option.

------------------------------

Subject: 03.05 Why doesn't "show" display all of a MIME message?
From: Jerry Peek <jpeek at jpeek.com>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 It's not the fault of the "show" command or of MH in general. It's
 your system's configuration. Check the $MHLIB/mhn.defaults
 (mhn_defaults) file; if it doesn't have defaults for all content
 types, add them. Or, if you can't (or shouldn't) change mhn.defaults
 (mhn_defaults), you can put default entries in your MH profile file
 for those content types.

 Here's the part of the mhshow(1) (mhn(1)) manpage that explains how
 content types are handled. The example is for mhshow, but if you're
 using mhn, you'd replace mhshow with mhn:

   First, mhshow will look for an entry of the form:

     mhshow-show-<type>/<subtype>

   to determine the command to use to display the content. If this
   isn't found, mhshow will look for an entry of the form:

     mhshow-show-<type>

   to determine the display command. If this isn't found, mhshow has
   two default values:

     mhshow-show-text/plain: %pmoreproc '%F'
     mhshow-show-message/rfc822: %pshow -file '%F'

   If neither apply, mhshow will check to see if the message has a
   application/octet-stream content with parameter "type=tar". If so,
   mhshow will use an appropriate command. If not, mhshow will
   complain.

 So, add defaults that cover the types MH doesn't handle right now
 (or doesn't handle the way you want it to). Your defaults will
 override corresponding defaults in the $MHLIB/mhn.defaults
 (mhn_defaults) file. For example, if you don't have an HTML
 editor/browser on your system, you could tell MH to use the "less"
 paginator for HTML message parts:

   mhshow-show-text/x-html: less %F

 You can put that line in your MH profile.

 You can even set different defaults for different terminal types
 (say, your VT100 at home and your X setup at work). Make a file in
 the same format as mhn.defaults (mhn_defaults); store its pathname
 in the MHSHOW (MHN) environment variable. Add a test to your shell
 setup file (.bash_profile, .profile, .login) that tests the value of
 the TERM variable -- and, if you have an mhshow (mhn) setup file for
 that terminal type, store its pathname in the MHSHOW (MHN) variable.

 See also MH book sections 6.2.3, 9.4.4, 9.4.5, or the URLs:

   http://rand-mh.sourceforge.net/book/mh/remime.html#HomhShMe
   http://rand-mh.sourceforge.net/book/mh/confmhn.html#ShComhsh
   http://rand-mh.sourceforge.net/book/mh/confmhn.html#DiOChSmc

From: Michael K. Neylon <mneylon at engin.umich.edu>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 If you are not using the X Window System, you may have to add this
 line to your MH profile:

   mhshow-charset-iso-8859-1: /bin/sh -c '%s'                  # nmh
   mhn-charset-iso-8859-1: /bin/sh -c '%s'                     # MH

------------------------------

Subject: 03.06 Can I get show not to run "less" so much on MIME messages?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 On nmh, you can do this just by "show -nocheckmime". This will
 disable the detection of MIME messages.

From: Bill Wohler <wohler at newt.com>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 If you say, "show all," and one of the messages was a MIME message,
 your pager will be run several times on each message, rather than
 once on all the messages as a whole. If you find this annoying, set
 the environment variable NOMHNPROC:

   % setenv NOMHNPROC ""                       # csh
   $ NOMHNPROC=                                # sh and bash
   $ export NOMHNPROC

 See also MH book sections 6.2.3, 6.2.10, or the URLs:

   http://rand-mh.sourceforge.net/book/mh/remime.html#HomhShMe
   http://rand-mh.sourceforge.net/book/mh/remime.html#Alttomhn

------------------------------

Subject: 03.07 Why do I get "mhn: don't know how to display content"?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 This has already been fixed in nmh.

From: Keith Moore <moore at cs.utk.edu>
Date: Sun, 8 Sep 1996 15:49:50 -0700

 MH 6.8.3 has a bug where it will not handle multipart/foo correctly
 if it doesn't know about foo. The patch:

   http://www.gw.com/mail/mh/patches/all/mhn_multipart

 tells it to treat such things as if they were multipart/mixed.

 (See also "Why doesn't "show" display all of a MIME message?").

------------------------------

Subject: 03.08 How can I automatically delete MH backup files?
From: mccammaa at expt05.stp.xfi.bp.com (Andy McCammont)
Date: 22 May 1995 06:27:36 -0400

 On System V system, add this to your crontab. If you don't have one,
 put this in a file, and run "crontab file". If your system does not
 support personal crontab files, get your system administrator to add
 an equivalent line to the system crontab file or daily clean-up
 script. Note that some administrators set the prefix character to
 '#'.

   # Remove old MH files
   5 5 * * * find /PATH/TO/HOME/Mail -name ",*" -mtime +5 -exec rm {} \;

------------------------------

Subject: 03.09 Fixing "cannot fopen and lock /var/spool/mail/(user)"
From: Patrick.Wambacq at esat.kuleuven.ac.be
Date: Mon, 30 Sep 96 15:00:16 +0200

 One should put the following lines in the $MHLIB/mts.conf
 (mtstailor) file:

   lockldir:
   lockstyle: 1

 This prevents MH from using kernel level locking, and uses lock
 files instead. It solved the problem for me on two different
 architectures. When the lockldir entry is left empty as above, the
 lock file is put in the same directory as the file to be locked. If
 another directory is wanted, its name should be put here.

From: alhy at MAILBOX.SLAC.Stanford.EDU
Date: Mon, 9 Sep 1996 01:01:16 -0700

 Often, this is caused by an NFS file lock. Don't ask me how it got
 there in the first place. To remove the file lock, do the following:

   # cd /var/spool/mail
   # cp user /tmp/user.tmp; rm user    # save mail; remove locked file
   # chown user /tmp/user.tmp          # allow user to inc old mail
   # su - user
   user% inc -file user.tmp            # incorporate user's old mail

 Any mail that you receive in the fraction of a second that the
 second set of commands takes will be lost.

 (See also "Why does inc hang (on Sun)?")

------------------------------

Subject: 03.10 Can I read my mail with a Web browser?
From: Jerry Heyman <[email protected]>
Date: Sat, 09 Oct 2004 12:41:03 -0400

 See http://www.squirrelmail.org/

   SquirrelMail is a standards-based webmail package written in PHP4.
   It includes built-in pure PHP support for the IMAP and SMTP
   protocols, and all pages render in pure HTML 4.0 (with no
   JavaScript required) for maximum compatibility across browsers. It
   has very few requirements and is very easy to configure and
   install. SquirrelMail has all the functionality you would want
   from an email client, including strong MIME support, address
   books, and folder manipulation.

 No MH support. Unless you're willing to write it...

From: J C Lawrence <claw at kanga.nu>
Date: Wed, 10 Dec 2003 09:54:15 -0500

 UW-imap can read MH folders although it doesn't maintain sequence
 files properly. Drop any of the IMAP web front ends in front of
 that.

From: aeriksson at fastmail.fm
Date: Wed, 10 Dec 2003 22:36:52 +0100

 Have a peek at http://wmh.sf.net/. It's been a while since I worked
 on it, but it does give me what I need.

Date: Mon, 05 Oct 1998 11:02:52 -0500
From: Kent Landfield <kent at nfr.net>

 Hypermail now supports MIME and alternate mailbox formats and sorts
 by author, date, and thread and can be read by a WWW reader.

   http://www.landfield.com/hypermail/

From: "Patrick A. Coronato" <coronato at me216.teb.allied.com>
Date: 8 Sep 1995 16:36:03 GMT

 MHonArc, by Earl Hood from Convex, will read MH mailboxes as well as
 Unix mailboxes, create HTML "archives" and will also sort by date,
 thread and author and has support for MIME. Also, MHonArc is written
 in the Perl language. (You should go to this site if nothing more
 than to see the cool logo!)

   http://www.mhonarc.org/

------------------------------

Subject: 03.11 How can I run inc automatically with POP?
From: Bill Wohler <wohler at newt.com>
Date: Mon, 27 Nov 1995 12:23:51 -0800

 If MH has been compiled with RPOP, then the POP server host either
 needs to have your host in /etc/hosts.equiv or in your .rhosts file.
 Then add to your MH profile:

   inc: -host cuckoo

 given that "cuckoo" is the name of the your POP server.

From: Andy Norman <ange at hplb.hpl.hp.com>
Date: Mon, 1 May 1995 00:00:00 -0800

 Assuming your POP server is called cuckoo, add an entry to your MH
 profile for 'inc' like so:

   inc: -noaudit -norpop -noapop -host cuckoo

 Add the following to ~/.netrc and ensure it is readable only by you
 (e.g., chmod 600 .netrc):

   machine cuckoo.domain.name login joeuser password secret

 Replace the hostname, login and password with your own, of course.
 The hostname probably has to be fully qualified (i.e., include the
 full domain name). This example assumes that you can send mail by
 other means (e.g., with SMTP).

------------------------------

Subject: 03.12 Why does inc hang (on Sun)?
From: ericding at mit.edu (Eric J. Ding)
Date: 30 Apr 1996 00:22:01 -0400

 This may be due to a non-robust implementation of lockf() over NFS.
 Try setting lockstyle to 1 in the $MHLIB/mts.conf (mtstailor) file
 so that MH uses dotfile locking rather than FLOCK or LOCKF.

------------------------------

Subject: 03.13 How can I get POP to work?
From: Jonathan George <jmg at hpopd.pwd.hp.com>
Date: Tue, 23 Apr 1996 10:23:16 GMT

 If you get the error:

   inc: -ERR Unknown command: "rpop"

 you're trying to use "rpop" as the mechanism to authenticate the
 user. This mechanism is specified in RFC 1225 and then removed by
 RFC 1460.

 Your POP server is (rightly) rejecting this.

 The POP specification (RFC 1939) states that authentication is done
 either via a USER/PASS pair or via the APOP command.

 Try running inc with -noapop -norpop flags.

------------------------------

Subject: 03.14 How do I persuade mhshow (mhn) not to bring up a new window?
From: Joel Reicher <joel at panacea.null.org>
Date: Tue, 13 Nov 2001 16:49:04 +1100

 I personally think [the solution below] is not the right solution.
 There's a reason that new window is opened--to ensure the correct
 characters are available. The "right" solution is surely to set the
 MM_CHARSET env var to iso-8859-1 and make the appropriate
 adjustments to the pager (in the case of less, setting
 LESSCHARSET=latin1).

From: Larry Daffner <ldaffner at convex.com>
Date: 27 Mar 1996 16:53:39 -0600

 Add one of the following to your .mh_profile:

    mhshow-charset-iso-8859-1: %s                              # nmh
    mhn-charset-iso-8859-1: %s                                 # MH

------------------------------

Subject: 03.15 How do I turn off of all the mhshow (mhn) prompts?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 11 Mar 2001 11:33:10 -0800

 In nmh, use mhshow -nopause.

From: Larry Daffner <ldaffner at convex.com>
Date: 27 Mar 1996 16:53:39 -0600

 The "part xxx" message is controlled by the -list switch to mhn so
 add "mhn: -nolist" to your .mh_profile. To remove the pause, add an
 entry for "mhn-show-text/plain: more '%F'" to override the default
 which includes the "%p" escape. All of this is covered in the mhn
 man page (sort of--you need to add 2+2). It's a bit long, but well
 worth reading.

------------------------------

Subject: 03.16 Why is inc splitting messages improperly?
From: Mayank Choudhary <micky at eng.sun.com>
Date: Mon, 29 Apr 1996 09:39:29 -0700

 MH considers "From " lines as message separators, so if this string
 is found within the body, inc splits the message.

 Add the following line to your .forward

   "|/usr/bin/mailcompat <user-name>"

 where user-name is your login-id.

 See mailcompat(1) for more information.

------------------------------

Subject: 03.17 Can MH thread messages?
From: "John W. Coomes" <jcoomes at delirius.cs.uiuc.edu>
Date: 30 Apr 1997 13:02:10 -0500

 Sort of. You can resort your folders by Subject with:

   sortm -textfield subject

------------------------------

Subject: 03.18 How can I avoid reading the HTML version of the message?
From: Bill Wohler <wohler at gbr.newt.com>
Date: 23 Jun 2000 10:19:34 -0700

 You might find that you have two versions of the same message within
 the message. For example, one part might have a content type of
 text/plain and the other might be text/html.

 You may find that mhshow (mhn -show) wants to show the HTML version
 This is a feature of the multipart/alternative content type. If you
 prefer reading the the plain text version over the HTML version,
 you'd have to remove the line in $MHLIB/mhn.defaults or
 ~/.mh_profile that starts with mhshow-show-text/html
 (mhn-show-text/html). Of course, the tradeoff is that you'd never be
 able to view text/html at all, but you probably wouldn't care.

------------------------------

Subject: 03.19 How do I view or save attachments?
From: Bill Wohler <wohler at gbr.newt.com>
Date: Mon, 5 Mar 2001 09:12:15 -0800

 Use mhshow (mhn -show) and mhstore (mhn -store) respectively. See
 the man pages for more details.

------------------------------

Subject: 03.20 How do I view HTML attachments with Netscape?
From: Bill Wohler <wohler at gbr.newt.com>
Date: Mon, 5 Mar 2001 09:58:05 -0800

 Add one of the following to ~/.mh_profile:

   mhshow-show-text/html: %lnetscape -remote 'openURL(file:%f, new-window)'
   mhn-show-text/html: %lnetscape -remote 'openURL(file:%f, new-window)'

 The % escapes are described in the mhshow (mhn) man page. The ",
 new-window" argument in the netscape invocation is optional, but
 handy. After reading the message, you can dismiss the window with
 M-w and go back to reading mail.

------------------------------

Subject: 03.21 Fixing folders: unable to allocate storage for msgstats
From: Pete Phillips <pete at smtl.co.uk>
Date: 30 Jan 2003 03:33:57 -0800

 I found the following in my context file:

   atr-cur-/tmp: 1
   atr-pseq-/tmp: 1

 For some reason folders doesn't like this. Whether it's because of
 permission problems or just the size of my tmp directory (about 3/4
 of a GB) I don't know, but removing these lines from my context file
 fixed the problem.

------------------------------

Subject: 03.22 How do I recursively list message attachments?
From: Joel Reicher <joel at panacea.null.org>
Date: 31 Oct 2001 00:36:14 +1100

 I haven't quite managed a recursive listing, but I have worked out a
 recursive store, which is still useful. Hinted by a builtin display
 string for mhshow, I found the following works for mhstore:

   mhstore-store-message/rfc822: | mhstore -file -

 With that, mhstore will happily recurse down storing everything on
 its way. Not very discriminate, but the line can be altered to limit
 without destroying the recursion:

   mhstore-store-message/rfc822: | mhstore -auto -type message/rfc822 -type image/jpeg -file -

 which also names the files automatically for good measure.

 And, FWIW, I engage this by putting it in a separate file and
 invoking mhstore like

   env MHSTORE=mhn.rec mhstore

------------------------------

Subject: 03.23 Why do folder and flist overlook some of my sub-folders?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Mon, 10 Oct 2005 18:14:24 -0700

 There was a bug in these commands which caused them to quit
 searching a folder for sub-folders too early if the folder contained
 sub-folders which were symbolic links. This has been improved in
 nmh-0.25, but folder and flist will still not recurse into folders
 that contain only symbolic links.

------------------------------

Subject: 04.00 ***** Filing *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 04.01 Can I append MH messages to a Unix mailbox format file?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 In nmh, use packf instead.

From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 Yes, see $MHLIB/packmbox.

------------------------------

Subject: 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file?
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 To convert your MH folders to BABYL folders, first run the following
 script on your Mail directory.

   #!/bin/sh

   for f in Mail/*; do
       if [ -d $f ]; then
           touch msgbox
           folder=`basename $f`
           echo -n packing $folder ...
           packf +$folder
           echo done
           mv msgbox Mail-rmail/$folder
       fi
   done

 This assumes you don't have nested folders. Your rmail folders will
 be left in $HOME/Mail-rmail in MMDF format which rmail can read.
 Then run rmail-input for each folder, which converts each folder
 into BABYL format.

 Be sure not to append any messages before they are converted from
 MMDF to BABYL, since there may be really strange results.

------------------------------

Subject: 04.03 Why do I get ".../.mh_sequences is poorly formatted?"
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 This bug has been fixed in nmh (as of version 0.20). There are no
 limitations on the length of an entry in the .mh_sequences file.

From: Jerry Peek <jpeek at jpeek.com>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 There is a line length limit in this file. When sequences are
 unbroken (without gaps in numbering), that makes short entries in
 the .mh_sequences file, like this:

   inftex: 72-8000

 But when there are lots of numbering gaps, the entry gets long:

   inftex: 76 79-81 87 95-96 105 109 120 124 135 141 158 163...

 That's when you run into problems, and why it's good to keep the
 folder packed when you can. Simply run "folder -pack +folder".

 If you're refiling a lot of messages in a large folder, you might
 not be able to use sequences. Use backquotes to give the message
 numbers directly to "refile". For example:

   refile +tex/info-tex `pick -to info-tex`

 That can still generate a long list of arguments to the "refile"
 command, and some Unixes can't handle that. In that case, use
 xargs(1):

   pick -to info-tex | xargs refile +tex/info-tex

 If worse comes to worst, fire up a Bourne shell and use a "while"
 loop:

   pick -to info-tex | fmt | while read nums; do
       refile +tex/info-tex $nums
   done

 The fmt(1) command breaks long lines into manageable chunks of 72
 characters or so, splitting arguments at whitespace. When you
 redirect the input of a while loop, a "read" command will read the
 incoming text and store it in a shell variable line by line. This is
 a quick-&-dirty way to write xargs(1) if you don't have it.

------------------------------

Subject: 04.04 How can you save News articles into an MH folder?
From: Jerry Peek <jpeek at jpeek.com>
Date: Mon, 1 May 1995 00:00:00 -0800

 If your newsreader handles backquotes on its command line, you can
 use the mhpath command. For instance, if your "save" command is "s":

   s `mhpath new +somefolder`

 Or if your newsreader lets you define your own commands, as in shell
 aliases, you could define that as a command.

 If your newsreader can pipe an article to the standard input of a
 program, use the "rcvstore" command (in the MH library). For
 instance, if your "pipe" command is "|":

   | $MHLIB/rcvstore +somefolder

 Of course, you can also put that in a little shell script.

------------------------------

Subject: 04.05 Are there any good tools to archive MH messages?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 23 Sep 2007 18:35:53 -0700

 For those of lesser means, I have three shell scripts for archiving,
 seeking, and extracting MH messages that I had been using for a
 couple of decades. Send mail if interested.

 However, now that disk space is cheap and one can index years worth
 of mail in a minute or two, I haven't run those scripts in a few
 years. I intend to update them to index and archive a years-worth of
 mail at some point.

 Since glimpse is no longer free (as in speech), I've switched to
 swish++. Other indexing tools (which are also compatible with MH-E)
 include mairix and namazu.

From: glimpse at cs.arizona.edu
Date: Sun, 4 Mar 2001 10:26:24 -0800

 Glimpse is a very powerful indexing and query system that allows you
 to search through all your files very quickly. It can be used by
 individuals for their personal file systems as well as by
 organizations for large data collections.

   http://www.webglimpse.org/

------------------------------

Subject: 04.06 How can I remove duplicate messages?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 17 Oct 2004 13:04:57 -0700

 Don't let them get in there in the first place. Add the following to
 your .promailrc:

   :0
   * ? formail -D 16384 $PM_CACHE/msgid
   /dev/null

 If it's too late, you might be interested in mhfinddup, attached
 below, which is an embellishment of the Perl script in (see
 "Removing duplicate messages (Perl)").

From: Jerry Peek <jpeek at jpeek.com>
Date: 20 Nov 1995 18:51:24 GMT

 The easiest way I know of is to sort the folder by the Message-ID
 field using the sortm(1) command.

 After the sort, each message should be next to its duplicates in the
 folder. Use a script (shell, Perl, etc.) to weed out the duplicates.
 (See "Removing duplicate messages (Bourne)").

 The Perl script in (see "Removing duplicate messages (Perl)") does
 not require that you first sort the folder.

------------------------------

Subject: 04.07 How can I remove holes in numbering?
From: Bill Wohler <wohler at newt.com>

 folder -pack

------------------------------

Subject: 05.00 ***** Composing & Replying *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 05.01 Why does repl add a "Re:" to a message that already has one?
From: Larry McVoy <lm at slovax.Eng.Sun.COM>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 I carefully reconfigured and rebuilt MH from scratch and the problem
 went away.

------------------------------

Subject: 05.02 How do I include messages in repl with or without ">"?
From: Richard Coleman <coleman at math.gatech.edu>
Date: Tue, 20 Jan 1998 02:19:58 -0500

 In nmh, to include a message in a reply with a leading ">", just use
 "repl -format".

From: Alan Thew <qq11 at liv.ac.uk>, Mike Schwager <schwager at cs.uiuc.edu>,
       James T Perkins <jamesp at sp-eug.com>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 When making a reply, specify a filter file on the command line:

   repl -filter repl.format

 This filter file must be in your MH mail directory (usually "Mail",
 in your home directory). Here are a couple of example repl.format
 files:

   overflowtext="",overflowoffset=0
   message-id:nocomponent,formatfield=\
   "In message %{text}, you wrote:"
   body:component="> ",overflowtext="> ",overflowoffset=0

 or

   overflowtext="",overflowoffset=0
   date:component="Your message dated",formatfield=\
   "%<(nodate{text})%{text}%|%(pretty{text})%>"
   body:component="> ",overflowtext="> ",overflowoffset=0

 Setting overflowoffset to 0 keeps MH from doing anything to
 extra-long lines in the headers. In the body, however, this behavior
 is overridden so that long lines are automatically broken and a ">"
 is inserted before every line. You could put almost whatever you
 want between those quotes, although the "standard" ">" makes it
 easier to read notes that have been included several times. The
 examples differ with the descriptive text that is inserted before
 the included body.

 It is suggested not to use the "prompter" editor in this case, since
 it is likely that you'll not want to use all of the included
 message. Indeed, it is proper etiquette to edit out all unnecessary
 include verbiage so readers don't have to wade through the morass to
 read your pearls of wisdom.

 WARNING: the '>' appears on the first line ONLY in versions prior to
 6.7.2. Upgrade to MH 6.8.

 See also MH book sections 7.8.4 (6.7.4), 7.8.5 (6.7.5), 10.4.1
 (9.4.1), or the URLs:

   http://rand-mh.sourceforge.net/book/mh/reprep-2.html#ReaEdi
   http://rand-mh.sourceforge.net/book/mh/reprep-2.html#Inc
   http://rand-mh.sourceforge.net/book/mh/verrep.html#IncRep

------------------------------

Subject: 05.03 How can I eliminate duplicate copies of letters to myself?
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 Add these two lines to your MH profile file:

   Alternate-Mailboxes: user@host1, user@host2, ...
   repl: -nocc me

 The Alternate-Mailboxes also tells scan which messages are really
 from you so that it can place the recipient in the scan line instead
 of the sender.

From: Jerry Peek <jpeek at jpeek.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 To get one copy, you can either:

 - Take out the "-nocc me"... then you'll get exactly one copy of
   your replies (assuming all your addresses are listed in
   Alternate-Mailboxes), or

 - (See also "How can I save a copy of all messages I send?").

   For more info, see the man pages comp(1), repl(1), forw(1),
   dist(1) and mh-mail(5).

 See also MH book sections 7.8.2 (6.7.2), 9.8 (8.6), or the URLs:

   http://rand-mh.sourceforge.net/book/mh/reprep-2.html#Sel
   http://rand-mh.sourceforge.net/book/mh/defmai.html

From: Alec Wolman <wolman at crl.dec.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 Listing the name of a mailing list in Alternate-Mailboxes is also a
 convenient way to AVOID automatically cc-ing a mailing list when
 replying to a person who sent the message to the mailing-list.

From: Andre Srinivasan <asriniva at us.oracle.com>
Date: Fri, 24 Jan 1997 09:33:19 -0800

 Rather than specify the hostname as part of the mailbox, you can
 simply specify the username and it will match on any host:

   Alternate-Mailboxes: asriniva

------------------------------

Subject: 05.04 How can I include my signature?
From: Eric W. Ziegast <ziegast at uunet.uu.net>,
       Hardy Mayer <hardy at golem.ps.uci.edu>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 There are several ways.

 1) The MH way.

 1a) In your Mail directory, create files that include your signature
     into the format of the message.

     ~/Mail/components:
       To:
       cc:
       Subject:
       --------

       --
       Eric Ziegast            ziegast at uunet.uu.net
       UUNET Technologies      uunet!ziegast

     ~/Mail/replfmt
       body:component="> ",compwidth=2
       :--
       :Eric Ziegast           ziegast at uunet.uu.net
       :UUNET Technologies     uunet!ziegast

    To use the replfmt file, add the following to your ~/.mh_profile:

      repl: -filter replfmt

    When comp is used, your signature is already there along with my
    headers. When repl is used, the mhl program takes the body of
    the letter you're replying to, prepends '> ' to each line and
    then adds your signature at the end (available after version
    6.7).

 1b) Create an "editor" which can be called from whatnow to add the
     signature when desired or create a frontend to post (use the
     .mh_profile line "postproc: postproc" to call it) that always
     appends the .signature file before calling post to mail the
     message. David J. Fiander <david at golem.uucp>, David A.
     Truesdell <truesdel at nas.nasa.gov> and Tom Wilmore <sastjw at
     unx.sas.com> have sample scripts to do these.

From: Jerry Peek <jpeek at jpeek.com>
Date: Tue, 1 Sep 1992 00:00:00 -0800

 1c) mysend, a sendproc script, processes a message after "What now?
     send". See "What references exist for MH" to see where the MH
     book scripts can be ftped from. The script is explained in MH
     book Section 7.1.4 (13.13), or the URL:
     http://rand-mh.sourceforge.net/book/mh/senove.html#ASAtDm

 2) Using your editor.  If you use vi, you can use something like:

      map S :r ~/.signature

    to load your signature out of .signature every time you
    hit 'S'.

 3) Use your windowing system. xterm, for example, can provide key
    and button mappings for the utterly lazy.

 4) If you use Emacs with MH-E:

 4a) C-c C-s will append the signature.

From: Andre Srinivasan <andre at neuronet.pitt.edu>
Date: Mon, 1 May 1995 00:00:00 -0800

 4b) Add the following to your .emacs file:

       (add-hook 'mh-compose-letter-function
           (function
            (lambda(a b c)
              (save-excursion
                (goto-char (point-max))
                (beginning-of-line)
                (mh-insert-signature)))))

     This hook is called after the draft buffer has been initialized,
     but before you have a chance to type anything.

From: Tom Christiansen <tchrist at perl.com>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 Tired of the same old signature? Want different signatures for
 different newsgroups? Here's a program to help you out.

 The way it works is to have .signature be a named pipe, so if you
 don't have named pipes, just say 'n'.

 The sigrand program then feeds stuff down the pipe every time
 someone wants to read it. That way it works for more than just news,
 but for anything that wants to read your .signature, like a mailer.

 You have your choice of three kinds of signatures:

     1) random (short) fortune from "fortune -s"; you get these if
        you don't have a global sig file.
     2) random fortune from ~/News/SIGNATURES [global sig file]
     3) random fortune form ~/News/(newsgroup)/SIGNATURES [local sig files]

 Send mail if interested.

Date: Tue, 1 Nov 1994 00:00:00 -0800

 See also the Signature FAQ (see "What references exist for MH?").

------------------------------

Subject: 05.05 How do I call my editor with arguments?
From: John Romine <jromine at ics.uci.edu>
Date: Mon, 1 May 1995 00:00:00 -0800

 Set your editor (in .mh_profile) to the following shellscript.

   #/bin/sh
   <youreditor> <yourargs> "$@"
   exit 0

From: Ray Nickson <Ray.Nickson at comp.vuw.ac.nz>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 You might find it useful to make <youreditor> $EDITOR, or to use
 different arguments depending on your EDITOR environment variable.

------------------------------

Subject: 05.06 How can I digestify messages in a folder for mail to another user?
From: Jerry Peek <jpeek at jpeek.com>, Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 How about:

   forw [-digest tmp] [-form forwcomps] [-filter mhl.digest]
        messages +folder

 These messages can be un-digestified :-) by the MH burst(1) program.

 See also MH book sections 7.9.7 (6.8.7), 8.10 (7.9), or the URLs:

   http://rand-mh.sourceforge.net/book/mh/forfor-2.html#CreDig
   http://rand-mh.sourceforge.net/book/mh/burdig.html

From: Glenn Vanderburg <glv at utdallas.edu>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 There's another way, which is better if the recipient understands
 MIME.

   forw -mime messages +folder

 (Make sure that you either have "automhnproc: mhn" in your mh
 profile, or type "edit mhn" to whatnow before you send it.)

 This bundles each message in a MIME message/rfc822 part, and then
 bundles the whole mess up in a multipart/digest part. You can still
 add your own text at the beginning. The MH burst program can also
 understand these messages and split them apart with no problem. This
 works beautifully with MIME-capable mail readers, especially exmh.

------------------------------

Subject: 05.07 How can I change my return address?
From: Bill Wohler <wohler at newt.com>
Date: Tue, 1 Dec 1992 00:00:00 -0800

 If you find that your mailer creates a From header that others have
 trouble replying to, you can add a Reply-To header to override the
 From header in replies.

 Copy the components and replcomps files which are normally found in
 $MHLIB into your Mail directory and add a line like the following
 after the Subject header replacing my address with your address:

   Reply-To: [email protected]

------------------------------

Subject: 05.08 How can I change my From header?
From: Bill Wohler <wohler at newt.com>
Date: Mon, 27 Nov 1995 11:40:50 -0800

 With either of the following solutions, you'll need to add an
 Alternate-Mailboxes entry in your MH profile so that scan prints
 "To: recipient" rather than your faked address. For example, if your
 real address is [email protected] and you've added a From field
 of:

   From: Joe Bob <[email protected]>

 you'll add the following to .mh_profile:

   Alternate-Mailboxes: [email protected]

From: Bill Wisner <wisner at netcom.com>
Date: Tue, 1 Dec 1992 00:00:00 -0800

 If you're just interested in changing the hostname, add a line to
 $MHLIB/mts.conf (mtstailor):

   localname: desired_host_name

From: Jerry Peek <jpeek at jpeek.com>
Date: Tue, 1 Dec 1992 00:00:00 -0800

 Just put a "From:" header in your "components", "replcomps" and
 "forwcomps" files. MH will add a "Sender:" header with what it
 thinks is your real address.

------------------------------

Subject: 05.09 How can I save a copy of all messages I send?
From: Ping Huang <pshuang at sgihub.corp.sgi.com>
Date: Mon, 18 Dec 1995 17:51:33 -0800

 I suggest the use of the Dcc: field (See "What is the Dcc header?"),
 since the use of "Dcc:" solves the issue of having the same
 Message-Id. The warning about using Dcc: in general contexts doesn't
 apply to self-blind-carbon copies, and if "Dcc:" is used and you are
 automatically sorting messages into folders based on mailing lists,
 messages which you send will get refiled in the same way. Some may
 prefer all outgoing messages to be segregated; others (including
 myself) prefer not to segregate outgoing messages.

From: Bill Wohler <wohler at newt.com>, Jerry Peek <jpeek at jpeek.com>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 Copy the components and replcomps files which are normally found in
 $MHLIB into your Mail directory and add a line like the following
 after the cc header:

   Fcc: +out

 All outgoing messages will then be saved in the +out folder. If you
 make a distcomps file, it needs "Resent-Fcc:".

From: Jeppe Sigbrandt <jay at elec.gla.ac.uk>
Date: Sat, 5 Apr 1997 02:04:53 +0100

 You can also use @ in the Fcc field to file the outgoing message in
 the current folder.

   Fcc: @

 This is useful if you filter your mail (e.g., with procmail) and you
 read your mail in folders other than +inbox.

From: David S. Goldberg <dsg at linus.mitre.org>
Date: 30 Oct 1995 10:23:55 -0500

 You can get the Message-ID field by placing the folder in the "Fcc"
 field and adding:

   send: -msgid

 to your .mh_profile. Unfortunately, this Message-ID isn't as useful
 as sendmail's--it doesn't include the date.

------------------------------

Subject: 05.10 Can the folder in Fcc: be dynamically specified?
From: Andy Rabagliati <andyr at wizzy.com>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 My suggestion would be to run Tom Christiansen's rfi script. If you
 cannot find it on *.sources archive sites (please try first), I can
 mail it to you.

 One good idea would be to write a whatnowproc that files the mail
 based on a procmail or deliver file. Then you can use the same file
 for incoming and outgoing mail.

------------------------------

Subject: 05.11 Can I post secure/encryped mail?
From: Bill Wohler <wohler at newt.com>
Date: Thu, 19 May 2005 18:06:39 -0700

 MH-E 7.0 supports GPG out of the box.

From: Bill Wohler <wohler at newt.com>
Date: Mon, 5 Mar 2001 05:30:43 -0800

 PGP keys can be obtained via mail from <pgp-public-keys at
 pgp.mit.edu>, and via the Web at
 http://www.pgp.net/pgpnet/pks-commands.html. Many PGP front-ends
 (e.g., mailcrypt) automatically obtain keys for you.

 See http://www.pgp.net/ for more info.

From: Vivek Khera <khera at kciLink.com>
Date: 19 Jun 1995 22:06:37 GMT

 A much more robust Perl script I wrote is appended below. [Send a
 note to Vivek for the script. --Ed] It works its way through
 aliases, and avoids problems with full names in the headers.

 Here is my mhn profile entry to display the messages.

   mhshow-show-application/x-pgp: %l pgp -m '%F'       # nmh
   mhn-show-application/x-pgp: %l pgp -m '%F'          # MH

 to use the script, after you edit the message, at the What now?
 prompt, type "edit pgpmail" for plain ascii encryption or "pgpmail
 -m" for a MIME formatted encryption. If you want to add a digital
 signature, give the script the -s flag also.

From: Jeffrey C. Ollie <jeff at ollie.clive.ia.us>
Date: Mon, 1 May 1995 00:00:00 -0800

 TIS has a free, draft-standard compliant public key system that
 works with MH (PEM). Check it out on ftp.tis.com.

From: Kimmo Suominen <kim at tac.nyc.ny.us>
Date: Mon, 1 May 1995 00:00:00 -0800

 You could try looking at the URL http://www.tac.nyc.ny.us/ and
 following the link from the cover page. Everything you need for PGP
 to work with MH is there (scripts and mhn entries).

From: mathew at mantis.co.uk
Date: Mon, 1 May 1995 00:00:00 -0800

 Excellent stuff. I've tried altering it to conform to
 draft-borenstein-pgp-mime-00.txt.

 Unfortunately, I can't get mhn to tag PGP-armoured text as
 application/pgp; format=text without it insisting on base64 encoding
 it. So I can't quite manage to implement the standard. *sigh*

 Presumably mhn thinks that anything which isn't text/* must be
 encoded.

From: John R MacMillan <john at interlog.com>
Date: Wed, 16 Apr 1997 00:06:59 -0700

 Premail, in conjunction with MH, can display and compose security
 multiparts (e.g., multipart/signed and multipart/encrypted PGP mail,
 non-MIME PGP, and some S/MIME). Check out

   http://www.c2.org/~raph/premail/

 for details.

------------------------------

Subject: 05.12 How can I send multi-media (MIME) attachments?
From: Brian Exelbierd <bex at ncsu.edu>
Date: Mon, 09 Oct 1995 08:05:55 -0400

 The short guide:

 1. Compose a letter using comp.

 2. When you get to a point where you want to include a MIME
    attachment, type the following to include a GIF image (note: the
    '#' must be in the first column):

       #image/gif [Pictures at an Exhibition] /usr/lib/pictures/exhibition.gif

 3. Finish your letter, adding more text or attachments as needed.

 4. Save your letter and exit the editor. At the Whatnow prompt type
    "edit mhn". mhn will automatically format your letter with the
    MIME attachments leaving the original letter in ,##,orig where ##
    is the letter number.

 5. Type "send" at the Whatnow prompt, and poof, you have just sent
    MIME mail. I strongly recommend you practice sending yourself
    MIME mail first.

 For more information, see the mhn(1) man page,
 ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types
 for a list of allowed media types in addition to image/gif, and
 Chapter 3 in the MH book or the URL:

   http://rand-mh.sourceforge.net/book/overall/tocs/intmime.html

------------------------------

Subject: 05.13 What's the best way to send mail to a long list of people?
From: Bill Wohler <wohler at newt.com>
Date: Thu, 12 Oct 1995 07:53:53 -0700

 There are three ways to keep the list of members from appearing in
 everyone's header.

 If you're planning on mailing to these people regularly, the best
 way is to create an alias in /etc/aliases (/usr/lib/aliases). That
 way, recipients can send and reply to the list as well.

 The other two ways allow you to manage the list privately, but the
 recipients cannot send to the list (unless you set something up with
 your deliver or procmail script). One is with a group list. It looks
 like this:

   To: All-members: member1, member2, member3, ..., membern;

 The recipients see this:

   To: All-members:;

 You can make this an MH alias as well.

 The second way is to use a blind carbon copy (see "How do I send
 blind carbon copies?").

 Or you could also use the undocumented Dcc field which is used like
 the Bcc field, but doesn't inject the "Blind-Carbon-Copy." Warning:
 (See "What is the Dcc header?")

------------------------------

Subject: 05.14 What is the Dcc header?
From: jpeek at jpeek.com (Jerry Peek)
Date: 14 Sep 96 05:51:13 GMT

 If you put the alias in the Dcc field and leave the To: field empty,
 there's a good chance that the recipients will get a message with
 the header field:

   Apparently-to: <someaddress>

 and it might even list several addresses. To avoid that, use a To:
 field with some address (like yours) in it. I use a comment that
 tells people what's really happening--like this, more or less:

   To: "Faculty members, c/o" <[email protected]>
   dcc: faculty

 There are some other choices, like using an un-replyable group list
 in the To: field, but I think they tend to confuse non-techies.

Date: Wed, 27 Sep 1995 09:46:37 -0700
From: John Romine <jromine at yoyodyne.ICS.UCI.EDU>

 The Dcc (Distribution Carbon Copy) field behaves much like the Bcc
 field, but does not add the "Blind-Carbon-Copy" notice. This header
 is removed before posting the message,and a copy of the message is
 distributed to each listed address. This could be considered a form
 of Blind Carbon Copy which is best used for sending to an address
 which would never reply (such as an auto-archiver).

 People should not be using Dcc as a substitute-Bcc to send to other
 people. When users use Dcc as a substitute for Bcc, there is *no*
 indication to the "blind" recipients that they have received a blind
 copy. If those recipients should reply (and they have no indication
 why they shouldn't), the original author could be very embarassed
 (or worse).

------------------------------

Subject: 05.15 How can I make sense of the replcomps file?
From: Bill Wohler <wohler at newt.com>
Date: Thu, 9 Mar 2006 19:27:14 -0800

 The best thing to do is curl up with the mh-format(5) man page, or
 Section 11.2 of the MH book, or the URL:

   http://rand-mh.sourceforge.net/book/mh/mhstr.html

 These will explain the default replcomps file, included here. Don't
 start with the first four lines--the latter group of lines are much
 easier to understand.

   %; $Header: /cvsroot/nmh/nmh/etc/replcomps,v 1.3.2.1 2003/10/24 20:14:46 kenh Exp $
   %;
   %; These next lines slurp in lots of addresses for To: and cc:.
   %; Use with repl -query or else you may get flooded with addresses!
   %;
   %; If no To:/cc:/Fcc: text, we output empty fields for prompter to fill in.
   %;
   %(lit)%(formataddr{reply-to})\
   %(formataddr %<{from}%(void{from})%|%(void{apparently-from})%>)\
   %(formataddr{resent-to})\
   %(formataddr{prev-resent-to})\
   %(formataddr{x-to})\
   %(formataddr{apparently-to})\
   %(void(width))%(putaddr To: )
   %(lit)%(formataddr{to})\
   %(formataddr{cc})\
   %(formataddr{x-cc})\
   %(formataddr{resent-cc})\
   %(formataddr{prev-resent-cc})\
   %(formataddr(me))\
   %(void(width))%(putaddr cc: )
   Fcc: %<{fcc}%{fcc}%|+outbox%>
   Subject: %<{subject}Re: %{subject}%>
   %;
   %; Make References: and In-reply-to: fields for threading.
   %; Use (void), (trim) and (putstr) to eat trailing whitespace.
   %;
   %<{message-id}In-reply-to: %{message-id}\n%>\
   %<{message-id}References: \
   %<{references}%(void{references})%(trim)%(putstr) %>\
   %(void{message-id})%(trim)%(putstr)\n%>\
   Comments: In-reply-to \
   %<{from}%(void{from})%?(void{apparently-from})%|%(void{sender})%>\
   %(trim)%(putstr)\n\
      message dated "%<(nodate{date})%{date}%|%(tws{date})%>."
   --------

 In particular, note the following:

   \   consider the following line to be part of the current line. If
       this continuation character is absent, a newline (\n) will
       always be inserted. Note that if the field is conditional, and
       the condition is false, and there isn't a trailing backslash,
       then a blank line will appear in your reply. Since the rest of
       the header will now be considered to be part of the body, this
       is probably not what you want.
   \n  inject an actual newline into the reply. Note that inserting a
       field without a trailing backslash (\) will cause that field
       to be emitted in the reply as well.
   %<{field}, %?{field}, %|, %>
       if field exists, else if field exists, else, endif.
       Conditional fields nearly always contain an explicit newline
       (\n) and end with a continuation character (\).
   %(command)  mh-format commands
   %{field}    value of the header field inserted at this point

 To add new fields, you can either add fields based on whether
 certain fields exist in the original message (e.g.,
 %<{message-id}...), or hard-code them, as in the Fcc, Subject, or
 Comments fields above.

------------------------------

Subject: 05.16 How can I convert quoted-printable to 8bit in quoted text in replies?
From: Jarle F. Greipsland <jarle at idt.unit.no>
Date: 22 Aug 1995 10:42:07 +0200

 The idea behind the solution is that I need mhn to store the
 contents of the mail in the native iso8859-1 format somewhere. I did
 this by creating a custom editor that is invoked when I reply to a
 message. This editor extracts the body of the message (sorry, no
 multipart stuff), indents it with '> ', appends it to the draft
 message and invokes the ordinary editor on it. Here are the details:

 `isorepl' is a symbolic link from my $HOME/bin-directory to `repl'.

 In my .mh_profile I added the following two lines:

   isorepl: -form isoreplcomps -editor isoextract
   isoextract-next: vi

 The isoreplcomps file in my Mail-directory contains:

   %(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\
   %<(nonnull)%(void(width))%(putaddr To: )\n%>\
   %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
   %<(nonnull)%(void(width))%(putaddr cc: )\n%>\
   %<{fcc}Fcc: %{fcc}\n%>\
   %<{subject}Subject: Re: %{subject}\n%>\
   %<{date}In-reply-to: Your message of "\
   %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id}
                %{message-id}%>\n%>\
   --------
   #<text/plain; charset=iso-8859-1
   %<{message-id}In message %{message-id} %>\
   %<{from}%(friendly{from}) writes%|You write%>:

 This is a "Usenet-like" quoting style. Modify to suit your own
 taste. This form will setup the proper header, as well as the first
 line of the new message (In <mmmmbbbb> nnnn writes etc.).

 The first editor, `isoextract', looks like this:

   #!/bin/sh
   #
   # Called from within repl where the "editalt" variable is valid
   #
   # Point to a special MHN configuration file (save old one)
   OLDMHN="$MHN"
   MHN=$HOME/`mhparam Path`/isoquotemsg
   export MHN

   # Extract message body to "native" format (should be iso-8859-1)
   # > More bla bla.
   mhn -file "$editalt" -store >> $1 2>/dev/null

   MHN="$OLDMHN"
   myname=`basename $0`
   next=`mhparam ${myname}-next`
   if [ "x$next" != "x" ]; then
           exec $next "$@"
   fi

 `isoquotemsg' has just one rule; how mhn should store a text message.

   mhn-store-text: |sed -e 's/^[       ]*$//' \
                        -e 's/^\([>|]\)\(.*\)$/>\1\2/' \
                        -e 's/^\([^>|].*\)$/> \1/'

 This tells mhn to pipe the message to stdout, where the sed commands
 will do the reformatting/quoting. (Note: the first pair of square
 brackets contains a space and a tab.)

 So, when I do a `isorepl' to a message, `repl' will create the draft
 message with the proper headers (based on the `isoreplcomps' format
 file), fire off its first editor, `isoextract', with the name of the
 draft file as its parameter. `isoextract' then invokes mhn in a
 suitable environment, tells it that it is to use the file $editalt
 as its source, and orders it to store the contents. The store-text
 rule in the custom MHN-file tells it to just pipe the message (in
 native iso8859-1 form) through a small set of sed commands, and
 `isoextract' uses the normal shell construct to append the result to
 the draft file. Then, if there's defined a `isoextract-next' entry
 in the .mh_profile, isoextract exec's this editor.

------------------------------

Subject: 05.17 Can I have aliases include aliases?
From: Bruce Cox <bruce at maths.su.oz.au>
Date: Fri, 16 Aug 1996 14:26:12 +1000

 Indeed, you can.

 You just need to remember the way MH expands aliases. In particular,
 the right hand sides are only expanded by the aliases below them in
 your aliases file. So, if you put in:

   dead-men: presidents, authors
   presidents: washington, lincoln, jefferson, roosevelt
   authors: thoreau, irving, london

 and type:

   ali dead-men

 then you would get the response:

   washington, lincoln, jefferson, roosevelt, thoreau, irving, london

 If you had the dead-men line after the presidents and authors
 aliases, the response would be:

   presidents, authors

------------------------------

Subject: 05.18 Why doesn't mhmail understand aliases?
From: "John L. Romine" <jromine at yoyodyne.ics.uci.edu>
Date: 25 Apr 1996 16:34:10 GMT

 One way that mhmail might be run is from a shell script. This means
 that the user running it might not use MH, and would not have a
 .mh_profile, etc. If you want to use aliases with mhmail, expand
 them before passing them as arguments (e.g., "mhmail `ali joe`").

------------------------------

Subject: 05.19 How do I send blind carbon copies?
From: Bill Wohler <wohler at newt.com>
Date: Mon, 9 Sep 1996 00:32:14 -0700

 Use the Bcc header field:

   To: your-address-here
   Bcc: member1, member2, member3, ..., membern

 The recipients see this:

   To: your-address-here

   ------- Blind-Carbon-Copy

   Content of message, with headers

 If you don't want the "Blind-Carbon-Copy" message, use the Dcc
 field, but this is discouraged in true blind carbon copies since the
 warning may prevent the recipient from embarrassing someone
 inadvertently. Read the warning in (see "What is the Dcc header?").

------------------------------

Subject: 05.20 When I forward a message, can I use its Subject?
From: Jerry Peek <jpeek at jpeek.com>
Date: Sun, 17 Nov 1996 20:16:31 -0800

 Obtain forwedit.

   http://rand-mh.sourceforge.net/book/examples/mh/bin/forwedit

------------------------------

Subject: 05.21 Why is the timezone field in my 'Date:' field wrong?
From: Alex Tomlinson <tomlinson at acm.com>
Date: Wed, 11 Jun 1997 09:16:41 -0500

 If the date field in your mail header looks like this:

   Date: Tue, 10 Jun 1997 15:59:03 +2228904

 remove -lbsd from your MH configuration, add "curses -lcurses", and
 rebuild.

------------------------------

Subject: 05.22 Can I automate the comp -editor mhn process?
From: Soren Dayton <csdayton at gargoyle164.cs.uchicago.edu>
Date: Tue, 21 Jan 1997 17:23:32 GMT

 Add

   automhnproc: mhn

 to your MH profile.

------------------------------

Subject: 05.23 How can I remove those "=20" characters when forwarding?
From: Dave Marquardt <marquard at Austin.IBM.Com>
Date: 12 Oct 2000 10:27:38 -0500

 Use `forw -mime'.

------------------------------

Subject: 05.24 Can I use mh-format substitution with forw?
From: Dave Marquardt <marquard at Austin.IBM.Com>
Date: Tue, 3 Aug 1999 13:28:30 -0500 (EST)

 The answer is no, and the real question is why not?

------------------------------

Subject: 05.25 How can I keep repl from breaking long lines?
From: Jerry Peek <jpeek at jpeek.com>
Date: Fri, 14 May 1999 11:15:07 -0400

 Try adding width=10000 (or so) to your replcomps. It should work
 unless you have messages with lines longer than that...

------------------------------

Subject: 05.26 How do I fix a bogus In-Reply-To or missing References field?
From: Bill Wohler <wohler at newt.com>
Date: Thu, 9 Mar 2006 21:42:21 -0800

 In the past, the In-reply-to header field looked as it does in the
 new Comments field (see "How can I make sense of the replcomps
 file?"). However, the old format is no longer allowable under RFC
 2822 which specifies that this field should only include the
 Message-ID. You can fix the replcomps and replgroupcomps files by
 upgrading to nmh 1.1 (be sure to update your personal copies if
 applicable) or simply by fixing the In-reply-to field in your own
 replcomps file using the example in the question referenced in this
 paragraph.

 In addition, older replcomps files lacked the References field which
 enables threading in capable UIs. You can get it in the same fashion
 as the In-reply-to field--by upgrading or copying.

------------------------------

Subject: 06.00 ***** Posting *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 06.01 What to do with "Problems with edit - draft removed".
From: John Romine <jromine at ics.uci.edu>
Date: Mon, 1 May 1995 00:00:00 -0800

 If your users are using an AT&T version of "vi", it's exiting with
 non-zero status (supposedly a count of the "errors" during the
 edit). Move "vi" to "broken_vi" and put it its place :

   #! /bin/sh
   /usr/ucb/broken_vi "$@"
   exit 0

 Alternatively, compile MH with the ATTVIBUG option.

 Then complain to your vendor that "vi" is broken, and they shouldfix it.

------------------------------

Subject: 06.02 Can I run my message through a program (e.g., ispell) before sending?
From: Jerry Peek <jpeek at jpeek.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 It's pretty simple. If your speller is called myspell, use:

   What now? edit myspell

 MH will actually execute:

   myspell /your-mail-draft-directory/draftfile

 and give the entire draft message to your speller. The header will
 probably be "misspelled," of course, though you might be able to
 tell the speller to ignore it--or you could hack up a little shell
 script to run the speller on just the message body, then tack the
 corrected body back onto the header before sending.

 You can automate this some more. For example, if you want your
 speller to run after your first edit with "prompter" and also after
 you leave the "vi" editor, add these lines to your MH profile:

     prompter-next: myspell
     vi-next: myspell

 Then, at the "What now?" prompt:

     What now? e

 your speller will run. For more info, see the mh-profile(5) man page
 or section 7.2.1 (6.2.1) of the MH book, or the URL:

   http://rand-mh.sourceforge.net/book/mh/chaedi.html#Edi

------------------------------

Subject: 06.03 What to do with "bad address 'xxx' - no at-sign after local-part".
From: Owen Rees <rtor at ansa.co.uk>
Date: Fri, 1 Jan 1993 00:00:00 -0800

 You may find that post returns the following message:

   post: bad address 'Mr. Foo Bar <[email protected]>' - no at-sign
   after local-part (Bar), continuing...

 The unquoted dot causes "Mr. Foo" to be parsed as the local part of
 the address. Either remove the dot, or rewrite the address as
 follows:

   "Mr. Foo Bar" <[email protected]>
   (Mr. Foo Bar) <[email protected]>
   (Mr. Foo Bar) [email protected]

------------------------------

Subject: !06.04 Fixing "post: problem initializing server; [BHST] no servers available"
From: Peter Marvit <marvit at hplabs.hpl.hp.com>,
       Eric Bracken <bracken at bacon.performance.com>
Date: Tue, 1 Nov 1994 00:00:00 -0800

 The error message itself is essentially correct. However, what this
 really means is: MH's post cannot connect to a running sendmail over
 an SMTP port (MH configured with SMTP and SENDMTS).

 The potential problems:

 1. Your local sendmail daemon is dying or not running for some
    reason.

 2. You use BIND and your local nameserver is not responding.
    Solution: Delete "/etc/resolv.conf."

 3. Your $MHLIB/mts.conf (mtstailor) has its "servers:" pointing to a
    non-existent machine or a machine which is a) not reachable or b)
    not running the sendmail daemon.

From: Bdale Garbee <bdale at col.hp.com>,
       Eric Bracken <bracken at bacon.performance.com>
Date: Sun, 1 May 1994 00:00:00 -0800

 4. The hostname localhost [127.0.0.1] is missing from /etc/hosts.

    Solution: add an entry for "localhost" to /etc/hosts or your DNS
    database or add the following to $MHLIB/mts.conf (mtstailor):

      servers: 127.0.0.1 \01localnet

From: David Levine <[email protected]>
Date: Sun Sep 30 22:47:12 CDT 2012
From: Larry Daffner <ldaffner at convex.com>
Date: 3 Mar 1996 14:39:54 -0600

 5. Your load average is so high that sendmail is refusing
    connections.

    Solution: Change your configuration from "mts: smtp" to "mts:
    sendmail" (after nmh 1.5, "mts: sendmail/smtp" or "mts:
    sendmail/pipe") so that a sendmail processes is spawned to
    deliver the message. This is a double-edged sword since the extra
    process only makes the load worse.

From: Neil W Rickert <rickert+nn at cs.niu.edu>
Date: 13 Apr 2001 18:47:43 -0500

 8. You don't want to use an available server.

 See David Levine's answer in Fixing "post: problem initializing
 server; [BHST] premature end-of-file on socket."

------------------------------

Subject: 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender already specified"
From: Paul Pomes <ppomes at Qualcomm.com>
Date: Mon, 1 Mar 1993 00:00:00 -0800

 The problem in sendmail is that the RSET after the ONEX does not
 reset all the state information.  Normally sendmail fork()s after
 the Mail from: statement and a RSET causes that child to exit. This
 automatically cleans up.  If the fork() is suppressed by ONEX, then
 the source must be modified to do the cleanup.  See "srvrsmtp.c
 patch" in the Appendix.  If you don't have the sources, modify your
 MH sources to not use the ONEX verb.

------------------------------

Subject: 06.06 Fixing "post: unexpected response; [BHST] no socket opened"
From: Steve Lembark <lembark at wrkhors.la.ca.us>, Bill Wohler <wohler at newt.com>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 This problem happens when there is no interface defined within the
 tcp system.  A couple of workarounds include:

 o Use a hostname (other than the local host) instead of localhost in
   the "servers" entry of the $MHLIB/mts.conf (mtstailor) file.
 o Recompile MH with sendmail instead of sendmail/smtp (not very
   elegant).

 A better fix would be to define your tcp interface.

 Here, you run ifconfig and route (as root) to define the loopback
 device and route. You should add them to rc.local so they are
 effected at every boot.

   # ifconfig lo 127.0.0.1                     # Linux
   # ifconfig lo0 127.0.0.1            # Sun

   # route 127.0.0.1

 If all is well, "ifconfig lo" (or lo0), will show something like
 this (on my Linux system):

   lo        Link encap Local Loopback
             inet addr 127.0.0.1  Bcast 127.255.255.255  Mask 255.0.0.0
             UP LOOPBACK RUNNING  MTU 2000  Metric 0
             RX packets 0 errors 0 dropped 0 overrun 0
             TX packets 519 errors 0 dropped 0 overrun 0

 and "netstat -r" will show:

   # netstat -r
   Destination net/address   Gateway address    Flags RefCnt    Use Iface
   127.0.0.0                 *                  UN         0    519 lo

 If you're not on a network and running DNS, your /etc/hosts will
 need at least:

   127.0.0.1   your_host_name localhost        # loopback address

 Note: put your name FIRST on the localhost line. This official name
 is used by sendmail to determine your return address.

 If you are on a network and running DNS, you might find that putting
 your host name in the localhost entry might gum up other things, in
 which case you'll want your hostname to have its own proper address.

 This might not do it though. David Youatt <dpy at sgi.com> says that
 his network was happy but he still had the problem until he upgraded
 his system and got the latest revision of sendmail as well. He says:
 "Turns out that that the problem I was having seems to be caused (at
 least partly, maybe entirely) by the version of sendmail that is
 shipped with IRIX 5.2 (sendmail 5.65, I think). The version shipped
 w/IRIX 5.3 (in beta) is sendmail 8.6.9 and works fine."

 I'm not entirely happy with this section, so please give me some
 feedback. If you have this problem, please send me <wohler at
 newt.com> a brief description so I'll know which problems and
 solutions seem to be the most prevalent.

------------------------------

Subject: 06.07 How do I fix the "X-Authentication-Warning" header?
From: Bill Wohler <wohler at newt.com>
Date: Mon, 9 Sep 1996 01:32:15 -0700

 (See "Fixing "Sender didn't use the HELO protocol"".)

------------------------------

Subject: 06.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL before RCPT"
From: Bjoern Stabell <bjoerns at acm.org>
Date: Mon, 1 May 1995 00:00:00 -0800

 I inserted:

   clientname: localhost

 in the $MHLIB/mts.conf (mtstailor) file, and that fixed the problem.

------------------------------

Subject: !06.09 Fixing "post: problem initializing server; [BHST] premature end-of-file on socket"
From: David Levine <[email protected]>
Date: Sun Sep 30 22:52:46 CDT 2012

 To use a different SMTP server temporarily (after nmh 1.5):

   What now? send -server smtp.example.com

 Use the name or address of your SMTP server, of course.
 Alternatively, if you can use your local sendmail program, then
 enable that by one of these methods:

 1. Change the mts setting in your mts.conf to:

      mts: sendmail/pipe

 2. Add the mts setting to a send entry in your profile. For example,

      send: -mts sendmail/pipe

 3. Override the mts setting temporarily:

      What now? send -mts sendmail/pipe

 4. Add the following to your profile:

      postproc: $MHLIB/spost

    This is the only available solution if you are running a version
    of MH other than nmh 1.5 and higher. However, the use of spost is
    discouraged because:

    a) It requires the local sendmail to be configured for delivery
    to all possible addresses. This may not be as common as it used
    to be, as it is limited by many ISPs.

    b) spost and blind MH aliases turn out to be a potentially
    dangerous combination: spost expands them as if they weren't
    blind, so all recipients see them.

From: Ginko <gianluca at noroboter.rotoni.com>
Date: Thu, 8 Mar 2001 09:18:14 +0000 (UTC)

 I have sendmail under control of tcpwrapper started by inetd and
 didn't want to take it away, the very simple fix to this problem was
 to allow the localhost on /etc/hosts.allow on the sendmail entry.

From: Chuck Mattern <cmattern at mindspring.com>
Date: Mon, 1 May 1995 00:00:00 -0800

 If you are running sendmail instead of smail, make sure that all
 smtp entries in /etc/inetd.conf are commented out. If you do edit
 /etc/inetd.conf, don't forget to run to restart inetd with "kill -1
 <inetd PID>".

------------------------------

Subject: 06.10 Fixing "Sender didn't use the HELO protocol"
From: rickert at cs.niu.edu (Neil Rickert)
Date: Tue, 20 Mar 2001 22:01:16 -0800

 If you are sharing your $MHLIB/mts.conf (mtstailor) file among
 several machines, and you are connecting to the local sendmail, then
 use 'localhost' as the hostname argument to the clientname parameter
 (described below).

 Otherwise, place mts.conf somewhere under /etc on each system, and
 install a symlink to it on the shared file system.

From: labrown at dg-rtp.dg.com (Lance A. Brown)
Date: 23 Apr 1996 14:43:04 -0400

 You can solve this by putting

   localname:      localhostname
   localdomain:    local.domain.name

 in your $MHLIB/mts.conf (mtstailor) file. This will make MH send a
 HELO string in the SMTP transaction.

From: Terry Manderson <terry at azure.dstc.edu.au>
Date: Mon, 1 May 1995 00:00:00 -0800

 Add

   clientname sender

 to $MHLIB/mts.conf (mtstailor) where sender is the name of the
 machine sending the message. The error message occurs because newer
 MTA's require SMTP's "HELO" command which MH omits in some
 configurations. When you add the above line, it forces MH to use the
 HELO command.

From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 You get a header like:

   X-Authentication-Warning: screamer.rtp.ericsson.se: Host
   rcur7.rtp.ericsson.se didn't use HELO protocol

 Easy possibilities are: apply the patch to MH that comes with
 Sendmail 8.X.X and makes it use HELO, or comment out the line that
 says

   Opauthwarnings

 in your sendmail.cf.

------------------------------

Subject: 06.11 Fixing "post: problem initializing server; [RPLY] 553 Local configuration error, hostname not recognized as local"
From: "Matthew V. J. Whalen" <whalenm at aol.net>
Date: Mon, 1 May 1995 00:00:00 -0800

 Change your "mts" in "conf/MH" from "sendmail/smtp" to just
 "sendmail."

From: Bill Wohler <wohler at newt.com>
Date: Mon, 1 May 1995 00:00:00 -0800

 The solution above will keep MH from using any SMTP server on your
 network. require sendmail to be installed on all machines. You could
 take advantage of the "sendmail/smtp" option to have MH talk to a
 non-local sendmail. In $MHLIB/mts.conf (mtstailor) add:

   servers <SMTP-server>

 It may also be caused by old versions of sendmail.

------------------------------

Subject: 07.00 ***** Mail Filters *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 07.01 What mail filters are available?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 11 Mar 2001 10:27:24 -0800

 The list currently includes slocal (included with MH), deliver,
 procmail and mailagent. They are briefly described here. Slocal is
 probably the most popular by virtue of being included in the
 distribution. The next most popular entry is procmail, followed by
 deliver.

 Slocal comes with MH. It can be used to process incoming mail based
 on the contents of any of the headers. Actions include filing
 messages, running commands, printing messages on your terminal and
 so on. The configuration is made in ~/.maildelivery. People seem to
 have trouble with slocal bugs, and you can't use it if you don't
 have write permission on your system maildrop so a lot of people
 have opted for the alternatives, but it's easy to use and comes with
 MH.

 procmail is quite popular and has a very powerful configuration
 file. However, the syntax is its own, but it is easy to learn given
 a couple of good examples. Its advantages are its small size and
 speed. Like deliver, procmail may be installed as a delivery agent
 so you would not even have to have a .forward file.

 Deliver can run any script or program (called ~/.deliver), so you
 really can do anything you want to incoming mail. One feature that
 it sports that no other does is that you can install it as a local
 mailer in place of /bin/mail. If it's the local mailer, you don't
 need to have a .forward--~/.deliver is run anyway. In addition, it
 allows the system administrator to write some programs to filter
 everybody's mail. It came with my Linux system, so installation was
 non-existent.

 I started with slocal, and then moved to deliver. I switched to
 procmail because of a bug in deliver (which I think has since been
 fixed) whereby a blank line would be inserted into the header before
 header fields with numbers in them.

 I am still using procmail and probably will do so indefinitely since
 it is powerful, there are many spam filters written in it, and it
 coexists with MH and Gnus so well.

 My recommendation is to use the one that is installed on your system
 or get procmail. Here are the URLs for the filters mentioned in this
 document:

   http://www.procmail.org/

From: "Eric D. Friedman" <friedman at hydra.acs.uci.edu>
Date: 28 Aug 1996 08:28:46 GMT

 See http://www.faqs.org/faqs/mail/filtering-faq/index.html.

From: Stephen R. van den Berg <berg at pool.informatik.rwth-aachen.de>
Date: Mon, 1 Aug 1994 00:00:00 -0800

 Procmail can be used to create mail-servers, mailing lists, sort
 your incoming mail into separate folders/files (real convenient when
 subscribing to one or more mailing lists or for prioritizing your
 mail), preprocess your mail, start any programs upon mail arrival
 (e.g. to generate different chimes on your workstation for different
 types of mail) or selectively forward certain incoming mail
 automatically to someone.

From: Raphael Manfredi <Raphael_Manfredi at pobox.com>
Date: Tue, 28 Jul 1998 13:22:07 +0200

 "mailagent" is yet another mail filter, written in perl, which will
 let you do anything with your mail. It has all the features you may
 expect from a filter: mailing lists sorting, forwarding to MTA or to
 inews, pre-processing of message before saving into folder, vacation
 mode, etc. It was initially written as an Elm-filter replacement,
 but has now enough power to also supplant MMDF's .maildelivery.
 There is also a support for @SH mail hooks, which allows you to
 automatically distribute patches or software via command mails.

 The mailagent was designed to make mail filtering as easy as it can
 be. It is highly configurable and fairly complete. Rules are
 specified in a lex-like style, with the full power of perl's regular
 expressions. The automaton supports the notion of mode, and header
 selection has many magic features built-in, to ease the rule writing
 process.

 The distribution comes with a set of examples, an exhaustive test
 suite, and naturally a detailed manual page. It should be noted that
 the mailagent will work even if your system administrator forbids "|
 programs" hooks in the ~/.forward, provided you have access to some
 sort of cron daemon.

   http://www.cpan.org/authors/Raphael_Manfredi/

------------------------------

Subject: 07.02 Why slocal writes messages to system mailbox that from(1) can't read.
From: Bill Wohler <wohler at newt.com>
Date: Mon, 1 May 1995 00:00:00 -0800

 Upgrade to MH 6.8 and set the RPATHS option. Better yet, use a more
 MH-like command instead of from: "scan -file $MAIL".

------------------------------

Subject: 07.03 Where can I read about slocal and the format of .maildelivery?
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 See the slocal man page.

 Here is brief example of a .maildelivery file that stores messages
 to babble in a folder and the system mailbox, stores mh-users in a
 folder but not the system mailbox, and puts the rest in the system
 mailbox.

   to  mh-users  | A "$MHLIB/rcvstore -create +lists/mh-users"
   cc  mh-users  | A "$MHLIB/rcvstore -create +lists/mh-users"
   to  babble    | R "$MHLIB/rcvstore -create +lists/babble"
   cc  babble    | R "$MHLIB/rcvstore -create +lists/babble"
   default -     > ? /usr/spool/mail/wohler

 Your .forward file may look like (quotes necessary):

   "| $MHLIB/slocal -user your_login"

 In some implementations, the "-user your_login" is not needed. If
 not, manually running slocal with the flag will produce an error.

 See also chapter 12 (11) in the MH book, or the URL:

   http://rand-mh.sourceforge.net/book/mh/tocs/prmaau.html

 Alternatives to slocal include deliver, procmail, and mailagent.
 (See "What mail filters are available?")

------------------------------

Subject: 07.04 How do I debug my .maildelivery file?
From: Bill Wohler <wohler at newt.com>
Date: Mon, 1 Mar 1993 00:00:00 -0800

 Use as many of the following as necessary.

 Put a message into a file and call slocal directly on it.

   $MHLIB/slocal -user $USER -verbose -debug < test-msg

 Modify your .forward to look like:

   "|/bin/sh -c 'exec >> /tmp/out 2>&1;
   $MHLIB/slocal -user $USER -verbose -debug'"

 Or modify a rule in .maildelivery to look like this:

   to foo | R "set -xv; exec >/tmp/out 2>&1; $MHLIB/rcvstore +foo"

 The previous examples are broken up for readability; the text must
 appear on one line.

 See also MH book section 12.11 (11.11), or the URL:

   http://rand-mh.sourceforge.net/book/mh/debugti.html

------------------------------

Subject: 07.05 Why isn't slocal working?
From: Bill Wohler <wohler at newt.com>
Date: Mon, 1 Mar 1993 00:00:00 -0800

 If slocal doesn't appear to be doing anything, run the following

   $MHLIB/slocal -user your_login -verbose < file

 where "file" is some message in a mail folder. If you get something
 like:

   .maildelivery: ownership/modes bad (0, 154,154,0100666)

 your .maildelivery is writable by too many people. Make it writable
 only by you by running "chmod 644 .maildelivery".

 See also "How do I debug my .maildelivery file?"

------------------------------

Subject: 07.06 Are there any good biff applications for MH?
From: Rob Austein <sra at epilogue.com>
Date: Tue, 01 Dec 1998 03:02:34 -0500

 I've been been using a program called xlbiff (X Literate Biff) and
 have been quite happy with it. By default, xlbiff generates its
 pop-up listings by running scan on your mail drop file, but it's not
 a big deal to customize xlbiff for more complicated setups if you
 make heavy use of procmail, multiple mail drops, and so on.

From: Richard Coleman <coleman at math.gatech.edu>
Date: 07 Jul 1997 03:31:42 -0400

 nmh (new MH) has an additional command (flist) that will tell you
 which folders have unseen messages. I can't imagine using MH without
 it.

From: crow at tivoli.com (David L. Crow)
Date: 7 Jul 97 09:36:32 GMT

 I have used the following X resource with xbiff before:

   xbiff*checkCommand: grep -q '^unread' `mhpath +inbox`/.mh_sequences \
                       && exit 0 || exit 2

 This should be all one line, but I split it with a line continuation
 character for readability.

------------------------------

Subject: 07.07 How do I read new messages filed by procmail?
From: Bill Wohler <wohler at newt.com>
Date: Sun, 17 Oct 2004 15:17:14 -0700

 If you use MH-E, use "F n (mh-index-new-messages)" to display unseen
 messages.

From: Neil W Rickert <rickert+nn at cs.niu.edu>
Date: 23 Apr 2002 20:38:57 GMT

 Here is my "unseen" shell script:

 #! /bin/sh -

 case "$1" in
  "") grep unseen $HOME/Mail/context $HOME/Mail/*/.mh_sequences |
         sed     -e '/\/fromme\//d' \
                 -e "s=$HOME/Mail/==" \
                 -e 's=/.mh_sequences:unseen=='
     ;;
  "+") shift
     mark -sequence unseen -add "$@"
     ;;
  "-") shift
     mark -sequence unseen -delete "$@"
     ;;
  *) echo "Invalid arguments $*"
     ;;
 esac

From: Paul Fox <pgf-spam at foxharp.boston.ma.us>
Date: Tue, 23 Apr 2002 20:13:42 GMT

 I have procmail deliver to a set of mbox files and use "inc -f foo"
 to inc from them. The names of the mbox files are the same as the MH
 folders which makes it easy to write a script that does something
 like this:

     cd Mailboxes
     for x in *; do
         inc -f $x +$x
     done

------------------------------

Subject: 08.00 ***** MH-E *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 08.01 I have a question about MH-E
From: Bill Wohler <wohler at newt.com>
Date: Sat, 3 Mar 2001 13:51:29 -0800

 Let me send you over to:

   http://mh-e.sourceforge.net/

 This is the SourceForge MH-E project. It has mailing lists and files
 to download, and will let you submit patches or support requests.

 The Support Requests section may already contain an answer to your
 question. If not, you can post your question:

   http://sourceforge.net/tracker/?group_id=13357&atid=213357

------------------------------

Subject: 09.00 ***** Xmh *****
From: Bill Wohler <wohler at newt.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

------------------------------

Subject: 09.01 How can I get xmh to use Emacs as the editor?
From: Bob Ellison <ellison at sei.cmu.edu>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 The modifications to xmh to support an external editor, annotations,
 and an append command can be found in the these places.

   ftp://ftp.x.org/R5contrib/xmh-mods-R5-1.7.Z                         37k
   ftp://ftp.sei.cmu.edu/pub/xmh/xmh-mods-R5-1.7.Z                     37k
   ftp://ftp.sei.cmu.edu/pub/xmh/xmh-mods-R6-1.0.Z                     37k

From: Andrew Wason <aw at bae.bellcore.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 As of R5, xmh has a new action proc called XmhShellCommand. A string
 parameter will be executed as a shell command with the currently
 selected messages as parameters (or the current message if there are
 no selected messages).

 Using this new action, a couple of shell scripts, a window version
 of emacs (e.g. xemacs) and some elisp code, xmh can use emacs as its
 editor instead of the built in Athena text widget editor. This
 doesn't require any source code changes to xmh. These are included
 in the Appendix "Switching xmh's editor".

------------------------------

Subject: 09.02 Does xmh support subfolders?
From: Steve Malowany <malowany at cenparmi.concordia.ca>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 Yes. Create one by invoking "Create Folder" as usual, and enter
 something like: existing-folder/new-sub-folder. You can then access
 the subfolder by popping up a menu over the "existing-folder" button
 item.

 But:

From: John Cooper <jsc at saxon.Eng.Sun.COM>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 The R5 version of xmh does *not* handle nested sub-folders. If you
 create a folder as 'grab/some/bandwidth', xmh displays this folder
 name for the remainder of the session where it was created, BUT if
 you later re-run xmh, the folder is no longer visible to xmh.

 See also MH book section 15.6.2 (15.6.2), or the URL:

   http://rand-mh.sourceforge.net/book/xmh/orgfol.html#FolaSub

------------------------------

Subject: 09.03 How do I precede included messages with ">" when replying in xmh?
From: Len Makin <len at mel.dit.csiro.au>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 Include the following line in your ~/app-defaults/XMh file:

   Xmh*replyInsertFilter: "sed 's/^/> /'"

 or,

   Xmh.ReplyInsertFilter: $MHLIB/mhl -form repl.filter

From: Andy Linton <andy.linton at comp.vuw.ac.nz>
Date: Fri, 1 Mar 1991 13:03:15 -0800

 Using this means that you can chose to insert the original by use of
 the "Insert" button in the Draft message pane. See "How do I include
 messages in repl with or without ">"?" to find examples of
 repl.filter.

 See also MH book sections 15.1.4 (15.1.4), 16.3.3 (16.3.3), or the URLs:

   http://rand-mh.sourceforge.net/book/xmh/senmai.html#MorRep
   http://rand-mh.sourceforge.net/book/xmh/resfun.html#Rep

------------------------------

Subject: Glossary
From: Bill Wohler <wohler at newt.com>
Date: Wed, 29 Sep 2004 00:04:34 -0700

 MH    Mail Handler
 MHLIB Where MH support routines and files are kept; usually /usr/lib/mh
       or /usr/local/lib/mh.
 POP3  Post Office Protocol, RFC 1939
 MMDF  Multi-channel Memo Distribution Facility
 MIME  Multipurpose Internet Mail Extensions, RFC 1521
 IMAP  Internet Message Access Protocol, RFC 1064, 1176
 TIS   Trusted Information Systems
 PEM   Privacy Enhanced Mail
 PGP   Pretty Good Privacy
 SMTP  Simple Mail Transport Protocol (STD 10; RFC 821)

------------------------------

Subject: Acknowledgments
From: Bill Wohler <wohler at newt.com>
Date: Mon, 9 Sep 1996 01:37:27 -0700

I'd like to thank the following people for providing ideas on the
layout of this article:

Joe Wells <jbw at bigbird.bu.edu>        Richard M. Stallman <rms at gnu.org>
David Elliott <dce at smsc.sony.com>     Tom Christiansen <tchrist at perl.com>
Eugene N. Miya <eugene at nas.nasa.gov>

We are also grateful to Kim F. Storm <storm at olicom.dk> and Edward
Vielmetti <emv at ox.com> and the folks mentioned in the text of this
document who have provided answers or other information to make this a
better document.  I regret that it is possible that some names have
been accidently omitted.  I would also like to thank all the readers
of comp.mail.mh.

I'd also like to thank John Romine <jromine at yoyodyne.ICS.UCI.EDU> for
maintaining MH and the MH Web page, Jerry Peek <jpeek at jpeek.com> for
writing the MH bible and for all his hard work with the entire MH
project, Stephen Gildea <gildea at stop.mail-abuse.org> for maintaining MH-E
in years past and always sending me lots of great comments, Kimmo
Suominen <kim at tac.nyc.ny.us> for maintaining the MH patch page, and
Richard Coleman <coleman at math.gatech.edu> for taking MH to nmh.

------------------------------

Subject: Switching xmh's editor
From: Andrew Wason <aw at bae.bellcore.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#               "End of shell archive."
# Contents:  README Xmh.ad xmh-command.el xmhcommand xmhemacs
# Wrapped by aw@jello on Fri Nov 15 17:10:34 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'README' -a "${1}" != "-c" ; then
 echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(1269 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
XThis is a short description of what to do with each of the enclosed files.
X
XXmh.ad
X  Merge this in with your xmh resources.  If you already have
X  user defined buttons, then you may need to renumber the
X  buttons in this resource file.
X
Xxmh-command.el
X  Byte compile this file and put it in your GNU emacs load-path.
X
Xxmhcommand
Xxmhemacs
X  Put these somewhere in your path.
X
X
XOnce you have installed these, restart the R5 xmh with the new
Xresources.  When you press the repl, forw or comp buttons
Xan xemacs window will come up with your draft message.
X
XOnce you have written your mail, save it and exit GNU emacs (C-xC-c).
XYou will be prompted if you want to send the current message.
XIf you enter 'y', the message will be sent and the output will
Xbe displayed in an emacs window (in case you use -verbose or -snoop).
XThen you will be prompted to exit emacs.  Enter 'y' when you are ready.
X
XIf you answered 'n' when prompted to send the message,
Xthen the draft message will be deleted and emacs will exit.
X
XYou can modify the Xmh.ad resources to add more buttons.
XAny MH command which accepts "+folder msg" can be used
X(e.g. a replx shell script which includes the body of the
Xmessage being replied to can be bound to a replx button)
X
X
XAndrew Wason
Xaw at bae.bellcore.com
END_OF_FILE
if test 1269 -ne `wc -c <'README'`; then
   echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test -f 'Xmh.ad' -a "${1}" != "-c" ; then
 echo shar: Will not clobber existing file \"'Xmh.ad'\"
else
echo shar: Extracting \"'Xmh.ad'\" \(457 characters\)
sed "s/^X//" >'Xmh.ad' <<'END_OF_FILE'
XXmh*CommandButtonCount:                        3
X
XXmh*commandBox.button1.label:          repl
XXmh*commandBox.button1.translations:\
X       #override\n\
X       <Btn1Up>:       XmhShellCommand(xmhcommand y repl) unset()
X
XXmh*commandBox.button2.label:          forw
XXmh*commandBox.button2.translations:\
X       #override\n\
X       <Btn1Up>:       XmhShellCommand(xmhcommand y forw) unset()
X
XXmh*commandBox.button3.label:          comp
XXmh*commandBox.button3.translations:\
X       #override\n\
X       <Btn1Up>:       XmhShellCommand(xmhcommand n comp) unset()
END_OF_FILE
if test 457 -ne `wc -c <'Xmh.ad'`; then
   echo shar: \"'Xmh.ad'\" unpacked with wrong size!
fi
# end of 'Xmh.ad'
fi
if test -f 'xmh-command.el' -a "${1}" != "-c" ; then
 echo shar: Will not clobber existing file \"'xmh-command.el'\"
else
echo shar: Extracting \"'xmh-command.el'\" \(1294 characters\)
sed "s/^X//" >'xmh-command.el' <<'END_OF_FILE'
X;;; These functions are for use with xemacs and xmh.
X;;; The R5 xmh has a new action - XmhShellCommand which executes
X;;; a shell command with the current msg as an arg.
X;;; By executing something like:
X;;;    XmhShellCommand(xmhcommand repl)
X;;; you can use xemacs as your editor with xmh.
X;;;
X;;; The following elisp functions perform the basic whatnowproc functionality
X;;; (quitting and deleting, sending)
X;;;
X;;; Andrew Wason  aw at bae.bellcore.com
X
X
X;;; Override C-xC-c
X(define-key indented-text-mode-map "\C-x\C-c" 'xmh-command-send-or-delete)
X
X
X(setq mhdraft (getenv "mhdraft"))      ; save the filename of the draft
X
X
X(find-file mhdraft)                    ; load the draft letter
X(indented-text-mode)
X(setq draft-buffer (current-buffer))   ; save the buffer the draft is in
X
X
X(defun xmh-command-send-or-delete ()
X  "Prompt to send or delete letter, then quit."
X  (interactive)
X  (set-buffer draft-buffer)
X  (if (y-or-n-p "Send message? ")
X      (progn
X       (save-buffer)                           ; save the draft buffer
X       (message "Sending...")
X       (pop-to-buffer "MH mail delivery"); pop to a buffer for "send" output
X       (erase-buffer)
X       (call-process "send" nil t t mhdraft)   ; call MH "send"
X       (if (y-or-n-p "Exit? ")
X           (kill-emacs)))                      ; exit emacs
X    (delete-file mhdraft)                      ; delete the draft letter
X    (kill-emacs)))                             ; exit emacs
END_OF_FILE
if test 1294 -ne `wc -c <'xmh-command.el'`; then
   echo shar: \"'xmh-command.el'\" unpacked with wrong size!
fi
# end of 'xmh-command.el'
fi
if test -f 'xmhcommand' -a "${1}" != "-c" ; then
 echo shar: Will not clobber existing file \"'xmhcommand'\"
else
echo shar: Extracting \"'xmhcommand'\" \(669 characters\)
sed "s/^X//" >'xmhcommand' <<'END_OF_FILE'
X#!/bin/sh
X# This shell should be invoked by the xmh XmhShellCommand() action as
X#   XmhShellCommand(xmhcommand y repl)
X#   XmhShellCommand(xmhcommand n comp) etc.
X# If the second arg is y, then the message list will be used.
X
X# We invoke the passed MH command on the identified message
X# (we must strip the message number and folder from the pathname)
X(if [ $1 = "y" ]
Xthen
X       $2 -whatnowproc xmhemacs +`dirname \`echo $3 | \
X               sed "s;\\\`mhpath +\\\`/;;"\`` `basename $3`
X
X# You can use this more readable version instead if you have ksh
X#      $2 -whatnowproc xmhemacs +$(dirname $(echo $3 | \
X#              sed "s;$(mhpath +)/;;")) $(basename $3)
X
Xelse
X       $2 -whatnowproc xmhemacs
Xfi)&
END_OF_FILE
if test 669 -ne `wc -c <'xmhcommand'`; then
   echo shar: \"'xmhcommand'\" unpacked with wrong size!
fi
chmod +x 'xmhcommand'
# end of 'xmhcommand'
fi
if test -f 'xmhemacs' -a "${1}" != "-c" ; then
 echo shar: Will not clobber existing file \"'xmhemacs'\"
else
echo shar: Extracting \"'xmhemacs'\" \(116 characters\)
sed "s/^X//" >'xmhemacs' <<'END_OF_FILE'
X#!/bin/sh
X# Invoke xemacs and load the xmh-command.el stuff.
X# xmhemacs is used by xmhcommand
Xxemacs -l xmh-command
END_OF_FILE
if test 116 -ne `wc -c <'xmhemacs'`; then
   echo shar: \"'xmhemacs'\" unpacked with wrong size!
fi
chmod +x 'xmhemacs'
# end of 'xmhemacs'
fi
echo shar: End of shell archive.
exit 0

------------------------------

Subject: babyl2mh.pl
From: Vivek Khera <khera at cs.duke.edu>
Date: Fri, 1 Mar 1991 13:03:15 -0800

#!/usr/gnu/bin/perl
# incorporate an RMAIL babyl file into an MH folder
#
# usage: babyl2mh +folder babyl-file
#
# V. Khera <khera at cs.duke.edu> 17-JUL-1991

# where to find rcvstore
$rcvstore = "/usr/local/lib/mh/rcvstore";

#
# pull out command line args
#
die "usage: babyl2mh +folder babyl-file\n" unless @ARGV == 2;

$folder = shift;
# make sure folder name starts with a "+"
(substr($folder,0,1) eq "+") || (substr($folder,0,0) = "+");
$bfname = shift;

print "Incorporating RMAIL file $bfname into MH folder $folder\n";

#
# read in babyl file.
#
$/ = "\037";    # this separates the records in a babyl file
$* = 1;         # records are multi-lines

open(BABYL,$bfname) || die "Couldn't open $bfname\n";

$_ = <BABYL>;   # discard header.

$msgnum = 0;

while (<BABYL>) {
 chop;         # get rid of delimeter
 s/\f(.|\n)*\*\*\* EOOH \*\*\*\n//;    # remove duplicate header information
 open(RCVSTORE,"|" . $rcvstore . " $folder");
 print RCVSTORE $_;
 $msgnum++;
 print "Message $msgnum done.\n";
}

------------------------------

Subject: inco - babyl to MH converter
From: Juergen Nickelsen <nickel at cs.tu-berlin.de>
Date: Fri, 1 Mar 1991 13:03:15 -0800

#!/bin/sh
# Usage: inco [from [folder]]
# "from" defaults to $HOME/Mail/outbound, "folder" to +inbox.

lispfile=/tmp/inco.$$.el
input=${1-$HOME/Mail/outbound}
tmpmbox=/tmp/inc.$$.mbox
folder=${2-+inbox}

if [ $# -ge 3 ]; then
       echo Usage: `basename $0` [ from [ folder ]]
       exit 2
fi

trap "rm -f $lispfile $tmpmbox ; exit 1" 1 2 15

touch $tmpmbox
chmod 600 $tmpmbox

echo '(rmail-input "'$input'")
(rmail-last-message)
(setq last (rmail-what-message))
(rmail-show-message 1)
(while (not (equal (rmail-what-message) last))
 (rmail-output "'$tmpmbox'")
 (rmail-delete-forward nil))
(rmail-output "'$tmpmbox'")
(kill-buffer (current-buffer))
' > $lispfile

emacs -batch -l $lispfile
inc -file $tmpmbox $folder

> $input
rm -f $lispfile $tmpmbox

------------------------------

Subject: t2h - add hyperlinks to message viewed
From: TANAKA Tomoyuki <tanaka at step.mother.com>
Date: Mon, 13 Sep 1999 11:35:43 -0600

#! /bin/sed -f
# "t2h" by TT  news:alt.tanaka-tomoyuki  http://listen.to/TT
# USE: t2h <file.txt >file.html
# Or:  show | t2h | lynx -

s/&/\&amp;/g
s/</\&lt;/g
s/>/\&gt;/g

s/http:[^ "&)   ]*/<a href="&">&<\/a>/g
s/news:[^ "&)   ]*/<a href="&">&<\/a>/g
s/ftp:[^ "&)    ]*/<a href="&">&<\/a>/g
s/telnet:[^ "&) ]*/<a href="&">&<\/a>/g

1i\
<PRE>

$a\
</PRE>

------------------------------

Subject: srvrsmtp.c patch
From: Paul Pomes <ppomes at Qualcomm.com>
Date: Fri, 1 Mar 1991 13:03:15 -0800

>From the 5.67 sources:

 *** srvrsmtp.c-       Mon Feb 22 12:25:54 1993
 --- srvrsmtp.c        Mon Feb 22 12:29:09 1993
 ***************
 *** 384,389 ****
 --- 384,395 ----
                         message("250", "Reset state");
                         if (InChild)
                                 finis();
 +
 +                       /* clean up a bit if running in parent */
 +                       hasmail = FALSE;
 +                       dropenvelope(CurEnv);
 +                       CurEnv = newenvelope(CurEnv);
 +                       CurEnv->e_flags = BlankEnvelope.e_flags;
                         break;

                   case CMDVRFY:               /* vrfy -- verify address */

------------------------------

Subject: IRIX config file
From: Jack Repenning <jackr at informix.com>
Date: 25 Jul 1995 02:35:41 GMT

# Irix 5.3 (based on examples/sys5r4)
bboards on
bin     /usr/local/bin/mh
cc      cc
ccoptions -g
chown /bin/chown
curses  -lcurses
etc     /usr/local/lib/mh
ldoptions -L/usr/local/lib/mh
mail    /usr/mail
mailgroup: mail
manuals local
mts     sendmail/smtp
pop on
popdir /usr/local/bin
ranlib off
#sharedlib sys5
#slibdir /usr/local/lib/mh
signal void
sprintf int
options BIND
options DBMPWD
options DUMB
options FOLDPROT='"0700"'
options MHE
options MHRC
options MIME
options MORE='"/usr/bsd/more"'
options MSGPROT='"0600"'
options RENAME
options RPATHS
options SBACKUP='"\\#"'
#options SENDMTS
options SGI
#options SMTP
options SOCKETS
options SVR4
options SYS5
options SYS5DIR
options UNISTD
options _XOPEN_SOURCE
options VSPRINTF

From: David Paschich <dpassage at bigbook.com>
Date: 23 Apr 96 21:27:12 GMT

# @(#)$Id: mh.faq 11365 2013-01-03 23:17:15Z wohler $
# a 4.2BSD VAX system running SendMail
bin     /usr/local/bin/mh
bboards off
etc     /usr/local/lib/mh
mail    /var/mail
manuals local
mandir  /usr/local/man
chown   /sbin/chown
ranlib  off
mts     sendmail
signal  void
options BIND LOCKF FOLDPROT='"0700"' MHE MHRC MORE='"/usr/bsd/more"'
options MSGPROT='"0600"' RPATHS SENDMTS SGI SMTP SOCKETS SYS5
options TYPESIG="void" ncr MIME VSPRINTF UNISTD SYSVR4 SYS5DIR

------------------------------

Subject: HP-UX 10.20 config file
From: Marko Heikkinen <hema at iki.fi>
Date: 06 Jan 1997 17:19:07 +0000

bin     /opt/mail/bin
bboards on
etc     /opt/mail/lib/mh
editor  prompter
remove  mv -f
mail    /var/mail
mandir  /opt/man
manuals standard
chown   /bin/chown
cc      cc
ccoptions       +DA1.0 +DS1.0
curses  -lcurses
mts     sendmail/smtp
pop     off
slibdir: /opt/mail/lib
options SYS5
options MHE
options MIME
options ATZ
options BIND
options MHE
options MIME
options ATZ
options BIND
options MHE
options MHRC
options MORE='"/opt/gnu/bin/less"'
options MSGPROT='"0600"'
options NDIR
options NTOHLSWAP
options POPUUMBOX
options SOCKETS
options SYS5
options TZNAME
options TYPESIG=void
options VSPRINTF
options WHATNOW
options _STRINGS
signal void
curses  -lcurses -ltermlib
sprintf int

------------------------------

Subject: Removing duplicate messages (Bourne)
From: Jerry Peek <jpeek at jpeek.com>
Date: 20 Nov 1995 18:51:24 GMT

 Here's a simple-minded Bourne shell version.  It uses
 "scan" to get the message number and message-id of each message.  If
 a message has the same message-id as the previous message, the
 script adds its message number to the "remove" shell variable.


       #!/bin/sh
       lastmsgid=hahahaha
       remove=
       scan -width 300 -format '%(msg) %{message-id}' |
       while read msg msgid; do
           if [ "$msgid" = "$lastmsgid" ]; then
               remove="$remove $msg"
           else
               lastmsgid="$msgid"
           fi
       done
       rmm $remove

 That's pretty simple-minded.  For example, if the $remove variable
 gets too big, your system may complain.  And I'm sure there are some
 more-efficient ways to find the list of duplicate message-ids.  But
 that's the idea.

Subject: Removing duplicate messages (Perl)
From: rtor at ansa.co.uk (Owen Rees)
Date: 20 Nov 1995 12:39:47 GMT

 I wrote a perl script to do this some time ago. All the usual dire
 warnings about destructive technology apply - take a backup, do it on
 a copy, try it on a small test case first etc. Don't use this script
 unless you are prepared to accept the consequences.

#!/usr/local/bin/perl

$version = "rmmdup 1";

if (@ARGV == 0) { $folder = ""; }
elsif (@ARGV == 1) { $folder = $ARGV[0];
                    unless ( $folder =~ /^\+.+$/ )
                     { die "usage $0 [+folder]\n"; };
                  }
else { die "usage $0 [+folder]\n"; };

$rmmlist = "";

open (scan, "scan $folder -format '%(msg) %{message-id}'|");
while (<scan>)
{ if ( ($msg,$msgid) = /^(\d+) (<.*>)$/)
   { if ($msgs{$msgid})
      { print "$msg duplicates $msgs{$msgid}\n";
        $rmmlist .= " $msg";
      }
     else { $msgs{$msgid} = $msg; };
   };
};
if ( $rmmlist ) { exec "rmm $folder $rmmlist"; };
exit;

Subject: Removing duplicate messages (Perl)
From: Bill Wohler <wohler at newt.com>
Date: Sun, 17 Oct 2004 13:00:20 -0700

#!/usr/bin/perl -w
#
# Id: mhfinddup 6593 2004-09-02 16:34:24Z wohler

=head1 NAME

mhfinddup - find duplicate messages

=head1 SYNOPSIS

mhfinddup [options] [folder ...]

=head1 DESCRIPTION

B<mhfinddup> finds and removes duplicate MH messages in the folders listed on
the command line (default: current folder). By default, you deal with
duplicate messages interactively. You can either remove the duplicate, not
remove the duplicate, or view the original and duplicate message before
deciding.

If you use the B<-msgid> option to B<send>, then you probably don't want to
list any F<+outbox> folders if you are using the B<--no-same-folder> option
and you want to preserve your sent messages as well as your messages to
mailing lists.

Note that if you specify one or more folders, or if you use the B<--all>
option, B<mhfinddup> recursively descends the given folders.

=head1 CONTEXT

Context is per B<flist>(1). That is, if F<+folder> is given, it will become
the current folder. If multiple folders are given, the last one specified will
become the current folder.

=head1 OPTIONS

=over 4

=item --all

Look for duplicates in all folders. If any folders are specified, this option
is ignored.

=item --debug

Turn on debugging messages.

=item --help

Display the usage of this command.

=item --list

List duplicated messages.

=item --no-same-folder

Since it is common to use C<refile -link> to file a message in multiple
folders, this script doesn't consider messages in different folders to be
duplicates. Specify this option to list or remove duplicates across folders.

=item --rmm

Remove messages non-interactively. Use with care! For safety, the B<--list>
option takes precedence if specified and is a good option to use before using
B<--rmm>.

=item --version

Display program version.

=back

=head1 RETURN VALUE

Returns 0 if all is well; non-zero otherwise.

=head1 EXAMPLES

=over 0

=item mhfinddup

Interactively remove duplicates from the current folder.

=item mhfinddup --all --list --no-same-folder

List all duplicates regardless if they are in different folders or not.

=item mhfinddup --rmm +lists

Remove all duplicates in F<+lists>, recursively.

=back

=head1 SEE ALSO

B<rmm>(1), B<mhl>(1), B<scan>(1)

=head1 VERSION

Revision: 6593

=head1 AUTHOR

Bill Wohler <wohler at newt.com>

Copyright (c) 2003 Newt Software. All rights reserved.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, you can find it at
http://www.gnu.org/copyleft/gpl.html or write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

=head1 METHODS

=cut

# Packages and pragmas.
use Getopt::Long;

use strict;

# Constants.
my $cmd;                                # name by which command called
($cmd = $0) =~ s|^\./||;                # ...minus the leading ./
my $ver = '6593';                       # program version with CVS noise

# Variables (may be overridden by arguments).
my $all = 0;                            # look in all folders
my $debug = 0;                          # verbose mode
my $help = 0;                           # display usage
my $version = 0;                        # display version
my $list = 0;                           # list duplicates
my $no_same_folder = 0;                 # consider duplicates across folders
my $rmm = 0;                            # remove duplicates without asking

# Constants.
my $mhl = "/usr/lib/mh/mhl";
my $tmp = "/tmp/mhfinddup$$";

# Parse command line.
# The use of the posix_default option is to ensure that folders like +a are
# not confused with --all. I'd really prefer to set prefix_pattern to "(--|-)"
# so that abbreviations of options can be used without being confused with
# folders, but I couldn't make it so.
my %opts;
Getopt::Long::Configure("pass_through", "posix_default");
GetOptions('all'                => \$all,
          'debug'              => \$debug,
          'help'               => \$help,
          'list'               => \$list,
          'no-same-folder'     => \$no_same_folder,
          'rmm'                => \$rmm,
          'version'            => \$version,
         ) or usage();

show_version() if ($version);
usage() if ($help || int(@ARGV) != int(map(/^\+/, @ARGV)));

my @folders = expand_folders(@ARGV);
print("Expanded " . join(" ", @ARGV) . " into\n" . join("\n", @folders) . "\n")
   if ($debug);

print("Scanning for duplicate messages...\n");
my %msgs;
foreach my $folder (sort @folders) {
   print("Scanning $folder...\n") if ($debug);
   open (SCAN,
         "MHCONTEXT=$tmp scan +$folder -format '%(msg) %{message-id}'|");
   while (<SCAN>) {
       if (my ($msg, $msgid) = /^(\d+) (<.*>)$/) {
           if ($msgs{$msgid}) {
               $msgs{$msgid} =~ m|^\+(.*)/(\d+)$|;
               my($f, $m) = ($1, $2);
               if ($folder eq $f || $no_same_folder) {
                   handle_dup($f, $m, $folder, $msg);
               }
           } else {
               $msgs{$msgid} = "+$folder/$msg";
           }
       }
   }
   close(SCAN);
}

unlink("$tmp");

sub expand_folders {
   my @folders = @_;

   print("Getting list of folders...");
   open(FOLDERS,
        "flist -recurse "
         . (($all == 1 && @folders == 0) ? "-all" : join(" ", @folders))
         . "|")
       or die("Could not determine folders\n");
   @folders = ();
   chomp(my $current_folder = `mhparam Current-Folder`);
   $current_folder = quotemeta($current_folder);
   while (<FOLDERS>) {
       chomp;
       my ($folder, $a, $b, $c, $d, $e, $f, $g, $count) = split;
       if ($folder =~ /^$current_folder\+$/) {
           $folder =~ s/\+$//; # remove current folder indication
       }
       next if ($count == 0);
       push(@folders, $folder);
   }
   close(FOLDERS);
   print("done\n");

   return(@folders);
}

sub handle_dup {
   my($f1, $m1, $f2, $m2) = @_;

   my $ans;

repeat:
   print("+$f2/$m2 duplicate of +$f1/$m1");

   if ($list) {
       print("\n");
   } else {
       if ($rmm) {
           $ans = "y";
           print("\n");
       } else {
           print(", remove? [Yns?] ");
           chomp($ans = <STDIN>);
       }

       if ($ans eq "y" || $ans eq "") {
           system("rmm +$f2 $m2");
       } elsif ($ans eq "s") {
           system("$mhl `mhpath +$f1 $m1` `mhpath +$f2 $m2`");
           goto repeat;
       } elsif ($ans eq "?") {
           print("y, remove message (default)\n" .
                 "n, don't remove message\n" .
                 "s, show messages\n" .
                 "?, show this message\n");
           goto repeat;
       }
   }
}


=head2 usage

Display usage information and exit.

=cut

sub usage {
   print <<EOF;
Usage: $cmd [options] [folder ...]
--all                   remove duplicates in all folders
--debug                 print actions that program takes
--help                  display this message
--list                  list duplicates only
--no-same-folder        consider duplicates even if in different folders
--rmm                   remove duplicates without asking
--version               display program version
EOF
   exit(1);
}

=head2 show_version

Display version information and exit.

=cut

sub show_version {
   print("$cmd version $ver\n".
         "Copyright (c) 2003 Bill Wohler <wohler at newt.com>\n\n".
         "$cmd comes with ABSOLUTELY NO WARRANTY.\n\n".
         "This is free software, and you are welcome\n".
         "to redistribute it under certain conditions.\n\n".
         "See `http://www.gnu.org/copyleft/gpl.html' for details.\n");
   exit(0);
}


Local Variables:
mode: outline
outline-regexp: "^Subject:"
fill-prefix: "  "
End: