comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 \input texinfo @comment -*-Texinfo-*-
2 @setfilename ../info/rmail.info
3 @settitle Rmail User's Manual
4 @iftex
5 @finalout
6 @end iftex
7 @c @setchapternewpage odd % For book style double sided manual.
8 @c @smallbook
9 @tex
10 \overfullrule=0pt
11 %\global\baselineskip 30pt % For printing in double spaces
12 @end tex
13 @ifinfo
14 This file documents the Rmail mail reader.
15
16 Copyright (C) 1991 Free Software Foundation
17
18 Permission is granted to make and distribute verbatim copies of
19 this manual provided the copyright notice and this permission notice
20 are preserved on all copies.
21
22 @ignore
23 Permission is granted to process this file through Tex and print the
24 results, provided the printed document carries copying permission
25 notice identical to this one except for the removal of this paragraph
26 (this paragraph not being relevant to the printed manual).
27
28 @end ignore
29 @end ifinfo
30 @c
31 @titlepage
32 @sp 6
33 @center @titlefont{Rmail User's Manual}
34 @sp 10
35 @center Free Software Foundation
36 @page
37 @vskip 0pt plus 1filll
38 Copyright @copyright{} 1991 Free Software Foundation
39
40 Permission is granted to make and distribute verbatim copies of
41 this manual provided the copyright notice and this permission notice
42 are preserved on all copies.
43
44 @end titlepage
45 @page
46
47 @node Top, Rmail Scrolling,, (DIR)
48
49 NOTE: The recommended mail reader in XEmacs is VM, which provides more
50 flexibility than Rmail and stores mail in standard Unix-mail-format
51 folders rather than in a special format. VM comes with its own
52 manual, included standard with XEmacs.
53
54 XEmacs also provides a sophisticated and comfortable front-end to the
55 MH mail-processing system, called @samp{mh-e}.
56
57 This manual documents the Rmail mail reader under Emacs.
58
59 Rmail is an Emacs subsystem for reading and disposing of mail that you
60 receive. Rmail stores mail messages in files called Rmail files. You read
61 the messages in an Rmail file in a special major mode, Rmail mode,
62 which redefines most letters to run commands for managing mail. To enter
63 Rmail, type @kbd{M-x rmail}. This reads your primary mail file, merges
64 new mail in from your inboxes, displays the first new message, and lets
65 you begin reading.
66
67 @cindex primary mail file
68 Using Rmail in the simplest fashion, you have one Rmail file,
69 @file{~/RMAIL}, in which all of your mail is saved. It is called your
70 @dfn{primary mail file}. You can also copy messages into other Rmail
71 files and then edit those files with Rmail.
72
73 Rmail displays only one message at a time. It is called the
74 @dfn{current message}. Rmail mode's special commands can move to
75 another message, delete the message, copy the message into another file,
76 or send a reply.
77
78 @cindex message number
79 Within the Rmail file, messages are arranged sequentially in order
80 of receipt. They are also assigned consecutive integers as their
81 @dfn{message numbers}. The number of the current message is displayed
82 in Rmail's mode line, followed by the total number of messages in the
83 file. You can move to a message by specifying its message number
84 using the @kbd{j} key (@pxref{Rmail Motion}).
85
86 @kindex s (Rmail)
87 @findex rmail-save
88 Following the usual conventions of Emacs, changes in an Rmail file become
89 permanent only when the file is saved. You can do this with @kbd{s}
90 (@code{rmail-save}), which also expunges deleted messages from the file
91 first (@pxref{Rmail Deletion}). To save the file without expunging, use
92 @kbd{C-x C-s}. Rmail saves the Rmail file automatically when moving new
93 mail from an inbox file (@pxref{Rmail Inbox}).
94
95 @kindex q (Rmail)
96 @findex rmail-quit
97 You can exit Rmail with @kbd{q} (@code{rmail-quit}); this expunges and
98 saves the Rmail file and then switches to another buffer. However, there is
99 no need to `exit' formally. If you switch from Rmail to editing in
100 other buffers, and never happen to switch back, you have exited. Just
101 make sure to save the Rmail file eventually (like any other file you
102 have changed). @kbd{C-x s} is a good enough way to do this.
103
104 @menu
105 * Scroll: Rmail Scrolling. Scrolling through a message.
106 * Motion: Rmail Motion. Moving to another message.
107 * Deletion: Rmail Deletion. Deleting and expunging messages.
108 * Inbox: Rmail Inbox. How mail gets into the Rmail file.
109 * Files: Rmail Files. Using multiple Rmail files.
110 * Output: Rmail Output. Copying message out to files.
111 * Labels: Rmail Labels. Classifying messages by labeling them.
112 * Summary: Rmail Summary. Summaries show brief info on many messages.
113 * Reply: Rmail Reply. Sending replies to messages you are viewing.
114 * Editing: Rmail Editing. Editing message text and headers in Rmail.
115 * Digest: Rmail Digest. Extracting the messages from a digest message.
116 @end menu
117
118 @node Rmail Scrolling, Rmail Motion, Top, Top
119 @chapter Scrolling Within a Message
120
121 When Rmail displays a message that does not fit on the screen, you
122 have to scroll through it. You could use @kbd{C-v}, @kbd{M-v},
123 and @kbd{M-<}, but scrolling is so frequent in Rmail that it deserves to be
124 easier to type.
125
126 @table @kbd
127 @item @key{SPC}
128 Scroll forward (@code{scroll-up}).
129 @item @key{DEL}
130 Scroll backward (@code{scroll-down}).
131 @item .
132 Scroll to start of message (@code{rmail-beginning-of-message}).
133 @end table
134
135 @kindex SPC (Rmail)
136 @kindex DEL (Rmail)
137 Since the most common thing to do while reading a message is to scroll
138 through it by screenfuls, Rmail makes @key{SPC} and @key{DEL} synonyms of
139 @kbd{C-v} (@code{scroll-up}) and @kbd{M-v} (@code{scroll-down})
140
141 @kindex . (Rmail)
142 @findex rmail-beginning-of-message
143 The command @kbd{.} (@code{rmail-beginning-of-message}) scrolls back to the
144 beginning of a selected message. This is not quite the same as @kbd{M-<}:
145 first, it does not set the mark; secondly, it resets the buffer
146 boundaries to the current message if you have changed them.
147
148 @node Rmail Motion, Rmail Deletion, Rmail Scrolling, Top
149 @chapter Moving Among Messages
150
151 The most basic thing to do with a message is to read it. The way to
152 do this in Rmail is to make the message current. You can make any
153 message current, given its message number, by using the @kbd{j} command, but
154 people most often move sequentially through the file, since this is the
155 order of receipt of messages. When you enter Rmail, you are positioned
156 at the first new message (new messages are those received after you last
157 used Rmail), or at the last message if there are no new messages this
158 time. Move forward to see other new messages if there are any; move
159 backward to re-examine old messages.
160
161 @table @kbd
162 @item n
163 Move to the next non-deleted message, skipping any intervening deleted @*
164 messages (@code{rmail-next-undeleted-message}).
165 @item p
166 Move to the previous non-deleted message @*
167 (@code{rmail-previous-undeleted-message}).
168 @item M-n
169 Move to the next message, including deleted messages
170 (@code{rmail-next-message}).
171 @item M-p
172 Move to the previous message, including deleted messages
173 (@code{rmail-previous-message}).
174 @item j
175 Move to the first message. With argument @var{n}, move to
176 message number @var{n} (@code{rmail-show-message}).
177 @item >
178 Move to the last message (@code{rmail-last-message}).
179
180 @item M-s @var{regexp} @key{RET}
181 Move to the next message containing a match for @var{regexp}
182 (@code{rmail-search}). If @var{regexp} is empty, the last regexp used is
183 used again.
184
185 @item - M-s @var{regexp} @key{RET}
186 Move to the previous message containing a match for @var{regexp}.
187 If @var{regexp} is empty, the last regexp used is used again.
188 @end table
189
190 @kindex n (Rmail)
191 @kindex p (Rmail)
192 @kindex M-n (Rmail)
193 @kindex M-p (Rmail)
194 @findex rmail-next-undeleted-message
195 @findex rmail-previous-undeleted-message
196 @findex rmail-next-message
197 @findex rmail-previous-message
198 To move among messages in Rmail, you can use @kbd{n} and @kbd{p}.
199 These keys move through the messages sequentially but skip over deleted
200 messages, which is usually what you want to do. Their command
201 definitions are named @code{rmail-next-undeleted-message} and
202 @code{rmail-previous-undeleted-message}. If you do not want to skip
203 deleted messages---for example, if you want to move to a message to
204 undelete it---use the variants @kbd{M-n} (@code{rmail-next-message}) and
205 @kbd{M-p} (@code{rmail-previous-message}). A numeric argument to any of
206 these commands serves as a repeat count.@refill
207
208 In Rmail, you can specify a numeric argument by just typing the digits.
209 It is not necessary to type @kbd{C-u} first.
210
211 @kindex M-s (Rmail)
212 @findex rmail-search
213 The @kbd{M-s} (@code{rmail-search}) command is Rmail's version of
214 search. The usual incremental search command @kbd{C-s} works in Rmail,
215 but searches only within the current message. The purpose of @kbd{M-s}
216 is to search for another message. It reads a regular expression
217 non-incrementally, then starts searching at the beginning of the
218 following message for a match. The message containing the match is
219 selected.
220
221 To search backward in the file for another message, give @kbd{M-s} a
222 negative argument. In Rmail you can do this with @kbd{- M-s}.
223
224 It is also possible to search for a message based on labels.
225 @xref{Rmail Labels}.
226
227 @kindex j (Rmail)
228 @kindex > (Rmail)
229 @findex rmail-show-message
230 @findex rmail-last-message
231 To move to a message specified by absolute message number, use @kbd{j}
232 (@code{rmail-show-message}) with the message number as argument. With
233 no argument, @kbd{j} selects the first message. @kbd{>}
234 (@code{rmail-last-message}) selects the last message.
235
236 @node Rmail Deletion, Rmail Inbox, Rmail Motion, Top
237 @chapter Deleting Messages
238
239 @cindex deletion (Rmail)
240 When you no longer need to keep a message, you can @dfn{delete} it. This
241 flags it as ignorable, and some Rmail commands will pretend it is no longer
242 present, but it still has its place in the Rmail file and still has its
243 message number.
244
245 @cindex expunging (Rmail)
246 @dfn{Expunging} the Rmail file actually removes the deleted messages.
247 The remaining messages are renumbered consecutively. Expunging is the only
248 action that changes the message number of any message, except for
249 undigestifying (@pxref{Rmail Digest}).
250
251 @table @kbd
252 @item d
253 Delete the current message and move to the next non-deleted message
254 (@code{rmail-delete-forward}).
255 @item C-d
256 Delete the current message and move to the previous non-deleted
257 message (@code{rmail-delete-backward}).
258 @item u
259 Undelete the current message, or move back to a deleted message and
260 undelete it (@code{rmail-undelete-previous-message}).
261 @item e
262 @itemx x
263 Expunge the Rmail file (@code{rmail-expunge}). These two
264 commands are synonyms.
265 @end table
266
267 @kindex d (Rmail)
268 @kindex C-d (Rmail)
269 @findex rmail-delete-forward
270 @findex rmail-delete-backward
271 There are two Rmail commands for deleting messages. Both delete the
272 current message and select another message. @kbd{d}
273 (@code{rmail-delete-forward}) moves to the following message, skipping
274 messages already deleted, while @kbd{C-d} (@code{rmail-delete-backward})
275 moves to the previous non-deleted message. If there is no non-deleted
276 message to move to in the specified direction, the message that was just
277 deleted remains current.
278
279 @cindex undeletion (Rmail)
280 @kindex e (Rmail)
281 @findex rmail-expunge
282 To make all deleted messages disappear from the Rmail file, type
283 @kbd{e} (@code{rmail-expunge}). Until you do this, you can still
284 @dfn{undelete} the deleted messages.
285
286 @kindex u (Rmail)
287 @findex rmail-undelete-previous-message
288 To undelete, type
289 @kbd{u} (@code{rmail-undelete-previous-message}), which cancels the
290 effect of a @kbd{d} command (usually). It undeletes the current message
291 if the current message is deleted. Otherwise it moves backward to previous
292 messages until a deleted message is found, and undeletes that message.
293
294 You can usually undo a @kbd{d} with a @kbd{u} because the @kbd{u}
295 moves back to and undeletes the message that the @kbd{d} deleted. This
296 does not work when the @kbd{d} skips a few already-deleted messages that
297 follow the message being deleted; in that case the @kbd{u} command
298 undeletes the last of the messages that were skipped. There is no clean
299 way to avoid this problem. However, by repeating the @kbd{u} command,
300 you can eventually get back to the message you intended to
301 undelete. You can also reach that message with @kbd{M-p} commands and
302 then type @kbd{u}.@refill
303
304 A deleted message has the @samp{deleted} attribute, and as a result
305 @samp{deleted} appears in the mode line when the current message is
306 deleted. In fact, deleting or undeleting a message is nothing more than
307 adding or removing this attribute. @xref{Rmail Labels}.
308
309 @node Rmail Inbox, Rmail Files, Rmail Deletion, Top
310 @chapter Rmail Files and Inboxes
311 @cindex inbox file
312
313 Unix places your incoming mail in a file called your @dfn{inbox}.
314 When you start up Rmail, it copies the new messages from your inbox into
315 your primary mail file, an Rmail file which also contains other messages
316 saved from previous Rmail sessions. In this file, you actually
317 read the mail with Rmail. The operation is called @dfn{getting new mail}.
318 You can repeat it at any time using the @kbd{g} key in Rmail. The inbox
319 file name is @file{/usr/spool/mail/@var{username}} in Berkeley Unix,
320 @file{/usr/mail/@var{username}} in system V.
321
322 There are two reason for having separate Rmail files and inboxes.
323
324 @enumerate
325 @item
326 The format in which Unix delivers the mail in the inbox is not
327 adequate for Rmail mail storage. It has no way to record attributes
328 (such as @samp{deleted}) or user-specified labels; it has no way to record
329 old headers and reformatted headers; it has no way to record cached
330 summary line information.
331
332 @item
333 It is very cumbersome to access an inbox file without danger of losing
334 mail, because it is necessary to interlock with mail delivery.
335 Moreover, different Unix systems use different interlocking
336 techniques. The strategy of moving mail out of the inbox once and for
337 all into a separate Rmail file avoids the need for interlocking in all
338 the rest of Rmail, since only Rmail operates on the Rmail file.
339 @end enumerate
340
341 When getting new mail, Rmail first copies the new mail from the inbox
342 file to the Rmail file and saves the Rmail file. It then deletes the
343 inbox file. This way a system crash may cause duplication of mail between
344 the inbox and the Rmail file, but it cannot lose mail.
345
346 Copying mail from an inbox in the system's mailer directory actually puts
347 it in an intermediate file, @file{~/.newmail}. This is because the
348 interlocking is done by a C program that copies to another file.
349 @file{~/.newmail} is deleted after mail merging is successful. If there is
350 a crash at the wrong time, this file will continue to exist and will be
351 used as an inbox the next time you get new mail.
352
353 @node Rmail Files, Rmail Output, Rmail Inbox, Top
354 @chapter Multiple Mail Files
355
356 Rmail operates by default on your @dfn{primary mail file}, which is
357 named @file{~/RMAIL} and which receives your incoming mail from your
358 system inbox file. You can also have other mail files and edit them with
359 Rmail. These files can receive mail through their own inboxes, or you
360 can move messages into them by explicit command in Rmail (@pxref{Rmail
361 Output}).
362
363 @table @kbd
364 @item i @var{file} @key{RET}
365 Read @var{file} into Emacs and run Rmail on it (@code{rmail-input}).
366
367 @item M-x set-rmail-inbox-list @key{RET} @var{files} @key{RET}
368 Specify inbox file names for current Rmail file to get mail from.
369
370 @item g
371 Merge new mail from current Rmail file's inboxes
372 (@code{rmail-get-new-mail}).
373
374 @item C-u g @var{file}
375 Merge new mail from inbox file @var{file}.
376 @end table
377
378 @kindex i (Rmail)
379 @findex rmail-input
380 To run Rmail on a file other than your primary mail file, you may use
381 the @kbd{i} (@code{rmail-input}) command in Rmail. This visits the
382 file, puts it in Rmail mode, and then gets new mail from the file's
383 inboxes if any. You can also use @kbd{M-x rmail-input} even when not in
384 Rmail.
385
386 The file you read with @kbd{i} does not have to be in Rmail file format.
387 It could also be Unix mail format, mmdf format, or it could be a mixture
388 of all three, as long as each message has one of the three formats.
389 Rmail recognizes all three and converts all the messages to proper Rmail
390 format before showing you the file.
391
392 @findex set-rmail-inbox-list
393 Each Rmail file can contain a list of inbox file names; you can specify
394 this list with @kbd{M-x set-rmail-inbox-list @key{RET} @var{files}
395 @key{RET}}. The argument can contain any number of file names, separated
396 by commas. It can also be empty, which specifies that this file should
397 have no inboxes. Once a list of inboxes is specified, the Rmail file
398 remembers it permanently until it is explicitly changed.@refill
399
400 @kindex g (Rmail)
401 @findex rmail-get-new-mail
402 If an Rmail file has inboxes, new mail is merged in from the inboxes
403 when you bring the Rmail file into Rmail, and when you use the @kbd{g}
404 (@code{rmail-get-new-mail}) command. If the Rmail file
405 specifies no inboxes, then no new mail is merged in at these times. A
406 special exception is made for your primary mail file: Rmail uses the
407 standard system inbox for it if it does not specify an inbox.
408
409 To merge mail from a file that is not the usual inbox, give the
410 @kbd{g} key a numeric argument, as in @kbd{C-u g}. Rmail prompts you
411 for a file name and merges mail from that file. The inbox file is not
412 deleted or changed at all when you use @kbd{g} with an argument, so this
413 is a general way of merging one file of messages into another.
414
415 @node Rmail Output, Rmail Labels, Rmail Files, Top
416 @chapter Copying Messages Out to Files
417
418 @table @kbd
419 @item o @var{file} @key{RET}
420 Append a copy of the current message to the file @var{file},
421 writing it in Rmail file format (@code{rmail-output-to-rmail-file}).
422
423 @item C-o @var{file} @key{RET}
424 Append a copy of the current message to the file @var{file},
425 writing it in Unix mail file format (@code{rmail-output}).
426 @end table
427
428 @kindex o (Rmail)
429 @findex rmail-output-to-rmail-file
430 @kindex C-o (Rmail)
431 @findex rmail-output
432 If an Rmail file has no inboxes, use explicit @kbd{o} commands to
433 write Rmail files.
434
435 @kbd{o} (@code{rmail-output-to-rmail-file}) appends the current
436 message in Rmail format to the end of a specified file. This is the
437 best command to use to move messages between Rmail files. If you are
438 currently visiting the other Rmail file, copying is done into the other
439 file's Emacs buffer instead. You should eventually save the buffer on
440 disk.
441
442 The @kbd{C-o} (@code{rmail-output}) command in Rmail appends a copy of
443 the current message to a specified file, in Unix mail file format. This
444 is useful for moving messages into files to be read by other mail
445 processors that do not understand Rmail format.
446
447 Copying a message with @kbd{o} or @kbd{C-o} gives the original copy of the
448 message the @samp{filed} attribute. @samp{filed} appears in the mode
449 line when such a message is current.
450
451 Normally you should use only @kbd{o} to output messages to other Rmail
452 files, never @kbd{C-o}. But it is also safe if you always use
453 @kbd{C-o}, never @kbd{o}. When a file is visited in Rmail, the last
454 message is checked, and if it is in Unix format, the entire file is
455 scanned and all Unix-format messages are converted to Rmail format.
456 (The reason for checking the last message is that scanning the file is
457 slow and most Rmail files have only Rmail format messages.) If you use
458 @kbd{C-o} consistently, the last message is guaranteed to be in Unix
459 format, so Rmail will convert all messages properly.
460
461 When you and other users want to append mail to the same file, you
462 probably always want to use @kbd{C-o} instead of @kbd{o}. Other mail
463 processors may not know Rmail format but will know Unix format.
464
465 In any case, always use @kbd{o} to add to an Rmail file that is being
466 visited in Rmail. Adding messages with @kbd{C-o} to the actual disk file
467 will trigger a ``simultaneous editing'' warning when you ask to save the
468 Emacs buffer, and the messages will be lost if you do save.
469
470 @node Rmail Labels, Rmail Summary, Rmail Output, Top
471 @chapter Labels
472 @cindex label (Rmail)
473 @cindex attribute (Rmail)
474
475 Each message can have various @dfn{labels} assigned to it as a means of
476 classification. A label has a name; different names mean different labels.
477 Any given label is either present or absent on a particular message. A few
478 label names have standard meanings and are given to messages automatically
479 by Rmail when appropriate; these special labels are called @dfn{attributes}.
480 All other labels are assigned by the user.
481
482 @table @kbd
483 @item a @var{label} @key{RET}
484 Assign the label @var{label} to the current message (@code{rmail-add-label}).
485 @item k @var{label} @key{RET}
486 Remove the label @var{label} from the current message (@code{rmail-kill-label}).
487 @item C-M-n @var{labels} @key{RET}
488 Move to the next message that has one of the labels @var{labels}
489 (@code{rmail-next-labeled-message}).
490 @item C-M-p @var{labels} @key{RET}
491 Move to the previous message that has one of the labels @var{labels}
492 (@code{rmail-previous-labeled-message}).
493 @item C-M-l @var{labels} @key{RET}
494 Make a summary of all messages containing any of the labels @var{labels}
495 (@code{rmail-summary-by-labels}).
496 @end table
497
498 @noindent
499 Specifying an empty string for one these commands means to use the last
500 label specified for any of these commands.
501
502 @kindex a (Rmail)
503 @kindex k (rmail)
504 @findex rmail-add-label
505 @findex rmail-kill-label
506 The @kbd{a} (@code{rmail-add-label}) and @kbd{k}
507 (@code{rmail-kill-label}) commands allow you to assign or remove any
508 label on the current message. If the @var{label} argument is empty, it
509 means to assign or remove the label most recently assigned or
510 removed.
511
512 Once you have given messages labels to classify them as you wish, there
513 are two ways to use the labels: in moving and in summaries.
514
515 @kindex C-M-n (Rmail)
516 @kindex C-M-p (Rmail)
517 @findex rmail-next-labeled-message
518 @findex rmail-previous-labeled-message
519 The command @kbd{C-M-n @var{labels} @key{RET}}
520 (@code{rmail-next-labeled-message}) moves to the next message that has one
521 of the labels @var{labels}. @var{labels} is one or more label names,
522 separated by commas. @kbd{C-M-p} (@code{rmail-previous-labeled-message})
523 is similar, but moves backwards to previous messages. A preceding numeric
524 argument to either one serves as a repeat count.@refill
525
526 @kindex C-M-l (Rmail)
527 @findex rmail-summary-by-labels
528 The command @kbd{C-M-l @var{labels} @key{RET}}
529 (@code{rmail-summary-by-labels}) displays a summary containing only the
530 messages that have at least one of a specified set of messages. The
531 argument @var{labels} is one or more label names, separated by commas.
532 @xref{Rmail Summary}, for information on summaries.@refill
533
534 If the @var{labels} argument to @kbd{C-M-n}, @kbd{C-M-p} or
535 @kbd{C-M-l} is empty, it means to use the last set of labels specified
536 for any of these commands.
537
538 Some labels such as @samp{deleted} and @samp{filed} have built-in
539 meanings and are assigned to or removed from messages automatically at
540 appropriate times; these labels are called @dfn{attributes}. Here is a
541 list of Rmail attributes:
542
543 @table @samp
544 @item unseen
545 Means the message has never been current. Assigned to messages when
546 they come from an inbox file, and removed when a message is made
547 current.
548 @item deleted
549 Means the message is deleted. Assigned by deletion commands and
550 removed by undeletion commands (@pxref{Rmail Deletion}).
551 @item filed
552 Means the message has been copied to some other file. Assigned by the
553 file output commands (@pxref{Rmail Files}).
554 @item answered
555 Means you have mailed an answer to the message. Assigned by the @kbd{r}
556 command (@code{rmail-reply}). @xref{Rmail Reply}.
557 @item forwarded
558 Means you have forwarded the message to other users. Assigned by the
559 @kbd{f} command (@code{rmail-forward}). @xref{Rmail Reply}.
560 @item edited
561 Means you have edited the text of the message within Rmail.
562 @xref{Rmail Editing}.
563 @end table
564
565 All other labels are assigned or removed only by the user, and it is up
566 to the user to decide what they mean.
567
568 @node Rmail Summary, Rmail Reply, Rmail Labels, Top
569 @chapter Summaries
570 @cindex summary (Rmail)
571
572 A @dfn{summary} is a buffer Rmail creates and displays to give you an
573 overview of the mail in an Rmail file. It contains one line per message;
574 each line shows the message number, the sender, the labels, and the
575 subject. When you select the summary buffer, you can use a number of
576 commands to select messages by moving in the summary buffer, or to
577 delete or undelete messages.
578
579 A summary buffer applies to a single Rmail file only; if you are
580 editing multiple Rmail files, they have separate summary buffers. The
581 summary buffer name is generated by appending @samp{-summary} to the
582 Rmail buffer's name. Only one summary buffer is displayed at a
583 time unless you make several windows and select the summary buffers by
584 hand.
585
586 @menu
587 * Rmail Make Summary:: Making various sorts of summaries.
588 * Rmail Summary Edit:: Manipulating messages from the summary.
589 @end menu
590
591 @node Rmail Make Summary, Rmail Summary Edit, Rmail Summary, Rmail Summary
592 @section Making Summaries
593
594 Here are the commands to create a summary for the current Rmail file.
595 Summaries do not update automatically; to make an updated summary, you
596 must use one of the commands again.
597
598 @table @kbd
599 @item h
600 @itemx C-M-h
601 Summarize all messages (@code{rmail-summary}).
602 @item l @var{labels} @key{RET}
603 @itemx C-M-l @var{labels} @key{RET}
604 Summarize message that have one or more of the specified labels
605 (@code{rmail-summary-by-labels}).
606 @item C-M-r @var{rcpts} @key{RET}
607 Summarize messages that have one or more of the specified recipients
608 (@code{rmail-summary-by-recipients}).
609 @end table
610
611 @kindex h (Rmail)
612 @findex rmail-summary
613 The @kbd{h} or @kbd{C-M-h} (@code{rmail-summary}) command fills the
614 summary buffer for the current Rmail file with a summary of all the
615 messages in the file. It then displays and selects the summary buffer
616 in another window.
617
618 @kindex l (Rmail)
619 @kindex C-M-l (Rmail)
620 @findex rmail-summary-by-labels
621 The @kbd{l} or @kbd{C-M-l @var{labels} @key{RET}}
622 (@code{rmail-summary-by-labels}) makes
623 a partial summary mentioning only the messages that have one or more of the
624 labels @var{labels}. @var{labels} should contain label names separated by
625 commas.@refill
626
627 @kindex C-M-r (Rmail)
628 @findex rmail-summary-by-recipients
629 @kbd{C-M-r @var{rcpts} @key{RET}} (@code{rmail-summary-by-recipients})
630 makes a partial summary mentioning only the messages that have one or more
631 of the recipients @var{rcpts}. @var{rcpts} should contain mailing
632 addresses separated by commas.@refill
633
634 Note that there is only one summary buffer for any Rmail file; making one
635 kind of summary discards any previously made summary.
636
637 @node Rmail Summary Edit,, Rmail Make Summary, Rmail Summary
638 @section Editing in Summaries
639
640 Summary buffers are given the major mode Rmail Summary mode, which
641 provides the following special commands:
642
643 @table @kbd
644 @item j
645 Select the message described by the line that point is on
646 (@code{rmail-summary-goto-msg}).
647 @item C-n
648 Move to next line and select its message in Rmail
649 (@code{rmail-summary-next-all}).
650 @item C-p
651 Move to previous line and select its message
652 (@code{rmail-summary-@*previous-all}).
653 @item n
654 Move to next line, skipping lines saying `deleted', and select its
655 message (@code{rmail-summary-next-msg}).
656 @item p
657 Move to previous line, skipping lines saying `deleted', and select
658 its message (@code{rmail-summary-previous-msg}).
659 @item d
660 Delete the current line's message, then do like @kbd{n}
661 (@code{rmail-summary-delete-forward}).
662 @item u
663 Undelete and select this message or the previous deleted message in
664 the summary (@code{rmail-summary-undelete}).
665 @item @key{SPC}
666 Scroll the other window (presumably Rmail) forward
667 (@code{rmail-summary-scroll-msg-up}).
668 @item @key{DEL}
669 Scroll the other window backward (@code{rmail-summary-scroll-msg-down}).
670 @item x
671 Kill the summary window (@code{rmail-summary-exit}).
672 @item q
673 Exit Rmail (@code{rmail-summary-quit}).
674 @end table
675
676 @kindex C-n (Rmail summary)
677 @kindex C-p (Rmail summary)
678 @findex rmail-summary-next-all
679 @findex rmail-summary-previous-all
680 The keys @kbd{C-n}(@code{rmail-summary-next-all}) and @kbd{C-p}
681 (@code{rmail-summary-previous-all}) are modified in Rmail Summary mode.
682 In addition to moving point in the summary buffer, they also cause the
683 line's message to become current in the associated Rmail buffer. That
684 buffer is also made visible in another window if it is not currently
685 visible.
686
687 @kindex n (Rmail summary)
688 @kindex p (Rmail summary)
689 @findex rmail-summary-next-msg
690 @findex rmail-summary-previous-msg
691 @kbd{n} and @kbd{p} are similar to @kbd{C-n} and @kbd{C-p}, but skip
692 lines that say `message deleted'. They are like the @kbd{n} and @kbd{p}
693 keys of Rmail itself. Note, however, that in a partial summary these
694 commands move only among the message listed in the summary.@refill
695
696 @kindex j (Rmail summary)
697 @findex rmail-summary-goto-msg
698 The other Emacs cursor motion commands are not changed in Rmail
699 Summary mode, so it is easy to get the point on a line whose message is
700 not selected in Rmail. This can also happen if you switch to the Rmail
701 window and switch messages there. To get the Rmail buffer back in sync
702 with the summary, use the @kbd{j} (@code{rmail-summary-goto-msg})
703 command, which selects the message of the current summary line in Rmail.
704
705 @kindex d (Rmail summary)
706 @kindex u (Rmail summary)
707 @findex rmail-summary-delete-forward
708 @findex rmail-summary-undelete
709 Deletion and undeletion can also be done from the summary buffer.
710 They always work based on where point is located in the summary buffer,
711 ignoring which message is selected in Rmail. @kbd{d}
712 (@code{rmail-summary-delete-forward}) deletes the current line's
713 message, then moves to the next line whose message is not deleted and
714 selects that message. The inverse is @kbd{u}
715 (@code{rmail-summary-undelete}), which moves back (if necessary) to a
716 line whose message is deleted, undeletes that message, and selects it in
717 Rmail.
718
719 @kindex SPC (Rmail summary)
720 @kindex DEL (Rmail summary)
721 @findex rmail-summary-scroll-msg-down
722 @findex rmail-summary-scroll-msg-up
723 When moving through messages with the summary buffer, it is convenient
724 to be able to scroll the message while remaining in the summary window.
725 The commands @key{SPC} (@code{rmail-summary-scroll-msg-up}) and
726 @key{DEL} (@code{rmail-summary-scroll-msg-down}) do this. They scroll
727 the message just as they do when the Rmail buffer is selected.@refill
728
729 @kindex x (Rmail summary)
730 @findex rmail-summary-exit
731 When you are finished using the summary, type @kbd{x}
732 (@code{rmail-summary-exit}) to kill the summary buffer's window.
733
734 @kindex q (Rmail summary)
735 @findex rmail-summary-quit
736 You can also exit Rmail while in the summary. @kbd{q}
737 (@code{rmail-summary-quit}) kills the summary window, then saves the
738 Rmail file and switches to another buffer.
739
740 @node Rmail Reply, Rmail Editing, Rmail Summary, Top
741 @chapter Sending Replies
742
743 Rmail has several commands that use Mail mode to send mail. Only the
744 special commands of Rmail for entering Mail mode are documented here.
745 Note that the usual keys for sending mail, @kbd{C-x m} and @kbd{C-x 4
746 m}, are available in Rmail mode and work just as they usually do.@refill
747
748 @table @kbd
749 @item m
750 Send a message (@code{rmail-mail}).
751 @item c
752 Continue editing already started outgoing message (@code{rmail-continue}).
753 @item r
754 Send a reply to the current Rmail message (@code{rmail-reply}).
755 @item f
756 Forward current message to other users (@code{rmail-forward}).
757 @end table
758
759 @kindex r (Rmail)
760 @findex rmail-reply
761 @vindex rmail-dont-reply-to
762 @cindex reply to a message
763 To reply to a the message you are reading in Rmail, type @kbd{r}
764 (@code{rmail-reply}). This displays the @samp{*mail*} buffer in another
765 window, much like @kbd{C-x 4 m}, but pre-initializes the @samp{Subject},
766 @samp{To}, @samp{CC}, and @samp{In-reply-to} header fields based on the
767 message you reply to. The @samp{To} field is given the sender of
768 that message, and the @samp{CC} gets all the recipients of that message.
769 Recipients that match elements of the list
770 @code{rmail-dont-reply-to} are omitted; by default, this list contains
771 your own mailing address.@refill
772
773 Once you have initialized the @samp{*mail*} buffer this way, sending the
774 mail goes as usual. You can edit the presupplied header fields if they
775 are not what you want.
776
777 @kindex C-c C-y (Mail mode)
778 @findex mail-yank-original
779 One additional Mail mode command is available when you invoke mail
780 from Rmail: @kbd{C-c C-y} (@code{mail-yank-original}) inserts into the
781 outgoing message a copy of the current Rmail message. Normally this is
782 the message you are replying to, but you can also switch to the Rmail
783 buffer, select a different message, switch back, and yank the new current
784 message. Normally the yanked message is indented four spaces and has
785 most header fields deleted from it; an argument to @kbd{C-c C-y}
786 specifies the amount to indent. @kbd{C-u C-c C-y} neither indents
787 the message nor deletes any header fields.@refill
788
789 @kindex f (Rmail)
790 @findex rmail-forward
791 @cindex forward a message
792 Another frequent reason to send mail in Rmail is to forward the current
793 message to other users. @kbd{f} (@code{rmail-forward}) makes this easy by
794 preinitializing the @samp{*mail*} buffer with the current message as the
795 text and a subject designating a forwarded message. All you have to do is
796 fill in the recipients and send.@refill
797
798 @kindex m (Rmail)
799 @findex rmail-mail
800 You can use the @kbd{m} (@code{rmail-mail}) command to start editing an
801 outgoing message that is not a reply. It leaves the header fields empty.
802 Its only difference from @kbd{C-x 4 m} is that it makes the Rmail buffer
803 accessible for @kbd{C-c y}, just as @kbd{r} does. Thus @kbd{m} can be
804 used to reply to or forward a message; it can do anything @kbd{r} or @kbd{f}
805 can do.@refill
806
807 @kindex c (Rmail)
808 @findex rmail-continue
809 The @kbd{c} (@code{rmail-continue}) command resumes editing the
810 @samp{*mail*} buffer, to finish editing an outgoing message you were
811 already composing, or to alter a message you have sent.@refill
812
813 @node Rmail Editing, Rmail Digest, Rmail Reply, Top
814 @chapter Editing Within a Message
815
816 Rmail mode provides a few special commands for moving within and
817 editing the current message. In addition, the usual Emacs commands are
818 available (except for a few, such as @kbd{C-M-n} and @kbd{C-M-h}, that
819 are redefined by Rmail for other purposes). However, the Rmail buffer
820 is normally read-only, and to alter it you must use the Rmail command
821 @kbd{w} described below.
822
823 @table @kbd
824 @item t
825 Toggle display of original headers (@code{rmail-toggle-headers}).
826 @item w
827 Edit current message (@code{rmail-edit-current-message}).
828 @end table
829
830 @kindex t (Rmail)
831 @findex rmail-toggle-header
832 @vindex rmail-ignored-headers
833 Rmail reformats the header of each message before displaying it.
834 Normally this involves deleting most header fields, on the grounds that
835 they are not interesting. The variable @code{rmail-ignored-headers}
836 should contain a regexp that matches the header fields to discard in
837 this way. The original headers are saved permanently; to see what they
838 look like, use the @kbd{t} (@code{rmail-toggle-headers}) command. This
839 discards the reformatted headers of the current message and displays it
840 with the original headers. Repeating @kbd{t} reformats the message
841 again. Selecting the message again also reformats.
842
843 @kindex w (Rmail)
844 @findex rmail-edit-current-message
845 The Rmail buffer is normally read-only, and most of the characters you
846 would type to modify it (including most letters) are redefined as Rmail
847 commands. This is usually not a problem since people rarely want to
848 change the text of a message. When you do want to do this, type @kbd{w}
849 (@code{rmail-edit-current-message}), which changes from Rmail mode to
850 Rmail Edit mode, another major mode which is nearly the same as Text
851 mode. The mode line indicates this change.
852
853 In Rmail Edit mode, letters insert themselves as usual and the Rmail
854 commands are not available. When you are finished editing the message
855 and are ready to go back to Rmail, type @kbd{C-c C-c}, which switches
856 back to Rmail mode. To return to Rmail mode but cancel all the editing
857 you have done, type @kbd{C-c C-]}.
858
859 @vindex rmail-edit-mode-hook
860 Entering Rmail Edit mode calls the value of the variable
861 @code{text-mode-hook} with no arguments, if that value exists and is not
862 @code{nil}. It then does the same with the variable
863 @code{rmail-edit-mode-hook} and finally adds the attribute @samp{edited}
864 to the message.
865
866 @node Rmail Digest,, Rmail Editing, Top
867 @chapter Digest Messages
868 @cindex digest message
869 @cindex undigestify
870
871 A @dfn{digest message} is a message which exists to contain and carry
872 several other messages. Digests are used on moderated mailing lists. All
873 messages that arrive for the list during a period of time, such as one
874 day, are put inside a single digest which is then sent to the subscribers.
875 Transmitting the single digest uses much less computer time than
876 transmitting the individual messages even though the total size is the
877 same, because the per-message overhead in network mail transmission is
878 considerable.
879
880 @findex undigestify-rmail-message
881 When you receive a digest message, the most convenient way to read it is
882 to @dfn{undigestify} it: to turn it back into many individual messages.
883 You can then read and delete the individual messages as it suits you.
884
885 To undigestify a message, select it and then type @kbd{M-x
886 undigestify-rmail-message}. This copies each submessage as a separate
887 Rmail message and inserts them all following the digest. The digest
888 message itself is flagged as deleted.
889
890 @contents
891 @bye