This file documents tm-vm.el v8.12

tm-vm is part of the TM Package.

tm-vm is an interface between tm and the VM mail user agent that lets you read and write multimedia mail on the Internet using the MIME standard.

tm-vm and its documentation are distributed under the same terms as TM. Please refer to the TM Manual.

Copyright 1996 Tomohiko Morioka, Oscar Figueiredo

tm-vm Manual
************

tm-vm is an interface between tm and the VM mail user agent that lets you read and write multimedia mail on the Internet using the MIME standard.

This document applies to release 8.12 of tm-vm.el

Overview
********

tm-vm is an interface between TM (see TM (TM Manual).) and the VM mail user agent (see VM (VM Manual).).

Until recently VM did not support the MIME standard. Kyle Jones has begun to implement it in VM 6.0 however TM provides a much more complete support of MIME than the one currently offered in VM 6. tm-vm integrates the TM package into VM so as to give you a powerful MIME support in your usual mail environment for both mail reading and composing. tm-vm adds MIME features to VM 5 and replaces the native features offered by VM 6.

Mail Reading Features
=====================

tm-vm tries to integrate as transparently as possible with VM so that MIME messages appear to you just like plain messages.

tm-vm detects MIME messages when you try to view them and, if automatic MIME previewing is enabled (the default), then it automatically parses the message and displays a "beautified" version under the MIME Viewer. Note that the word previewing has two different meanings for VM and TM. In VM, it means view the first lines of a message only, as defined by the variable vm-preview-lines, to avoid confusion we call this message previewing. In TM, previewing means parsing the contents of a message according to the rules of the MIME standard and display a corresponding view of it. We call that more specifically MIME previewing.

The MIME Viewer offers all the functionality to view/extract the MIME components (attachments) of the message. It also displays images inline in XEmacs. See MIME Viewer (TM View Manual). Note however that for a better VM integration, tm-vm overrides the standard bindings of the MIME-Viewer and makes them available with a C-c prefix.

Mail Composing Features
=======================

Composing a new message places you in a compose buffer as usual under VM but a special minor mode (mime-editor) is made available that lets you perform such operations as:

  * Insert arbitrary files

  * Insert another message

  * Insert a voice sample recorded from a microphone attached to the computer

  * Enclose message sections as PGP encrypted

and much more. For details, see MIME Editor (TM Edit Manual).

When you reply to a message citing the original and tm-vm is active, tm-vm will insert the contents of the MIME-Preview buffer in the reply buffer. You can also insert the raw message if you want (see Usage).

Installing tm-vm
****************

To take advantage of the benefits of tm-vm, you need to have VM and tm already installed.

VM is part of XEmacs distributions and so if you're running XEmacs you don't need to install it.  If you're running Emacs, you will need to install VM. The official VM distribution site is ftp://ftp.uu.net/networking/mail/vm/.

If you're reading this manual then there is a pretty good chance you already have a recent version of tm. The official tm distribution site is ftp://ftp.jaist.ac.jp/pub/GNU/mime/. Follow the installation procedure for tm as described in the documentation.

Once these steps are completed, tm-vm installation is very simple.  You just need to insert the following lines in your VM configuration file (generally .vm):

     (require 'mime-setup)
     (require 'tm-vm)

That's it. You are ready to read and send multimedia mail! You may also want to customize some aspects of tm-vm behaviour (see Customization).

If you use BBDB, you must load tm-vm after BBDB. Please be sure to respect the following sequence in your initialization file:

     (bbdb-insinuate-vm)
     (require 'tm-vm)

Using tm-vm
***********

Reading MIME mail
=================

When reading mail, tm-vm can operate in two different modes: automatic preview and on-demand preview. In automatic preview mode (the default) MIME messages are automatically decoded. In on-demand preview mode all messages are presented by VM as they are (as if tm were not loaded). The user can request the decoding of a message at any time with tm-vm/view-message (bound to Z).

VM folder buffer and MIME Preview buffer
----------------------------------------

Though tm-vm tries to hide this fact as much as possible, it is important to note that when MIME previewing is enabled the current message actually exists in two separate buffers:

  * the VM folder buffer: always displays the raw message buffer where the MIME contents remain unparsed

  * the MIME Preview buffer: displays a MIME parsed version of the message. It is generally what you want to see as it is more readable.

There are two different buffers due to the VM 5 implementation that makes TM/VM integration difficult. However, we try hard to make the MIME Preview buffer act as if it were the real VM message buffer by making all bindings act the same in the Preview buffer as in the folder buffer. In this version of tm-vm, most of the usual VM bindings are made available transparently in the MIME Preview buffer, others will be in the future, contact the maintainer for more information.

tm-vm/toggle-preview-mode (bound to M-t) lets you toggle between automatic and on-demand preview modes.

Composing MIME mail
===================

Regardless of the current MIME preview mode (automatic or on-demand), tm-vm activates the mime-editor mode each time you compose a mail message (new message, reply or forward).  See MIME Editor (TM Edit Manual), for details on mime-editor mode.

When you reply to a message, tm-vm will insert the contents of the decoded message if there exists a MIME Preview buffer. This is generally what you want for quoted-printable text, for instance. Inline images are removed from the reply. If for some reason you want the raw message to be inserted instead of the decoded one, you have to kill the MIME Preview buffer first. You do this with kill-buffer (bound to C-x k) in the MIME Preview buffer. You can also toggle automatic preview off, if it was on, with M-t.

Forwarding a message always inserts the raw message with its own MIME headers. The recipient will thus receive exactly the same message as you did.

Printing MIME messages
======================

For non-MULE Emacses, printing of MIME messages uses Postscript printing (through the ps-print package). Non-MIME messages are printed the usual way as configured in VM. This is controlled by the variable tm-vm/use-ps-print.

Notes about BBDB Usage
======================

BBDB, the Big Brother's Database, should operate normally with VM/tm-vm. You must ensure, however, that tm-vm is loaded after BBDB has installed its hooks. Therefore be sure to respect the following sequence in your initialization file:

     (bbdb-insinuate-vm)
     (require 'tm-vm)

Customization
*************

Several variables let you adapt the behavior of tm-vm to your needs. You can set these variables to the appropriate value in your initialization file prior to loading tm.

 -- User Option: tm-vm/automatic-mime-preview
     If non-nil then tm-vm will start in automatic mime preview mode (see Usage). Default t.

 -- User Option: tm-vm/strict-mime
     If non-nil tm-vm will automatically decode MIME messages only. MIME messages have a MIME-Version header. If nil then all messages will be decoded and viewed in the MIME Preview buffer regardless of the existence of a MIME-Version header. Default t.

 -- User Option: tm-vm/use-vm-bindings
     If non-nil tm-vm will use usual VM bindings in MIME-Preview buffers and make TM bindings available with a prefix. Otherwise usual TM bindings are used without prefix (this was the default in versions of tm-vm older than 8.0). Default t.

 -- User Option: tm-vm/attach-to-popup-menus
     If this is non-nil, tm-vm will append a menu of MIME commands to the VM standard mode popup (Button 3). Default t. Untested in Emacs.

 -- User Option: tm-vm/use-original-url-button
     If this is non-nil, tm-vm will use VM to energize URL's contained in the message body as weel as message headers. Default t.

 -- User Option: tm-vm/use-ps-print
     If this is non-nil then MIME messages will be printed in Postscript using the ps-print package. By default it is t for non-MULE Emacses.

 -- Variable: tm-vm/build-mime-preview-buffer-hook
     tm-vm runs the hooks in this list each time it builds a MIME-Preview buffer for a message. You can attach your own hook functions using add-hook.

 -- Variable: tm-vm/select-message-hook
     tm-vm runs the hooks in this list after selecting a message. You can attach your own hook functions using add-hook.

 -- Variable: tm-vm/forward-message-hook
     tm-vm runs the hooks in this list after a Mail mode buffer has been created to forward a message in message/rfc822 type format. If vm-forwarding-digest-type is rfc1521, tm-vm runs this hook instead of vm-forward-message-hook.

 -- Variable: tm-vm/send-digest-hook
     tm-vm runs the hooks in this list after a Mail mode buffer has been created to send a digest in multipart/digest type format. If vm-digest-send-type is rfc1521, tm-vm runs this hook instead of vm-send-digest-hook.

X-Faces
=======

tm-vm displays X-Faces inline for XEmacs users in the same way as VM. X-Faces are turned on by default. You need to disable their display explicitly if you want to:

     (setq vm-use-lucid-highlighting nil)
     (setq vm-display-xfaces nil)

News
****

This section documents the user-visible changes in the latest releases of tm-vm. For more technical details see the ChangeLog.

8.5 to 8.12
===========

  * Bug fixes

  * Compatible with successive VM 6 versions (tested up to VM 6.24).

  * Improved overall VM integration.

  * New hook variable tm-vm/build-mime-preview-buffer-hook.

8.4
===

  * Bug fixes in Emacs menus.

8.0 to 8.3
==========

  * Most usual VM bindings are available in MIME-Preview buffers (motion commands, summary generation). Usual TM bindings are prefixed with C-c now. See the variable tm-vm/use-vm-bindings.

  * VM menu bar and toolbar are accessible from MIME-Preview buffers

  * MIME-Preview buffers support header toggling

  * VM message previewing is correctly supported

  * Bug fixes

7.79
====

  * Minor bug fixes.

7.78
====

  * Better compatibility with MULE in respect of the ps-print package

7.77
====

  * A bug in byte-compilation introduced in 7.76 was fixed

  * Window configurations are restored more correctly (point stays where it should :-) when paging through messages.

7.76
====

  * Forwarding a MIME message now always forwards the raw message.

  * Forwarding a message from the Dispose pull-down menu now works correctly in XEmacs. Untested in Emacs.

  * Forwarding a message when the current buffer is the MIME-Preview buffer now works correctly

  * tm-vm/use-ps-print was introduced see Customization.

7.75
====

  * Bug fixes: BBDB record creation and MIME component extraction from new messages

7.74
====

  * X-Faces are displayed by default. see Customization

Copyright
*********

This file documents tm-vm 8.12, an interface between tm and the VM mail user agent.

Copyright 1996 Tomohiko Morioka, Oscar Figueiredo

tm-vm is part of the TM package. tm-vm and its documentation are distributed under the same terms as TM itself see tm-en (TM).