   This file documents tm-vm.el v8.12

   tm-vm is part of the TM Package.

   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-en).) and the VM
mail user agent (see VM (vm).).

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

   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-en),
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 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 Copyright (TM).