Historique du projet

Au commencement...

J'ai commencé à utiliser le système d'exploitation UNIX à la fin des années 80. J'ai tout de suite apprécié la richesse des commandes disponibles sur ce système d'exploitation et la possibilité de réaliser des traitements complexes en combinant l'effet de plusieurs outils effectuant chacun un traitement très simple.
C'est également à cette période que j'ai commencé à pratiquer la programmation en langage C.

J'ai acheté mon premier PC en 1989. Cet ordinateur qui fonctionnait avec MS-DOS aurait été frustrant si je m'étais contenté de son système d'exploitation. Mais avec l'ordinateur, j'ai également acheté un compilateur C de Borland (Turbo C 2.0). Ainsi équipé, j'ai commencé à écrire des commandes UNIX que je connaissais, afin d'arriver, petit à petit, à disposer chez moi des mêmes possibilités techniques que sur mon lieu de travail. En un peu plus de 10 ans, j'ai ainsi réécrit pour MS-DOS une centaine de commandes UNIX-like.
Comme beaucoup, j'ai fini par apprendre l'existence de GNU/Linux, mais au milieu des années 90, il ne m'a pas intéressé de suite vu que je disposais déjà de mon UNIX personnel sous MS-DOS.

J'ai commencé à utiliser l'environnement fenêtré sur PC en 1996.
Windows 3.1 était alors ce qui pouvait fonctionner sur mon PC équipé d'un 386.
Lorsqu'en 1997, j'ai acheté mon premier PC avec Pentium, j'ai gardé MS-DOS avec tous mes outils et Win 3.1 .
Ses deux avantages par rapport à Windows 95 (et les versions suivantes) :

Mes débuts (ou presque) sur Internet

J'ai vraiment commencé à utiliser Internet et la messagerie électronique à partir du printemps 1999 lorsque certains fournisseurs comme free.fr ont commencé à proposer des connexions au prix des communications locales.
Pour le courrier électronique, mon logiciel était Microsoft Internet Mail. L'avantage de ce mailer était que chaque message reçu, à expédier ou envoyé était mémorisé dans un fichier distinct.
Grâce à mes outils UNIX-like (notamment ceux de la série des grep), après avoir téléchargé une série de mails l'appel d'un fichier .BAT me permettait de trier automatiquement ces mails par catégorie et de les mettre dans des répertoires distincts en fonction d'une indication dans le sujet ou de leur expéditeur.
De plus, mon système de tri permettait de séparer aussi les mails récents des autres en fonction de l'ancienneté des fichiers reçus ou envoyés.

Microsoft internet mail avait été volontairement trafiqué par ses concepteurs pour poser des problèmes d'affichage de l'heure et de la date à partir de l'an 2000. Pour remédier à ce problème, j'ai développé des programmes C qui corrigeaient automatiquement le fichier MSG-LIST des répertoires contenant des mails. En écrivant ces programmes, j'ai constaté que si le fichier MSG-LIST était corrigé de la manière la plus logique, il restait un décalage de quelques 21 H pour les messages entrants et de plus d'une journée pour les sortants. Preuve pour moi que les défauts de Micro$oft internet mail ne provenaient pas d'une simple négligence ! Du reste, il suffisait de générer une heure et date fausse dans ce fichier pour compenser dans l'autre sens le décalage d'affichage introduit par le fabriquant, ce que j'ai fini par faire.
Seul défaut résiduel, l'envoi de messages se faisait avec une année sur 2 chiffres, ce qui posait des problèmes de classement au mailer de Netscape, le concurrent !
Bref, même après l'an 2000, un peu de programmation en C m'a permis de conserver ce mailer, plutôt que de passer à Outlook qui chargeait tous les mails dans un fichier unique, ce qui n'était pas compatible avec mes tris automatiques.

Il restait quand même certains problèmes. C'est ainsi que, m'étant inscrit sur une mailing list qui, à l'époque produisait 50 messages par jour, je me suis rapidement aperçu que si seulement une partie des messages était récupéré avant de se déconnecter, la fois suivante, ces messages étaient de nouveau téléchargés !
Une fois, à un retour de vacances, quelques 200 messages m'attendaient. Après 1/4 d'heure de communication il n'en restait que 3 ou 4.
j'ai constaté qu'un abruti avait envoyé sur une mailing list une pièce jointe de près d'un mégaoctet. Le système de déconnexion automatique de mon modem après 20 minutes ayant fonctionné, je n'ai plus eu qu'à tout récupérer une autre fois. C'est finalement au 3ème coup que j'ai pu vider complètement ma boîte aux lettres.
D'autres fois, c'était des messages à virus avec des fichiers joints inutiles de quelques centaines de Koctets qui polluaient ma messagerie sans que l'expéditeur n'ait eu la correction d'envoyer un autre mail pour me prévenir 24 H à l'avance, et donc sans que je dispose vraiment de moyens pour gérer au mieux les communications téléphoniques que je payais.

J'avais certes pensé écrire des filtres sous GNU/Linux pour ne conserver que les mails utiles à télécharger, mais sans concrétiser cette idée (lorsqu'on n'a rien, on travaille pour obtenir quelque chose, lorsqu'on est assez bien pourvu, la facilité amène à s'en contenter).

2002, l'automne des changements

A partir de septembre 1999, j'ai travaillé en région parisienne et je revenais dans ma région toulousaine natale pour les vacances scolaires. J'avais donc 2 domiciles, et donc 2 lignes de téléphone fixe, une à chaque adresse.
Les 3 premières années, j'utilisais mon PC avec Pentium de 1997 (le seul à avoir un modem) en région parisienne de septembre à juin et ne le ramenait en région toulousaine qu'en juillet - août. Pour les petites vacances en région toulousaine, je me contentais du PC équipé d'un 386.
A la fin de l'été 2002, j'ai préféré laisser le Pentium à mon domicile près de Toulouse pour racheter un PC plus récent en région parisienne.
Problème imprévu : ce nouvel ordinateur ne dispose pas des pilotes Windows 3.1 pour certains éléments essentiels comme la carte graphique (limitée à 256 couleurs), le modem, etc... D'où la nécessité de passer à un système d'exploitation plus récent.

Le deuxième changement vient ... de l' incapacité de France Télécom à encaisser des factures (!) ... et de l'attitude détestable de cette société qui refuse d'assumer ses responsabilités.
Après avoir été client chez eux pendant 13 ans (durée fatidique ?), et patienté pendant 6 mois pour qu'ils règlent un problème d'encaissement de facture, j'ai fini par demander la résiliation de mes 2 lignes de téléphone fixe.
Conséquence : pendant 5 ans, je me suis contenté d'un téléphone portable (pas du réseau Orange !) pour les communications, et pour Internet j'ai utilisé l'accès ADSL sur mon lieu de travail.

Au travail !

Ces 2 événements combinés, remplacement du PC et abandon du téléphone fixe ont été pour moi l'occasion de développer sous GNU/Linux une série d'outils pour disposer d'un mailer qui offre toutes les possibilités du système précédent en rajoutant tous les outils qui me manquaient.

Au départ, je pensais faire ça rapidement en écrivant des shells qui enverraient les bonnes commandes à une connexion telnet. Le problème est que la commande telnet n'accepte que des données saisies au clavier (pas de redirection de l'entrée standard). J'ai donc écrit ces outils entièrement en C.

Restait à faire le site web.

Ce site existe en français depuis juin 2003.

Il est consultable en 6 langues depuis décembre 2003 et en 8 langues depuis mars 2004.

Les pages de man (documentation standardisée) ont été rajoutées en septembre 2004.

Depuis mars 2005, ce site est hébergé par tuxfamily.org, un hébergeur spécialisé dans les produits libres. J'espère ainsi rendre Libremail plus visible par les personnes que ce genre de logiciel pourrait intéresser, mais qui ne connaitraient pas son nom.
J'ai toutefois conservé le site initial sur free.fr, qui continue à être mis à jour.

Libremail continue à évoluer

Internationalisation de Libremail

Durant l'été 2006, j'ai commencé à préparer une version internationalisée de Libremail. Ainsi, chaque utilisateur peut voir les messages générés par les différents outils de Libremail dans sa langue. D'autre part, les versions 1 de Libremail étaient prévues pour fonctionner sur un ordinateur utilisant le jeu de caractères ISO8859-1 ou ISO8859-15. A présent, Libremail UTF-8 fonctionne en plus avec le jeu de caractères UTF-8.
Libremail détecte le jeu de caractères employé dans le mail reçu et celui utilisé par l'ordinateur, et effectue une conversion des caractères si nécessaire.
La première version stable internationalisée de Libremail a été la version 2.0 diffusée le 26 mars 2007.
Quant à la documentation, elle est disponible sous les 2 jeux de caractères UTF-8 et ISO8859-1.

Authentification SMTP

Durant l'été 2007, j'ai demandé l'ouverture de lignes téléphoniques pour disposer de nouveau d'Internet à mes domiciles.
Pour celui de la région parisienne, après une demande d'ouverture de ligne par free.fr en mars 2007 qui qui n'a jamais abouti, j'ai demandé l'ouverture de ligne à France Télécom en septembre 2007 avant de souscrire l'abonnement ADSL le moins cher que j'ai trouvé à 14,90 € / mois + 3 € de location de la box. Puis, m'étant aperçu que cet abonnement n'était pas en dégroupage total et donc m'imposait de payer aussi 16 € / mois à France Télécom, j'ai choisi celui de Tele2 à 19,90 € / mois qui ne pose pas ce problème.
Par contre, pour l'envoi des mails, Tele2 impose d'utiliser l'authentification SMTP. J'ai donc commencé par traduire en français la RFC qui décrit cette authentification avant de passer aux travaux pratiques en rajoutant cette possibilité à Libremail.

Diffusion des versions compilées de Libremail

Jusqu'en mars 2008, seuls les fichiers source de Libremail étaient fournis, ce qui imposait aux utilisateurs de disposer d'un compilateur C sur leur ordinateur. Ensuite, jusqu'en 2020, j'ai repris (peut-être à tort) l'idée d'un windowsien de diffuser aussi une version comprenant les fichiers source et les exécutables compilés (en 32 bits).
Toutefois, sous GNU/Linux, les versions compilées 32 et 64 bits ne sont pas compatibles entre elles, et j'ai préféré abandonner la diffusion de versions compilées plutôt que d'avoir à en générer plusieurs à chaque changement de version.

Installation possible de Libremail dans /usr

La fréquentation du salon Solutions Linux à Paris m'a permit en 2009 et 2010 de présenter Libremail à une personne responsable de la distribution SliTaz. Cette personne a souhaité que Libremail puisse être implanté dans les mêmes répertoires que les autres commandes de GNU/Linux (outils dans /usr/bin et fichiers de données dans /usr/share/...). Les modifications nécessaires ont été implantées dans la version 2.2 .

Traduction automatique du mail en cours de lecture

La réalisation de sites web et de documentation multilingue m'a emmenée d'abord à utiliser le logiciel libre Apertium, puis à participer à son développement. Comme ce logiciel de traduction fonctionne en ligne de commandes, j'ai interfacé l'outil permettant de consulter un mail en mode page avec ce logiciel (mais tout autre traducteur en ligne de commandes devrait fonctionner aussi) pour effectuer la traduction automatique du sujet et du texte d'un mail. Cette possibilité de traduction pendant l'examen d'un mail existe depuis la version 2.4 du 13 mai 2014.

Adaptation de Libremail aux afficheurs Braille

En fréquentant également les RMLL (Rencontres Mondiales du Logiciel Libre, qui sont surtout des rencontres francophones), j'ai plusieurs fois rencontré un aveugle de naissance qui utilise un ordinateur avec un afficheur Braille. je me suis d'abord renseigné sur la manière dont ce site web est visible des aveugles, puis, un jour, il a essayé Libremail. Comme je lui ai dit qu'avec certains outils, les mails non lus ou les adresses de destinataires sélectionnées sont affichés en surbrillance, alors que les répertoires ne contenant pas de mail apparaisse en bleu foncé, il m'a proposé de rajouter une indication en début de ligne pour les claviers Braille. c'est fait depuis la version 2.4.1 avec une variable d'environnement qui permet de préciser le caractère à afficher.

Évolution des compilateurs C

Le compilateur C de GNU évoluant lui aussi, une instruction comme : n'est pas exécutée de la même façon sur avec un compilateur récent ou avec un plus ancien.
L'instruction ci-dessus faisant partie d'une fonction utilisée par de nombreux outils de Libremail, il a été nécessaire de la décomposer en deux instructions distinctes pour que Libremail puisse continuer à fonctionner avec des compilateurs C récents.

Libremail et systemd

Certains outils de Libremail permettent d'utiliser les flèches du clavier et d'autres touches pour se déplacer dans : Ces différentes touches sont vues par le système d'exploitation comme une séquence de caractères qui commence par le caractère Esc suivi d'un [
De plus, la touche Esc employée seule a été choisie pour quitter les outils qui permettent ce mode de fonctionnement.
A l'origine de Libremail, le système mis au point fonctionnait parfaitement, mais avec l'arrivée de systemd, les touches du clavier ont cessé d'être détecté obligeant à prévoir un autre mode de fonctionnement.
Plus de détails dans le dernier chapitre de la page Caractéristiques techniques.

Autres améliorations de Libremail

D'autres améliorations moins visibles concernent l'aptitude de Libremail à traiter de plus en plus de cas particulier pour analyser correctement des mails de provenances diverses. Une des améliorations m'a été demandée par un français résidant en Chine désireux de voir rapidement les derniers mails arrivés.

Malgré tout, je ne sais toujours pas combien d'autre personnes dans le monde utilisent Libremail en plus de moi !