Path: news1.ucsd.edu!ihnp4.ucsd.edu!swrinde!howland.reston.ans.net!newsfeed.internetmci.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv
From: Bill Wohler <wohler@newt.com>
Newsgroups: comp.mail.mh,comp.answers,news.answers
Subject: MH Frequently Asked Questions (FAQ) with Answers
Supersedes: <mail/mh-faq/part1_827545503@rtfm.mit.edu>
Followup-To: poster
Date: 21 Apr 1996 15:47:32 GMT
Organization: Newt Software, Menlo Park, California, USA
Lines: 3354
Approved: news-answers-request@MIT.Edu
Expires: 2 Jun 1996 15:45:53 GMT
Message-ID: <mail/mh-faq/part1_830101553@rtfm.mit.edu>
Reply-To: Bill Wohler <wohler@newt.com>
NNTP-Posting-Host: bloom-picayune.mit.edu
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
Originator: faqserv@bloom-picayune.MIT.EDU
Xref: news1.ucsd.edu comp.mail.mh:5653 comp.answers:14869 news.answers:58924

Archive-name: mail/mh-faq/part1
Last-modified: $Date: 1995/12/02 02:55:05 $
Version: $Revision: 95.11.1.1 $
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@newt.com>.

  Copyright 1991-1995 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@newt.com>
Date: Mon, 27 Nov 1995 14:43:36 -0800

Legend: + new, - deleted, ! changed
_______________

01. 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?
_______________

02. 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 Where can I get POP3?
 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 HPUX?
 02.12 +Can I prevent adding the local hostname to addresses behind firewalls?
______________________

03. 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?
__________

04. 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?
________________________

05. 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?
___________

06. 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. 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?
________

08. mh-e

 08.01 Is there documentation for mh-e?
 08.02 How can mail aliases can be expanded in mh-e?
 08.03 !How do I use POP with mh-e?
_______

09. 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
 srvrsmtp.c patch
 mhn.c patch 1
 mhn.c patch 2
 +IRIX config file
 +Removing duplicate messages (Bourne)
 +Removing duplicate messages (Perl)

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

  To skip to a particular question numbered xx, use "/^F.*xx" with most
  pagers.  In GNU Emacs type "M-C-s ^F.*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"

  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@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.  Do not use $MHLIB literally; use the real,
  absolute path to your MH library directory.

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

Subject: 01. ***** Introduction *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 01.01 Why should I use MH?
From: Jerry Peek <jerry@ora.com>
Date: Fri, 1 Mar 91 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@newt.com>
Date: Sun, 1 May 94 00:00:00 -0800

  The current version of MH is 6.8.3.

  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@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. 

------------------------------
  
Subject: 01.03 Where can I get MH?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 May 94 00:00:00 -0800

  MH comes standard with:
  
        Berkeley Software Design BSD/386  . . . . MH 6.8.3
        Control Data Corp. CDC4680-MP . . . . . . EMH 1.4.2 (modified MH)
        DEC Ultrix 3.1   . . . . . . . . . . . . . MH 6.5
        DEC Ultrix 4.2A.4 . . . . . . . . . . . . MH 6.7.1
        DEC OSF/1 . . . . . . . . . . . . . . . . MH 6.7
        Evans and Sutherland ES/OS 2.3   . . . . . MH 6.6
        IBM PS/2 AIX 1.3  . . . . . . . . . . . . MH 6.4
        IBM RISC System/6000 AIX 3.x and 4.1  . . MH 6.6
        Linux . . . . . . . . . . . . . . . . . . MH 6.8.3
        MIPS RISC/OS 4.52 . . . . . . . . . . . . MH 6.6
        Sony NEWS-OS 4.3  . . . . . . . . . . . . MH 6.7.2
        Tektronix UTek   . . . . . . . . . . . . . MH (Version Unknown)
        Table maintained by: "James R. Hamilton" <jrh@jrh.guild.org>
  
  If you should need the Internet address, use nslookup or dig if you
  have them, or send mail to dns@grasp.insa-lyon.fr with "help" for
  a Subject.

  via anonymous ftp:                               
    ftp://ftp.ics.uci.edu/mh/mh-6.8.tar.Z                  2MB
    ftp://ftp.uu.net/networking/mail/mh/mh-6.8.tar.Z
    ftp://krynn.efd.lth.se/pub/mail/mh-6.8.tar.Z

  via mail:
    Send a note to either mail-server@nluug.nl or
    archive-server@germany.eu.net with a body containing the following:

      send mail/mh/mh-6.8.tar.Z

    UK users may be able to use ftpmail@doc.ic.ac.uk.  Send a note
    whose body contains "help" to this address. 

    Send a note to ftpmail@decwrl.dec.com whose body contains "help"
    on a line by itself get information on getting ftp sources by
    mail.  Also include the lines "connect" and "dir /pub/mail/ua/mh"
    to see which files are available local to decwrl.  Please do this
    as a last resort only.  

  via U.S. mail:
    You can send $75 US to the address below.  This covers
    the cost of a 6250 BPI 9-track magtape, handling, and ship-
    ping.  In addition, you'll get a laser-printed hard-copy of
    the entire MH documentation set.  Be sure to include your
    USPS address with your check.  Checks must be drawn on U.S.
    funds and should be made payable to:

           Regents of the University of California

    The distribution address is:

           University of California at Irvine
           Office of Academic Computing
           Engineering Gateway E2130
           Irvine, CA  92717  USA

           +1 714 824 5153

    Sadly, if you just want the hard-copies of the documenta-
    tion, you still have to pay the $75.  The tar image has the
    documentation source (the manual is in roff format, but the
    rest are in TeX format).  Postscript formatted versions of
    the TeX papers are available, as are crude tty-conversions
    of those papers.  

------------------------------
  
Subject: 01.04 What references exist for MH?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 May 95 00:00:00 -0800

  Books:
    MH & xmh: E-mail for Users & Programmers.  Third edition. Jerry
    Peek, with Bill Wohler and Brent Welch.
    ISBN 1-56592-093-7.  $34.95.  738 pages.
    O'Reilly & Associates, Inc.
    Book Orders:
      US and Canada: 800-998-9938. Fax: 707-829-0104.

    To get a list of non-US distributors, connect to gopher.ora.com,
    http://www.ora.com/, send a note to info@ora.com or call +1-707-829-0515.

    References to "the MH book" in this document refer to the third
    edition of this book (section numbers for the second edition appear
    in parentheses).

    Examples from this book are in:
    ftp://ftp.uu.net/published/oreilly/nutshell/MHxmh/MHxmh3.tar.Z      114k

    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/mh/contrib/multimedia/mhn-tutorial.ps.Z       141k
    ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhn-tutorial.tex.Z      48k

  Usenet:
    comp.mail.mh (gatewayed to MH-users)

  Mailing lists:
     General questions/discussion: MH-users@ics.uci.edu
     (gatewayed to comp.mail.mh).
     MH developers and maintainers: MH-workers@ics.uci.edu.
     Please use MH-users-request and MH-workers-request to request
     an addition or deletion.

  MH-users archives:
    ftp://ftp.ics.uci.edu/mh/mh-users/

    The files are in packf(1) format, compressed with compress(1).  To
    get them, use anonymous ftp and set "binary" transfer mode.

      mh-users.86.Z        8549               mh-users.86.scan.Z         771
      mh-users.87.Z       55449               mh-users.87.scan.Z        3679
      mh-users.88.Z      182805               mh-users.88.scan.Z       11339
      mh-users.89.Z       89151               mh-users.89.scan.Z        5522
      mh-users.90.Z      402470               mh-users.90.scan.Z       21551
      mh-users.91.Z      878763               mh-users.91.scan.Z       36992
      mh-users.92.Z     1281585               mh-users.92.scan.Z       44975
      mh-users.93.Z     1544159               mh-users.93.scan.Z       52938
      mh-users.mbox: current archive, uncompressed.

    There are directions in the README file.  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
    <jerry@ora.com>

  This document:
    via WWW:
      http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/mh-faq/part1/top.html 

    via anonymous ftp:
      ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/mh-faq/part1      
      ftp://ftp.uu.net/archive/usenet/news.answers/mail/mh-faq/part1.Z  
      ftp://ftp.cs.ruu.nl/pub/NEWS.ANSWERS/mail/mh-faq/part1         

    via mail:
      Each of the following addresses is following by commands which
      should be included as the body of the message.

      mail-server@rtfm.mit.edu                           
        send /usenet/news.answers/mail/mh-faq/part1

      mail-server@cs.ruu.nl                             
        send /pub/NEWS.ANSWERS/mail/mh-faq/part1

  mh-e documentation:                                  
    GNU Emacs 19.29 comes with a version of mh-e which now includes
    on-line (Texinfo) documentation.  Try "C-h i m mh-e RET".  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 FAQ:
    ftp://parcftp.xerox.com/pub/exmh/exmh.README           

  Signature and Finger FAQ:
    via WWW:
      http://www.cis.ohio-state.edu/hypertext/faq/usenet/signature_finger_faq/faq.html

    via anonymous ftp:
      ftp://rtfm.mit.edu/pub/usenet/news.answers/signature_finger_faq

    via mail (see above for usage):
      mail-server@rtfm.mit.edu
        send /usenet/news.answers/signature_finger_faq

------------------------------
  
Subject: 01.05 !What other MH software is available?
From: Bill Wohler <wohler@newt.com>
Date: Sun, 26 Nov 1995 19:05:24 -0800

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

  vmh
    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@sp-eug.com>
Date: Fri, 1 Jan 93 00:00:00 -0800

  xmh
    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 93 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@boheme.er.sintef.no> 
Date: Fri, 1 Jan 93 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: Brent Welch <welch@parc.xerox.com> 
Date: Mon, 1 Aug 94 00:00:00 -0800

  exmh
    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.

    ftp://parcftp.xerox.com/pub/exmh/exmh-1.4.1.tar.Z            357k
    ftp://parcftp.xerox.com/pub/exmh/exmh-1.5omega.tar.Z

    
From: Stephen Gildea <gildea@x.org> 
Date: Mon, 1 May 95 00:00:00 -0800

  mh-e
    Mh-e is the GNU Emacs front end for MH.  It offers all the
    functionality of MH, the visual orientation and simplicity of
    use of xmh, and full integration with Emacs, including thorough
    configurability.  The command set is similar to that of rmail
    (the Emacs front end for BSD mail) and BSD mail itself.  On-line
    help is available.

    Mh-e allows one to read and process mail very quickly: commands
    are single characters and completion and defaults are available
    for file and folder names.  During a reply, the original message
    is displayed simultaneously in another window for easy reference
    where a mh-e command can quickly incorporate and format this
    text into your reply.

    With mh-e you compose outgoing messages in Emacs.  This is a big
    plus for Emacs users, but it has been known for non-Emacs users
    to be able use mh-e after only learning the most basic cursor
    motion commands.  Mh-e is easily configured via the Emacs
    edit-options menu, and people familiar with Emacs Lisp will be
    able to further reconfigure mh-e beyond recognition.

    Mh-e is part of the standard GNU Emacs distribution.  Note that
    mh-e got much faster in Emacs 18.56.

    ftp://ftp.x.org/misc/mh-e/mh-e-5.0.tar.Z                      66k

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

  metamail
    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@perl.com>
Date: Tue, 1 Nov 94 00:00:00 -0800

  plum
    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:

    ftp://perl.com/pub/perl/scripts/plum.gz                          29k
  
    or mail requests to Tom

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

  mhunify
    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/mh/contrib/multimedia/mhunify.shar.gz
  
From: Dale Carstensen <dlc@c3file.c3.lanl.gov>
Date: Tue, 1 Nov 94 00:00:00 -0800

  olmh
    Sun's Open Windows 3 comes with a demo for OLIT (Open Look
    Interface Toolkit, the Open Look wrapper to Xt) named olmh 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@sp-eug.com> 
Date: Sun, 1 May 94 00:00:00 -0800

  vmail
    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@sp-eug.com>  
Date: Sun, 1 May 94 00:00:00 -0800

  vmailtool
    If you have a Sun workstation, vmailtool may be for you.  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
    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@mel.dit.csiro.au>
Date: Fri, 1 Jan 93 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@teal.csn.org>
Date: Fri, 1 Jan 93 00:00:00 -0800

  QueueMH
    QuemeMH 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@rootgroup.com>
Date: Mon, 1 Mar 93 00:00:00 -0800

  QMH:
    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 <jerry@ora.com>, Shannon Yeh <yeh@netix.com>
Date: Mon, 1 Aug 94 00:00:00 -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@netix.com

    In addition, you might try Wollongong, to see if they have something you
    can get. 
  
------------------------------
  
Subject: 01.06 How can I print a MH manual?
From: Bill Wohler <wohler@newt.com>, Jos Vos <jos@bull.nl>
Date: Fri, 1 Jan 93 00:00:00 -0800

  To order a copy by mail, see the section on how to get MH by mail
  (see "Where can I get MH?" and "What references exist for MH?").

  To print your own copy, 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.

  You can also ftp the ASCII or postscript versions:

    ftp://ftp.ics.uci.edu/mh/doc/tutorial.ps.Z              65k
    ftp://ftp.ics.uci.edu/mh/doc/ADMIN.ps.Z                          56k
    ftp://ftp.ics.uci.edu/mh/doc/MH.ps.Z (man pages)               261k
    ftp://ftp.uu.net/networking/mail/mh/doc/tutorial.ps.Z
    ftp://ftp.uu.net/networking/mail/mh/doc/ADMIN.ps.Z
    ftp://ftp.uu.net/networking/mail/mh/doc/MH.ps.Z (man pages)

  Or, you can send a note to mail-server@nluug.nl with a body containing the
  following:

    send /mail/mh/papers-ps/tutorial.ps.Z

------------------------------
  
Subject: 01.07 How should I report bugs?
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

  Mail them to Bug-MH@ics.uci.edu and be sure to include the output of
  the -help option as well as what hardware and operating system you
  are using.

------------------------------
  
Subject: 01.08 !How can I convert from my mailer to MH?
From: Mike Sutton <mws115@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 <jerry@ora.com>
Date: Fri, 1 Mar 91 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@IS.NET>
Date: Mon, 1 May 95 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@cs.duke.edu>
Date: Fri, 1 Jan 93 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@cs.tu-berlin.de> 
Date: Fri, 1 Jan 93 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 94 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: 02. ***** Building MH *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 02.01 What machines does MH run on?
From: Jerry Peek <jerry@ora.com>
Date: Fri, 1 Mar 91 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@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

  By carefully reading the READ-ME in the root of the source
  hierarchy, one should not have any trouble building MH.

------------------------------
  
Subject: 02.03 What options should I use?
From: Bill Wohler <wohler@newt.com>
Date: Tue, 1 Dec 92 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@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
  mtstailor.

  ATZ: makes your timezones print like "EST" instead of "-0500".  Much
  prettier.  --Stephen Gildea <gildea@x.org>

  However, Tony Landells <ahl@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 Where can I get POP3?
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

------------------------------
  
Subject: 02.05 Does MH support IMAP?
From: John Romine <jromine@ics.uci.edu>
Date: Fri, 1 Mar 91 13:03:15 -0800

  No.  MH only supports retrieving mail using POP3.  POP3 is on the
  "standards track"--it is now an elective Internet Draft Standard
  (see RFC1280 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@newt.com>
Date: Mon, 1 Aug 94 00:00:00 -0800

  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@cac.washington.edu>
Date: Mon, 1 Aug 94 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@Panda.COM>
Date: Mon, 1 Aug 94 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@ics.uci.edu>
Date: Fri, 1 Jan 93 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.
  Archie can help you find where they are kept.

------------------------------
  
Subject: 02.07 !How can I build MH on Solaris 2?
From: Neil Rickert <rickert@cs.niu.edu>,
        Scott K. Hutton <shutton@habanero.ucs.indiana.edu>,
        Casper H.S. Dik <casper@fwi.uva.nl>
Date: 20 Jun 1995 08:18:23 GMT

  First, don't use the BSD compatible stuff.  Make sure that the Sun
  or GNU compiler appear before the BSD compiler in your PATH.

  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

  Incorporate the diff in (see "mhn.c patch 1").

  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."  

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

  Unset LD_LIBRARY_PATH. 

From: Gary Strand <strandwg@ncar.ucar.edu>
Date: Mon, 1 May 95 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" <mastaler@valhalla.mindspring.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

------------------------------
  
Subject: 02.08 !How can I build MH on Linux?
From: Brandon S. Allbery <bsa@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. [Ed: The
  paths are up to date, but I think the info in this paragraph is
  old.]

  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: Arne K. Frick <frick@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@sgi.com>
Date: 9 Jun 1995 01:53:48 GMT

  The fix for compiling mhn.c is in (see "mhn.c patch 1") below.

From: John Jack Repenning <jackr@dblues.engr.sgi.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@Holland.Sun.COM>
Date: 4 Oct 1995 09:05:42 GMT

  Apply ftp://ftp.fwi.uva.nl/pub/solaris/mh-6.8.3-diff to your MH
  distribution and add the configuration option "CONTENT_LENGTH".  It
  also includes the si_ fix in (see "mhn.c patch 1").

------------------------------
  
Subject: 02.11 +How do I build MH on HPUX?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 27 Nov 1995 11:02:48 -0800

  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.

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

Subject: 02.12 +Can I prevent adding the local hostname to addresses behind firewalls?
From: Ken Hornstein <kenh@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.

  [Ed. It seems to me that this is a common problem, but that there
  should be a better solution, like adding a "localname" entry to
  $MHLIB/mtstailor.  Please let me know if you can improve upon this.]

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

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

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

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

  Upgrade to MH 6.8. 

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

  You can post via mail.  Send your article to
  news.group.name@#{news.demon.co.uk,{crs4gw,berlioz}.crs4.it} (e.g.,
  comp.mail.mh@news.demon.co.uk).  To cross-post, send mail to the
  user "mail2news" instead and add a legitimate Newsgroups field.

From: Jerry Peek <jerry@ora.com>
Date: Tue, 1 Nov 94 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).

  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).

From: Stephen Gildea <gildea@x.org>
Date: Fri, 1 Mar 91 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.

Date: Tue, 1 Nov 94 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 <jerry@ora.com>
Date: Mon, 1 Mar 93 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).

------------------------------
  
Subject: 03.04 Why don't MH format commands such as %(friendly) work?
From: Anthony Baxter <anthony@aaii.oz.au>
Date: Sun, 1 May 94 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 <jerry@ora.com>
Date: Mon, 1 Aug 94 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 mhn_defaults file in your MH
  library directory; if it doesn't have defaults for all content types,
  add them.  Or, if you can't (or shouldn't) change mhn_defaults, you
  can put default entries in your MH profile file for those content types.

  Here's the part of the mhn(1) manpage that explains how content types
  are handled:

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

        mhn-show-<type>/<subtype>

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

        mhn-show-<type>

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

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

    If neither apply, mhn will check to see if the message has a
    application/octet-stream content with parameter "type=tar".  If
    so, mhn will use an appropriate command.  If not, mhn 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 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:
  
        mhn-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; store its pathname in the MHN environment
  variable.  Add a test to your shell setup file (.profile, .login) that
  tests the value of the TERM variable -- and, if you have an mhn setup
  file for that terminal type, store its pathname in the MHN variable.
  
  See also MH book sections 6.2.3, 9.4.4, 9.4.5.

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

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

        mhn-charset-iso-8859-1: /bin/sh -c '%s'

------------------------------
  
Subject: 03.06 Can I get show not to run "less" so much on MIME messages?
From: Bill Wohler <wohler@newt.com>
Date: Tue, 1 Nov 94 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.

------------------------------
  
Subject: 03.07 Why do I get "mhn: don't know how to display content"?
From: Keith Moore <moore@cs.utk.edu>
Date: Thu, 1 Dec 94 00:00:00 -0800

  MH 6.8.3 has a bug where it will not handle multipart/foo correctly
  if it doesn't know about foo.  This patch (see "mhn.c patch 2"
  below) 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@expt05.stp.xfi.bp.com (Andy McCammont)
Date: 22 May 95 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: alhy@MAILBOX.SLAC.Stanford.EDU
Date: Thu, 20 Jul 1995 11:11:13 -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.

------------------------------
  
Subject: 03.10 +Can I read my mail with a Web browser?
From: "Patrick A. Coronato" <coronato@me216.teb.allied.com>
Date: 8 Sep 1995 16:36:03 GMT

  There are two programs that I know of that will convert a Unix
  mailbox into a threaded set of HTML documents.  They both sort by
  author, date, and thread and can be read by a WWW reader.  Hypermail
  from EIT works well but only supports Unix mailbox format and
  doesn't appear to support MIME.

        http://www.eit.com:80/software/hypermail/

  Another program, called MHonArc, by Earl Hood from Convex, will
  definitely 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 (version 4)
  language.  (You should go to this site if nothing more than to see the
  cool logo!)

        http://www.oac.uci.edu/indiv/ehood/mhonarc.html

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

Subject: 04. ***** Filing *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 04.01 Can I append MH messages to a Unix mailbox format file?
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Jan 93 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@newt.com>
Date: Fri, 1 Mar 91 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: Jerry Peek <jerry@ora.com>
Date: Mon, 1 Aug 94 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 <jerry@ora.com>
Date: Mon, 1 May 95 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: glimpse@cs.arizona.edu
Date: Sun, 26 Nov 1995 17:14:00 -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.

        ftp://cs.arizona.edu/glimpse
        http://glimpse.cs.arizona.edu:1994/

From: Bill Wohler <wohler@newt.com>
Date: Sun, 26 Nov 1995 17:10:59 -0800

  For those of lesser means, I have three shell scripts for archiving,
  seeking, and extracting MH messages that I have been using for
  almost 10 years.  Send mail if interested.  Note that I intend to
  switch to Glimpse if I get a moment.

------------------------------
  
Subject: 04.06 +How can I remove duplicate messages?
From: jerry@ora.com (Jerry Peek)
Date: 20 Nov 95 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 dupicate messages (Perl)) does not
  require that you first sort the folder.

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

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

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

Subject: 05.01 Why does repl add a "Re:" to a message that already has one?
From: Larry McVoy <lm@slovax.Eng.Sun.COM>
Date: Fri, 1 Mar 91 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: Alan Thew <qq11@liv.ac.uk>, Mike Schwager <schwager@cs.uiuc.edu>,
        James T Perkins <jamesp@sp-eug.com>
Date: Fri, 1 Jan 93 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 write:"
        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).

------------------------------
  
Subject: 05.03 How can I eliminate duplicate copies of letters to myself?
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 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 <jerry@ora.com>
Date: Fri, 1 Mar 91 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).

From: Alec Wolman <wolman@crl.dec.com>
Date: Fri, 1 Mar 91 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.

------------------------------
  
Subject: 05.04 How can I include my signature?
From: Eric W. Ziegast <ziegast@uunet.uu.net>,
        Hardy Mayer <hardy@golem.ps.uci.edu>
Date: Tue, 1 Nov 94 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@uunet.uu.net
        UUNET Technologies       uunet!ziegast

     ~/Mail/replfmt
        body:component="> ",compwidth=2
        :--
        :Eric Ziegast            ziegast@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@golem.uucp>, David A.
      Truesdell <truesdel@nas.nasa.gov> and Tom Wilmore
      <sastjw@unx.sas.com> have sample scripts to do these.

From: Jerry Peek <jerry@ora.com> 
Date: Tue, 1 Sep 92 00:00:00 -0800
  
  1c) Section 7.1.4 (13.13) of the MH book lists mysend, a sendproc
      script to process a message after "What now? send" (see "What
      references exist for MH" to see where the book's examples can
      be ftped from).

  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@neuronet.pitt.edu>
Date: Mon, 1 May 95 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@perl.com>
Date: Tue, 1 Nov 94 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 94 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@ics.uci.edu>
Date: Mon, 1 May 95 00:00:00 -0800

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

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

From: Ray Nickson <Ray.Nickson@comp.vuw.ac.nz>
Date: Fri, 1 Mar 91 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 <jerry@ora.com>, Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 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).

From: Glenn Vanderburg <glv@utdallas.edu>
Date: Tue, 1 Nov 94 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@newt.com>
Date: Tue, 1 Dec 92 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: wohler@newt.com

------------------------------
  
Subject: 05.08 !How can I change my From header?
From: Bill Wohler <wohler@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 wohler@gbr.newt.com and you've added a From
  field of:

        From: Bill Wohler <bill.wohler@newt.com>

  you'll add the following to .mh_profile:

        Alternate-Mailboxes: bill.wohler@newt.com

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

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

        localname: desired_host_name

From: Jerry Peek <jerry@ora.com>
Date: Tue, 1 Dec 92 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, but (almost) no one cares about the "Sender:"
  header anyway.  

------------------------------
  
Subject: 05.09 !How can I save a copy of all messages I send?
From: Bill Wohler <wohler@newt.com>, Jerry Peek <jerry@ora.com>
Date: Mon, 1 Aug 94 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: David S. Goldberg <dsg@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@wizzy.com>
Date: Mon, 1 Aug 94 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: Vivek Khera <khera@kciLink.com>
Date: 19 Jun 1995 22:06:37 GMT

  A much more robust Perl script I wrote is appended below [Ed: Send a
  note to Vivek for the script].  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.

        mhn-show-application/x-pgp: %l pgp -m '%F'

  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: Stephen Gildea <gildea@x.org>
Date: Fri, 09 Jun 1995 08:28:45 -0700

  There are several packages that support PGP in mh-e:

        mailcrypt by Patrick LoPresti <patl@lcs.mit.edu>
        and Jin Choi <jsc@mit.edu>.  See
        http://cag-www.lcs.mit.edu/mailcrypt/ for more info.
  
        pgp.el by Jack Repenning <jackr@dblues.wpd.sgi.com>
        ftp://sgigate.sgi.com/pub/pgp-aux/pgp-el.tar.gz

  Jack and I have been in communication, so I know that pgp.el will work
  with mh-e 5.0.  

From: Jeffrey C. Ollie <jeffo@worf.infonet.net>
Date: Mon, 1 May 95 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@tac.nyc.ny.us>
Date: Mon, 1 May 95 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@mantis.co.uk
Date: Mon, 1 May 95 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: Jason L Tibbitts III <tibbs@sina.tcamc.uh.edu>
Date: Mon, 1 May 95 00:00:00 -0800

  There is an Emacs and MH based mail interface called Mew which,
  while still beta, is quite stable and works well.  It fully handles
  MIME and PGP.  Grab it from:

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

------------------------------
  
Subject: 05.12 +How can I send multi-media (MIME) attachments?
From: Brian Exelbierd <bex@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, Chapter 3 in the MH
  book, and
  ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types
  for a list of allowed media types in addition to image/gif.

------------------------------
  
Subject: 05.13 +What's the best way to send mail to a long list of people?
From: Bill Wohler <wohler@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 /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, like this:

        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

  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?
Date: Wed, 27 Sep 1995 09:46:37 -0700
From: John Romine <jromine@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@newt.com>
Date: Sun, 26 Nov 1995 19:25: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.  Both of these will explain the
  following replcomps file.  Don't start with the first four
  lines--the latter group of lines are much easier to understand.

        %(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%>\
        Organization: Newt Software
        %<{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%>\
        --------

  In particular, note the following:

        \        consider the following line to be part of the current line
        \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
        %(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 Organization field
  above.  Note that you can either use a "\n\" pair, or nothing at the
  end of a line to insert a newline in the reply.

------------------------------
  
Subject: 05.16 +How can I convert quoted-printable to 8bit in quoted text in replies?
From: Jarle F. Greipsland <jarle@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: 06. ***** Posting *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 06.01 What to do with "Problems with edit - draft removed".
From: John Romine <jromine@ics.uci.edu>
Date: Mon, 1 May 95 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
        exec /usr/ucb/broken_vi "$@"
        exit 0

  Alternatively, compile MH with the ATTVIBUG option.

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

------------------------------
  
Subject: 06.02 Can I run my message through a program (e.g., ispell) before sending?
From: Jerry Peek <jerry@ora.com>
Date: Fri, 1 Mar 91 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.

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

  You may find that post returns the following message:

        post: bad address 'Mr. Foo Bar <fb@somewhere.edu>' - 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" <fb@somewhere.edu>
        (Mr. Foo Bar) <fb@somewhere.edu>
        (Mr. Foo Bar) fb@somewhere.edu

------------------------------
  
Subject: 06.04 Fixing "post: problem initializing server; [BHST] no servers available"
From: Peter Marvit <marvit@hplabs.hpl.hp.com>,
        Eric Bracken <bracken@bacon.performance.com> 
Date: Tue, 1 Nov 94 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 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@col.hp.com>,
        Eric Bracken <bracken@bacon.performance.com> 
Date: Sun, 1 May 94 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/mtstailor:
        
        servers: 127.0.0.1 \01localnet

------------------------------
  
Subject: 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender already specified"
From: Paul Pomes <paul@uxc.cso.uiuc.edu>
Date: Mon, 1 Mar 93 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@wrkhors.la.ca.us>, Bill Wohler <wohler@newt.com> 
Date: Mon, 1 Aug 94 00:00:00 -0800

  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/mtstailor" file.
  o Recompile MH with sendmail instead of sendmail/mts (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@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@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@newt.com>
Date: Fri, 1 Mar 91 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.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL before RCPT"
From: Bjoern Stabell <bjoerns@acm.org>
Date: Mon, 1 May 95 00:00:00 -0800

  I inserted:

        clientname: localhost

  in the mtstailor file, and that fixed the problem. 

------------------------------
  
Subject: 06.09 Fixing "post: problem initializing server; [BHST] premature end-of-file on socket"
From: Chuck Mattern <cmattern@mindspring.com>
Date: Mon, 1 May 95 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: Terry Manderson <terry@azure.dstc.edu.au>
Date: Mon, 1 May 95 00:00:00 -0800
  
  Add
  
        clientname sender 

  to $MHLIB/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: Stephan Neuhaus <neuhaus@dfki.uni-sb.de>
Date: Mon, 1 May 95 00:00:00 -0800

  Put

        clientname: localhost

  in your mtstailor file. 

From: Scott Hutton <shutton@habanero.ucs.indiana.edu>
Date: Mon, 1 May 95 00:00:00 -0800

  Alternately, change or comment out

        Opauthwarnings

  from 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@aol.net>
Date: Mon, 1 May 95 00:00:00 -0800
  
  Change your "mts" in "conf/MH" from "sendmail/mts" to just
  "sendmail." 

From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 May 95 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/mts" option to have MH talk to
  a non-local sendmail.  Add:

        servers <SMTP-server>

  It may also be caused by old versions of sendmail. 
  
------------------------------

Subject: 07. ***** Mail Filters *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 07.01 !What mail filters are available?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 Aug 94 00:00:00 -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 deliver, followed
  closely by procmail.

  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. 

  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. 

From: Stephen R. van den Berg <berg@pool.informatik.rwth-aachen.de>
Date: Mon, 1 Aug 94 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. 

  ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/procmail.tar.gz 160k

From: Raphael Manfredi <ram@grenoble.hp.com>
Date: Mon, 1 Aug 94 00:00:00 -0800

  "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.

  You can get a full email distribution of the latest release by
  sending an appropriate command to my own mailagent, such as:

        Subject: Command

        @SH maildist PATH mailagent -

  where PATH stands for YOUR email address, i.e. a path from me to
  you. 

------------------------------
  
Subject: 07.02 Why slocal writes messages to system mailbox that from(1) can't read.
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 May 95 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@newt.com>
Date: Fri, 1 Mar 91 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.

  Alternatives to slocal include deliver, procmail, and mailagent.
  Archie can help you find where they are kept.

------------------------------
  
Subject: 07.04 How do I debug my .maildelivery file?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 Mar 93 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).

------------------------------
  
Subject: 07.05 Why isn't slocal working?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 Mar 93 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: 08. ***** mh-e *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 08.01 Is there documentation for mh-e?
From: Bill Wohler <wohler@newt.com>
Date: Mon, 1 May 95 00:00:00 -0800

  Yes.  See "What references exist for MH?". 
  
------------------------------
  
Subject: 08.02 How can mail aliases can be expanded in mh-e?
From: Stephen Gildea <gildea@x.org>
Date: Sun, 1 May 94 00:00:00 -0800

  Typing C-c C-w will show you the expanded list of recipients. 

------------------------------
Subject: 08.03 !How do I use POP with mh-e?
From: Bill Wohler <wohler@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@hplb.hpl.hp.com>
Date: Mon, 1 May 95 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:

        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: 09. ***** Xmh *****
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

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

Subject: 09.01 How can I get xmh to use Emacs as the editor?
From: Bob Ellison <ellison@sei.cmu.edu>
Date: Fri, 1 Mar 91 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@bae.bellcore.com>
Date: Fri, 1 Mar 91 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@cenparmi.concordia.ca>
Date: Fri, 1 Mar 91 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@saxon.Eng.Sun.COM>
Date: Fri, 1 Mar 91 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).

------------------------------
  
Subject: 09.03 How do I precede included messages with ">" when replying in xmh?
From: Len Makin <len@mel.dit.csiro.au>
Date: Fri, 1 Mar 91 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@comp.vuw.ac.nz>
Date: Fri, 1 Mar 91 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).

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

Subject: !Glossary
From: Bill Wohler <wohler@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

  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 1225
  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@newt.com>
Date: Fri, 1 Mar 91 13:03:15 -0800

I'd like to thank the following people for providing ideas on the
layout of this article:

Joe Wells <jbw@bigbird.bu.edu>        Richard M. Stallman <rms@gnu.ai.mit.edu>
David Elliott <dce@smsc.sony.com>     Tom Christiansen <tchrist@perl.com>
Eugene N. Miya <eugene@nas.nasa.gov>


We are also grateful to the individuals mentioned below and 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.

Kim F. Storm <storm@olicom.dk>        Edward Vielmetti <emv@ox.com>

------------------------------
  
Subject: Switching xmh's editor
From: Andrew Wason <aw@bae.bellcore.com>
Date: Fri, 1 Mar 91 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@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@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@cs.duke.edu>
Date: Fri, 1 Mar 91 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@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
From: Juergen Nickelsen <nickel@cs.tu-berlin.de>
Date: Fri, 1 Mar 91 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: srvrsmtp.c patch
From: Paul Pomes <paul@uxc.cso.uiuc.edu>
Date: Fri, 1 Mar 91 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: mhn.c patch 1
From: Casper H.S. Dik <casper@fwi.uva.nl>
Date: Fri, 1 Mar 91 13:03:15 -0800

  *** mh-6.8.3/uip/mhn.c.org    Wed Dec  1 05:01:36 1993
  --- mh-6.8.3/uip/mhn.c        Fri Jun  3 12:38:04 1994
  ***************
  *** 1014,1019 ****
  --- 1014,1020 ----
    #include "../h/mhn.h"


  + #undef si_value
    struct str2init {
        char   *si_key;
        int          si_value;

------------------------------
  
Subject: mhn.c patch 2
From: Keith Moore <moore@cs.utk.edu>
Date: Fri, 1 Mar 91 13:03:15 -0800

  *** uip/mhn.c   Tue Sep 13 23:06:18 1994
  --- uip/mhn.c.NEW       Tue Sep 13 22:58:10 1994
  ***************
  *** 3035,3043 ****
  --- 3035,3048 ----
          if (((cp = m_find (buffer)) == NULL || *cp == 0)
                   && (cp = ct -> c_showproc) == NULL) {
              if (!alternate)
  + #ifdef UTK
  +               /* treat as multipart/mixed per rfc 1521 */
  +               return show_multi (ct, serial, alternate);
  + #else
                   content_error (NULLCP, ct,
                                       "don't know how to display content");

  + #endif
              return NOTOK;
          }
        }


------------------------------
  
Subject: +IRIX config file
From: John Jack Repenning <jackr@dblues.engr.sgi.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

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

Local Variables:
mode: outline
outline-regexp: "^Subject:"
fill-prefix: "  "
End:
Subject: +Removing duplicate messages (Bourne)
From: jerry@ora.com (Jerry Peek)
Date: 20 Nov 95 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@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;