Voila, je suis enfin en mesure de proposer une modeste contribution au projet mutt.
Ce qui m’a amené à plonger dans le code source de mutt est le fait que je suis inscrit à de nombreuses listes de diffusion et que j’aime m’inscrire ici et me désinscrire là assez fréquemment. En fait je m’inscrit souvent pour voir si le contenu de la liste m’intéresse réellement et si son trafic n’est pas trop important.
Du coup j’avais vraiment envie que mutt puisse me proposer simplement un mail type de désinscription pour une liste donnée.
J’ai remarqué que dans la plupart des mails envoyés par les listes de diffusion, un en-tête est renseigné : “List-Unsubscribe”.
Il est presque toujours de la forme d’un lien de type “mailto” en HTML c’est à dire :
<mailto:account@domain[[?options]]>
La plupart du temps, il suffit de trouver l’adresse email du compte spécifié dans cet en-tête et d’y envoyer un mail avec comme sujet “unsubscribe”.
Cette solution n’est certes pas optimale puisqu’elle ne couvre pas l’exhaustivité des cas possibles (on rencontre notamment des en-tête de type liens HTML) mais a l’avantage de satisfaire la majorité des cas.
Quels sont les effets de ce patch dans mutt ?
Une nouvelle commande est présente, elle se nomme “list-unsubscribe” (par analogie avec “list-reply”).
On y accède avec une pression de la touche ‘X’ dans le pager ou dans la visualisation d’un mail.
Lorsque cette commande est lancée, mutt cherche l’en-tête “List-Unsubscribe” et prépare un mail avec l’adresse trouvée dans cet en-tête et pré-renseigne le sujet du mail avec le mot “unsubscribe”. Le contenu du mail sera quant à lui vide.
Que faire pour continuer ce patch ?
Ce patch est loin d’être terminé, il serait idéal qu’il remplisse les fonctionnalités suivantes :
ne pas mettre unsubscribe comme sujet mais bien utiliser la valeur de l’option “?subject=xxx” si celle-ci est présente.
être capable de gérer l’option “?body=xxx” de la même manière que “subject”.
gérer les liens complexes, comme ceux disposant de plusieurs options séparées par des virgules.
Pour les gens motivés qui veulent tester ce patch non-officiel de mutt, voici le fichier contenant le diff unifié : mutt_list-unsubscribe.patch.txt
Pour les gens un peu moins motivés mais curieux quand-même, voici un binaire compilé pour les architectures i386 sous Linux qui vous permettera de tester ce patch.