MH & xmh

E-mail for Users and Programmers

Jerry Peek

Publisher: O'Reilly, 1991, 553 pages

ISBN: 0-937175-63-3

Keywords: Programming

Last modified: May 27, 2021, 11:15 p.m.

Learning how to customize your e-mail environment can save you time and make communicating more enjoyable. MH & xmh: E-mail for Users and Programmers, explain how to use, customize, and program with the MH electronic mail commands, available on virtually any UNIX system. The handbook also covers xmh, and X Window System client that runs MH programs.

The basics are easy. But MH lets you do much more than what most people expect an e-mail system to be able to do. This handbook is packed with explanations and useful examples of MH features, some of which the standard MH documentation only hints at.

Contents include:

  • Introduction to MH and xmh
  • Complete descriptions of Standard MH and xmh
  • Examples and tutorials for customizing the mail systems
  • Detailed shell programming tutorial using MH in examples
  • Manual pages for MH and xmh
  • Many useful appendices
  1. MH Features and Operation
    1. What is E-mail?
    2. How UNIX E-mail Works
      1. E-mail Transport Agents
      2. E-mail User Agents
    3. Addressing E-mail
    4. MH Commands
    5. Command Line Switches (Options)
    6. Message Numbers, Ranges, and Sequences
    7. MH Profile
    8. What Computers Support MH?
    9. History
      1. MH
      2. xmh
    10. Obtaining MH and xmh
  2. MH and the UNIX Filesystem
    1. An Overview of the UNIX Filesystem
    2. MH Programs (Binaries) Directory
    3. MH Library Directory
    4. System Mailboxes
    5. A User's Directories
      1. bin Directory
      2. The MH Directory and Subdirectories
    6. Special Files for xmh
    7. Links
      1. What's a Link?
      2. Technical Stuff About Links
    8. Caution about MH Files and Newline Characters
  3. Setting Up for MH and xmh
    1. Getting Mail Ready to Read
    2. Setting Up MH
  4. Tour Through MH
    1. Getting Started
    2. Sending Some Mail: comp, send
    3. Reading New Mail: inc, show, next, prev
    4. Replying to Messages: repl
    5. Forwarding Messages: forw
    6. Finding Mail: scan, pick
    7. Cleanup: rmm
    8. The -help Switches
    9. Other MH Features
  5. Reading Your Mail with MH
    1. Showing and Printing Messages
      1. The Current Message
      2. Messages You Haven't Read
      3. Changing showproc for Viewing and Reading
      4. Using the mhl showproc
      5. Without a showproc
    2. More About scan
      1. scan Format Files
      2. Scanning Backward
      3. Scanning a Mailbox File
    3. Checking for Mail Waiting: msgchk
      1. On Your Local Host
      2. Across the Network with POP
    4. Other Features of inc
      1. Logging New Mail with -audit
      2. Less-Used inc Features: -silent, nochangecur, +folder
      3. Using inc with POP
  6. Sending Mail with MH
    1. Sending an MH Draft Message: An Overall View
      1. Making the Draft from the Template File
      2. Editing the Draft with prompter
      3. What Now? — and the whatnow Program
    2. Changing Default Editors
      1. Editor-next
      2. Replacing the prompter Editor
    3. MH Aliases
      1. Making MH Aliases
      2. Showing MH Aliases with ali
      3. Aliases in Your Transport Agent
    4. Headers and Addresses
      1. Components You Add to a Header
      2. Signature
    5. Working with Draft Messages
      1. Single Draft Messages
      2. Draft Folder
    6. The comp Command
    7. Replying to mail with repl
      1. Selective Replies with -query
      2. Selective Replies with -nocc and -cc
      3. Changing the Message Header with replcomps
      4. Reading the Original Message Through Your Editor
      5. Including the Original Message with -filter
      6. Displaying the Original Message
      7. Annotating the Original Message
    8. Forwarding Copies of Messages: forw
      1. Formatting Forwarded Messages
      2. More Useful Tips
      3. Annotating the Original Messages
    9. Distributing Messages with dist
      1. A distcomps File
      2. Annotating Original Message
    10. Sending Files: The mhmail Command
  7. Finding and Organizing Mail with MH
    1. Folders
      1. Your Current Folder: folder
      2. Using the folder Command to Create and Change Folders
      3. Moving and Linking Messages: refile
      4. Subfolders
      5. Relative Folder Names
      6. Folder -fast
      7. List of All Folders: The folders Command
      8. Folder Stacks
      9. Going to Previous Folder
      10. Renumbering Messages in a Folder
    2. Finding Messages with pick
      1. pick Switches
      2. Passing picked Message Numbers with Backquotes
      3. Storing picked Message Number in MH Sequences
      4. Storing Sequence Name in Your MH Profile
      5. Combining pick Switches
      6. picking Miscellaneous Components
      7. How Searches Find Messages
      8. Searching a Message Range or Sequence
    3. More About Sequences
      1. Adding Messages to a Sequence
      2. Deleting Messages from a Sequence
      3. Listing Sequences
      4. Previous-Sequence, Sequence-Negation
      5. The unseen Sequence
      6. The cur Sequence
      7. Public and Private Sequences
    4. Sorting Messages; sortm
      1. New Feature in MH 6.7 sortm: Sort by any Component
      2. New Feature in Version 6.7 sortm: Date Limit
    5. Removing Messages (and Getting Them Back)
      1. How rmm Removes Messages
      2. Recovering a Removed Message
      3. Changing Your rmmproc
    6. Removing Folders: rmf
    7. Annotating Message Headers: anno
    8. Using Links
      1. Making links
      2. Are These Two Messages Linked?
    9. Bursting Forwarded Messages and Digests
  8. Making MH and xmh Work Your Way
    1. Why Customize MH and xmh
    2. Running an MH Command
    3. An MH Profile, in General
    4. Changing MH Directory Name
    5. Setting Access Permissions for Other Accounts
    6. Defining Alternate Mailboxes
    7. Sharing Other Users' Folders
    8. MH Library Directory
    9. Draft Message Template Files
      1. How the Draft Message is Built
      2. The components File
      3. The replcomps File
      4. The forwcomps File
      5. The distcomps File
      6. Automatic Signature on End of Messages
  9. New Versions of MH Commands
    1. What's a New Version of a Command
    2. Making a New Command Version
      1. Setup Before You Make First New Version
      2. What To Do for Each New Version
    3. Verisons of repl
      1. Including Original Message in Your Reply
      2. Standard Replies
      3. Followup Mail Messages
    4. Version of comp: 'While You Were Out' Messages
    5. Version of prompter: prompter,nopre
    6. Version of send: push
    7. Versions of scans
      1. Scanning a Range of Messages: cur, c10, 15, etc.
      2. Scan and Show Time When Message Sent
      3. Scan Messages Waiting: msgscan
    8. Version of folder: Fast Folder Change
  10. MH Formatting
    1. mhl
      1. Formatting the Message Header
      2. Formatting the Message Body
      3. Default mhl format file for show, next, prev,: mhl.format
      4. forw Filter Files
      5. Screen Sizes and moreproc
    2. MH Format Strings
      1. scan Format Strings
      2. scan Format Files
      3. The scan.answer Format File
      4. The Default scan Format File
      5. Adapting the Default scan Format File: scan.hdr
      6. scan Widths
      7. The scan.dateparse Format File
      8. The scan.more Format File
  11. Introduction to Shell Programming for MH
    1. Two Examples
    2. Writing a Simple Shell Script
    3. What's a Shell, Anyway?
      1. How Shells Run Other Programs
      2. Interactive Use vs. Shell Scripts
      3. Shell Search Paths
      4. Bourne Shell Used Here
    4. Testing How Your System Executes Files
    5. Using Shell and Environment Variables
      1. Shell Variables
      2. Environment Variables
    6. Quoting
    7. Command Substitution
    8. Using Exit Status
      1. Seeing Status in $?
      2. Testing Exit Status with if
    9. Loops that Tests Exit Status
      1. Looping Until a Command Succeeds
      2. Looping Until a Command Fails
    10. Pattern Matching in case Structures
    11. Exiting a Script
      1. Exiting Normally with exit
      2. Trapping Exits Caused by Interrups
    12. Handling Command Line Arguments
      1. With the $* Parameter
      2. With a for Loop
    13. More on for Loops
    14. Testing Files and Strings
    15. Finding Program Name; Multiple Program Names
    16. Debugging
      1. Use -xv
      2. Exit Early
      3. Quoting
      4. Missing or Extra esac, ;;, fi, etc.
      5. Line Numbers Reset Inside Redirected Loops
    17. Techniques and Tips for Programming with MH
      1. A Test Mail Setup
      2. Mailing Files and Command Output with mhmail
      3. The mhpath Command
      4. Getting Information from MH Profile
      5. Getting Information from the Environment
      6. Changing the MH Environment
      7. Writing Your Own Draft Message Editor(s)
      8. Using scan Format Strings to Get Information
      9. Watch Out for the MH Profile
      10. Problems with folder, inc, and refile
  12. MH Shell Programs
    1. Some Notes About Shell Scripts
    2. Add Files to Your Draft Messages: append
      1. Listing of append
      2. Explanation of append
    3. Finish Draft Messages in Draft Folder: recomp
      1. Listing of recomp
      2. Explanation of recomp
    4. Refile Message into Folder, then Reply to It: replf
      1. Listing of replf
      2. Explanation of replf
    5. Get Information from MH Profile with mhprofile
      1. Listing of mhprofile
      2. Explanation of mhprofile
    6. List Folders in Columns with fols
      1. Listing of fols
      2. Explanation of fols
    7. A Better Way to Remove Messages: rmmer
      1. Listing of rmmer
      2. Explanation of rmmer
      3. Removing Messages Deleted by rmmer: rm_msgs.at
      4. Removing Messages Deleted by rmmer: rm_msgs.cron
    8. A Better xmh printer: xmhprinter
      1. Listing of xmhprinter
      2. Explanation of xmhprinter
    9. Work on Draft Folder: scandrafts
      1. Listing of scandrafts
      2. Explanation of scandrafts
    10. Resend a Returned Message: resend
      1. Setup and Listing, resend and resend.fixmsg
      2. Explanation of resend and resaend.fixmsg
    11. Add or Change Subject Lines to Messages: fixsubj
      1. Listing of fixsub
      2. Explanation of fixsubj
    12. Draft Editor for dist: distprompter
      1. Listing of distprompter
      2. Explanation of distprompter
    13. Custom Message Printing: showpr
      1. Listing of showpr
      2. Explanation of showpr
  13. Tour Through xmh
    1. Getting Started
    2. Running xmh
    3. What's in the xmh Window
    4. Send Mail to Yourself
    5. Getting New Mail
    6. Replying to Mail
    7. Changing Sizes of Each Area
    8. Searching, Forwarding, and Removing Messages
    9. Forwarding Messages
    10. Removing Messages
    11. Leaving xmh
    12. More About xmh
  14. Using xmh
    1. Sending Mail
      1. Working with Draft Messages; The drafts Folder
      2. Changing Draft Message headers
      3. More About Forwarding
      4. More About Replying
      5. Resending a Message with Use as Composition
    2. Scrollbars
      1. When They Appear
      2. Length and Position of the Thumb
      3. Moving the Thumb
    3. Editing in xmh
      1. Text Editing Commands
      2. Composition Window Buttons
      3. Line Wrapping
      4. Copy and Paste
    4. Reading Your Mail
      1. Incorporate New Mail
      2. View Window
      3. Line Folding
    5. Printing Your Mail
    6. Organizing Your Mail with Folders
      1. Making a New Folder
      2. Selecting Another Folder
      3. Moving Messages Between Folders
      4. Linking (not Copying) Messages Between Folders
      5. Deleting (and Restoring) Messages
      6. Rescan Folders
      7. Viewed Message vs. Viewed Folder
      8. Packing a Folder
      9. Sorting a Folder
      10. Deleting a Folder
    7. Introduction to Sequences
    8. Using Pick
      1. A pick Example
      2. Using the Bog - Or Button
      3. Finding Other Components, Skipping a Component
      4. Bottom Area of the Pick Window
    9. Modifying Sequences
    10. The Master xmh Window
  15. Customizing xmh
    1. Command Line Options
      1. MH Directory Path
      2. Initial Folder
      3. Toolkit Options
    2. Changing How Commands Work
      1. HideBoringHeaders
      2. PrintCommand
      3. ReplyInsertFilter
      4. SendBreakWidth
      5. SendWidth
      6. SkipCopied, SkipDeleted, SkipMoved
      7. TocGeometry
      8. TocWidth
      9. ShapeStyle
    3. Changing Buttons; Accelerators
      1. New Accelerator for Compose Message
      2. Redefining Composition Window Buttons
      3. A New Buttonbox for the Main Window
      4. Adding Color
      5. Moving a Message to a Specific Folder
    4. Conflict Between xmh and MH Customization
      1. Effect of MH Profile Defaults, Making .xmh_profile
      2. xmh Ignores MH Environment Variable: Workaround
    5. Using Template Draft Files for Headers
    6. Changing Table of Contents Format
      1. Introduction
      2. Using a Standard scan Format File
      3. A Wider Table of Contents
    7. Changing the print Command
      1. Grabbing Error Output
      2. Printing with lpr and lp
      3. Other Printer Commands, Including a Shell Script
    8. Snooping on xmh
      1. Use Accounting Information
      2. Make a Front End Shell Script
      3. Use the Source, Luke
  1. Where Can You Go from Here?
    1. Incoming Mail Handling with mhook(1)
    2. MH BBoards
    3. More Information About MH
      1. Documents Distributed with MH
      2. The MH Source Code
      3. USENET Newsgroup, Mailing Lists
  2. Reference List
  3. Converting Messages to MH
    1. System Mailbox and Other Mail Files
    2. Converting from UNIX mail Program
    3. Converting from VMS Mail
      1. the vmsmail2mh Shell Scipt
      2. Explanation of vmsmail2mh Script
    4. Convering from GNU-emacs Rmail
      1. The babyl2mh Shell Script
      2. Explanation of babyl2mh Scipt
    5. Converting from Other Mail Systems
  4. Copies of Files Over the Network
    1. Obtaining the Files and Programs
    2. MH
  5. The execit Programs
    1. How execit Works
    2. Getting the Program FIles
    3. The Program Files
      1. execit.c
      2. execit.include
      3. execit.link
  6. Customizing xmh: Configuration Files
    1. Overview
    2. clients/xmh/Xmh.sample File
    3. app-defaults/Xmh File
    4. xmh.Xdefaults File
  7. MH Reference Pages

Reviews

MH and xmh

Reviewed by Roland Buresund

Good ******* (7 out of 10)

Last modified: May 21, 2007, 3:12 a.m.

It is still an active community that uses MH, and in here you get to understand why. You'll never be able to get back to your old tools and be content after reading this.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required