Archive-name: mh-faq
Last-modified: $Date: 1993/03/20 16:13:34 $
Version: $Revision: 93.3 $

  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 last bit of
  question 3 so that you can get a copy yourself.

  Please do not post an answer when someone posts a frequently asked
  question, as I will always e-mail a reply.  This ensures that
  everybody gets their question answered fully and eliminates
  unnecessary traffic in this newsgroup.

  Your comments, additions and fixes to this list are welcome: please
  send them to Bill Wohler <wohler@sap-ag.de>.

  
Subject: Table of Contents
From: Preface

Legend: + new, - deleted, ! changed

Introductory

 1.  Why should I use MH?
 2.  What is the current version/status of MH?
 3.  Where can I get MH?
 4.  What references exist for MH?
!5.  What other MH software is available?
 6.  How can I print a MH manual?
 7.  How should I report bugs?
 8.  How can I convert from my mailer to MH?

Building MH

 10. What machines does MH run on?
 11. How do I build MH?
 12. What options should I use?
 13. Fixing "post: problem initializing server; [BHST] no servers available"
 14. Where can I get POP3?
 15. What do I do if scan shows the wrong date?
 16. Why slocal writes messages to system maildrop that from(1) can't read.
 17. Why does repl add a "Re:" to a message that already has one?
 18. Does MH support IMAP2 (RFC 1064)?
 19. Why does "mailgroup mail" only affect inc and not slocal?

Using MH

 30. Where can I read about slocal and the format of the .maildelivery file?
 31. How do I include messages in repl with or without ">"?
 32. How can I eliminate duplicate copies of letters to myself?
 33. How would one go about reading usenet with MH?
 34. Can I append MH messages (ie. +inbox/1) to a UNIX mailbox format file?
 35. How can I include my signature?
 36. What to do with "Problems with edit - draft removed".
 37. How do I call my editor with arguments?
!38. How do I debug my .maildelivery file?  
 39. How can I digestify the messages in a folder for mail to another user?
 40. Can I run my message through a program (ie. ispell) before sending?  
 41. Can I append MH messages to a GNU Emacs rmail BABYL-format file?
 42. Is there documentation for mh-e?
 43. How can I change my return address?
 44. How can I change my From header?
 45. What to do with "bad address 'xxx' - no at-sign after local-part".
+46. How can I search through multiple folders?
+47. Why isn't slocal working?
+48. Fixing "post: problem initializing server; [RPLY] 503 Sender
     already specified" 

Xmh

 50. How can I get xmh to use Emacs as the editor?
 51. Does xmh support subfolders?
 52. How do I precede included messages with ">" when replying in xmh?

Appendix

 Glossary, Acknowledgements, Warranty
 Switching xmh's editor
 babyl2mh.pl
 inco

  
Subject: Viewing This Article
From: Preface

  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.  "-xx" is often sufficient.

  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 "C-c C-s" (show-subtree) and "M-x show-all"

  Numbers in square brackets denote the month and year of the last
  update.

  
Subject: Why should I use MH?
From: Intro-1

  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 filesystem
  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.
  --Jerry Peek <jerry@ora.com>

  
Subject: What is the current version/status of MH.
From: Intro-2

  The current version of MH is 6.8.

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

  Please see the file CHANGES in the distribution for more details. [1.93]

  
Subject: Where can I get MH?
From: Intro-3

  MH comes standard with:

	Control Data Corp. CDC4680-MP . . . EMH Version 1.4.2 (modified MH)
	DEC Ultrix 3.1  . . . . . . . . . . MH Version 6.5
	DEC Ultrix 4.2A . . . . . . . . . . MH Version 6.7.1
	Evans and Sutherland ES/OS 2.3  . . MH Version 6.6
	IBM PS/2 AIX 1.2.x  . . . . . . . . MH Version 6.4
	IBM RISC System/6000 AIX 3.x  . . . MH Version 6.6
	MIPS RISC/OS 4.52 . . . . . . . . . MH Version 6.6
	Tektronix UTek  . . . . . . . . . . MH (version unknown)
	Table maintained by James R. Hamilton <jrh@jrh.gts.org> [9.92].

  via anonymous ftp:						[1.93]
    FTP Site:		IP Address:	Path/File Name:		Size:
    -----------------------------------------------------------------
    ftp.ics.uci.edu	[128.195.1.1]	mh/mh-6.8.tar.Z		1.8MB
    louie.udel.edu	[128.175.1.3]	portal/mh-6.8.tar.Z	1.8MB
    ftp.uu.net		[192.48.96.9]	mail/mh/tar/mh-6.8.tar.Z-split/	256K*7
					README, part01, ..., part08

    Or use archie to find a site near you. [12.92]

  via uucp:
    The following shell script is one example of how to queue jobs for
    downloading the files from UUNET via UUCP:

	#!/bin/sh
	SRC=uunet!~/mail/mh/tar/mh-6.8.tar.Z-split
	DST=/usr/spool/uucppublic/mh
	uucp -d -r $SRC/README $DST/README
	for f in 1 2 3 4 5 6 7 8
	do
		uucp -d -r $SRC/part0$f $DST/part0$f
	done

    UUNET subscribers would then call us normally using uucico.  Others
    can use UUNET's 900 number to access UUNET via anonymous uucp.  The
    number is 1-900-468-7727.  The login name is "uucp" and there is no
    password.  The following is a sample Systems/L.sys entry:
    
	uunet Any ACU 19200 19004687727 "" \d\r ogin:-\r-ogin: uucp
    
    The modems on the 900 lines are Telebit WorldBlazers.  These modems
    negotiate V.32bis, V.32, 2400, 1200, and last with (Turbo)PEP tones.
    The cost is 50 cents per minute (as of Jan 93) which will appear on
    your next phone bill.  For more information about the 900 service,
    retrieve uunet!~/help or send e-mail to postmaster@uunet.uu.net
    (uunet!postmaster).  -- Eric Ziegast <ziegast@uunet.uu.net>

  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. [12.92]

    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.  [1.93]

  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:

	   Univeristy of California at Irvine
	   Office of Academic Computing
	   360 Computer Science
	   Irvine, CA  92717  USA

	   +1 714 856 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.  [1.93]

  
Subject: What references exist for MH?
From: Intro-4

  Book:
    MH & xmh: E-mail for Users & Programmers.  Second edition. Jerry Peek.
    ISBN 1-56592-027-9.  $29.95.  728 pages.
    O'Reilly & Associates, Inc.
    Book Orders:
      US and Canada: 800-998-9938. Fax: 707-829-0104.

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

    To get a list of non-US distributors, send a note to
    nuts@ora.com or call +1-707-829-0515.

    Examples from this book are in:  
    ftp.uu.net		[137.39.1.9]
	published/oreilly/nutshell/MHxmh/MHxmh2.tar.Z		54KB

    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 e-mail in general.  [12.92]

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

  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.ics.uci.edu	[128.195.1.1]	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.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 anonymous ftp:
      pit-manager.mit.edu  [18.172.1.27]      /pub/usenet/news.answers/mh-faq.Z
      ftp.uu.net 	   [137.39.1.9]   /archive/usenet/news.answers/mh-faq.Z
      ftp.cs.ruu.nl	   [131.211.80.17]    /pub/NEWS.ANSWERS/mh-faq

    via mail:
      Each of the following addresses is following by commands which
      should be included as the body of the message.
      
      mail-server@pit-manager.mit.edu
        send usenet/comp.mail.mh/mh-faq

      mail-server@cs.ruu.nl
	send pub/NEWS.ANSWERS/mh-faq
	
  
Subject: ! What other MH software is available?
From: Intro-5

  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.  --James Perkins <jamesp@sp-eug.com> [1.93]

  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.  --James Perkins <jamesp@sp-eug.com>

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

    cs.utk.edu 	[128.169.201.1]	pub/xmh.shar.Z		161KB

    Here's a version of xmh that includes MIME.  --Harald Tveit
    Alvestrand <hta@boheme.er.sintef.no> [1.93]

    aun.uninett.no		pub/unix/mixmh-0.2.tar.Z

  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.
    --Dale Carstensen <dlc@c3file.c3.lanl.gov>

    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.

  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.  --Stephen
    Gildea <gildea@expo.lcs.mit.edu>

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

    primost.cs.wisc.edu [128.105.2.115] pub/mh-e.el.Z		36KB

    mime-compose.el allows one to easily include MIME components into
    a mh-e message.  --Marc Andreessen <marca@ncsa.uiuc.edu>  [1.93]

    archive.cis.ohio-state.edu
      pub/gnu/emacs/elisp-archive/misc/mime-compose.el.Z	19KB

  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.
    --James Perkins <jamesp@sp-eug.com> [1.93]

    ftp.uu.net	[137.39.1.9]
    comp.sources.unix/volume12/vmail/part0*.Z		46KB

    ftp.ucs.ubc.ca 	[137.82.27.61]	pub/mh/vmail[1-3]of3.Z	58KB
    Or mail requests to James Perkins <jamesp@sp-eug.com>.  [1.93]

  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.  --James Perkins <jamesp@sp-eug.com> [1.93]

    ftp.ucs.ubc.ca 	[137.82.27.61]	pub/mh/vmailtool.Z	18KB
    or mail requests to James Perkins <jamesp@sp-eug.com>. [1.93]

  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:

    convex.com	[130.168.1.1]	pub/plum/plum*		55KB
    or mail requests to Tom Christiansen <tchrist@convex.com>.

  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 e-mail novice" and "sophisticated user".
    Hooks are provided to allow the user to customize and add new commands.

    ftp.eos.ncsu.edu	[152.1.9.25]	/pub/bill.tar.Z

  metamail
    Metamail is a package that can be used to convert virtually ANY
    mail-reading program on UNIX into a multimedia mail-reading program.
    It is an extremely generic implementation of MIME (Multipurpose
    Internet Mail Extensions), the proposed standard for multimedia 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 multimedia 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 --Nathaniel Borenstein <nsb@thumper.bellcore.com>

    thumper.bellcore.com 	[128.96.41.1]	/pub/nsb/mm.tar.Z

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

	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.  --Andrew
    Waugh <ajw@mel.dit.csiro.au>

  QueueMH
    QuemeMH is an e-mail based service request and tracking system
    based on the Rand Mail Handler. --Barbara Dyker
    <dyker@teal.csn.org>  [1.93]

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

  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.

    For more info, write to <info@rootgroup.com>.  [3.93]

  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

    --Jerry Peek <jerry@ora.com>

    The authorized distributor for PC/MH is:

	NEI, Inc.
	210 Technology Drive, STE 210
	Irvine, Ca 92718
	Phone: +1 714-753-8588
	FAX:   +1 714-753-8593
	Internet: info@netix.com

    --Shannon Yeh <yeh@orion.oac.uci.edu>

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

  
Subject: How can I print a MH manual?
From: Intro-6

  To order a copy by mail, see the section on how to get MH by mail in
  "Where can I get MH?"  Also, check "What references exist for MH?"

  To print your own copy, first obtain the MH sources ("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.ics.uci.edu	[128.195.1.1]	mh/doc/tutorial.ps.Z		64KB
					mh/doc/ADMIN.ps.Z		57KB
					mh/doc/MH.ps.Z (man pages)	273KB  
    ftp.uu.net		[137.39.1.9]	same files, but in dir mail/mh/doc

  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

  --Bill Wohler and Jos Vos <jos@bull.nl> [1.93]  

  
Subject: How should I report bugs?
From: Intro-7

  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: How can I convert from my mailer to MH?
From: Intro-8

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

  Section D.4 (C.4) of the MH book 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).
  --Jerry Peek <jerry@ora.com>

  Vivek Khera <khera@cs.duke.edu> rewrote this in Perl since the
  original script doesn't work for some people.  See appendix
  "babyl2mh.pl." [1.93]

  Juergen Nickelsen <nickel@cs.tu-berlin.de> provides yet another
  short script.  He says,

  "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." [1.93]

  Use the following to convert a Babyl format file to UNIX mail format.
  --Barry A. Warsaw <warsaw@nlm.nih.gov>.
  durer.cme.nist.gov	[129.6.32.4]	pub/gnu/rmailtovm.el

  See also MH book appendix D (appendix C).

  
Subject: What machines does MH run on?
From: Building MH-10

  If you have a computer running UNIX, you can probably run MH.
  --Jerry Peek <jerry@ora.com>

  
Subject: How do I build MH?
From: Building MH-11

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

  
Subject: What options should I use?
From: Building MH-12

  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 roboust 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@expo.lcs.mit.edu>

  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 e-mail 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. [12.92]

  
Subject: Fixing "post: problem initializing server; [BHST] no servers available"
From: Building MH-13

  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.

  3. Your mtstailor has its "servers:" pointing to a non-existant
  machine or a machine which is a) not reachable or b) not running the
  sendmail daemon.  --Peter Marvit <marvit@hplabs.hpl.hp.com>

  
Subject: Where can I get POP3?
From: Building MH-14

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

  
Subject: What do I do if scan shows the wrong date?
From: Building MH-15

  Upgrade to MH 6.8. [1.93]

  
Subject: Why slocal writes messages to system maildrop that from(1) can't read.
From: Building MH-16

  Upgrade to MH 6.8 and set the RPATHS option.  Better yet, use a more
  MH-like command instead: "scan -file $MAIL".  [1.93]

 
Subject: Why does repl add a "Re:" to a message that already has one?
From: Building MH-17

  I carefully reconfigured and rebuilt MH from scratch and the problem
  went away.  --Larry McVoy <lm@slovax.Eng.Sun.COM>

  
Subject: Does MH support IMAP2 (RFC 1064)?
From: Building MH-18

  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.  --John Romine <jromine@ics.uci.edu>

  
Subject: Why does "mailgroup mail" only affect inc but not slocal?
From: Building MH-19

  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-writeable.  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. --John Romine
  <jromine@ics.uci.edu> [1.93]

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

  
Subject: Where can I read about slocal and the format of the .maildelivery file?
From: Using MH-30

  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 "/usr/local/lib/mh/rcvstore -create +lists/mh-users"
	cc  mh-users  | A "/usr/local/lib/mh/rcvstore -create +lists/mh-users"
	to  babble    | R "/usr/local/lib/mh/rcvstore -create +lists/babble"
	cc  babble    | R "/usr/local/lib/mh/rcvstore -create +lists/babble"
	default -     > ? /usr/spool/mail/wohler

  Your .forward file may look like (quotes necessary):

	"| /usr/local/lib/mh/slocal -user your_login"

  In some implentations, the "-user your_login" is not needed.  If
  not, manually running slocal with the flag will produce an error.

  See also chapter 11 in the MH book.

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

  
Subject: How do I include messages in repl with or without ">"?
From: Using MH-31
    
  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.
    
  --Alan Thew <qq11@liv.ac.uk>, Mike Schwager <schwager@cs.uiuc.edu>,
  James T Perkins <jamesp@sp-eug.com> [1.93]

  See also MH book sections 6.7.4, 6.7.5, 9.4.1 (9.3.1).

  
Subject: How can I eliminate duplicate copies of letters to myself?
From: Using MH-32

  Add these two lines to your MH profile file:

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

  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

  - Add an "Fcc: foldername" to the headers of messages you send.
    That will drop a copy of the message in the folder "foldername".
    You can do this for *all* MH messages you send (not just with
    repl) by putting an "Fcc:" entry in your personal copy of the
    files "components", "replcomps", and "forwcomps" in your MH
    directory.  (If you make a "distcomps" file, it needs
    "Resent-Fcc:".)  For more info, see the man pages comp(1),
    repl(1), forw(1), dist(1) and mh-mail(5). --Jerry Peek <jerry@ora.com>

  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.  --Bill Wohler

  See also MH book sections 6.7.2, 8.6.

  This 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, by listing the name of that mailing list in your
  alternate mailboxes.  --Alec Wolman <wolman@crl.dec.com>

  
Subject: How would one go about reading Usenet with MH?
From: Using MH-33

  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.  --Stephen Gildea <gildea@expo.lcs.mit.edu>

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

  First, create a symbolic link from your mail directory (ie. usenet) to
  your news directory (ie. "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		+
	.
	.

  See also MH book section 8.7.

  
Subject: Can I append MH messages (ie. +inbox/1) to a UNIX mailbox format file?
From: Using MH-34

  Yes, see support/general/packmbox.sh in the distribution.  [1.93]

  
Subject: How can I include my signature?
From: Using MH-35

  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/replcomps
	body:component="> ",compwidth=2
	:--
	:Eric Ziegast      	ziegast@uunet.uu.net
	:UUNET Technologies	uunet!ziegast

     To use the replcomps 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@sun418.nas.nasa.gov> and Tom Wilmore
     <sastjw@unx.sas.com> have sample scripts to do these.

  1c) Section 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).
    --Jerry Peek <jerry@ora.com> [9.92]

  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) And if you use Emacs with mh-e, C-c C-s will append the signature.

  --Eric W. Ziegast <ziegast@uunet.uu.net> & Hardy Mayer
  <hardy@golem.ps.uci.edu> except where noted.

  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 everytime 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]

  Ask Tom Christiansen <tchrist@convex.com> for more details.

  
Subject: What to do with "Problems with edit - draft removed".
From: Using MH-36

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

	#! /bin/sh
	/usr/ucb/broken_vi $*
	exit 0

  Alternatively, compile MH with the ATTVIBUG option.

  Then complain to your vendor that "vi" is broken, and they should
  fix it.  --John Romine <jromine@ics.uci.edu>

  
Subject: How do I call my editor with arguments?
From: Using MH-37

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

	#/bin/sh
	<youreditor> <yourargs> $*
	exit 0

  --John Romine <jromine@ics.uci.edu>

  You might find it useful to make <youreditor> $EDITOR, or to use
  different arguments depending on your EDITOR environment variable.
  --Ray Nickson <Ray.Nickson@comp.vuw.ac.nz>

  
Subject: ! How do I debug my .maildelivery file?
From: Using MH-38

  Use as many of the following as necessary.

  Put a message into a file and call slocal directly on it.

	/usr/local/lib/mh/slocal -user $USER -verbose -debug < test-msg 

  Modify your .forward to look like:

	"|/bin/sh -c 'exec >> /tmp/out 2>&1; /usr/local/lib/mh/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;
	/usr/local/lib/mh/rcvstore +foo"

  The previous examples are broken up for readability; the text must
  appear on one line.

  See also MH book section 11.11. [3.93]

  
Subject: How can I digestify the messages in a folder for mail to another user?
From: Using MH-39

  How about:

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

  These messages can be un-digestified :-) by the MH burst(1) program.
  --Jerry Peek <jerry@ora.com> and Bill Wohler

  See also MH book sections 6.8, 7.9.

  
Subject: Can I run my message through a program (ie. ispell) before sending?  
From: Using MH-40

  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 6.2.1 of the MH book. --Jerry Peek <jerry@ora.com>

  
Subject: Can I append MH messages to a GNU Emacs rmail BABYL-format file?
From: Using MH-41
      
  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: Is there documentation for mh-e?
From: Using MH-42

  Yes, sort of.  Run "C-h m" (describe-mode) in both scan and
  letter modes to see which commands and variables are available.
  Browsing the code is also helpful.

  
Subject: How can I change my return address?
From: Using MH-43

  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
  /usr/local/lib/mh into your Mail directory and add a line like the
  following after the Subject header replacing my address with your
  address:

	Reply-To: wohler@sap-ag.de

  [12.92]
  
Subject: How can I change my From header?
From: Using MH-44

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

	localname: desired_host_name

  --Bill Wisner <wisner@netcom.com> [12.92]

  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.  --Jerry Peek <jerry@ora.com>  [12.92]

  
Subject: What to do with "bad address 'xxx' - no at-sign after local-part".
From: Using MH-45

  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

  --Owen Rees <rtor@ansa.co.uk> [1.93]

  
Subject: + How can I search through multiple folders?
From: Using MH-46

  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 7.2.9, 7.8.3. [3.93]

  
Subject: + Why isn't slocal working?
From: Using MH-47

  If slocal doesn't appear to be doing anything, run the following

	/usr/local/lib/mh/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?" [3.93]

  
Subject: + Fixing "post: problem initializing server; [RPLY] 503 Sender already specified"
From: Using MH-48

  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.  --Paul Pomes
  <paul@uxc.cso.uiuc.edu> [3.93]

  
Subject: How can I get xmh to use Emacs as the editor?
From: Xmh-50

  The modifications to xmh to support an external editor, annotations,
  and an append command can be found in the these places.  --Bob
  Ellison <ellison@sei.cmu.edu>

  export.lcs.mit.edu				R5fixes/xmh.editor/*
  ftp.sei.cmu.edu				pub/xmh

  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".  --Andrew Wason
  <aw@bae.bellcore.com> 

  
Subject: Does xmh support subfolders?
From: Xmh-51

  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.  --Steve Malowany <malowany@cenparmi.concordia.ca>

  But:

  The R5 version of xmh does *not* handle nested sub-folders.  If you
  create a folder as 'grab/some/bandwidth', xmh displays this
  foldername 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.
  --John Cooper <jsc@saxon.Eng.Sun.COM>

  See also MH book section 15.6.2 (14.6.2).

  
Subject: How do I precede included messages with ">" when replying in xmh?
From: Xmh-52

  Include the following line in your ~/app-defaults/XMh file:

	Xmh*replyInsertFilter: "sed 's/^/> /'"

  --Len Makin <len@mel.dit.csiro.au>

  or, 

	Xmh.ReplyInsertFilter: /usr/local/lib/mh/mhl -form repl.filter

  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. --Andy Linton <andy.linton@comp.vuw.ac.nz>

  See also MH book sections 15.1.4 (14.1.4), 16.3.3 (15.2.3).

  
Subject: Glossary
From: Appendix

  MH	Mail Handler
  POP3	Post Office Protocol, RFC 1225	
  MMDF	Multi-channel Memo Distribution Facility
  MIME	Multipurpose Internet Mail Extensions

  
Subject: Acknowledgements
From: Appendix

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@convex.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@texas.dk>	      Edward Vielmetti <emv@ox.com>

  
Subject: Warranty
From: Appendix

[The following statement epitomizes the ridiculous state of affairs in
our country (I'm an American) and can be ignored outside the US...]

No Warranty: Because this article is provided free of charge as a
service to comp.mail.mh readers, we provide absolutely no warranty, to
the extent permitted by applicable state law.  This article is
provided "as is" without warranty of any kind, either expressed or
implied, including, but not limited to, the implied warranties of
merchantability and fitness for a particular purpose.  Should the
information prove defective, you assume the cost of all necessary
servicing, repair or correction.

  
Subject: Switching xmh's editor
From: Appendix

#! /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: Appendix

#!/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: Appendix

#!/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: Appendix

>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 */


Local Variables:
mode: outline
outline-regexp: "^Subject:"
fill-prefix: "  "  
eval: (progn (setq buffer-read-only nil) (hide-body))
End:


