When sending messages from within VM, you will be using the standard Mail major mode provided with GNU Emacs, plus some extensions added by VM. See section `Mail Mode' in the GNU Emacs Manual. However, mail composition buffers created by VM have some extra command keys.
vm-included-text-prefix. All message headers are yanked along with the text. Point is left before the inserted text, the mark after. Any hook functions bound to
mail-yank-hooksare run, after inserting the text and setting point and mark. If a prefix argument is given, this tells VM to ignore
mail-yank-hooks, don't set the mark, don't prepend the value of
vm-included-text-prefixto every yanked line, and don't yank any headers other than those specified in
vm-invisible-headers. To yank a message from a different folder than the parent of this composition, use M-x vm-yank-message-other-buffer.
vm-send-using-mimemust be set non-
nilfor this command to work. You will be asked for the file's type, and a brief description of the attachment. The description is optional. If the file's type is a text type, you will also be asked for the character set in which the text should be displayed. The new attachment will appear as a highlighted tag in the composition buffer. You can use mouse button 3 on this tag to set the default content disposition of the attachment. The content disposition gives a hint to the recipient's mailer how to treat the attachment. Specifically the disposition will indicate whether the attachment should be displayed along with the message or saved to a file. Any text in the composition that appears before the tag will appear in a MIME text part before the attachment when the message is encoded and sent. Similarly, any text after the tag will appear after the attachment in the encoded message. If you change your mind about using the attachment, you can remove it from the composition with C-k. If you want to move the attachment to some other part of the message, you can kill it C-k and yank it back with C-y.
vm-next-command-uses-marksfirst, the marked messages in the selected folder will be attached as a MIME digest.
undocommand can be used to undo the encoding, so that you can continue composing the unencoded message.
The simplest command is m (
vm-mail) which sends a mail
message much as M-x mail does but allows the added commands
vm-mail can be invoked outside of VM by typing M-x vm-mail.
However, only (
vm-yank-message-other-folder) will work; all the
other commands require a parent folder.
If you send a message and it is returned by the mail system
because it was undeliverable, you can resend the message by
typing M-r (
vm-resend-bounced-message). VM will
extract the old message and its pertinent headers from the
returned message, and place you in a VM Mail mode buffer. A
Resent-To header will be added, which you can fill in with
the corrected addresses of the recipients that bounced. You
can also added a Resent-Cc header, which has the same meaning
as a Cc header in a normal message. Mail will only be sent to
the addresses in the Resent-To and Resent-Cc headers unless
you delete both of those headers. In that case the To and Cc
headers will be used.
To use VM's MIME composition features, you must have
vm-send-using-mime set to a non-
nil value. With MIME composition
enabled, VM will allow you to add file attachments to your
composition and will analyze your message when you send it and
MIME encode it as necessary.
To attach a file to your composition, use C-c C-a
vm-mime-attach-file). VM will ask you for the name of the file,
its type, a brief description and its character set if it is a
text attachment. The attachment will be represented in the
composition as a tag line like this
[ATTACHMENT ~/sounds/chronophasia_scream.au, audio/basic]
You can type text before and after this tag and it will appear before or after the text in the final MIME message when VM encodes it. You can kill the tag with C-k and yank it back with C-y to move it to another place in the message. You can yank back the tag multiple times to duplicate the attachment in the message. Or you can leave the tag killed and the attachment won't appear in the message when it is sent.
If you click the right mouse button on the attachment tag, a menu will appear that allows you to change the content disposition of the attachment. The content disposition of a MIME object gives a mail reader a hint as to whether an object should be displayed inline or as an inert tag or button that you must activate in some fashion. Inline display usually means that the object will be display within or alongside the message text, if that is possible. Attachment, when used as a content disposition, means that the object will likely be displayed as a tag. By default, VM specifies an inline disposition for all MIME types except `application' and `model' types.
To attach a buffer instead of a file, use C-c C-b (normally
vm-mime-attach-buffer. You must not kill the
buffer that you attach until after the message has been sent.
To preview what a MIME message will look like to a recipient,
use C-c C-p (
will encode a copy of the message and present it to you in a
temporary mail folder. You can scroll through the message
using normal VM mail reading commands. Typing q in this
folder will return you to your composition where you can make
To encode a MIME message without sending it, use C-c C-e
vm-mime-encode-composition). This is useful if you use
PGP and want to sign a message before sending it. VM will encode
the message for transport, inserting all necessary headers and
boundary markers. You can then sign the message and send it with
C-c C-c and be confident that VM won't invalidate the signature
by making further modifications to the message. Or if you want
to resume editing the message you can run the Emacs
(normally bound to C-x u) command which will revert the
encoded MIME bodies back to tags and you can continue entering
By default, when you type text into a composition buffer VM
assumes that if all the character codes are less than 128, you
are using the US-ASCII character set and that is the character
set declared in the encoding of the message when it is sent. If
you are using some other character set, you must specify it by
setting the variable
value of this variable should be a string specifying the character
If there are character codes in the composition greater than 128, the
vm-mime-8bit-composition-charset tells VM what character
set to assume when encoding the message. The default is
Character codes greater than 128 may not be transported reliably across the Internet in mail messages. Some machines will refuse to accept messages containing such characters and some will accept them but zero the eighth bit, garbling the message. To avoid these problems, VM transfer encodes 8-bit text by default.
MIME has two transfer encodings that convert 8-bit data to 7-bit data for safe transport. Quoted-printable leaves the text mostly readable even if the recipient does not have a MIME-capable mail reader. BASE64 is unreadable without a MIME-capable mail reader.
VM's text transfer encoding behavior is controlled by the
vm-mime-8bit-text-transfer-encoding. Its value should
be a symbol that specifies what kind of transfer encoding to do
for 8-bit text. A value of `quoted-printable', means to use
quoted-printable encoding. A value of `base64' means to use
BASE64 encoding. A value of `8bit' means to send the message as
is. Note that this variable usually only applies to textual MIME
content types. Images, audio, video, etc. typically will have
some attribute that makes VM consider them to be "binary",
which moves them outside the scope of this variable. For
example, messages with line lengths of 1000 characters or more
are considered binary, as are messages that contain carriage
returns (ASCII code 13) or NULs (ASCII code 0).
VM has special commands that make it easy to reply to a message. When a
reply command is invoked, VM fills in the subject and recipient headers
for you, since it is apparent to whom the message should be sent and
what the subject should be. There is an old convention of prepending
the string `"Re: "' to the subject of replies if the string isn't
present already. VM supports this indirectly by providing the variable
vm-reply-subject-prefix. Its value should be a string to prepend
to the subject of replies, if the string isn't present already. A
nil value means don't prepend anything to the subject (this is
the default). In any case you can edit any of the message headers
manually, if you wish.
VM also helps you quote material from a message to which you are
replying by providing included text as a feature of some of the
commands. Included text is a copy of the message being replied to with
some fixed string prepended to each line so that included text can be
distinguished from the text of the reply. The variable
vm-included-text-prefix specifies what the prepended string will
vm-included-text-attribution-format specifies the
format for the attribution of included text. This attribution is a line
of text that tells who wrote the text that is to be included; it will be
inserted before the included text. If non-
nil, the value of
vm-included-text-attribution-format should be a string format
specification similar to
vm-summary-format. See section Summaries. A
nil value causes the attribution to be omitted.
vm-in-reply-to-format specifies the format of the
In-Reply-To header that is inserted into the header section of the reply
vm-in-reply-to-format should be a string similar to that of
nil value causes the In-Reply-To
header to be omitted.
The recipient headers generated for reply messages are created by
copying the appropriate headers from the message to which you are
replying. This includes any full name information, comments, etc. in
these headers. If the variable
nil, the recipient headers will be stripped of all information
except the actual addresses.
The reply commands are:
These commands all accept a numeric prefix argument n, which if present, causes VM to reply to the next (or previous if the argument is negative) n-1 messages as well as the current message. Also, all the reply commands set the "replied" attribute of the messages to which you are responding, but only when the reply is actually sent. The reply commands can also be applied to marked messages, see section Message Marks.
If you are one of multiple recipients of a message and you use f
and F, your address will be included in the recipients of the
reply. You can avoid this by judicious use of the variable
vm-reply-ignored-addresses. Its value should be a list of
regular expressions that match addresses that VM should automatically
remove from the recipient headers of replies.
VM has three commands to forward messages: z
vm-forward-message), @ (
Typing z puts you into a VM Mail mode buffer just like m,
except the current message appears as the body of the message in the VM
Mail mode buffer. The forwarded message encapsulated as specified by the
vm-forwarding-digest-type. Recognized values are
`"rfc934"', `"rfc1153"' and `"mime"'. If the variable
vm-forwarding-subject-format is non-
nil it should specify
the format of the Subject header of the forwarded message. A
value causes the Subject header to be left blank. The forwarded message
is flagged "forwarded" when the message is sent.
The command @ (
vm-send-digest) works like z except
that a digest of all the messages in the current folder is made and
inserted into the VM Mail mode buffer. Also,
be applied to just marked messages. See section Message Marks. When applied
to marked messages,
vm-send-digest will only bundle marked
messages, as opposed to the usual bundling of all messages in the
current folder. The message encapsulation method is specified by the
vm-digest-send-type, which accepts the same values as
vm-forwarding-digest-type. All the messages included in the digest will
be flagged "forwarded" when the digest message is sent.
If you give
vm-send-digest a prefix argument, VM will insert a
list of preamble lines at the beginning of the digest, one line per
digestified message. The variable
determines the format of the preamble lines. If the value of
vm-digest-center-preamble is non-
nil, the preamble lines
will be centered.
If you wish to forward a message and want to send it without the
encapsulation used by
vm-forward-message, use B
vm-resend-message). Instead of encapsulating the message, VM
will use essentially the same message and headers and add a Resent-To
header that you should fill in with the new recipients. Use C-c
C-c as usual to send the message. The resent message will be flagged
Go to the first, previous, next, last section, table of contents.