[EMACS] fonction d'impréssion des mails depuis VM

Top Page

Reply to this message
Author: Francois-Xavier KOWALSKI
Date:  
To: List GUILDE
Subject: [EMACS] fonction d'impréssion des mails depuis VM
Salut à tous,

*** Ce mail n'intéresse que les utilisateurs du client mail VM
    fonctionnant sous (X)Emacs.


Contexte
--------

VM est affligé par défaut d'une fonction d'impréssion des mails qq peu
faiblarde (dump direct du texte). Le paquetage ps-print.el (maintenu
par Jacques DUTHEN) delivré avec GNU Emacs & XEmacs fourni des
exemples de 'hooks' permettant de réaliser une impréssion plus propre.

MAIS,

les fonctions de ps-print.el 'ré-inventent la roue' car elles
analysent elles-même le contenu du mail pour en extraire les champs
"From: ", "Subject: ", ... etc. VM le fait déja (très bien,
d'ailleurs).

Fonctionnalités
---------------

J'ai réccupéré une fonction 'vm-print-message-with-faces' d'auteur
inconnu (probablement anglo-saxon) et y ai incorporé:

- Les fonctions de décodage MIME de VM, pour avoir une impréssion
PostScript utilisant les accents.

- L'appel à BBDB pour résoudre le nom de l'utilisateur sur la base de
son adresse Email.

Code
----

Les commentaires/améliorations sont les bienvenus.

== à incorporer dans ~/.vm
(require 'nnmail)
(require 'ps-print)

;;; New print function
;;;
(defvar vm-print-from-function nil)

(defun vm-print-message-with-faces (&optional filename)
  "Print the current message to a PostScript printer (or file) with font
information"
  (interactive)
  (vm-select-folder-buffer)
  (let* ((msg (vm-real-message-of (car vm-message-pointer)))
         (buffer (set-buffer (if (vm-mime-plain-message-p msg)
                                 (vm-buffer-of msg)
                               vm-presentation-buffer)))
         (subject-line (or (vm-decode-mime-encoded-words-in-string
                (vm-get-header-contents msg "Subject:"))
               "<No Subject>">))
         (from-line (concat "From: "
                (or (if (fboundp vm-print-from-function)
                    (funcall vm-print-from-function msg))
                (vm-decode-mime-encoded-words-in-string
                 (vm-get-header-contents msg "From:"))
                "<No Sender>")))
         (date-line (vm-get-header-contents msg "Date:"))
         (time (if date-line (nnmail-date-to-time date-line) (current-time)))
         (dd-mon-yyyy (format-time-string "%d %b %Y" time))
         (hh:mm:ss (format-time-string "%T" time))
         (ps-left-header (list 'subject-line 'from-line))
         (ps-right-header (list "/pagenumberstring load"
                'dd-mon-yyyy 'hh:mm:ss))
         (ps-header-lines 2)
         (ps-print-header-frame t))
    (ps-print-buffer-with-faces)))


;;;
(setq vm-print-from-function 'vm-summary-function-B) ;Hooks BBDB
(fset 'vm-toolbar-print-command 'vm-print-message-with-faces)
==

-- 
Fix & Cathy KOWALSKI                      mailto:ayoul@club-internet.fr
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Too many people are thinking of security instead of opportunity.  They
seem more afraid of life than death. -- James F. Byrnes