diff man/rmail.texi @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/rmail.texi	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,891 @@
+\input texinfo  @comment -*-Texinfo-*-
+@setfilename ../info/rmail.info
+@settitle Rmail User's Manual
+@iftex
+@finalout
+@end iftex
+@c @setchapternewpage odd		% For book style double sided manual.
+@c      @smallbook
+@tex
+\overfullrule=0pt
+%\global\baselineskip 30pt      % For printing in double spaces
+@end tex
+@ifinfo
+This file documents the Rmail mail reader.
+
+Copyright (C) 1991 Free Software Foundation
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+@end ignore
+@end ifinfo
+@c
+@titlepage
+@sp 6
+@center @titlefont{Rmail User's Manual}
+@sp 10
+@center Free Software Foundation
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1991 Free Software Foundation
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@end titlepage
+@page
+
+@node Top, Rmail Scrolling,, (DIR)
+
+NOTE: The recommended mail reader in XEmacs is VM, which provides more
+flexibility than Rmail and stores mail in standard Unix-mail-format
+folders rather than in a special format.  VM comes with its own
+manual, included standard with XEmacs.
+
+XEmacs also provides a sophisticated and comfortable front-end to the
+MH mail-processing system, called @samp{mh-e}.
+
+  This manual documents the Rmail mail reader under Emacs.
+
+  Rmail is an Emacs subsystem for reading and disposing of mail that you
+receive.  Rmail stores mail messages in files called Rmail files.  You read
+the messages in an Rmail file in a special major mode, Rmail mode,
+which redefines most letters to run commands for managing mail.  To enter
+Rmail, type @kbd{M-x rmail}.  This reads your primary mail file, merges
+new mail in from your inboxes, displays the first new message, and lets
+you begin reading.
+
+@cindex primary mail file
+  Using Rmail in the simplest fashion, you have one Rmail file,
+@file{~/RMAIL}, in which all of your mail is saved.  It is called your
+@dfn{primary mail file}.  You can also copy messages into other Rmail
+files and then edit those files with Rmail.
+
+  Rmail displays only one message at a time.  It is called the
+@dfn{current message}.  Rmail mode's special commands can move to
+another message, delete the message, copy the message into another file,
+or send a reply.
+
+@cindex message number
+  Within the Rmail file, messages are arranged sequentially in order
+of receipt.  They are also assigned consecutive integers as their
+@dfn{message numbers}.  The number of the current message is displayed
+in Rmail's mode line, followed by the total number of messages in the
+file.  You can move to a message by specifying its message number
+using the @kbd{j} key (@pxref{Rmail Motion}).
+
+@kindex s (Rmail)
+@findex rmail-save
+  Following the usual conventions of Emacs, changes in an Rmail file become
+permanent only when the file is saved.  You can do this with @kbd{s}
+(@code{rmail-save}), which also expunges deleted messages from the file
+first (@pxref{Rmail Deletion}).  To save the file without expunging, use
+@kbd{C-x C-s}.  Rmail saves the Rmail file automatically when moving new
+mail from an inbox file (@pxref{Rmail Inbox}).
+
+@kindex q (Rmail)
+@findex rmail-quit
+  You can exit Rmail with @kbd{q} (@code{rmail-quit}); this expunges and
+saves the Rmail file and then switches to another buffer.  However, there is
+no need to `exit' formally.  If you switch from Rmail to editing in
+other buffers, and never happen to switch back, you have exited.  Just
+make sure to save the Rmail file eventually (like any other file you
+have changed).  @kbd{C-x s} is a good enough way to do this.
+
+@menu
+* Scroll: Rmail Scrolling.   Scrolling through a message.
+* Motion: Rmail Motion.      Moving to another message.
+* Deletion: Rmail Deletion.  Deleting and expunging messages.
+* Inbox: Rmail Inbox.        How mail gets into the Rmail file.
+* Files: Rmail Files.        Using multiple Rmail files.
+* Output: Rmail Output.	     Copying message out to files.
+* Labels: Rmail Labels.      Classifying messages by labeling them.
+* Summary: Rmail Summary.    Summaries show brief info on many messages.
+* Reply: Rmail Reply.        Sending replies to messages you are viewing.
+* Editing: Rmail Editing.    Editing message text and headers in Rmail.
+* Digest: Rmail Digest.      Extracting the messages from a digest message.
+@end menu
+
+@node Rmail Scrolling, Rmail Motion, Top, Top
+@chapter Scrolling Within a Message
+
+  When Rmail displays a message that does not fit on the screen, you
+have to scroll through it.  You could use @kbd{C-v}, @kbd{M-v},
+and @kbd{M-<}, but scrolling is so frequent in Rmail that it deserves to be
+easier to type.
+
+@table @kbd
+@item @key{SPC}
+Scroll forward (@code{scroll-up}).
+@item @key{DEL}
+Scroll backward (@code{scroll-down}).
+@item .
+Scroll to start of message (@code{rmail-beginning-of-message}).
+@end table
+
+@kindex SPC (Rmail)
+@kindex DEL (Rmail)
+  Since the most common thing to do while reading a message is to scroll
+through it by screenfuls, Rmail makes @key{SPC} and @key{DEL} synonyms of
+@kbd{C-v} (@code{scroll-up}) and @kbd{M-v} (@code{scroll-down})
+
+@kindex . (Rmail)
+@findex rmail-beginning-of-message
+  The command @kbd{.} (@code{rmail-beginning-of-message}) scrolls back to the
+beginning of a selected message.  This is not quite the same as @kbd{M-<}:
+first, it does not set the mark; secondly, it resets the buffer
+boundaries to the current message if you have changed them.
+
+@node Rmail Motion, Rmail Deletion, Rmail Scrolling, Top
+@chapter Moving Among Messages
+
+  The most basic thing to do with a message is to read it.  The way to
+do this in Rmail is to make the message current.  You can make any
+message current, given its message number, by using the @kbd{j} command, but
+people most often move sequentially through the file, since this is the
+order of receipt of messages.  When you enter Rmail, you are positioned
+at the first new message (new messages are those received after you last
+used Rmail), or at the last message if there are no new messages this
+time.  Move forward to see other new messages if there are any; move
+backward to re-examine old messages.
+
+@table @kbd
+@item n
+Move to the next non-deleted message, skipping any intervening deleted @*
+messages (@code{rmail-next-undeleted-message}).
+@item p
+Move to the previous non-deleted message @*
+(@code{rmail-previous-undeleted-message}).
+@item M-n
+Move to the next message, including deleted messages
+(@code{rmail-next-message}).
+@item M-p
+Move to the previous message, including deleted messages
+(@code{rmail-previous-message}).
+@item j
+Move to the first message.  With argument @var{n}, move to
+message number @var{n} (@code{rmail-show-message}).
+@item >
+Move to the last message (@code{rmail-last-message}).
+
+@item M-s @var{regexp} @key{RET}
+Move to the next message containing a match for @var{regexp}
+(@code{rmail-search}).  If @var{regexp} is empty, the last regexp used is
+used again.
+
+@item - M-s @var{regexp} @key{RET}
+Move to the previous message containing a match for @var{regexp}.
+If @var{regexp} is empty, the last regexp used is used again.
+@end table
+
+@kindex n (Rmail)
+@kindex p (Rmail)
+@kindex M-n (Rmail)
+@kindex M-p (Rmail)
+@findex rmail-next-undeleted-message
+@findex rmail-previous-undeleted-message
+@findex rmail-next-message
+@findex rmail-previous-message
+  To move among messages in Rmail, you can use @kbd{n} and @kbd{p}.
+These keys move through the messages sequentially but skip over deleted
+messages, which is usually what you want to do.  Their command
+definitions are named @code{rmail-next-undeleted-message} and
+@code{rmail-previous-undeleted-message}.  If you do not want to skip
+deleted messages---for example, if you want to move to a message to
+undelete it---use the variants @kbd{M-n} (@code{rmail-next-message}) and
+@kbd{M-p} (@code{rmail-previous-message}).  A numeric argument to any of
+these commands serves as a repeat count.@refill
+
+  In Rmail, you can specify a numeric argument by just typing the digits.
+It is not necessary to type @kbd{C-u} first.
+
+@kindex M-s (Rmail)
+@findex rmail-search
+  The @kbd{M-s} (@code{rmail-search}) command is Rmail's version of
+search.  The usual incremental search command @kbd{C-s} works in Rmail,
+but searches only within the current message.  The purpose of @kbd{M-s}
+is to search for another message.  It reads a regular expression
+non-incrementally, then starts searching at the beginning of the
+following message for a match.  The message containing the match is
+selected.
+
+  To search backward in the file for another message, give @kbd{M-s} a
+negative argument.  In Rmail you can do this with @kbd{- M-s}.
+
+  It is also possible to search for a message based on labels.
+@xref{Rmail Labels}.
+
+@kindex j (Rmail)
+@kindex > (Rmail)
+@findex rmail-show-message
+@findex rmail-last-message
+  To move to a message specified by absolute message number, use @kbd{j}
+(@code{rmail-show-message}) with the message number as argument.  With
+no argument, @kbd{j} selects the first message.  @kbd{>}
+(@code{rmail-last-message}) selects the last message.
+
+@node Rmail Deletion, Rmail Inbox, Rmail Motion, Top
+@chapter Deleting Messages
+
+@cindex deletion (Rmail)
+  When you no longer need to keep a message, you can @dfn{delete} it.  This
+flags it as ignorable, and some Rmail commands will pretend it is no longer
+present, but it still has its place in the Rmail file and still has its
+message number.
+
+@cindex expunging (Rmail)
+  @dfn{Expunging} the Rmail file actually removes the deleted messages.
+The remaining messages are renumbered consecutively.  Expunging is the only
+action that changes the message number of any message, except for
+undigestifying (@pxref{Rmail Digest}).
+
+@table @kbd
+@item d
+Delete the current message and move to the next non-deleted message
+(@code{rmail-delete-forward}).
+@item C-d
+Delete the current message and move to the previous non-deleted
+message (@code{rmail-delete-backward}).
+@item u
+Undelete the current message, or move back to a deleted message and
+undelete it (@code{rmail-undelete-previous-message}).
+@item e
+@itemx x
+Expunge the Rmail file (@code{rmail-expunge}).  These two
+commands are synonyms.
+@end table
+
+@kindex d (Rmail)
+@kindex C-d (Rmail)
+@findex rmail-delete-forward
+@findex rmail-delete-backward
+  There are two Rmail commands for deleting messages.  Both delete the
+current message and select another message.  @kbd{d}
+(@code{rmail-delete-forward}) moves to the following message, skipping
+messages already deleted, while @kbd{C-d} (@code{rmail-delete-backward})
+moves to the previous non-deleted message.  If there is no non-deleted
+message to move to in the specified direction, the message that was just
+deleted remains current.
+
+@cindex undeletion (Rmail)
+@kindex e (Rmail)
+@findex rmail-expunge
+  To make all deleted messages disappear from the Rmail file, type
+@kbd{e} (@code{rmail-expunge}).  Until you do this, you can still
+@dfn{undelete} the deleted messages.
+
+@kindex u (Rmail)
+@findex rmail-undelete-previous-message
+  To undelete, type
+@kbd{u} (@code{rmail-undelete-previous-message}), which cancels the
+effect of a @kbd{d} command (usually).  It undeletes the current message
+if the current message is deleted.  Otherwise it moves backward to previous
+messages until a deleted message is found, and undeletes that message.
+
+  You can usually undo a @kbd{d} with a @kbd{u} because the @kbd{u}
+moves back to and undeletes the message that the @kbd{d} deleted.  This
+does not work when the @kbd{d} skips a few already-deleted messages that
+follow the message being deleted; in that case the @kbd{u} command
+undeletes the last of the messages that were skipped.  There is no clean
+way to avoid this problem.  However, by repeating the @kbd{u} command,
+you can eventually get back to the message you intended to
+undelete.  You can also reach that message with @kbd{M-p} commands and
+then type @kbd{u}.@refill
+
+  A deleted message has the @samp{deleted} attribute, and as a result
+@samp{deleted} appears in the mode line when the current message is
+deleted.  In fact, deleting or undeleting a message is nothing more than
+adding or removing this attribute.  @xref{Rmail Labels}.
+
+@node Rmail Inbox, Rmail Files, Rmail Deletion, Top
+@chapter Rmail Files and Inboxes
+@cindex inbox file
+
+  Unix places your incoming mail in a file called your @dfn{inbox}.
+When you start up Rmail, it copies the new messages from your inbox into
+your primary mail file, an Rmail file which also contains other messages
+saved from previous Rmail sessions.  In this file, you actually
+read the mail with Rmail.  The operation is called @dfn{getting new mail}.
+You can repeat it at any time using the @kbd{g} key in Rmail.  The inbox
+file name is @file{/usr/spool/mail/@var{username}} in Berkeley Unix,
+@file{/usr/mail/@var{username}} in system V.
+
+  There are two reason for having separate Rmail files and inboxes.
+
+@enumerate
+@item
+The format in which Unix delivers the mail in the inbox is not
+adequate for Rmail mail storage.  It has no way to record attributes
+(such as @samp{deleted}) or user-specified labels; it has no way to record
+old headers and reformatted headers; it has no way to record cached
+summary line information.
+
+@item
+It is very cumbersome to access an inbox file without danger of losing
+mail, because it is necessary to interlock with mail delivery.
+Moreover, different Unix systems use different interlocking
+techniques.  The strategy of moving mail out of the inbox once and for
+all into a separate Rmail file avoids the need for interlocking in all
+the rest of Rmail, since only Rmail operates on the Rmail file.
+@end enumerate
+
+  When getting new mail, Rmail first copies the new mail from the inbox
+file to the Rmail file and saves the Rmail file.  It then deletes the
+inbox file.  This way a system crash may cause duplication of mail between
+the inbox and the Rmail file, but it cannot lose mail.
+
+  Copying mail from an inbox in the system's mailer directory actually puts
+it in an intermediate file, @file{~/.newmail}.  This is because the
+interlocking is done by a C program that copies to another file.
+@file{~/.newmail} is deleted after mail merging is successful.  If there is
+a crash at the wrong time, this file will continue to exist and will be
+used as an inbox the next time you get new mail.
+
+@node Rmail Files, Rmail Output, Rmail Inbox, Top
+@chapter Multiple Mail Files
+
+  Rmail operates by default on your @dfn{primary mail file}, which is
+named @file{~/RMAIL} and which receives your incoming mail from your
+system inbox file. You can also have other mail files and edit them with
+Rmail.  These files can receive mail through their own inboxes, or you
+can move messages into them by explicit command in Rmail (@pxref{Rmail
+Output}).
+
+@table @kbd
+@item i @var{file} @key{RET}
+Read @var{file} into Emacs and run Rmail on it (@code{rmail-input}).
+
+@item M-x set-rmail-inbox-list @key{RET} @var{files} @key{RET}
+Specify inbox file names for current Rmail file to get mail from.
+
+@item g
+Merge new mail from current Rmail file's inboxes
+(@code{rmail-get-new-mail}).
+
+@item C-u g @var{file}
+Merge new mail from inbox file @var{file}.
+@end table
+
+@kindex i (Rmail)
+@findex rmail-input
+  To run Rmail on a file other than your primary mail file, you may use
+the @kbd{i} (@code{rmail-input}) command in Rmail.  This visits the
+file, puts it in Rmail mode, and then gets new mail from the file's
+inboxes if any.  You can also use @kbd{M-x rmail-input} even when not in
+Rmail.
+
+  The file you read with @kbd{i} does not have to be in Rmail file format.
+It could also be Unix mail format, mmdf format, or it could be a mixture
+of all three, as long as each message has one of the three formats.
+Rmail recognizes all three and converts all the messages to proper Rmail
+format before showing you the file.
+
+@findex set-rmail-inbox-list
+  Each Rmail file can contain a list of inbox file names; you can specify
+this list with @kbd{M-x set-rmail-inbox-list @key{RET} @var{files}
+@key{RET}}.  The argument can contain any number of file names, separated
+by commas.  It can also be empty, which specifies that this file should
+have no inboxes.  Once a list of inboxes is specified, the Rmail file
+remembers it permanently until it is explicitly changed.@refill
+
+@kindex g (Rmail)
+@findex rmail-get-new-mail
+  If an Rmail file has inboxes, new mail is merged in from the inboxes
+when you bring the Rmail file into Rmail, and when you use the @kbd{g}
+(@code{rmail-get-new-mail}) command.  If the Rmail file
+specifies no inboxes, then no new mail is merged in at these times.  A
+special exception is made for your primary mail file: Rmail uses the
+standard system inbox for it if it does not specify an inbox.
+
+  To merge mail from a file that is not the usual inbox, give the
+@kbd{g} key a numeric argument, as in @kbd{C-u g}.  Rmail prompts you
+for a file name and merges mail from that file.  The inbox file is not
+deleted or changed at all when you use @kbd{g} with an argument, so this
+is a general way of merging one file of messages into another.
+
+@node Rmail Output, Rmail Labels, Rmail Files, Top
+@chapter Copying Messages Out to Files
+
+@table @kbd
+@item o @var{file} @key{RET}
+Append a copy of the current message to the file @var{file},
+writing it in Rmail file format (@code{rmail-output-to-rmail-file}).
+
+@item C-o @var{file} @key{RET}
+Append a copy of the current message to the file @var{file},
+writing it in Unix mail file format (@code{rmail-output}).
+@end table
+
+@kindex o (Rmail)
+@findex rmail-output-to-rmail-file
+@kindex C-o (Rmail)
+@findex rmail-output
+  If an Rmail file has no inboxes, use explicit @kbd{o} commands to
+write Rmail files.
+
+  @kbd{o} (@code{rmail-output-to-rmail-file}) appends the current
+message in Rmail format to the end of a specified file.  This is the
+best command to use to move messages between Rmail files.  If you are
+currently visiting the other Rmail file, copying is done into the other
+file's Emacs buffer instead.  You should eventually save the buffer on
+disk.
+
+  The @kbd{C-o} (@code{rmail-output}) command in Rmail appends a copy of
+the current message to a specified file, in Unix mail file format.  This
+is useful for moving messages into files to be read by other mail
+processors that do not understand Rmail format.
+
+  Copying a message with @kbd{o} or @kbd{C-o} gives the original copy of the
+message the @samp{filed} attribute. @samp{filed} appears in the mode
+line when such a message is current.
+
+  Normally you should use only @kbd{o} to output messages to other Rmail
+files, never @kbd{C-o}.  But it is also safe if you always use
+@kbd{C-o}, never @kbd{o}.  When a file is visited in Rmail, the last
+message is checked, and if it is in Unix format, the entire file is
+scanned and all Unix-format messages are converted to Rmail format.
+(The reason for checking the last message is that scanning the file is
+slow and most Rmail files have only Rmail format messages.)  If you use
+@kbd{C-o} consistently, the last message is guaranteed to be in Unix
+format, so Rmail will convert all messages properly.
+
+When you and other users want to append mail to the same file, you
+probably always want to use @kbd{C-o} instead of @kbd{o}.  Other mail
+processors may not know Rmail format but will know Unix format.
+
+  In any case, always use @kbd{o} to add to an Rmail file that is being
+visited in Rmail.  Adding messages with @kbd{C-o} to the actual disk file
+will trigger a ``simultaneous editing'' warning when you ask to save the
+Emacs buffer, and the messages will be lost if you do save.
+
+@node Rmail Labels, Rmail Summary, Rmail Output, Top
+@chapter Labels
+@cindex label (Rmail)
+@cindex attribute (Rmail)
+
+  Each message can have various @dfn{labels} assigned to it as a means of
+classification.  A label has a name; different names mean different labels.
+Any given label is either present or absent on a particular message.  A few
+label names have standard meanings and are given to messages automatically
+by Rmail when appropriate; these special labels are called @dfn{attributes}.
+All other labels are assigned by the user.
+
+@table @kbd
+@item a @var{label} @key{RET}
+Assign the label @var{label} to the current message (@code{rmail-add-label}).
+@item k @var{label} @key{RET}
+Remove the label @var{label} from the current message (@code{rmail-kill-label}).
+@item C-M-n @var{labels} @key{RET}
+Move to the next message that has one of the labels @var{labels}
+(@code{rmail-next-labeled-message}).
+@item C-M-p @var{labels} @key{RET}
+Move to the previous message that has one of the labels @var{labels}
+(@code{rmail-previous-labeled-message}).
+@item C-M-l @var{labels} @key{RET}
+Make a summary of all messages containing any of the labels @var{labels}
+(@code{rmail-summary-by-labels}).
+@end table
+
+@noindent
+Specifying an empty string for one these commands means to use the last
+label specified for any of these commands.
+
+@kindex a (Rmail)
+@kindex k (rmail)
+@findex rmail-add-label
+@findex rmail-kill-label
+  The @kbd{a} (@code{rmail-add-label}) and @kbd{k}
+(@code{rmail-kill-label}) commands allow you to assign or remove any
+label on the current message.  If the @var{label} argument is empty, it
+means to assign or remove the label most recently assigned or
+removed.
+
+  Once you have given messages labels to classify them as you wish, there
+are two ways to use the labels: in moving and in summaries.
+
+@kindex C-M-n (Rmail)
+@kindex C-M-p (Rmail)
+@findex rmail-next-labeled-message
+@findex rmail-previous-labeled-message
+  The command @kbd{C-M-n @var{labels} @key{RET}}
+(@code{rmail-next-labeled-message}) moves to the next message that has one
+of the labels @var{labels}.  @var{labels} is one or more label names,
+separated by commas.  @kbd{C-M-p} (@code{rmail-previous-labeled-message})
+is similar, but moves backwards to previous messages.  A preceding numeric
+argument to either one serves as a repeat count.@refill
+
+@kindex C-M-l (Rmail)
+@findex rmail-summary-by-labels
+  The command @kbd{C-M-l @var{labels} @key{RET}}
+(@code{rmail-summary-by-labels}) displays a summary containing only the
+messages that have at least one of a specified set of messages.  The
+argument @var{labels} is one or more label names, separated by commas.
+@xref{Rmail Summary}, for information on summaries.@refill
+
+  If the @var{labels} argument to @kbd{C-M-n}, @kbd{C-M-p} or
+@kbd{C-M-l} is empty, it means to use the last set of labels specified
+for any of these commands.
+
+  Some labels such as @samp{deleted} and @samp{filed} have built-in
+meanings and are assigned to or removed from messages automatically at
+appropriate times; these labels are called @dfn{attributes}.  Here is a
+list of Rmail attributes:
+
+@table @samp
+@item unseen
+Means the message has never been current.  Assigned to messages when
+they come from an inbox file, and removed when a message is made
+current.
+@item deleted
+Means the message is deleted.  Assigned by deletion commands and
+removed by undeletion commands (@pxref{Rmail Deletion}).
+@item filed
+Means the message has been copied to some other file.  Assigned by the
+file output commands (@pxref{Rmail Files}).
+@item answered
+Means you have mailed an answer to the message.  Assigned by the @kbd{r}
+command (@code{rmail-reply}).  @xref{Rmail Reply}.
+@item forwarded
+Means you have forwarded the message to other users.  Assigned by the
+@kbd{f} command (@code{rmail-forward}).  @xref{Rmail Reply}.
+@item edited
+Means you have edited the text of the message within Rmail.
+@xref{Rmail Editing}.
+@end table
+
+  All other labels are assigned or removed only by the user, and it is up
+to the user to decide what they mean.
+
+@node Rmail Summary, Rmail Reply, Rmail Labels, Top
+@chapter Summaries
+@cindex summary (Rmail)
+
+  A @dfn{summary} is a buffer Rmail creates and displays to give you an
+overview of the mail in an Rmail file.  It contains one line per message;
+each line shows the message number, the sender, the labels, and the
+subject.  When you select the summary buffer, you can use a number of
+commands to select messages by moving in the summary buffer, or to
+delete or undelete messages.
+
+  A summary buffer applies to a single Rmail file only; if you are
+editing multiple Rmail files, they have separate summary buffers.  The
+summary buffer name is generated by appending @samp{-summary} to the
+Rmail buffer's name.  Only one summary buffer is displayed at a
+time unless you make several windows and select the summary buffers by
+hand.
+
+@menu
+* Rmail Make Summary::  Making various sorts of summaries.
+* Rmail Summary Edit::  Manipulating messages from the summary.
+@end menu
+
+@node Rmail Make Summary, Rmail Summary Edit, Rmail Summary, Rmail Summary
+@section Making Summaries
+
+  Here are the commands to create a summary for the current Rmail file.
+Summaries do not update automatically; to make an updated summary, you
+must use one of the commands again.
+
+@table @kbd
+@item h
+@itemx C-M-h
+Summarize all messages (@code{rmail-summary}).
+@item l @var{labels} @key{RET}
+@itemx C-M-l @var{labels} @key{RET}
+Summarize message that have one or more of the specified labels
+(@code{rmail-summary-by-labels}).
+@item C-M-r @var{rcpts} @key{RET}
+Summarize messages that have one or more of the specified recipients
+(@code{rmail-summary-by-recipients}).
+@end table
+
+@kindex h (Rmail)
+@findex rmail-summary
+  The @kbd{h} or @kbd{C-M-h} (@code{rmail-summary}) command fills the
+summary buffer for the current Rmail file with a summary of all the
+messages in the file.  It then displays and selects the summary buffer
+in another window.
+
+@kindex l (Rmail)
+@kindex C-M-l (Rmail)
+@findex rmail-summary-by-labels
+  The @kbd{l} or @kbd{C-M-l @var{labels} @key{RET}} 
+(@code{rmail-summary-by-labels}) makes
+a partial summary mentioning only the messages that have one or more of the
+labels @var{labels}.  @var{labels} should contain label names separated by
+commas.@refill
+
+@kindex C-M-r (Rmail)
+@findex rmail-summary-by-recipients
+  @kbd{C-M-r @var{rcpts} @key{RET}} (@code{rmail-summary-by-recipients})
+makes a partial summary mentioning only the messages that have one or more
+of the recipients @var{rcpts}.  @var{rcpts} should contain mailing
+addresses separated by commas.@refill
+
+  Note that there is only one summary buffer for any Rmail file; making one
+kind of summary discards any previously made summary.
+
+@node Rmail Summary Edit,, Rmail Make Summary, Rmail Summary
+@section Editing in Summaries
+
+  Summary buffers are given the major mode Rmail Summary mode, which
+provides the following special commands:
+
+@table @kbd
+@item j
+Select the message described by the line that point is on
+(@code{rmail-summary-goto-msg}).
+@item C-n
+Move to next line and select its message in Rmail
+(@code{rmail-summary-next-all}).
+@item C-p
+Move to previous line and select its message
+(@code{rmail-summary-@*previous-all}).
+@item n
+Move to next line, skipping lines saying `deleted', and select its
+message (@code{rmail-summary-next-msg}).
+@item p
+Move to previous line, skipping lines saying `deleted', and select
+its message (@code{rmail-summary-previous-msg}).
+@item d
+Delete the current line's message, then do like @kbd{n}
+(@code{rmail-summary-delete-forward}).
+@item u
+Undelete and select this message or the previous deleted message in
+the summary (@code{rmail-summary-undelete}).
+@item @key{SPC}
+Scroll the other window (presumably Rmail) forward
+(@code{rmail-summary-scroll-msg-up}).
+@item @key{DEL}
+Scroll the other window backward (@code{rmail-summary-scroll-msg-down}).
+@item x
+Kill the summary window (@code{rmail-summary-exit}).
+@item q
+Exit Rmail (@code{rmail-summary-quit}).
+@end table
+
+@kindex C-n (Rmail summary)
+@kindex C-p (Rmail summary)
+@findex rmail-summary-next-all
+@findex rmail-summary-previous-all
+  The keys @kbd{C-n}(@code{rmail-summary-next-all}) and @kbd{C-p}
+(@code{rmail-summary-previous-all}) are modified in Rmail Summary mode.
+In addition to moving point in the summary buffer, they also cause the
+line's message to become current in the associated Rmail buffer.  That
+buffer is also made visible in another window if it is not currently
+visible.
+
+@kindex n (Rmail summary)
+@kindex p (Rmail summary)
+@findex rmail-summary-next-msg
+@findex rmail-summary-previous-msg
+  @kbd{n} and @kbd{p} are similar to @kbd{C-n} and @kbd{C-p}, but skip
+lines that say `message deleted'.  They are like the @kbd{n} and @kbd{p}
+keys of Rmail itself.  Note, however, that in a partial summary these
+commands move only among the message listed in the summary.@refill
+
+@kindex j (Rmail summary)
+@findex rmail-summary-goto-msg
+  The other Emacs cursor motion commands are not changed in Rmail
+Summary mode, so it is easy to get the point on a line whose message is
+not selected in Rmail.  This can also happen if you switch to the Rmail
+window and switch messages there.  To get the Rmail buffer back in sync
+with the summary, use the @kbd{j} (@code{rmail-summary-goto-msg})
+command, which selects the message of the current summary line in Rmail.
+
+@kindex d (Rmail summary)
+@kindex u (Rmail summary)
+@findex rmail-summary-delete-forward
+@findex rmail-summary-undelete
+  Deletion and undeletion can also be done from the summary buffer.
+They always work based on where point is located in the summary buffer,
+ignoring which message is selected in Rmail.  @kbd{d}
+(@code{rmail-summary-delete-forward}) deletes the current line's
+message, then moves to the next line whose message is not deleted and
+selects that message.  The inverse is @kbd{u}
+(@code{rmail-summary-undelete}), which moves back (if necessary) to a
+line whose message is deleted, undeletes that message, and selects it in
+Rmail.
+
+@kindex SPC (Rmail summary)
+@kindex DEL (Rmail summary)
+@findex rmail-summary-scroll-msg-down
+@findex rmail-summary-scroll-msg-up
+  When moving through messages with the summary buffer, it is convenient
+to be able to scroll the message while remaining in the summary window.
+The commands @key{SPC} (@code{rmail-summary-scroll-msg-up}) and
+@key{DEL} (@code{rmail-summary-scroll-msg-down}) do this.  They scroll
+the message just as they do when the Rmail buffer is selected.@refill
+
+@kindex x (Rmail summary)
+@findex rmail-summary-exit
+  When you are finished using the summary, type @kbd{x}
+(@code{rmail-summary-exit}) to kill the summary buffer's window.
+
+@kindex q (Rmail summary)
+@findex rmail-summary-quit
+  You can also exit Rmail while in the summary.  @kbd{q}
+(@code{rmail-summary-quit}) kills the summary window, then saves the
+Rmail file and switches to another buffer.
+
+@node Rmail Reply, Rmail Editing, Rmail Summary, Top
+@chapter Sending Replies
+
+  Rmail has several commands that use Mail mode to send mail.  Only the
+special commands of Rmail for entering Mail mode are documented here.
+Note that the usual keys for sending mail, @kbd{C-x m} and @kbd{C-x 4
+m}, are available in Rmail mode and work just as they usually do.@refill
+
+@table @kbd
+@item m
+Send a message (@code{rmail-mail}).
+@item c
+Continue editing already started outgoing message (@code{rmail-continue}).
+@item r
+Send a reply to the current Rmail message (@code{rmail-reply}).
+@item f
+Forward current message to other users (@code{rmail-forward}).
+@end table
+
+@kindex r (Rmail)
+@findex rmail-reply
+@vindex rmail-dont-reply-to
+@cindex reply to a message
+ To reply to a the message you are reading in Rmail, type @kbd{r}
+(@code{rmail-reply}).  This displays the @samp{*mail*} buffer in another
+window, much like @kbd{C-x 4 m}, but pre-initializes the @samp{Subject},
+@samp{To}, @samp{CC}, and @samp{In-reply-to} header fields based on the
+message you reply to.  The @samp{To} field is given the sender of
+that message, and the @samp{CC} gets all the recipients of that message.
+Recipients that match elements of the list
+@code{rmail-dont-reply-to} are omitted; by default, this list contains
+your own mailing address.@refill
+
+  Once you have initialized the @samp{*mail*} buffer this way, sending the
+mail goes as usual.  You can edit the presupplied header fields if they
+are not what you want.
+
+@kindex C-c C-y (Mail mode)
+@findex mail-yank-original
+  One additional Mail mode command is available when you invoke mail
+from Rmail: @kbd{C-c C-y} (@code{mail-yank-original}) inserts into the
+outgoing message a copy of the current Rmail message.  Normally this is
+the message you are replying to, but you can also switch to the Rmail
+buffer, select a different message, switch back, and yank the new current
+message.  Normally the yanked message is indented four spaces and has
+most header fields deleted from it; an argument to @kbd{C-c C-y}
+specifies the amount to indent.  @kbd{C-u C-c C-y} neither indents
+the message nor deletes any header fields.@refill
+
+@kindex f (Rmail)
+@findex rmail-forward
+@cindex forward a message
+  Another frequent reason to send mail in Rmail is to forward the current
+message to other users.  @kbd{f} (@code{rmail-forward}) makes this easy by
+preinitializing the @samp{*mail*} buffer with the current message as the
+text and a subject designating a forwarded message.  All you have to do is
+fill in the recipients and send.@refill
+
+@kindex m (Rmail)
+@findex rmail-mail
+  You can use the @kbd{m} (@code{rmail-mail}) command to start editing an
+outgoing message that is not a reply.  It leaves the header fields empty.
+Its only difference from @kbd{C-x 4 m} is that it makes the Rmail buffer
+accessible for @kbd{C-c y}, just as @kbd{r} does.  Thus @kbd{m} can be
+used to reply to or forward a message; it can do anything @kbd{r} or @kbd{f}
+can do.@refill
+
+@kindex c (Rmail)
+@findex rmail-continue
+  The @kbd{c} (@code{rmail-continue}) command resumes editing the
+@samp{*mail*} buffer, to finish editing an outgoing message you were
+already composing, or to alter a message you have sent.@refill
+
+@node Rmail Editing, Rmail Digest, Rmail Reply, Top
+@chapter Editing Within a Message
+
+  Rmail mode provides a few special commands for moving within and
+editing the current message.  In addition, the usual Emacs commands are
+available (except for a few, such as @kbd{C-M-n} and @kbd{C-M-h}, that
+are redefined by Rmail for other purposes).  However, the Rmail buffer
+is normally read-only, and to alter it you must use the Rmail command
+@kbd{w} described below.
+
+@table @kbd
+@item t
+Toggle display of original headers (@code{rmail-toggle-headers}).
+@item w
+Edit current message (@code{rmail-edit-current-message}).
+@end table
+
+@kindex t (Rmail)
+@findex rmail-toggle-header
+@vindex rmail-ignored-headers
+  Rmail reformats the header of each message before displaying it.
+Normally this involves deleting most header fields, on the grounds that
+they are not interesting.  The variable @code{rmail-ignored-headers}
+should contain a regexp that matches the header fields to discard in
+this way.  The original headers are saved permanently; to see what they
+look like, use the @kbd{t} (@code{rmail-toggle-headers}) command.  This
+discards the reformatted headers of the current message and displays it
+with the original headers.  Repeating @kbd{t} reformats the message
+again.  Selecting the message again also reformats.
+
+@kindex w (Rmail)
+@findex rmail-edit-current-message
+  The Rmail buffer is normally read-only, and most of the characters you
+would type to modify it (including most letters) are redefined as Rmail
+commands.  This is usually not a problem since people rarely want to
+change the text of a message.  When you do want to do this, type @kbd{w}
+(@code{rmail-edit-current-message}), which changes from Rmail mode to
+Rmail Edit mode, another major mode which is nearly the same as Text
+mode.  The mode line indicates this change.
+
+  In Rmail Edit mode, letters insert themselves as usual and the Rmail
+commands are not available.  When you are finished editing the message
+and are ready to go back to Rmail, type @kbd{C-c C-c}, which switches
+back to Rmail mode.  To return to Rmail mode but cancel all the editing
+you have done, type @kbd{C-c C-]}.
+
+@vindex rmail-edit-mode-hook
+  Entering Rmail Edit mode calls the value of the variable
+@code{text-mode-hook} with no arguments, if that value exists and is not
+@code{nil}.  It then does the same with the variable
+@code{rmail-edit-mode-hook} and finally adds the attribute @samp{edited}
+to the message.
+
+@node Rmail Digest,, Rmail Editing, Top
+@chapter Digest Messages
+@cindex digest message
+@cindex undigestify
+
+  A @dfn{digest message} is a message which exists to contain and carry
+several other messages.  Digests are used on moderated mailing lists.  All
+messages that arrive for the list during a period of time, such as one
+day, are put inside a single digest which is then sent to the subscribers.
+Transmitting the single digest uses much less computer time than
+transmitting the individual messages even though the total size is the
+same, because the per-message overhead in network mail transmission is
+considerable.
+
+@findex undigestify-rmail-message
+  When you receive a digest message, the most convenient way to read it is
+to @dfn{undigestify} it: to turn it back into many individual messages.
+You can then read and delete the individual messages as it suits you.
+
+  To undigestify a message, select it and then type @kbd{M-x
+undigestify-rmail-message}.  This copies each submessage as a separate
+Rmail message and inserts them all following the digest.  The digest
+message itself is flagged as deleted.
+
+@contents
+@bye