READMSG(1L)                                           READMSG(1L)



NNAAMMEE
       readmsg - extract messages from a mail folder

SSYYNNOOPPSSIISS
       rreeaaddmmssgg  [--aannhhpp] [--ff folder] [--ww weedlist] [selection ...]

DDEESSCCRRIIPPTTIIOONN
       _R_e_a_d_m_s_g  extracts  selected  mail  messages  from  a  mail
       folder.   One  helpful  use of the program is when you are
       composing a response to a mail message in an external edi-
       tor.   In this case, you can run _r_e_a_d_m_s_g to pull a copy of
       the original message into the editing buffer.

       When you run _r_e_a_d_m_s_g from within _e_l_m (e.g. from a subshell
       escape  or  in  an  external editor while composing a mail
       reply) it behaves a bit differently from when you  run  it
       directly  (e.g. from a shell command line).  We will first
       describe its normal behavior, and then describe how it  is
       different when you run it under _e_l_m.

       You tell _r_e_a_d_m_s_g which messages to extract with the _s_e_l_e_c_-
       _t_i_o_n argument.  There are a couple of  possible  different
       ways to specify the _s_e_l_e_c_t_i_o_n.

       1.     A lone ``*'' means select all messages in the mail-
              box.

       2.     A list of message numbers may be specified.  Values
              of  ``0''  and ``$'' in the list both mean the last
              message in the mailbox.  For example:

                   readmsg 1 3 0

              extracts  three  messages  from  the  folder:   the
              first, the third, and the last.

       3.     Finally,  the  _s_e_l_e_c_t_i_o_n may be some text to match.
              This will  select  a  mail  message  which  _e_x_a_c_t_l_y
              matches the specified text.  For example,

                   readmsg staff meeting

              extracts  the  message  which  contains  the  words
              ``staff meeting.''  Note that it will _n_o_t  match  a
              message containing ``Staff Meeting'' - the matching
              is case sensitive.  Normally only the first message
              which  matches the pattern will be printed.  The --aa
              option discussed in a moment changes this.

       The --ff flag indicates that you'd  rather  use  the  folder
       specified  rather  than the default incoming mailbox.  The
       specified _f_o_l_d_e_r can be a filename or a specification such
       as ``=sentmail''.

       The  --ww  flag  tailors  the  list of mail headers that are
       weeded and displayed.  Header weeding is discussed  below.

       The  --hh  flag  instructs  the program to ignore the header
       weeding list, and include the entire header of the matched
       message or messages when displaying their text.

       The  --nn  flag  instructs  the program to ignore the header
       weeding list, and  exclude  _a_l_l  headers.   This  is  used
       mostly for extracting files mailed and such.

       The  --pp  flag  indicates that the program should put form-
       feeds (control-L) between message headers.

       The --aa flag indicates that all messages  which  match  the
       pattern  specified  on the command line should be printed,
       not just the first.  If a pattern was not specified on the
       command line then this flag has no effect.

       When  you  run _r_e_a_d_m_s_g under _e_l_m (say in the context of an
       external editor) the behavior will be different from  that
       described above as follows.

       1.     The  default mail folder will be the folder you are
              currently examining in _e_l_m and not necessarily your
              incoming mail folder.

       2.     You  do not need to specify a _s_e_l_e_c_t_i_o_n on the com-
              mand line.  If you omit the _s_e_l_e_c_t_i_o_n then  _r_e_a_d_m_s_g
              will  extract  the  message(s) you have selected in
              Elm.  If you have tagged  any  messages  then  this
              would  be  all of the tagged messages, otherwise it
              would be the message you are currently examining.

       3.     Normally the message numbers _r_e_a_d_m_s_g  uses  are  in
              mailbox order.  When you call _r_e_a_d_m_s_g under _e_l_m and
              do not override the folder selection  with  the  --ff
              option, then message numbers will be sorted as they
              are displayed on the _e_l_m message index screen.

       Normally, _r_e_a_d_m_s_g selects  and  displays  certain  headers
       from  the message.  By default, the list of selected head-
       ers includes:

              +o The ``Subject:'' header.
              +o The ``From:'' header.
              +o The ``To:'' header.
              +o The ``Cc:'' header.
              +o The ``Date:'' header.
              +o Any header starting with ``Apparently-''.

       The header weeding may be changed with the --ww option.  The
       argument  to  this option is a list of header names, sepa-
       rated by whitespace  or  commas.   _r_e_a_d_m_s_g  compares  each
       header  to  the ones in this list, and if a match is found
       the header is displayed.  The  list  entries  can  contain
       partial  header names.  For instance, an entry of ``From''
       would match both the ``From<SPACE>'' line at  the  top  of
       the message, as well as any ``From:'' header.  Matching is
       case insensitive.  An underscore (``_'') may  be  used  to
       represent a space, so specifying ``From_'' will select the
       ``From<SPACE>'' line but not the ``From:'' header.  A list
       entry  may be preceded by an exclamation point to suppress
       the header.   Thus,  a  specification  of  ``!From_ From''
       means  about  the same thing as ``From:''.  When no header
       weeding options are specified, the default  action  corre-
       sponds to:

            readmsg -w "Subject: From: To: Cc: Apparently- Date:"

EEXXAAMMPPLLEESS
       First off, to use this from within vvii to include the  text
       of the current message, you could use the command:

            :r !readmsg

       (as  you hit the ':' the editor will put you at the bottom
       of the screen with the ':' prompt).  The  space  following
       ':r' is required.


       Let's look at something more interesting, however;

       Suppose you have the mail file;

          From joe Jun 3 1986 4:45:30 MST
          Subject: hello

          Hey Guy!  Wanta go out and have a milk this evening?

          Joe

          From john Jun 3 1986 4:48:20 MST
          Subject: Dinner at Eight
          From: John Dinley <xyz!john>

          Remember you should show up about eight, okay?

                    - John D -

          From xxzyz!cron Jun 3 1986 5:02:43 MST

          Cannot connect to server: blob
          Job 43243 deleted from queue.

       The following commands will result in;

         $ readmsg 2
         [ display the second message, from John ]

         $ readmsg
         [ an error, unless we're calling from _e_l_m ]

         $ readmsg BLOB
         [ no match - case sensitive! ]

         $ readmsg -h connect to server
         [ displays third message, including headers ]


FFIILLEESS
       /usr/mail/<username>          The incoming mail
       $ELMSTATE           Status information from _e_l_m

AAUUTTHHOORR
       Elm Development Group

SSEEEE AALLSSOO
       newmail(1L), elm(1L)

BBUUGGSS
       The '*' metacharacter doesn't always work as expected!
       Perhaps the pattern matching should be case insensitive?
       It  might  be confusing that messages are sorted when run-
       ning under _e_l_m with the current  folder,  and  in  mailbox
       order  for  all  other  cases.   When _r_e_a_d_m_s_g is run stan-
       dalone, messages may be truncated at lines beginning  with
       "From".   This  is  not  a problem when _r_e_a_d_m_s_g is spawned
       under _e_l_m because the status information file  created  by
       _e_l_m says exactly how long each message is.

BBUUGG RREEPPOORRTTSS TTOO
       Bill Pemberton  flash@virginia.edu

CCOOPPYYRRIIGGHHTTSS
       Copyright 1988-1995 by The USENET Community Trust
       Derived from Elm 2.0,  Copyright 1986, 1987 by Dave Taylor



USENET Community Trust   Elm Version 2.5              READMSG(1L)
