Mercurial > hg > xemacs-beta
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