Aussi disponible en : English · Español · Português · العربية
Générateur de lien mailto
Créez un lien mailto avec objet et message qui arrive intact, et voyez ce que la façon habituelle de le construire aurait abîmé.
Qu'est-ce qu'un lien mailto ?
Un lien mailto est une URI qui ouvre le logiciel de messagerie du lecteur avec un message déjà commencé. Placé dans un href, un clic lui remet un brouillon rédigé au lieu d'une adresse à recopier. La forme la plus simple se réduit à une adresse, et tout ce qui suit le point d'interrogation — objet, corps, cc, cci — relève de champs facultatifs.
Il n'envoie rien par lui-même. Le lien se contente d'ouvrir un brouillon dans le logiciel de messagerie défini par défaut, et la personne doit encore cliquer sur envoyer. Cela vaut la peine de le savoir avant de construire quoi que ce soit autour, car le contenu reste entièrement visible et entièrement modifiable par celui qui clique.
Ce générateur construit le lien, l'affiche en texte brut et en balise HTML, et vous laisse l'ouvrir pour vérifier ce que votre propre logiciel en fait. Il montre aussi à quoi ressemble ce même lien construit comme presque tout le monde le construit, et c'est là que ça devient intéressant.
Comment l'utiliser
- Indiquez le destinataire. Une adresse, ou plusieurs séparées par des virgules. Cc et Cci fonctionnent de la même façon et restent facultatifs ; l'outil signale que la spécification ne les traite pas comme l'objet et le corps.
- Rédigez l'objet et le message. Tels que vous voulez les voir apparaître, sauts de ligne compris : l'encodage est pris en charge. Le lien se reconstruit à mesure que vous tapez.
- Copiez le lien, ou ouvrez-le pour le tester. Copier vous donne l'URI à mettre dans un href ; le bouton d'ouverture la transmet à votre logiciel de messagerie par défaut, pour vérifier qu'elle arrive comme prévu.
Pourquoi presque tous les liens mailto sont mal encodés
Un lien mailto se termine par quelque chose qui ressemble exactement à une chaîne de requête, alors on le construit comme telle : avec l'encodage de formulaire, les règles mêmes qu'un navigateur applique en soumettant un formulaire. C'est là l'erreur, et elle est quasi universelle parce que rien n'échoue jamais visiblement.
La RFC 6068 définit ce qui peut figurer dans un de ces champs, et l'espace n'est pas dans la liste. Le signe plus, lui, y est — en tant que signe plus littéral. Quand l'encodage de formulaire transforme votre espace en plus, il n'écrit donc pas une abréviation que le logiciel de messagerie va défaire : il écrit un caractère qui se signifie lui-même, et un client correct affichera un objet indiquant Demande+de+devis.
Les sauts de ligne sont le second cas : la spécification impose d'écrire un saut dans le corps sous la forme %0D%0A, et l'encodage de formulaire n'en produit que la seconde moitié.
Vérifié sur les 128 caractères ASCII et non sur un échantillon, l'encodage de formulaire diffère de l'encodage correct sur 14 d'entre eux. Ce chiffre exagère le problème, il vaut donc mieux le décomposer : 11 des 14 sont des caractères écrits plus longuement que nécessaire, ce qui est permis et arrive à l'identique — l'apostrophe d'un mot comme aujourd'hui en fait partie. Trois seulement changent ce que reçoit votre correspondant, et ces trois-là sont l'espace et les deux moitiés d'un saut de ligne. Peu de caractères, et précisément ceux qui figurent dans n'importe quel objet et n'importe quel message réels.
Il en existe une version pratique qui coûte du courrier pour de bon. Le signe plus est valide dans une adresse, et les adresses à plus — vous+boutique@exemple.com, l'astuce pour filtrer — sont courantes. Construisez le lien correctement et le plus survit intact. Construisez-le avec l'encodage de formulaire et le plus revient volontiers en espace, ce qui n'est pas une adresse valide, et le message repart en erreur.
Limites assumées
La spécification se montre prudente sur les champs qu'un logiciel de messagerie devrait honorer, et elle est plus restrictive que l'usage. Sa section 4 ne cite que Subject, Keywords et Body comme sûrs et utiles en général, et précise qu'un client peut composer le message à partir d'une partie seulement des champs reçus. Cc et Cci sont honorés par tout logiciel sérieux, cet outil les propose donc — mais ils constituent une demande et non une garantie, et un champ comme From, attendez-vous à le voir ignoré, voire à ce qu'il fasse refuser le message entier.
Les sauts de ligne ont leur place dans le corps et nulle part ailleurs. La spécification déconseille de les employer dans les autres champs : un saut dans l'objet est donc signalé ici plutôt qu'encodé en silence, et la plupart des logiciels le supprimeront ou l'abîmeront.
L'allure finale du brouillon ne dépend pas entièrement de vous non plus. Certains clients tronquent les corps longs, quelques-uns retirent la mise en forme, et un webmail défini comme gestionnaire système se comporte autrement qu'un logiciel de bureau. Testez le lien dans le logiciel que votre public utilise réellement avant de miser sur un message long, et gardez l'essentiel dans le texte visible de la page plutôt que dans le lien.
Enfin, une adresse inscrite dans une page sous forme de lien mailto reste une adresse inscrite dans une page. Les robots collecteurs d'adresses lisent parfaitement le HTML, et aucun encodage n'y change rien : encoder les caractères en pourcentage est une règle d'écriture, pas une technique de dissimulation, et cet outil ne prétend pas le contraire.
Pourquoi est-ce gratuit ?
Le lien est assemblé dans votre navigateur. Encoder une chaîne de caractères n'est pas un travail qui réclame un serveur : il n'y a donc rien à faire tourner, rien à facturer et aucun compte à créer.
Rien de ce que vous saisissez n'est envoyé, conservé ni journalisé, et aucun message ne part de cette page : elle ne produit que du texte à coller. Les adresses et les brouillons sont exactement ce qui n'a pas à voyager jusqu'au serveur d'un tiers pour être mis en forme.