


EXMH(1)                   User Commands                   EXMH(1)



NAME
     exmh-use - A more advanced user guide to the exmh mail  user
     interface.

INTRODUCTION
     This man page provides more detail information  about  using
     _e_x_m_h,  such  as managing nested folders, filtering mail, and
     using  an  external  editor.   The  _e_x_m_h-_c_u_s_t_o_m   man   page
     describes  customization  of _e_x_m_h, and the _e_x_m_h-_r_e_f man page
     describes all the buttons and menus of _e_x_m_h.

     _E_x_m_h uses the regular MH programs to  manipulate  your  mail
     folders  and  messages.   This  means  it is compatible with
     command-line use of MH programs, and its actions  should  be
     familar if you are an experienced MH user.  If you are a new
     MH user, then the details of running MH programs  is  hidden
     behind the graphical interface.

     This man page will occasionally make references to  advanced
     MH  features like scan formats and reply filters.  If you do
     not know about these you can ignore the comments.  If you do
     know  about  them,  however,  you  will see that _e_x_m_h can be
     affected by settings for these features in your MH profile.

OVERVIEW OF FEATURES
     As well as providing basic  MH  functionality,  _e_x_m_h  has  a
     number of other features:

     MIME support.  _E_x_m_h can display MIME (Multipurpose  Internet
     Mail  Extensions) messages, either directly or with the help
     of the _m_e_t_a_m_a_i_l package.  The built-in editor lets you  com-
     pose  enriched  text messages and insert files as parts of a
     multipart message.

     Sun Attachments.  These attachments are cooerced  into  MIME
     format.   Special  treatment  is given to certain common sun
     attachments like Calendar Appointments.  You cannot create a
     Sun format attachment within _e_x_m_h, hoever.

     Nested Folder Display.  A display of your folders appears as
     a  set  of  labels, one for each folder.  This is similar to
     _x_m_h, except that the folder labels are highlighted to  indi-
     cate  the current folder, the target folder for moves, fold-
     ers with unread mail in them, and folders with nested  fold-
     ers  under  them.   _E_x_m_h  supports arbitrarily nested folder
     structures, unlike _x_m_h, which only supports a  single  level
     of nesting.

     Scan Listing Highlights.  The scan  listing  (folder  table-
     of-contents)  is  also  highlighted  to indicate the current
     message, unread messages, and messages marked  for  move  or
     delete.   Either  color  or monochrome highlighting is used,



Exmh 1.6.1          Last change: May 23, 1995                   1






EXMH(1)                   User Commands                   EXMH(1)



     depending on your display.

     Facesaver bitmap display.  If you have a facesaver  database
     on  your system, _e_x_m_h displays the bitmap face of the person
     that sent the current message (or their organization).

     Background processing.  You can set _e_x_m_h to run _i_n_c periodi-
     cally,  check  for  new  mesages  arriving asynchronously in
     folders, run the MH _m_s_g_c_h_k program, or count up the messages
     in your mail spool file.

     Mail filtering.  _E_x_m_h is  designed  to  work  with  external
     agents that filter arriving mail into different folders.

     Unseen folder display.  If you use a  system  that  delivers
     mail into various folders, not just inbox, then you have the
     problem of finding what  folders  have  unseen  messages  in
     them.   _e_x_m_h  provides feedback in the folder display so you
     can tell which folders have new messages.   Also,  the  Next
     command  will  chain to the next folder with unread messages
     if you are at the end of the current folder.

     Pick.  An interface to MH _p_i_c_k lets you select  messages  by
     patterns in the header fields, by date, or by sequence name.
     The interface is similar, but not identical, to the _x_m_h pick
     interface.

     Fast Search.  Because _p_i_c_k can be slow, _e_x_m_h also implements
     fast  searching  over the current folder listing and current
     message body.

     Glimpse interface.  Glimpse is a full text search tool  from
     the  University  of Arizona.  It has a low overhead indexing
     scheme that costs about 10% to  12%  of  your  mail  storage
     space.   It  is quite useful to find messages in any of your
     many folders.

     Editor interface.  You can hook _e_x_m_h to your favorite editor
     using  the _e_x_m_h-_a_s_y_n_c script.  Or, Tcl-based editors such as
     _m_x_e_d_i_t can interact with _e_x_m_h directly.  As the  default,  a
     simple built-in editor named _s_e_d_i_t is provided.

     Keybinding User Interface.  Bindings for common editting and
     cursor  motion  commands  are  exposed in a UI that lets you
     choose keystroke sequences to match your expectations.   You
     can  also define key bindings for Tcl commands that are part
     of the implementation.

     Aliases User Interface.  A browser for your MH aliases  lets
     you  define  new  aliases  and insert aliases into mail mes-
     sages.




Exmh 1.6.1          Last change: May 23, 1995                   2






EXMH(1)                   User Commands                   EXMH(1)



     Pretty Good Privacy (PGP).  If you have PGP, you can use  it
     from _e_x_m_h to digitally sign, encrypt, and decrypt messages.

     Preferences User Interface.  There are many knobs and  dials
     you can adjust to control the behavior of _e_x_m_h.

     URL Smarts.  Exmh can scan for embedded URLs  in  your  mes-
     sages,  and  it can look for X-URI: mail headers.  These are
     turned into active text buttons.  Click  on  them  and  exmh
     asks your favorite Web browser to display the URL.

     User Programming.  If the preference settings are not enough
     for you, you can program _e_x_m_h more directly.  You can define
     new buttons and menus and add new Tcl code to its  implemen-
     tation.  This is described in the _e_x_m_h-_c_u_s_t_o_m man page.

GETTING STARTED
     Mostly likely you are  already  an  MH  user.   If  not,  go
     through the tutorial in the basic _e_x_m_h man page.

     If you previously used a mail reader like Elm or Sun's mail-
     tool  that manages mail folders in mbox-like files, then you
     can use the _I_m_p_o_r_t _m_a_i_l_b_o_x _f_o_l_d_e_r_s menu entry to  copy  your
     old  folder contents into the folders manage by MH and _e_x_m_h.
     This menu entry is under the folder More... menu.

     There is an extensive Preferences system for _e_x_m_h that  lets
     you  tune  it  in many ways. Throughout the man page, refer-
     ences to Preference settings will be  made  when  there  are
     tunable  parameters  associated with a feature.  A more com-
     plete description of the Preference facility is given in the
     _e_x_m_h-_c_u_s_t_o_m man page.

KEYBOARD COMMANDS
     Several of the folder and message operations have  keystroke
     bindings  so  you can do much of your browsing with hands on
     the keyboard.  The default bindings are given here using the
     Tk syntax that you'll need to use in the Bind dialogs.  Cap-
     italization is important.  For  more  information,  see  the
     _e_x_m_h-_c_u_s_t_o_m man page.

          <Control-Return> - Commit
          <Key-i> - Inc
          <Key-f> - Forward
          <Key-r> - Reply
          <Key-c> - Compose
          <Key-p> - Previous
          <Key-P> - Previous message, but do not display it.
          <minus> - Previous message, even if it is marked for delete or move.
          <Key-n> - Next
          <Key-N> - Next message, but do not display it.
          <Key-F> - Change to next folder with unseen messages.



Exmh 1.6.1          Last change: May 23, 1995                   3






EXMH(1)                   User Commands                   EXMH(1)



          <Key-U> - Next unseen message, if any.
          <Key-s> - Display the current message.
          <Key-d> - Delete and advance
          <Key-D> - Delete and advance, but do not display.
          <Key-m> - Move and advance
          <Key-M> - Move and advance, but do not display.
          <Key-u> - Unmark a pending delete or refile from the current message(s).
          <Key-z> - Highlight embedded URLs
          <space> - page forward the message display.
          <BackSpace> - page back the message display.
          <dollar> - '$' Go to last message, but do not display.
          <asciicircum> - '^' Go to first message, but do not display.
          <question> - '?' Bring up the Command binding dialog.
     You can browse, change, and define  new  command  keystrokes
     via  the  Bind  user interfaces available under the Bindings
     menu.  There are two dialogs: one for  editing  commands  in
     the  built-in  editor,  and another for the command bindings
     described above.

THE EXMH DISPLAY
     At the top of the display is a subwindow that  has  a  label
     for  each of your top-level folders.  In the middle there is
     a table of contents for the current folder.  At  the  bottom
     the  current  message is displayed.  Both the folder display
     and  table  of  contents  have  some  highlights  that   are
     described below.

     The command buttons are grouped into three sets.   The  but-
     tons  along  the  top  apply  to  _e_x_m_h itself, such as Help,
     Preferences, and Quit.  The buttons above the  scan  listing
     are  operations on folders, like Inc and Commit.  There is a
     menu there labeled More... that  has  several  more  folder-
     related  operations  like Pack and Sort.  The row of buttons
     above the message display are for  operations  on  messages,
     such  as Send, Next, and Delete.  There is another menu here
     labeled More... that has several  more  operations  on  mes-
     sages, such as Print, Edit, Burst Digest, and Edit Message.

     The version number of _e_x_m_h is displayed next to the top  row
     of  buttons.  The release cycle for _e_x_m_h goes something like
     1.5alpha, 1.5beta, 1.5gamma, ... 1.5, 1.6alpha, and  so  on.
     The  unqualified  versions  are  deemed  "stable" enough for
     naive users.

     Summary information for the current folder appears  next  to
     the  folder  buttons.  This indicates the current folder and
     how many messages are in it.  Just below the scan listing is
     a status line that provides some feedback about what _e_x_m_h is
     doing.  When a new message  is  displayed,  the  subject  or
     Content-Description  component  is displayed there.  Just to
     the left of this the folder and number of the  current  mes-
     sage is displayed.



Exmh 1.6.1          Last change: May 23, 1995                   4






EXMH(1)                   User Commands                   EXMH(1)



     To the left of the message buttons the  EXMH  logo  appears.
     This  is replaced with the facesaver image of the person, or
     their organization, that sent the current message.

     The black diamond to the right of the status message area is
     a grip that you use to change the boundaries between subwin-
     dows.  Press the first mouse button on this and a horizontal
     line  appears.  As you drag the line up and down, the status
     message indicates what boundary you are changing.  Initially
     you  are  adjusting the scan listing (middle subwindow).  If
     you drag the line off the top of the scan listing, the  mode
     changes  and  are now adjusting the folder cache size, if it
     exists.  If you drag the line above the  folder  cache,  the
     mode  changes again you are changing the main folder display
     area.  As you drag the line down, the  mode  changes  again.
     The  main drawback of the automatic mode sensing is that you
     cannot grow the main folder display area by  more  than  the
     size of the folder cache, if it exists.

     There are also preference settings for each of the subwindow
     sizes.   Look  under  Scan Listing, Folder Cache, and Folder
     Display preferences.

FOLDER DISPLAY
     The top subwindow has a label for each of your  MH  folders.
     The  folder  display  is highlighted to reflect the state of
     folders.  The _C_o_l_o_r _L_e_g_e_n_d menu item  under  the  main  Help
     menu will display a key for the highlights.

          black - the current folder.
          bold outline - a folder with unseen messages.
          stippled background - the target folder for move and link operations.

     On color displays:

          red - the current folder.
          blue - a folder with unseen messages.
          yellow - the target folder for move and link operations.
     Folders that have nested folders under them are  highlighted
     by a shadow box.

     The mouse bindings for the folders labels are:

          Left - Change to folder.
          Middle - View nested folders.
          Right - Refile current messages to the folder.
          Shift-Right - Link current messages to the folder.
          Shift-Middle - Drag a folder label to some drop target.

     Note that a right click does two things at once.  It selects
     the  target  folder  for  refile, and it marks the currently
     selected message(s) for pending refile to that folder.  This



Exmh 1.6.1          Last change: May 23, 1995                   5






EXMH(1)                   User Commands                   EXMH(1)



     might  seem over-eager at first, but it is quite useful once
     you get used to it.  The currently  selected  target  folder
     remains  highlighted,  and  you  can  move a message to this
     folder by clicking the Move button or typing 'm'.

     A middle click on the folder label displays a  popup  window
     with  the  folder  labels  for  nested  folders, and you can
     operate on these labels just like the top-level  ones.   The
     popups  work recursively for nested folders.  When the mouse
     leaves the pop-up  it  is  withdrawn.   The  Folder  Display
     preferences lets you adjust how the pop-up behaves.

     _H_i_n_t:  If you change the popup-related settings, you'll have
     to resize the _e_x_m_h window a bit to force it to redisplay the
     folder labels.  Only then will the new bindings take effect.

     You can make the folder display into  a  separate  top-level
     window  with a setting under the Folder Display Preferences.
     This means you can close the main window and still view  the
     folder  display  to  see what folders have new mail in them.
     When you click on a folder label the  main  window  will  be
     opened automatically.

FOLDER CACHE
     Below the main folder display is a cache  line  of  recently
     visted  folders.  If you have nested folders, their complete
     pathname is given in the cache  window.   Using  the  Folder
     Cache  preferences settings you can choose how many lines of
     folder cache.  You can also put some folders into the  cache
     permanently with the Sticky Folders preference item.

     If you don't have many folders, the  folder  cache  line  is
     really  just  a  waste of screen real estate.  In this case,
     set the number of folder cache lines  to  0  in  the  Folder
     Cache  Preferences  section  to  eliminate  this part of the
     display altogether.

     You can drag folders in and out of the  folder  cache.   Use
     <Shift-Button-2>  to drag a folder label.  Drag a label from
     the main display into the cache to add it, or from the cache
     to the main display to remove it from the cache.

FOLDER TABLE OF CONTENTS
     The middle subwindow  lists  the  messages  in  the  current
     folder.

     The lines of the scan listing are highlighted to reflect the
     state of each message.  On color displays:

              Red - the current message.
              Blue - unread messages.
              Grey background - messages marked for deletion.



Exmh 1.6.1          Last change: May 23, 1995                   6






EXMH(1)                   User Commands                   EXMH(1)



              Yellow background - message marked for refile to another folder.

     On monochrome displays:

              Reverse video - the current message.
              Underlined - unread messages.
              Cross-hatched background - messages marked for deletion.
              Stippled background - message marked for refile to another folder.

     The mouse bindings for the scan listing  are  listed  below.
     "Drag"  refers to holding the mouse button down while moving
     the mouse.

          Left - select and display a message.
          Left-Drag - select a range of messages.
          Shift-Left - modify the selected range.
          Middle-Drag - scroll the display.
          Right - select but do not display the message.
          Shift-Right - Drag folder/msgID to drop target.

     Several of the operations on messages can be  applied  to  a
     set  of  selected  messages.  You can create a discontinuous
     selection by  using  the  Shift-Left  (and  Shift-Left-Drag)
     mouse actions.

     _H_i_n_t:  The scan listing comes from _b_o_t_h the MH _s_c_a_n and  _i_n_c
     programs, depending on circumstance.  If you define a custom
     scan format, set the same filter in your  profile  for  both
     _i_n_c and _s_c_a_n.

MESSAGE DISPLAY
     The current message, if any,  is  displayed  in  the  bottom
     subwindow.   The uninteresting mail headers are scrolled off
     the top of this display initially.   You  can  control  this
     with  the Header-Display and Header-Suppress profile entries
     as described in the _e_x_m_h-_c_u_s_t_o_m man  page.   That  man  page
     also describes how to colorize different mail headers.

     Pressing the space bar will page you through the message, or
     take  you  to  the next message if you are at the end of the
     current message.  Backspace will go back a  page.   You  can
     also  scroll  the  message  with  the  mouse  by  using  the
     scrollbar or drag-scrolling.

     MIME messages are indicated  by  displaying  their  content-
     description in the status line.  The mouse cursor is changed
     to a watch while the MIME message is parsed  and  displayed.
     On  a  color  display, a MIME message body is displayed in a
     slightly darker background.  This shading is used  to  indi-
     cate the depth of nesting in a multipart MIME structure.





Exmh 1.6.1          Last change: May 23, 1995                   7






EXMH(1)                   User Commands                   EXMH(1)



     A popup menu is available to process MIME messages, such  as
     saving  their  contents  or  processing the contents with an
     external viewer.  Press the right mouse button in  the  mes-
     sage  display area to obtain this menu.  Make sure you press
     the mouse button over the message  body,  not  the  headers.
     For  multipart  messages, the menu changes depending on what
     part of the message  you  are  looking  at.   See  also  the
     Preferences  entry  for  MIME  for  some  parameters you can
     adjust.

     Every content type can be saved or printed, and other  types
     can  have  additional  options  depending on entries in your
     site's mailcap file.  The print  function  just  prints  the
     item  as  text  using  your  Print preferences command.  The
     print-with-mailcap entry, if available, uses the print  com-
     mand as defined for the content-type in the mailcap file.

     You can display a message in a new top-level window in order
     to  save  it around on your display.  Use the Clip operation
     under the message More...   menu.   This  will  display  the
     current message in a new, larger window.

     Exmh can cooperate with a WWW browser to display web  pages.
     If  you  get a URL in a mail message, then use the 'z' keys-
     troke to highlight the URLs in the message.  (This is  adhoc
     and  not  %100  accurate.)   The URLs are turned into active
     text buttons.  Click on one and exmh asks your  web  browser
     to  display  the page.  You can have exmh scan every message
     automatically for URLs, although this  can  be  slow.   Tune
     this with the settings under the WWW preferences.

     If exmh sees special X-URL (or X-URI) headers it  will  turn
     the  facesaver  area  into  an active button.  It takes on a
     raised relief and when you click on the face (or exmh  logo)
     then  the  web browser is asked to display the URL in the X-
     URL header.  More and more folks are putting  X-URL  headers
     into their mail messages so you can find their home page.


MANAGING MESSAGES
     There are three basic actions you can take with a mail  mes-
     sage:   leave  it  alone, delete it, or refile it to another
     folder.  You automatically advance to the next message after
     you  delete  or  refile  the current message.  This makes it
     easy to go through your mail messages, deleting and refiling
     as  you go.  There are several settings under the Scan List-
     ing preferences section that control the  behavior  of  _e_x_m_h
     when  reading  mail,  and  some  of  these will be mentioned
     below.

     Like _x_m_h, _e_x_m_h does deletes and refiles in  two  steps.   In
     the  first  step  you _m_a_r_k a message as needing some action.



Exmh 1.6.1          Last change: May 23, 1995                   8






EXMH(1)                   User Commands                   EXMH(1)



     Later on you _c_o_m_m_i_t these changes  by  pressing  the  Commit
     button,  or  by pressing <Control-Return>.  Unlike _x_m_h, how-
     ever, _e_x_m_h requires that you commit changes before you  view
     a  different folder.  Marked messages are highlighted in the
     scan listing, as described above.  If you reselect a message
     marked  for  refile, the destination folder for that message
     is shown in the Status line.

     Deleting Messages.  To delete a message, use the Delete but-
     ton  or press 'd'.  Delete results in a call to _r_m_m.  If you
     want deleted messages to be refiled into  a  special  folder
     (e.g.  +wastebasket  or  +deleted),  you'll have to define a
     shell script and register  that  as  your  rmmproc  in  your
     .mh_profile.

     _T_r_i_c_k: If you press  'D'  to  delete  a  message,  then  you
     advance  to  the  next message without displaying it, so you
     can quickly go through a folder to clean it up.

     Refiling Messages.  To refile a message, right click on  the
     destination  folder.   This marks the current message(s) for
     refile to that folder, and leaves the folder selected as the
     current  target  folder.   If  the  right  target is already
     selected, then you can use the Move button or  type  'm'  to
     refile the message and advance to the next message.

     _T_r_i_c_k:  If you press 'M' to refile, you advance but  do  not
     display the next message.

     Undo.  If you make a mistake, you can unmark a message  with
     the  _U_n_m_a_r_k  (_U_n_d_o) message More... menu entry.  This opera-
     tion applies  to  the  currently  selected  message(s),  not
     necessarily  to  the  last  message you marked for delete or
     refile.  If you want to change the disposition of a message,
     like  refile  it  instead  of  delete it, you do not need to
     unmark it first.  Just select it and take the new action.

     _T_r_i_c_k: use '-' (minus) to back up  to  a  message  you  just
     marked, and 'u' to unmark the message.

     Linking Messages.  To link the  current  message(s)  into  a
     folder, hold the shift key down as you right click the desi-
     nation folder label.  If the  right  folder  happens  to  be
     selected  as  the  target already, you can also use the Link
     button.  If you use Link frequently, you should  adjust  the
     Scan  Listing  preferences  item for _A_d_v_a_n_c_e _a_f_t_e_r _L_i_n_k.  If
     you turn this off, then the current message remains selected
     after  a  Link, which makes it easier to link a message into
     multiple folders.

     Auto Commit.  The _A_u_t_o _C_o_m_m_i_t Scan Listing preferences  item
     will  let  _e_x_m_h commit your changes when you change folders,



Exmh 1.6.1          Last change: May 23, 1995                   9






EXMH(1)                   User Commands                   EXMH(1)



     sort or pack a folder, or quit the  program.   Without  auto
     commit,  you  will be propted to commit when you try to take
     one of these actions and  have  messages  still  marked  for
     delete  or  refile.   In  addition,  auto commit will commit
     changes when you close the main window.

     Implied Direction.  The next message viewed after  a  Delete
     or  Move  is  usually the next message.  However, if you set
     the  _I_m_p_l_i_e_d  _D_i_r_e_c_t_i_o_n  preference  item,  then  _e_x_m_h  will
     remember  your last Next or Prev action and move that direc-
     tion after a Delete or Move.  This means  you  can  just  as
     conveniently  go  through  a  folder  backwards as forwards,
     although it might catch you by suprise.

     Skipping Marked Messages.  The _s_k_i_p _m_a_r_k_e_d  _m_s_g_s  preference
     item  controls  whether  Next and Prev take you to a message
     marked for delete or refile, or whether you skip over these.
     Remember  the  handy '-' key binding, which takes you to the
     previous message even if it is marked.

     Changing Folders Automatically.  When you are at the end  of
     a  folder, _e_x_m_h will be ready to take you to the next folder
     that has unseen messages in it.  You can  just  press  Next,
     and  it  will  automatically change folders for you.  If you
     have marked messages, however, you will be reminded of that.
     At  this  point  you  can press the Commit button, or if you
     have auto-commit enabled, then you can press the Next button
     again  to  trigger  the  commit  and  folder change.  If you
     always want to be warned before an automatic folder  change,
     enable  the  _N_e_x_t  _G_u_a_r_d preference item.  With this enabled
     you will have to click Next twice (or type 'n' twice) to get
     the automatic folder change.  It will also tell you to which
     folder it is about to change.

     The final twist on automatic folder  changing  is  that,  by
     default, _e_x_m_h will automatically change back to your "first"
     folder if there are no more folders with unseen messages  in
     them.  You  can  disable this feature with the _C_y_c_l_e _b_a_c_k _t_o
     _f_i_r_s_t preference item.   The  default  Folder-Order  profile
     component  defines  inbox  to  be the first folder, so ordi-
     narily you will change back there.  The Folder-Order profile
     component is described in the _e_x_m_h-_c_u_s_t_o_m man page.

SENDING MAIL
     This section describes how to start  a  mail  message.   The
     messages  are created as templates in your drafts folder and
     then your editor is opened on the draft.  The next two  sec-
     tions  describe  how  to  actually  compose the message when
     using the built-in editor or an external editor.

     Sending a New Message.   Use  the  Send  message  button  to
     create  a  new draft message.  This runs the MH _c_o_m_p command



Exmh 1.6.1          Last change: May 23, 1995                  10






EXMH(1)                   User Commands                   EXMH(1)



     to set up the template for the draft, so it is  affected  by
     your  components  file, if any, and your comp profile entry,
     if any.

     Replying to a Message.  The Reply... menu has  two  entries:
     _R_e_p_l_y  _t_o  _s_e_n_d_e_r and _R_e_p_l_y _a_l_l.  These use the MH _r_e_p_l com-
     mand, so they are affected by your replcomps file,  if  any,
     and  your  repl profile entry, if any.  The first entry uses
     -_n_o_c_c _t_o -_n_o_c_c _c_c so that the reply just goes to the  sender
     and  you,  while  the  other  entry uses -_c_c _a_l_l so that the
     reply goes to everyone in the To and Cc headers of the  ori-
     ginal  message.   There  is  also  an  entry  that  displays
     instructions for adding more entries to the  Reply...  menu.
     This  is  described  in  more  detail in the _e_x_m_h-_c_u_s_t_o_m man
     page..

     Forwarding a Message.  Use the Forward button to forward the
     current message, or messages.  This uses the MH _f_o_r_w command
     to set up the message, so it is affected by  your  forwcomps
     file and your forw profile entry, if these exist.

     Using an Existing Message as a Template.   You  can  use  an
     existing  message  as  a template for a new message by using
     the _U_s_e _m_e_s_s_a_g_e  _a_s  _d_r_a_f_t  menu  entry  under  the  message
     More...   menu.  In this case the message is copied into the
     draft folder first.  You will also use this  menu  entry  if
     you have to go back into your drafts folder to continue work
     on a message draft.

THE BUILT-IN EDITOR
     The built-in editor provides a handful of text editting com-
     mands and several operations that affect the formatting of a
     mail message.

     Sending a Message.  Usually all you need to do  is  fill  in
     the  headers of your message, type in the message, and press
     the Send button.  When you start, the cursor will  be  posi-
     tioned  at the end of the first empty header line, or at the
     begining of the message body if,  as  with  reply,  all  the
     headers are already initialized.  When entering the headers,
     <Tab> will take you to the next header  line,  and  <Double-
     Tab>  will  position  the cursor at the start of the message
     body.

     The only important rule to remember about mail  messages  is
     that  the header and body are separated by a blank line.  In
     addition, MH supports a header separator line of all dashes,
     ------.

     Saving a Draft.  If you want to save  a  message  draft  and
     return  to  it later, use the Save&Quit button.  If you want
     to send a message but save it  for  use  as  another  draft,



Exmh 1.6.1          Last change: May 23, 1995                  11






EXMH(1)                   User Commands                   EXMH(1)



     select  the  _K_e_e_p  _o_n  _S_e_n_d  checkbox item under the More...
     menu.  In this case, when you click  Send  the  editor  will
     remain  open  and  the  message  will  remain in your drafts
     folder.  Otherwise the draft message  is  removed  from  the
     drafts  folder  after  it has been succesfully sent.  (Actu-
     ally, it is renamed in the same  fashion  that  _r_m_m  renames
     deleted  messages.)  If you quit _e_x_m_h and you have drafts in
     progress, they are automatically saved and  remain  in  your
     drafts folder.

     _W_a_r_n_i_n_g! the Save button under the More... just  writes  the
     editor's  buffer to the file system.  It does not imply that
     the draft will remain after it is sent.  You  probably  want
     Save&Quit or Keep on Send instead.

     Aborting a Draft.  If you decide you do not want to  send  a
     message, you can delete it by pressing the Abort button.  If
     you have not changed the initial template it will be aborted
     immediately.  Otherwise it will prompt you for confirmation.

     _T_r_i_c_k: a second click on the Abort button  is  the  same  as
     clicking the OK button in the confirmation dialog.

     Signatures.  The editor supports signatures in two ways.  If
     you select Auto-sign from the Simple Editor Preferences sec-
     tion, then your .signature file will be appended to the mes-
     sage when you press the Send button.  Otherwise, you can use
     the Sign button to insert your .signature file at the end of
     the message.

     If you have several files that match the  pattern  ~/.signa-
     ture*, then you will have a menu of signature options avail-
     able under the Sign... menu, which replaces the Sign button.
     You  can define the default choice with a Preference setting
     under  the  Simple  Editor  section.   With  auto-sign,  the
     Sign...  menu  has  a  set of check box items that determine
     which signature file will be used.  Otherwise, the menu sim-
     ply selects which signature you want to insert at the end of
     the message, and the signature is inserted when  you  select
     the  menu entry.  If you are composing a multipart MIME mes-
     sage, your signature is added as another MIME part.

     _T_r_i_c_k: if your signature file  has  the  execute  permission
     set,  then  exmh  will try and execute it and use its output
     for the signature.  If you accidentally have the execute bit
     set, the error that occurs may not be that clear.

MAIL FORMATTING
     Line Breaks.  By default, you can just type  in  long  lines
     and they will wrap at word boundaries when the line gets too
     long.  This actually happens twice, the first time by the Tk
     text  widget  when  you  enter  text.   Unfortunately,  this



Exmh 1.6.1          Last change: May 23, 1995                  12






EXMH(1)                   User Commands                   EXMH(1)



     doesn't actually insert newline characters, and it  is  done
     based on the size of the window.  Therefore, the line break-
     ing is done a second time by _e_x_m_h after you press  the  Send
     button.   The line length limit defaults to 79, although you
     can change that in the Simple Edit Preferences section.

     _H_i_n_t:  If you change the line length, you should also resize
     the  editor window to match the width (e.g. 72) so your mes-
     sage will look right as you type it in.  Set  the  following
     resource in your ~/.exmh-defaults

          *Sedit*Text.width: 72

     Changing Fonts.  You can use the Text... menu to change  the
     font  of the selected text.  This promotes your message to a
     MIME content-type of text/enriched.  The encoding  of  these
     text looks is also done when you press the Send button.  You
     may see the encoding after clicking Send as a side-effect of
     the way this is implemented.

     The _I_n_s_e_r_t _F_i_l_e... menu entry is used to insert a  file  as-
     is,  with  no  MIME  structure.  The file is inserted at the
     current insert point in the editor.

     The _I_n_s_e_r_t @ button is used to insert the body of  the  mes-
     sage being replied to.  This button is only enabled when you
     are replying to a message.  The body is formatted a  little,
     just  by  prefixing  each  line  of  the message body with a
     string.  The default is "> ", and you can  change  this  via
     the Simple Editor Preferences section.

     _N_o_t_e: it is apparently not possible to define a repl  prefix
     with  leading  spaces.  This is a side effect of storing the
     prefix in the X resources database.

     The _C_i_t_e _S_e_l_e_c_t_i_o_n menu entry formats and  inserts  selected
     text.   It is assumed that the text is from the current mes-
     sage, and the sender of  that  message  is  identified  just
     before  the  inserted  text.   You  can  use this feature to
     insert text from several different messages.

     The PGP menu provides access to the Pretty Good Privacy pub-
     lic  key  system.   With  this  you can send messages with a
     digital signature that certifies that you sent the  message.
     You  can also encrypt and decrypt messages with PGP.  A com-
     plete discussion of PGP is far beyond the scope of this  man
     page.   However,  if  you  know  PGP,  you will find the PGP
     features of _e_x_m_h useful.

     _H_i_n_t:.  The _P_G_P _i_n _a_n _x_t_e_r_m menu entry will run PGP interac-
     tively.   In particular, it will extract and save public key
     blocks from messages.  So, if someone sends you  their  key,



Exmh 1.6.1          Last change: May 23, 1995                  13






EXMH(1)                   User Commands                   EXMH(1)



     use this operation to save it.

MIME FORMATTING
     _W_a_r_n_i_n_g!  The  line-break  formatting  described  above  can
     interact poorly with the formatting described next.  This is
     one of the roughest spots in the _e_x_m_h  implementation.   For
     example,  if  you  include  a  file in your message that has
     important formatting, like a Postscript file or some program
     code,  you  will  want to disable the line-break formatting.
     You can do this by turning off the _F_o_r_m_a_t _m_a_i_l checkbox item
     under the More... menu.

     If you are familiar with MHN directives, you can enter  them
     into  your  message.   In this case, you will want to select
     the _A_t_t_e_m_p_t _M_H_N checkbox menu item under the  More...  menu.
     Again, you will probably want to disable _F_o_r_m_a_t _m_a_i_l to make
     sure that long MHN directives are not chopped into  multiple
     lines at the wrong place.

     You can create a multipart MIME message by using the  _I_n_s_e_r_t
     _P_a_r_t...  menu item.  This adds another part to your message,
     promoting it to MIME content-type multipart/mixed if  neces-
     sary.  The first time you add a part, you have the option of
     preserving the existing message body or completely replacing
     it.   When  the file is inserted you are asked to choose its
     MIME content-type and content-transfer-encoding.

     The _I_n_s_e_r_t _E_x_t_e_r_n_a_l... menu entry is used to create  a  MIME
     part  of  Content-Type  message/external-body.   This  is an
     indirect reference to a file, which is either a  local  file
     or  a  file  available via anonymous FTP.  A dialog lets you
     fill in the various parameters to  the  indirect  reference.
     For  an anonymous FTP pointer, the _S_i_t_e is the internet host
     name and the _D_i_r_e_c_t_o_r_y and _F_i_l_e _n_a_m_e determine what file  it
     is.   The  _T_r_a_n_s_f_e_r  _m_o_d_e  is either "text" or "image".  Use
     "image"  to  ensure  that  all  8  bits  of  each  byte  get
     transferred.   The  _D_e_s_c_r_i_p_t_i_o_n  is  for  the benefit of the
     reciever of the mail message and should  describe  what  the
     pointer references.

     _T_r_i_c_k: A file section dialog appears first, but this is  not
     always  appropriate  if you are making an external reference
     to a non-local FTP site.  Just hit cancel on the file selec-
     tion  dialog.   Then,  when  you  enter  the  file name, the
     content-type will be inferred from the name.  You can always
     override the content-type if _e_x_m_h guesses wrong.

8 BIT CHARACTERS
     The built-in editor supports 8-bit characters found in Euro-
     pean  character sets.  Insert an 8-bit character by pressing
     the Compose key and then two other keys to get  the  special
     character.   For  example,  Compose, then e and ' creates an



Exmh 1.6.1          Last change: May 23, 1995                  14






EXMH(1)                   User Commands                   EXMH(1)



     accented e character.  All the vowels can be composed with '
     ` and " to get accents, and there are several more bindings.
     The complete table of compose key sequences is given by  the
     _C_o_m_p_o_s_e _K_e_y entry in the Bindings... menu.

     When you compose a mail message that contains 8-bit  charac-
     ters  you  need  to  be  careful when sending it.  Some mail
     gateways do not like 8-bit characters and  will  bounce  the
     message  or  corrupt it.  The Quoted-Printable encoding will
     protect 8-bit characters.  The built-in editor will do  this
     quoting  for  you if it detects input of an 8-bit character.
     The quoting is done when you press Send.   You  can  control
     whether  or not this happens with a combination of the Quote
     Printable menu  entry  (for  per-message  control)  and  the
     Quoted Printable default preference item for the Simple Edi-
     tor.

     The built-in editor handles the special coding required when
     including 8-bit characters in mail headers.

     When you are replying to a message that contains 8-bit char-
     acters, it may be encoded, too.  The Insert @ operation will
     first decode the message so that the true  8-bit  characters
     are inserted into the editor buffer.  This works better than
     the repl filters than include the message body.  If you  use
     one  of those, then you'll see the quoted-printable encoding
     instead of the 8-bit character.

USING ANOTHER EDITOR
     You can use your favorite editor with exmh by specifying  an
     _E_d_i_t_o_r  _c_o_m_m_a_n_d  in  the Editor Support Preferences section.
     This command has the complete pathname of the draft  message
     appended  to  it before it is executed.  Several examples of
     editor commands include:

          sedit
          mxedit
          emacsclient &
          gnuclient &
          exmh-async emacs
          exmh-async emacsclient
          exmh-async gnuclient
          exmh-async xterm -e vi
     The built-in editor is called _s_e_d_i_t.  _M_x_e_d_i_t  and  _t_k_v_i  are
     Tcl-based  editors  that  know  how to communicate with _e_x_m_h
     about draft messages.  _e_m_a_c_s_c_l_i_e_n_t is a program that is used
     to  communicate  with  a running _e_m_a_c_s in order to get it to
     edit a specified file.  You will need the "server.el"  pack-
     age  for emacs in order to set up your emacs as a server for
     this arrangement.  There is more information about  this  in
     the  misc  directory  of the _e_x_m_h distribution.  _e_m_a_c_s_c_l_i_e_n_t
     can used in two ways.  If you can post the message  directly



Exmh 1.6.1          Last change: May 23, 1995                  15






EXMH(1)                   User Commands                   EXMH(1)



     from  emacs,  then just use "emacsclient &" and _e_x_m_h forgets
     about the draft and assumes _e_m_a_c_s  will  take  care  of  it.
     Otherwise,  use  the  exmh-async  wrapper  that is described
     below.

     After the editor exits you are presented  with  a  _W_h_a_t  _N_o_w
     dialog  that  gives you several options:  Send, Abort, Save,
     Re-edit, and More...  Under the More.. menu  you  can  apply
     MHN, run a spell checker, or run the MH whom program to ver-
     ify the addresses you have specified.  You can  also  invoke
     the built-in editor, _s_e_d_i_t, in case you want to use its MIME
     composition features.

     There is an  "Alternate  Editor"  preference  setting.   The
     built-in  editor  has  a menu entry that saves the draft and
     starts the alternate editor.  The What Now dialog also has a
     menu entry to do this.

     In most cases you will use the _e_x_m_h-_a_s_y_n_c wrapper script  to
     run  an external editor.  This is a short Tcl/Tk script that
     runs your editor and then communicates with _e_x_m_h  when  your
     editor exits.  This means the _e_x_m_h user interface can remain
     active while you compose your message.  You can even compose
     several messages at once.  You will get a different _W_h_a_t _N_o_w
     dialog for each message draft.

     The _e_x_m_h-_a_s_y_n_c wrapper tries to pass through all  the  argu-
     ments  to the editor command you specify.  However, a couple
     arguments are picked up by the Tcl/Tk  shell  (wish).   Some
     tricks  are  played,  however, so you can protect arguments.
     For example, the following works:

          exmh-async xterm {-geo 80x40+0+0} -e vi {+c /: *$}
     This protects the -geo argument from exmh-async, and it pro-
     tects  the  complex  format  of  the  _v_i search command from
     interpretation by the Tcl parser.

     As a final note, if you try to test exmh-async from the com-
     mand line, you need to execute it like this:

          exmh-async exmh xterm -e vi &
     The first argument is the  name  of  the  exmh  application,
     which  is  needed  for  the  Tk-based  communication between
     exmh-async and exmh.  This argument does not appear when you
     define the command in Preferences.

FILTERING MAIL
     One of the strong points for _e_x_m_h is its  support  for  mail
     filtering  systems that file messages into different folders
     as they are delivered.  The filtering is done by looking for
     patterns  in the mail headers.  For example, you can put all
     the mail from your boss into one folder, and  all  the  mail



Exmh 1.6.1          Last change: May 23, 1995                  16






EXMH(1)                   User Commands                   EXMH(1)



     from  a  mailing  list  or digets into another folder.  _E_x_m_h
     visually highlights the folders that have  new  mail.   This
     depends  on  the  definition  of the Unseen-Sequence profile
     component, and the support of  this  sequence  by  the  mail
     filtering  system.   Both  the _s_l_o_c_a_l and _p_r_o_c_m_a_i_l filtering
     systems use the _r_c_v_s_t_o_r_e program that takes  care  of  these
     details.   The  _i_n_c program also adds messages to the unseen
     sequence, so even if you do not filter mail the new messages
     in inbox will be highlighted by _e_x_m_h.

     The standard filter used with MH is described in  the  mhook
     (or  slocal)  man  page.  Below is a quick summary of how it
     works.  You must maintain a file named ~/.maildelivery  that
     has  your  mail  filter specifications.  The contents of the
     file are explained below.  If you can forward mail into pro-
     grams at your site, then put this into your .forward file to
     get filtering:

          | /usr/local/mh/lib/slocal -user yourname

     Alternatively,  if  you  select  the   "presort"   inc-style
     described below, then exmh will run slocal for you each time
     you say Inc.

     If you use the _p_r_o_c_m_a_i_l system, or perhaps supply your  own,
     use  the  MH  rcvstore program to put messages into folders.
     This program updates the unseen sequence so  exmh  can  find
     the new mail.  Unfortunately, the rcvstore program is in the
     MH library, so you must reference it with a  long  pathname,
     (e.g., /usr/local/mh/lib/rcvstore.)

     A sample .maildelivery filter file is  shown  below.   Note:
     this  file is ignored if it has group or world write permis-
     sion.  It uses the _r_c_v_s_t_o_r_e program to refile messages  into
     different  folders.  The first field is the header to match,
     and the second is the value to look for.  This  is  a  case-
     insensitive  string.   The third column specifies an action.
     In this case | says to pipe the message into the program  in
     the  last  column.  The fourth column provides limited deci-
     sion making.  In this case the ? means to try and match this
     filter  if  the  message  has not already matched a previous
     filter.  The complete syntax of the filters is given in  the
     mhook man page.

          subject exmh            |  ?  "/usr/local/lib/mh/rcvstore +exmh"
          subject mxedit          |  ?  "/usr/local/lib/mh/rcvstore +mxedit"
          subject book            |  ?  "/usr/local/lib/mh/rcvstore +book"
          to      journalclub     |  ?  "/usr/local/lib/mh/rcvstore +journal"
          from    footbag-digest" |  ?  "/usr/local/lib/mh/rcvstore +footlist"
          default -               |  ?  "/usr/local/lib/mh/rcvstore +inbox"





Exmh 1.6.1          Last change: May 23, 1995                  17






EXMH(1)                   User Commands                   EXMH(1)



     _W_a_r_n_i_n_g! If you use the .maildelivery file  to  filter  mes-
     sages,  you  should always have a default action in the file
     that refiles the messages into your inbox (or some catch-all
     folder).  Depending on your local configuration, there might
     not be a good pre-default default action.  If  there  is  no
     default  action,  mail  that does not match a filter will be
     discarded!

     A patch for the slocal program is distributed with exmh.  It
     adds  an  additional  syntax  to  the maildelivery file that
     makes it simpler to  use  rcvstore.   Use  the  +  operation
     instead  of  | (pipe) to specify a refile action.  The above
     example looks like this:

          subject exmh            +  ?  "exmh"
          subject mxedit          +  ?  "mxedit"
          subject book            +  ?  "book"
          to      journalclub     +  ?  "journal"
          from    footbag-digest" +  ?  "footlist"
          default -               +  ?  "inbox"

     Incorportating Mail.  The filtering support affects the  way
     you  incorportate  mail  from  your system spool file.  _E_x_m_h
     supports  several  different  styles:    _i_n_b_o_x,   _m_u_l_t_i_d_r_o_p,
     _p_r_e_s_o_r_t,  _p_r_e_s_o_r_t_m_u_l_t_i  and  _n_o_n_e.  Use the _I_n_c_o_r_p_o_r_a_t_e _M_a_i_l
     preference section to choose one.   You  may  also  want  to
     enable  periodic inc under the _B_a_c_k_g_r_o_u_n_d _P_r_o_c_e_s_s_i_n_g prefer-
     ences section.

     inbox
          Inc moves new messages into your inbox folder.  This is
          the  default.   No  filitering  is  done, but the inbox
          folder label will highlight when  new  mail  is  incor-
          porated   into   it,   and   unread  messages  will  be
          highlighted.

     none If you use your .forward file to process  mail  through
          an  external  program in order to deliver messages into
          various folders, then you don't need Inc  in  the  user
          interface.   Selecting  "none"  will  eliminate the Inc
          button altogether and disable  the  internal  Inc  pro-
          cedure.  A background "flist" task is a nice complement
          to this setting so that you can see  what  folders  are
          getting mail.

     presort
          Inc moves new messages directly into  various  folders.
          This  is  similar to what you may be doing already with
          an external program.  This is built this into  exmh  in
          order to elminate the need for an external program.  (I
          cannot use a  .forward  file  at  my  site.)   The  way
          presort  works  is  to  inc from your spool file into a



Exmh 1.6.1          Last change: May 23, 1995                  18






EXMH(1)                   User Commands                   EXMH(1)



          temporary folder (MyIncTmp).  Then,  the  MH  filtering
          hook  _s_l_o_c_a_l  is run on each message.  In this mode, it
          is expected that the filtering action  is  to  put  the
          message  into  a  folder.  You do this by specifying an
          action that is to pipe the message into the MH _r_c_v_s_t_o_r_e
          program.  See the MH man page for _m_h_o_o_k for details.

     multidrop
          This assumes that you use POP or  the  MH  maildelivery
          facilities  (see  _m_h_o_o_k) to put new messages into a set
          of  dropboxes  (inbox-like  files).   You  set  up  the
          correspondence   between  POP  hosts  and  folders,  or
          between inbox files and folders with  your  ~/.xmhcheck
          file.   Inc moves messages from the POP server or drop-
          boxes  into  folders.   The  format  of  each  line  of
          ~/.xmhcheck  file  is  shown below.  In the first case,
          the file name must be an absolute pathname  (i.e.,  has
          leading  /).  In the second case (POP), the third field
          is an optional user ID.

     presortmulti
          This is a combination of multidrop and presort.  Set up
          your  All  messages in this folder get filtered by slo-
          cal.

          folder_name    /filename/of/dropbox
          or
          folder_name    POP_hostname [POP_user_name]

     multidrop+filter
          Currently there is no combination of presort  and  mul-
          tidrop,  but  there should be.  If you are adventurous,
          take a look at inc.tcl  and  combine  Inc_Presort  with
          Inc_All.

FACES
     One of the more fun features  of  exmh  is  its  ability  to
     display  the  facesaver  bitmap  of the person that sent you
     mail.  There are two sources of the  bitmap  images,  either
     the  facesaver database or inline X-Face mail header fields.
     These two sources can be used independently,  but  the  main
     trick is getting _e_x_m_h configured properly to use them.

     Facesaver Database.  The exmh installer asks for two  pieces
     of  facesaver-related  information:   the  root directory of
     your faces installation and a search path  of  faces  direc-
     tories.   This  assumes  that  you  have retrieved the faces
     software and associated databases and installed  them  under
     on  directory,  which  is referred to as its root directory.
     The default is /usr/local/faces.  Underneath this  directory
     there  is assumed to be one or more directories that contain
     facesaver databases.  It is these directories that are named



Exmh 1.6.1          Last change: May 23, 1995                  19






EXMH(1)                   User Commands                   EXMH(1)



     in  the  search  path; the names are relative to the root of
     the  faces  installation.   Typically  there  is  facesaver,
     logos,  and  a  local database, which is called "parc" at my
     site.  The first two databases come from the facesaver.tar.Z
     and  logos.tar.Z  files,  respecitively.  The default values
     are:

          Faces Root Directory     /usr/local/faces
          Faces Search Path   parc logos news facesaver

     If you are setting up your own database, you need to  under-
     stand  how it is organized.  It is easiest to demonstrate by
     example.  For  myself,  welch@parc.xerox.com,  my  facesaver
     image  is found as com/xerox/parc/welch/face.xbm.  _E_x_m_h will
     look for this file under each of the  directories  named  by
     the  faces  search  path.   The  complete  pathname might be
     /usr/local/faces/parc/com/xerox/parc/welch/face.xbm.   If  a
     bitmap  is  not  found,  then the search algorithm trims off
     trailing components in an effort to find a more general bit-
     map,  typically  a  company or organizational logo.  At your
     site,    for    example,     you     might     only     have
     /usr/local/faces/logos/com/xerox/face.xbm,   which  contains
     the Xerox corporate logo.

     If your _e_x_m_h installation is not correct, or if you  have  a
     personal  faces  database  that  the _e_x_m_h maintainer doesn't
     know about, then you can also override the install-time set-
     tings  with  the  FACEPATH  environment variable.  This is a
     more traditional search path  of  colon-separated  directory
     names.

     X-Face headers.  The X-Face  header  contains  a  compressed
     version  of  a  facesaver  bitmap, which is a 48x48x1 (mono-
     chrome) bitmap.  The faces software comes with some  filters
     and  scripts  to  generate  these  and decompress them.  The
     orignial purpose of the X-Face header is as a way of distri-
     buting  your  facesaver image so that folks can update their
     database.  However, at the moment _e_x_m_h just decompresses the
     bitmap  and  displayes it.  It requires a Preference setting
     for the X-Face pipeline for this to work.  If  the  pipeline
     is   blank   (the  default),  no  processing  is  done.   To
     decompress and display the header, use  a  pipeline  setting
     like this:

          uncompface | ikon2xbm
     The uncompface program comes with the  faces  software.   It
     also has a version of _i_k_o_n_2_x_b_m, but a faster version of this
     program (a C program instead of some scripts) is distributed
     with  _e_x_m_h  in  its misc directory.  Future versions of _e_x_m_h
     will cache the results of decompressing the X-Face line in a
     personal  faces database, but in the current version it just
     writes the file to /tmp/FACES.[pid].  If  you  are  inspired



Exmh 1.6.1          Last change: May 23, 1995                  20






EXMH(1)                   User Commands                   EXMH(1)



     you  could  add  a Hook_MsgDisplay to stash this file into a
     real facesaver database.  The _e_x_m_h-_c_u_s_t_o_m man page describes
     hook procedures.

SEARCHING IN EXMH
     There are several ways to search for things in exmh:

     Find in message body
          Searching uses regular expression syntax, and  case  is
          ignored.

     Find in table of contents
          Searching uses regular expression syntax, and  case  is
          ignored.   This  just searches over what you can see in
          the display.  If you select All, then all matching mes-
          sages are selected.

          Hint: Use the  "List  only  selected  messages"  folder
          More...  menu entry to get a listing that only contains
          the selected messages.

     Pick by attributes
          A general search (i.e, MH pick) over  the  messages  in
          the  folder.   This can run slowly because each message
          in the folder must be  processed.   You  can  match  on
          various header fields by using the "Choose pick option"
          menu in the Pick dialog.  If you choose more  than  one
          option, the messages must match all of them, unless you
          use the Not and Or buttons to  build  up  more  complex
          criteria.   This  interface is explained in more detail
          in the _e_x_m_h man page.

          The "Add to Sequence(s)" option will add  the  matching
          messages  to  an  MH sequence.   Just pick a meaningful
          name for the sequence.  (Sequences  are  not  supported
          well  by  exmh,  yet.)  The "Pick from Seq/msg(s)" lets
          you narrow the search to a sequence (e.g., "unseen"  or
          something  you  defined  yourself) or a set of messages
          (e.g., last:100  for  the  last  100  messages  in  the
          folder).

          The "All to Sel" option determines if the matching mes-
          sages  are added to the currently selected set, or if a
          new set is created.

     Glimpse full text
          Glimpse is a full text searching tool from the  Univer-
          sity  of  Arizona.  Invoke the "Glimpse full text" menu
          entry under the Search... menu to bring up an interface
          to  this  tool.   You must first index your mail, so to
          get started click "index" to build your indexes.   This
          process  runs  in the background, and the status of the



Exmh 1.6.1          Last change: May 23, 1995                  21






EXMH(1)                   User Commands                   EXMH(1)



          index process is displayed in  the  Glimpse  log.   The
          storage  overhead  of  the indexes is about 10% to 15%,
          which is quite good for a full text index system.

          To search, enter a word in the search  area  and  press
          "Search".   The  button  changes  to  a  "Stop" button,
          although the stop may take a  moment  to  take  effect.
          The  search results are displayed in the log.  Click on
          the message in the log and exmh will  visit  that  mes-
          sage.

          Glimpse supports approximate pattern matching, so under
          the  Opts...   menu  you can choose how many errors are
          allowed in a word match.  You can also control  if  the
          search is case sensitive or whole word.

          Exmh creates one glimpse index per mail folder.   These
          are  stored  under the ~/Mail/.glimpse directory.  This
          lets you limit the search to the current folder, or  to
          the current folder and its subfolders.

          To update the index, just  press  index  again.   If  a
          folder  has  not changed then the index is not rebuilt.
          While Glimpse has an incremental reindex feature,  exmh
          does not use it.  There appear to be bugs in it.

          For more  information  about  Glimpse,  see  this  URL:
          http://glimpse.cs.arizona.edu:1994/

TIPS
     Background Processing.  You can set up _e_x_m_h to  periodically
     incorporate  mail  (i.e.,  _i_n_c)  for you.  If you already do
     this via an  external  agent,  then  you  should  have  _e_x_m_h
     periodically   check  for new mail in your folders, which is
     the _f_l_i_s_t action.  The folder highlighting and icon feedback
     work best with _i_n_c and _f_l_i_s_t.  You can also have it periodi-
     cally run _m_s_g_c_h_k or count messages in your spool  file,  but
     the  disadvantage  of doing this is that there is no audible
     or icon feedback when it sees mail  waiting  in  your  spool
     file.   Instead,  there  is  just  a status message that you
     might not notice.  Choose what background  action  is  taken
     and how frequently it is done with the Background Processing
     preferences section.

     Scan Caches.  _E_x_m_h maintains a cache of the scan output  for
     each  folder.   If you run MH programs from the command line
     it can invalidate the cache.  You can  manually  update  the
     cache  with  the  _R_e_s_c_a_n  _F_o_l_d_e_r  operation under the Folder
     More... menu.  There are also menu entries that update  scan
     caches for all your folders.  These run in the background so
     the user interface can remain active.   The  scan  cache  is
     compatible with _x_m_h.



Exmh 1.6.1          Last change: May 23, 1995                  22






EXMH(1)                   User Commands                   EXMH(1)



     Performance.  If you want message display to go as  fast  as
     possible,  do  three things.  1) Disable the X-Face pipeline
     command so you do not try to decompress X-Face headers.   2)
     Disable  the  facesaver database, which is distinct from the
     X-Face pipeline.  Actually, this is only slow on  the  first
     message  you receive from a new email address.  The pathname
     of the bitmap image that  corresponds  to  that  address  is
     cached  to avoid the expensive lookup the next time you view
     a message from that address.  3) Disable the Graphic Separa-
     tor  in  the  MIME preferences.  That uses a 3D line of text
     instead of a blank line,  and  it  takes  a  bit  longer  to
     display.

     _e_x_m_h does not like really big folders.   If  you  have  more
     than  several  hundred  messages in a folder you will notice
     that folder change times get pretty slow.  Take  this  as  a
     nudge  to  reorganize  things  into subfolders.  Every three
     months I move saved messages into subfolders with names like
     94Q2,  94Q3,  etc.   I  understand  the performance problems
     involved, and plan to overhaul some of the exmh internals to
     improve this situtation.  In the meantime...

     More Keyboard Stuff.  If you really like using the  keyboard
     instead of the mouse, you can change folders, set the target
     folder, and select messages by  number  with  keyboard  com-
     mands.   When you type plus ('+'), focus warps to the status
     line so you can type in the name of a folder.  In this mode,
     a  plus  cycles between choosing the target folder for moves
     or a folder to change into.  <space> does folder  name  com-
     pletion,  <Return>  accepts the folder name, and <Control-c>
     cancels the folder selection.  If  you  start  by  typing  a
     number  (not  plus), that message is selected, but it is not
     displayed until you press <Return>.

INSTALLATION
     Installation is done via the exmh.install script.  Invoke it
     as:

              wish -f ./exmh.install
     This puts up a dialog box that lets you patch  various  file
     system  specific  pathnames  and  enable or disable features
     that your system cannot support  (e.g.,  facesaver,  sound).
     Read  the  info  in the dialog box and enter the appropriate
     file system pathnames.  Click Patch to sed  the  exmh.MASTER
     script and create the main exmh file, then click TclIndex to
     generate the library index, and click Test to  try  it  out.
     If  you are satisfied, click Install to copy the main script
     and the supporting libraries into their  destination  direc-
     tories.

     Note: the "Script Library" and the "Install  lib  directory"
     are  usually the same place.  The script library is the run-



Exmh 1.6.1          Last change: May 23, 1995                  23






EXMH(1)                   User Commands                   EXMH(1)



     time value of the library directory, while the  install  lib
     directory  is  the install-time value.  During the Test run,
     the Script library is automatically set to  "./lib"  so  you
     can  run without installing.  When you hit the Patch button,
     some consistency checks are done  and  a  relative  pathname
     will  trigger  a  warning.  You can ignore this when you are
     testing, but you should install a  working  copy  that  only
     references absolute pathnames.

     NOTE: Currently you cannot leave the script library where it
     gets  unpacked.   The  installation procedure really assumes
     that the Install Directory is a different place than  ./lib.
     You'll  get  an  error  during  the  install,  and  in fact,
     background.tcl will get removed as it tries to copy it  onto
     itself.

     The original motivation  for  install-directory  vs  script-
     directory  was  AFS installations in which writeable volumes
     have  different  names  than  their  read-only,   replicated
     volumes.   In this case you want to install to the writeable
     volume, but run from the read-only replicas.

     If you get the Script library wrong, it will be manifest  as
     a Tcl error about an undefined procedure named Exmh.

     Upon startup, the install will look for ../*/.exmhinstall so
     you  can  retrieve  configuration  information from previous
     versions installed in peer directories.  You can also  main-
     tain  configuration information via the "Conf" button, which
     looks for ../*/.exmhinstall*.

     A  patch  to  the  MH  slocal   program   is   included   as
     "misc/slocal.patch".   The  patch  adds a "+" syntax to your
     .maildelivery file that results in messages being filed into
     a  folder  by means of the MH rcvstore library program.  You
     can keep your patched  copy  of  slocal  distinct  from  the
     installed  version  because  _e_x_m_h runs slocal directly.  The
     installation dialog lets you set up the  pathname  for  your
     custom copy.

     There is also a patch for  the  MH  folder.c  program.   The
     patch  makes  "folders  -recurse" run much faster because it
     avoids directories that do not have subfolders.  The patches
     apply to MH 6.7.

TK SEND AND XAUTHORITY
     The thing that causes the most trouble with new  exmh  users
     is  the Tk send facility and the Xauthority mechanism.  This
     matters if you use the detached background  process  or  the
     _e_x_m_h-_a_s_y_n_c editor wrapper.





Exmh 1.6.1          Last change: May 23, 1995                  24






EXMH(1)                   User Commands                   EXMH(1)



     The send facility  is  used  for  communication  between  Tk
     interpreters.   The  most recent releases of Tk require that
     you have your X environment set up to use  Xauthority.   The
     details  for doing this vary from X server to X server.  The
     basic idea is that, _b_e_f_o_r_e you start the X server you create
     a  file,  ~/.Xauthority,  that contains a random bit string.
     The file is only readable by your user  account.   You  pass
     the  name of this file to the X server when you start it up.
     Then, each time a window is  created,  the  client  programs
     read this file and pass the random bit string to the server.
     The idea is that only programs run  from  your  account  can
     read the file to get the right bit string.  For the details,
     read about the -auth or -xauth argument to your server.

     Even if you get this right, you must also make sure that the
     old  _x_h_o_s_t  security system is not used.  That is, the xhost
     list must be empty.  To do this, run the following command:

          xhost -

     The other alternative is to recompile the  Tk  library  with
     the  -DTK_NO_SECURITY  compile flag.  This is appropriate if
     your X server just cannot do the Xauthority protocol, or you
     think  your  environment is safe enough.  That is, you don't
     have to worry about other users popping up rogue windows  on
     your display.

MORE INFORMATION
     You are welcome to send bug reports and comments about  exmh
     to the following email address: Brent.Welch@Sun.COM.

     Exmh is  available  via  FTP  on  parcftp.xerox.com  in  the
     pub/exmh directory.

     MH is available as pub/mh/mh-6.8.tar.Z from ftp.ics.uci.edu

     Tcl and  Tk  are  available  in  the  ucb/tcl  directory  on
     ftp.cs.berkeley.edu

     Expect  is   available   as   pub/expect/expect.tar.Z   from
     ftp.cme.nist.gov

     Metamail   (for    MIME    support)    is    available    in
     thumper.bellcore.com:pub/nsb

     Faces are  available  from  cs.indiana.edu:/pub/faces.   The
     individual databases are:

          facedir.tar.Z       accumulated personal faces
          facesaver.tar.Z          Usenix FaceSaver faces
          logos.tar.Z         Internet domain logos
          news.tar.Z          Usenet news hierarchy icons



Exmh 1.6.1          Last change: May 23, 1995                  25






EXMH(1)                   User Commands                   EXMH(1)



                           (not intended for e-mail)
     Glimpse  is  available  from  the  University  of   Arizona:
     http://glimpse.cs.arizona.edu:1994/                       or
     ftp://cs.arizona.edu/glimpse

     To get PGP, send mail to pgp-bugs@mit.edu.

FILES
     Your mail is collected  under  a  directory  usually  called
     Mail.   If  you are using another mail system that uses that
     directory, set your Path MH profile entry to something else.
     The current folder and other information is stored in a file
     named "context" in your Mail directory. Your mail is  stored
     as  one  message  per file in directories that correspond to
     your mail folders.  Nested folders are supported, up to  the
     maximum depth supported for directories in your file system.
     Information about message sequences is kept in a file  named
     is in the sequence named "cur", for example.  New mail is in
     the sequence named "unseen".  You can define more sequences,
     up  to  10  per  folder,  but exmh doesn't support them very
     well.

     Exmh adds a few more files for its own purposes.  It uses an
     alternate  context  stored  in  .exmhcontext so that command
     line MH programs and exmh do not interfere with each  other.
     The .folders file lists all the mail folders you have.  Each
     folder has a .xmhcache file that has a  cache  of  the  scan
     output.


SEE ALSO
     exmh, exmh-ref, exmh-custom, mh

AUTHOR
     Brent.Welch@Sun.COM

THANKS
     To Xerox PARC/CSL, for supporting this  work  initially,  to
     Sun  Microsystems  Laboratories  for continuing the support,
     and to all the exmh users that contributed ideas and code.















Exmh 1.6.1          Last change: May 23, 1995                  26



