Le programme mailto

Le problème à résoudre est assez simple: pouvoir utiliser mutt pour écrire des mails quand on clique sur les liens mailto: dans Firefox. Simple, mais pas tant que ça. Firefox accepte, après moult tortures et fouilles sur le Web de lancer un programme externe pour ça, mais il lui refuse de lui passer des paramètres spécifiés par l'utilisateur. Il veux juste le nom d'un programme qui recevra comme paramètre unique la ligne mailto:... correspondante.

Il manque donc un petit programme idiot, qui sache lire cette ligne et la traduire en ligne de commande pour mutt, et qui bien sur lance un émulateur de terminaux pour exécuter mutt.

Configurer Firefox

Le premier truc à savoir faire est de configurer Firefox pour qu'il lance un programme externe pour les liens mailto:. Pas très compliqué, mais aucune chance de trouver tout seul.

Il faut commencer par se rendre sur la page about:config qui liste toute la configuration de Firefox. Dans la barre Filter (son nom peut changer si Firefox est en français), il faut chercher protocol-handler. L'entrée qui nous intéresse est celle-là:

network.protocol-handler.app.mailto

Par défaut, elle n'existe pas. il faut donc faire un clique droit, demander la création d'une nouvelle entrée de type chaîne de caractères (String dans la version anglaise). Le nom est celui donné ci-dessus, la valeur est le nom complet du programme mailto. Dans mon cas, il est intallé à la racine de mon compte, la valeur est donc /home/bayartb/mailto.

Voilà, Firefox va maintenant lancer ce programme à chaque fois qu'on cliquera sur un lien mailto:. Ne reste plus qu'à installer (et configurer) le petit programme en question.

Installer et configurer mailto

Ce programme est écrit en Perl et utilise une bibliothèque que j'ai écrire (et que j'utilise souvent) pour lire son fichier de configuration. On peut, au choix, remplacer la configuration en dur dans le programme, ou installer la bibliothèque en question.

Pour l'installation du programme, c'est facile, il suffit de la poser n'importe où avec les droits d'exécution dessus, le répertoire /usr/local/bin semblant approprié.

Le fichier de configuration est tout petit. Il s'appelle /etc/fdn/mailto.cfg (il est dans /etc/fdn parce que les bibliothèques qui gèrent ça sont les FDN-libs). Il contient ça:

[common]
        xterm = /usr/bin/rxvt -e
        tmp   = /tmp

La première entrée indique quel émulateur de terminaux utiliser (je suis un vieux garçon, je suis resté sur rxvt). La deuxième entrée indique dans quel répertoire il doit créer son fichier temporaire (le programme est capable de transmettre n'importe quel champ d'en-tête à mutt, pour ça il les écrit dans un fichier temporaire et il utilise l'option -H de mutt).

Le programme est disponnible ici.

La configuration par défaut est ici.

Liens

En faisant quelques recherches sur le web pendant que j'écrivais ce petit programme je suis tombé sur une page où quelqu'un parle d'un programme similaire qu'il a écrit en Bourne Shell pour faire la même chose. Cette page est ici.

Bugs

Les rapports de bug sont à envoyer à mon adresse mail (ci-dessous) et seront traités... quand j'aurais le temps. Merci de mettre la balise [bug] dans le sujet du mail.

bayartb at edgard point fdn point fr