Courriers internationaux

Envoyer un courrier en anglais ? Pas de problème. En français ? Ça va à peu près. En allemand ? En espagnol ? Pareil, on se débrouille. En polonais, en danois ? C'est déjà plus difficile. En russe ou en grec ? Là ça devient vraiment compliqué. En chinois ou en japonais ? Le cauchemar !

Se préparer

Prérequis

Pour pouvoir envoyer des courriers dans des langues bizarres, il faut avant tout savoir taper les messages. Pour ça, vous pouvez vous référer à notre page sur comment taper de l'Unicode. Il est également utile d'avoir lu la page sur les problèmes théoriques liés aux langues.

Choisir un logiciel de courrier

Peu de logiciels de courrier gèrent correctement Unicode. En particulier, il n'est pas question d'utiliser Pine. Heureusement, le meilleur logiciel de courrier que nous ayons ici, Mutt, s'en tire parfaitement. Le seul autre logiciel de courrier gérant Unicode ici est le module courrier de Mozilla. C'est de Mutt que nous parlerons ici.

Vous devez donc utiliser Mutt, avec comme éditeur un éditeur gérant Unicode. Ça ne vous laisse pas énormément de choix, mais c'est le choix parmi le meilleur. Attention : tout ceci ne marche qu'avec les versions de Mutt à partir de 1.3.

Quand ça marche bien

Lire du courrier dans une langue bizarre

Avant toutes choses, il vous faut obtenir un terminal en Unicode pour pouvoir lancer Mutt dedans.

Attension, sous FreeBSD, il faut prévenir Mutt qu'il est en Unicode. Pour ça, tapez la commande suivante, puis ré-ouvrez la boîte aux lettres :

:set charset=utf-8

Dès que vous avez ainsi lancé Mutt, tous vos courriers devraient s'afficher, quelle que soit leur langue. Il n'y a rien de plus à faire.

Envoyer du courrier dans une langue étrange

Pour envoyer un courrier à quelqu'un disposant d'un logiciel de courrier moderne, il n'y a rien de spécial à faire : composez le message comme d'habitude (on a expliqué dans une autre page comment taper dans des langues exotiques), et envoyez-le.

Une petite subtilité qui peut se produire : quand vous répondez à un courrier, vous le citez, avec en chapeau un texte d'« attribution » du style « Le 29 février 2000, Untel Tartampion a écrit : ». Le problème vient du é dans « écrit » : il vient directement de votre fichier .muttrc, et est codé en iso-8859-1. Ceci peut faire échouer la détection automatique du codage par votre éditeur. Pour corriger ça, avant de répondre, tapez :set attribution=, puis Tab, et corrigez.

Si ça ne marche pas

Ne lisez ça que si ça ne marche pas. Si ça marche, pas la peine de vous compliquer la vie.

Problèmes pour lire

Il peut y avoir plusieurs causes. Si les caractères s'affichent comme des carrés en pointillés, c'est que la police utilisée n'a pas les caractères nécessaires, il n'y a pas grand chose à faire, à part essayer de trouver une police plus riche.

Si le texte s'affiche rempli de points d'interrogation, le problème vient du logiciel de courrier de votre correspondant, qui n'a pas correctement étiqueté le courrier avec le codage utilisé. La situation n'est pas désespérée. Appuyez sur v, et Mutt affichera les parties du message (une seule en général). Sur la droite, vous verrez une mention du genre :

[text/plain, 8bit, iso-8859-1, 0.5K]

Le text/plain permet de reconnaître le courrier lui-même dans le cas où il y a des attachements. Ce qui nous intéresse alors est le troisième champ, qui est ici iso-8859-1 : ça indique que Mutt a détecté le codage ISO-8859-1, soit le codage pour les langues occidentales. Le plus probable est que votre courrier indique us-ascii, ce qui veut dire qu'aucun codage n'est explicitement indiqué. Ou bien il y en a un autre, qui n'est pas le bon.

Dans tous les cas, vous pouvez demander à Mutt d'essayer un autre codage de votre choix en tapant par exemple :

:charset-hook iso-8859-1 koi8-r

iso-8859-1 est le codage détecté par Mutt, et koi8-r celui que vous voulez lui faire essayer. Pour que ce soit pris en compte, il faut revenir à l'index et ré-ouvrir le message.

Pour savoir quel codage essayer, il faut avoir une vague idée de la langue dans laquelle est le message. Vous pouvez essayer les suivants (les majuscules n'ont pas d'importance) :

Quand vous avez trouvé quel était le bon codage, vous pouvez configurer Mutt pour que le changement se fasse automatiquement. Pour ça, ajoutez dans votre fichier .muttrc des lignes de la forme :

message-hook . "charset-hook iso-8859-1 iso-8859-1"
message-hook ~f"untel" "charset-hook iso-8859-1 koi8-r"

La première ligne indique à mutt que pour tous les messages, il doit convertir iso-8859-1 en lui-même ; elle sert à effacer les effets de la suivante. La seconde ligne dit que pour les messages d'Untel, il faut prendre l'iso-8859-1 pour du koi8-r (untel est une partie de l'adresse de l'expéditeur (ou une expression rationnelle)).

L'idéal est quand même de convaincre votre correspondant de configurer correctement son logiciel de courrier.

Problèmes pour écrire

Le problème qui peut vous arriver, c'est que votre correspondant n'arrive pas à vous lire, parce que son logiciel de courrier ne connaît pas Unicode. Si vous n'arrivez pas à le convaincre d'en adopter un moins rudimentaire, voilà comment vous adapter à lui.

La première méthode est de trouver quel codage il accepte. En général c'est facile : c'est le même que celui des courriers qu'il envoie, et nous avons vu plus haut comment le déterminer. Au pire, il vous reste à tester les différents codages de la liste jusqu'à en trouver un qu'il arrive à lire. Mettons pour la suite que le codage qui convient est koi8-r.

Mutt possède une option send_charset, dont la valeur par défaut est us-ascii:iso-8859-1:utf-8. Ça veut dire qu'au moment d'envoyer un courrier, Mutt essaiera successivement les codages us-ascii, puis iso-8859-1 et enfin utf-8, jusqu'à en trouver un assez riche pour coder votre courrier (utf-8 est toujours assez riche). Il s'agit donc d'ajouter le codage de votre correspondant à la liste, en mettant la ligne suivante dans votre fichier .muttrc :

set send_charset="us-ascii:iso-8859-1:koi8-r:utf-8"

Ceci se lit : si le courrier ne contient que des caractères anglo-saxons, utiliser le codage us-ascii, sinon, si le courrier contient aussi des caractères accentués occidentaux, utiliser le codage iso-8859-1, sinon, si le courrier contient des caractères cyrilliques, utiliser le codage koi8-r, et sinon enfin utiliser le codage utf-8 (entre autres si le courrier contient des accents occidentaux et du cyrillique, par exemple pour un courrier bilingue en français et russe).

Au moment de l'envoi, Mutt indique le codage qu'il a choisi :

- I     1 ~/tmp/mutt-clipper-25879-1           [text/plain, 8bit, koi8-r, 0.1K]

Vous pouvez le modifier avec Ctrl-T si vous n'êtes pas satisfait, ou pour changer au cas par cas. Il ne reste plus qu'à envoyer.

Auteur : Nicolas George.