VM User's Manual. Node: MIME Composition

PREV Sending Messages UP Sending Messages NEXT Replying

5.1: MIME Composition

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 bound to 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 (vm-mime-preview-composition). VM 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 further changes.

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 undo (normally bound to C-x u) command which will revert the encoded MIME bodies back to tags and you can continue entering your composition.

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 vm-mime-7bit-composition-charset. The value of variable should be a string specifying the character set.

If there are character codes in the composition greater than 128, the variable vm-mime-8bit-composition-charset tells VM what character set to assume when encoding the message. The default is `iso-8859-1'.

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 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 variable 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).

PREV Sending Messages UP Sending Messages NEXT Replying