MH-E does offer a couple of commands that are not a part of MH. The
first one, > (mh-write-msg-to-file
), writes a message to
a file. You are prompted for the filename. If the file already exists,
the message is appended to it. You can also write the message to the
file without the header by specifying a prefix argument (such as
C-u > /tmp/foobar RET). Subsequent writes to the same file
can be made with the command !
(mh-refile-or-write-again
).
You can also pipe the message through a Unix shell command with the
command | (mh-pipe-msg
). You are prompted for the Unix
command through which you wish to run your message. If you give a
prefix argument to this command, the message header is included in the
text passed to the command (the contrived example C-u | lpr
would be done with the l command instead).
If the message is a shell archive shar
or has been run
through uuencode
use X s (mh-store-msg
) to
extract the body of the message. The default directory for extraction
is the current directory; however, you have a chance to specify a
different extraction directory. The next time you use this command,
the default directory is the last directory you used. If you would
like to change the initial default directory, customize the option
mh-store-default-directory
, change the value from
‘Current’ to ‘Directory’, and then enter the name of the
directory for storing the content of these messages.
By the way, X s calls the Emacs Lisp function
mh-store-buffer
. I mention this because you can use it directly
if you’re editing a buffer that contains a file that has been run
through uuencode
or shar
. For example, you can
extract the contents of the current buffer in your home directory by
typing M-x mh-store-buffer RET ~ RET.