37.7 Copying Messages Out to Files
These commands copy messages from an Rmail file into another file.
- o file <RET>
- Append a copy of the current message to the file file, using Rmail
file format by default (
rmail-output-to-rmail-file
).
- C-o file <RET>
- Append a copy of the current message to the file file, using
system inbox file format by default (
rmail-output
).
- w file <RET>
- Output just the message body to the file file, taking the default
file name from the message ‘Subject’ header.
The commands o and C-o copy the current message into a
specified file. This file may be an Rmail file or it may be in system
inbox format; the output commands ascertain the file's format and write
the copied message in that format.
The o and C-o commands differ in two ways: each has its
own separate default file name, and each specifies a choice of format to
use when the file does not already exist. The o command uses
Rmail format when it creates a new file, while C-o uses system
inbox format for a new file. The default file name for o is the
file name used last with o, and the default file name for
C-o is the file name used last with C-o.
If the output file is an Rmail file currently visited in an Emacs buffer,
the output commands copy the message into that buffer. It is up to you
to save the buffer eventually in its file.
Sometimes you may receive a message whose body holds the contents of a
file. You can save the body to a file (excluding the message header)
with the w command (rmail-output-body-to-file
). Often
these messages contain the intended file name in the ‘Subject’
field, so the w command uses the ‘Subject’ field as the
default for the output file name. However, the file name is read using
the minibuffer, so you can specify a different name if you wish.
You can also output a message to an Rmail file chosen with a menu.
Choose first the menu bar Classify item, then from the Classify menu
choose the Output Rmail File menu item; then choose the Rmail file you want.
This outputs the current message to that file, like the o command.
The variables rmail-secondary-file-directory
and
rmail-secondary-file-regexp
specify which files to offer in the
menu: the first variable says which directory to find them in; the
second says which files in that directory to offer (all those that match
the regular expression).
Copying a message with o or C-o gives the original copy
of the message the ‘filed’ attribute, so that ‘filed’
appears in the mode line when such a message is current. w
gives it the ‘stored’ attribute. If you like to keep just a
single copy of every mail message, set the variable
rmail-delete-after-output
to t
; then the o,
C-o and w commands delete the original message after
copying it. (You can undelete the original afterward if you wish.)
Copying messages into files in system inbox format uses the header
fields that are displayed in Rmail at the time. Thus, if you use the
t command to view the entire header and then copy the message, the
entire header is copied. See Rmail Display.
The variable rmail-output-file-alist
lets you specify
intelligent defaults for the output file, based on the contents of the
current message. The value should be a list whose elements have this
form:
(regexp . name-exp)
If there's a match for regexp in the current message, then the
default file name for output is name-exp. If multiple elements
match the message, the first matching element decides the default file
name. The subexpression name-exp may be a string constant giving
the file name to use, or more generally it may be any Lisp expression
that returns a file name as a string. rmail-output-file-alist
applies to both o and C-o.