Libremail est une suite de logiciels libres pour le traitement du courrier électronique (courriel) fonctionnant en ligne de commande. Il est diffusé sous une licence libre, comme la GNU GPL. Cette licence d'utilisation insiste sur la nécessité de diffuser les sources des programmes (et non des programmes compilés) et sur la possibilité de modifier et redistribuer les programmes, y compris их traduction.

Idée de départ Le projet Libremail vient d'une initiative individuelle du français Bernard Chardonneau.

Il s'agissait d'écrire sous GNU/Linux un ensemble d'outils pour la gestion des courriers électroniques destiné à remplacer Microsoft Internet Mail tout en apportant des solutions à des problèmes constatés, qui existent aussi sur des clients de messagerie plus récents.

Tout comme Microsoft Internet Mail (dans sa version française) : Chaque courriel est mémorisé dans un fichier distinct ; Les noms de fichiers contenant les courriels ont (hors extension éventuelle) 8 caractères ; Les noms des courriels à envoyer ou envoyés commencent par la lettre e ; Les noms des courriels reçus commencent par la lettre r ; Le suffixe .n est utilisé pour les courriels reçus mais non lus ; Quelques noms de répertoires destinés à contenir les courriels sont prédéfinis : entrée, sortie, envoyés, poubelle. Ces noms deviendront modifiables à partir de la version 2.0, mais les noms par défaut seront toujours proposés sans accents.

La différence avec Microsoft Internet Mail vient de la numérotation des courriels : 7 lettres avec le logiciel Microsoft, 7 chiffres avec Libremail. Le nombre de courriels possibles par boîte aux lettres passe ainsi d'un peu plus de 8 milliards à seulement 10 millions, ce qui, dans la pratique, convient à la plupart des gens.

Libremail est constitué de nombreux outils fonctionnant en mode console à la manière des différents utilitaires UNIX. La plupart de ces outils se contentent d'effectuer un travail sans intervention au clavier de l'utilisateur, mais il existe trois outils permettant de naviguer en utilisant le clavier.

Depuis sa version 1.0 Libremail comporte les outils nécessaires pour :

Consulter la liste des courriels sur le serveur de messagerie ; Consulter le contenu d'un courriel présent sur le serveur de messagerie ; Télécharger les courriels ; Consulter les courriels téléchargés, en extraire les fichiers joints ; Créer des courriels, répondre à des courriels reçus, les transférer ; Rajouter des fichiers joints à un courriel ; Envoyer des courriels.

Mais également :

Afficher les lignes d'en-tête de tous les fichiers d'un répertoire précédé du nom de ce fichier, dans le but d'automatiser dans un script le classement des courriels téléchargés en fonction de certains critères ; Détruire directement sur le serveur de messagerie les courriels provenant de certains expéditeurs (le filtrage peut se faire sur des adresses complètes, des noms de domaine ou des adresses comportant une partie variable à gauche du @) ; Détruire les courriels en HTML pur ; Détruire sur le serveur les courriels dépassant une taille limite en avertissant l'expéditeur ; Télécharger les courriels globalement par ordre croissant de taille en commençant par les plus petits et en réinitialisant la connexion POP pour chaque nouveau courriel téléchargé et effacé du serveur.

Les deux dernières fonctionnalités ont pour origine une mésaventure du développeur de Libremail qui, en rentrant de vacances, avait plus d'une centaine de courriels à télécharger, petits pour la plupart (texte dans une liste de discussion), mais aussi, parmi les plus récents, un courriel de plus d'un mégaoctet envoyé sur cette liste de discussions à l'intention d'un utilisateur particulier.

S'apercevant qu'un courriel prenait beaucoup de temps à télécharger, il a choisi d'interrompre la connexion, mais au téléchargement suivant, l'ensemble des courriels déjà récupérés ont été téléchargés une seconde fois, doublant le coût de la communication sur le réseau téléphonique commuté. En effet, lors de l'utilisation du protocole POP pour le téléchargement et la suppression des courriels d'un serveur, leur suppression n'est effective qu'au moment de l'envoi de la commande « quit » au serveur POP.

Caractéristiques Libremail a été conçu pour fonctionner sur les systèmes Linux (et UNIX) en mode console.

Pour concevoir Libremail, l'auteur s'est appuyé sur la philosophie UNIX : « des outils qui font peu de choses, mais qui les font bien ». Dans sa version initiale 1.0, Libremail était composé de 21 logiciels distincts capables, pour certains, de fonctionner de manière autonome (lancés en ligne de commande ou dans des shells, crons etc.); pour d'autres, de dialoguer avec l'utilisateur en mode page (utilisation des flèches et d'autres touches du clavier).

Ce nombre de logiciels est passé à 29, deux ans et demi après (version 1.2) et à 35, encore six ans plus tard (version 2.3)Versions et évolutions de Libremail..

Aucun logiciel complémentaire n'est nécessaire pour l'envoi et la réception des courriels. Il suffit que l'ordinateur soit configuré pour utiliser les protocoles POP et SMTP. Toutefois, la communication se fait en mode non crypté. Pour le transfert sécurisé des données, l'auteur pense que l'utilisation de stunnel serait une solution qui ne dénaturerait pas Libremail en termes de taille du code source et de dépendance avec des bibliothèques systèmes. Depuis sa création, le compilateur gcc et la commande make suffisent pour générer une version exécutable de Libremail à partir du code source. Libremail n’a jamais été porté sous Windows, son développement restant centré sur la philosophie UNIX privilégiant les outils spécialisés et modulaires : se limiter à quelques logiciels graphiques à tout faire (par exemple chercher à tronquer une image depuis Microsoft Word plutôt que de penser à utiliser un logiciel de traitement d'images), au lieu d'avoir des outils spécifiques pour chaque besoin. Un essai de compilation sous l'environnement Cygwin a toutefois été réalisé.

Comme Libremail fonctionne en Mode texte, c'est ce mode qui est privilégié pour l'affichage du contenu des courriels.

Il y a plusieurs cas selon sa structure interneCaractéristiques techniques de Libremail. : Courriel qui se limite à une section text/plain : cette section est affichée ; Courriel qui se limite à une section text/html : cette section est affichée, par défaut avec les balises HTML ; Courriel avec une section multipart/alternative qui contient une section text/plain et une section text/html (cas le plus fréquent) : c'est la section text/plain qui est affichée ; Courriel avec une section multipart/alternative comportant seulement une section text/plain : la section text/plain est affichée ; Courriel avec une section multipart/alternative comportant seulement une section text/html (si, si, ça existe !) : libremail affiche le message d'erreur « Pas de zone texte dans ce mail !!! » Pour la rédaction de courriels, Libremail, se limite à une section text/plain.

Les courriels qui comportent des fichiers joints commencent par une section multipart/mixed à l'intérieur de laquelle l'extraction du texte du courriel fonctionne comme précédemment.

Cet ensemble de caractéristiques est résumé par le slogan « Libremail is not Outlook ».

Historique des versions

La version 1.0 L'écriture des logiciels constituant la première version de Libremail a pris 7 à 8 mois. Démarrée en , il était possible fin de télécharger les courriels reçus et d'y répondre. Mais ce n'est qu'en que le traitement des pièces jointes a été disponible. L'ensemble des outils prévus pour la version 1.0 de Libremail était opérationnel durant la première semaine de . Le site web correspondant a été mis en ligne début .

Dans la version 1.0, les différents outils de Libremail ont été écrits pour lire correctement les courriels provenant du client de messagerie le plus courant de l'époque, à savoir Outlook Express. Le problème est que les normes MIME de transmission des courriers électroniques prévoient, tant dans l'en-tête du courriel que dans le corps du message, plusieurs de possibilités pour l'encodage de caractères, le jeu de caractères accentués, le découpage du courriel en section ...

Les versions 1 de Libremail

Ces versions ont été écrites en langage C avec des commentaires en français utilisant le jeu de caractères accentués ISO 8859-1 ou ISO 8859-15. Il a été prévu pour fonctionner sur un écran utilisant ce jeu de caractères accentués.

Les messages de l'interface utilisateur sont écrits en français dans le code source de Libremail. La langue française est donc la seule langue des versions 1 de Libremail.

La taille des tableaux et surtout des tableaux de tableaux est fixée par des constantes et juste avant le débordement de ceux-ci, un message d'erreur a été prévu pour demander de recompiler le programme avec une valeur plus grande pour la constante précisée.

Pour la documentation, en plus de celle disponible sur les deux sites de Libremail (qui est également hébergé par tuxfamily depuis en plus du site initial sur free), des pages de man, écrites en français ont été diffusées à partir du , puis dans les 8 langues du site à partir du .

La dernière version 1 officielle de Libremail est la 1.2.2 du . Mais il y a eu ensuite 3 versions numérotées 1.9.1 , 1.9.2 et 1.9.3 destinées à préparer la version 2.

Les versions 2 de Libremail

Dans les versions 2 de Libremail, le code source est toujours écrit avec le jeu de caractères ISO 8859-1/15. Par contre, l'affichage et la saisie des caractères fonctionne aussi bien avec un jeu de caractères ISO 8859-1/15 qu'avec le jeu de caractères UTF-8.

Les messages de l'interface utilisateur sont référencés par un mnémonique et un fichier fait la correspondance entre ce mnémonique et le texte à afficherLe fichier des messages de l'interface utilisateur en langue française.. Pour changer la langue de l'interface utilisateur, il suffit d'accéder à un autre de ces fichiers.

Pour les outils qui génèrent des réponses automatiques après le refus de certains courriels, des textes de réponses sont également disponibles en plusieurs langues.

La taille des tableaux de lignes de texte est ajustée automatiquement (selon le cas) :

Soit en lisant 2 fois le même fichier, la première pour compter les lignes, la suivante pour mémoriser son contenu, Soit dynamiquement pendant la récupération des données en remplaçant le tableau de tableaux par un autre plus grand.

La première version 2 de Libremail est la 2.0 du . Elle est quasiment identique à la pré-version 1.9.3 du , mais avec deux langues de plus, soit un total de 8. En , on est toujours sur les versions 2 de Libremail avec la version 2.6.1

Une évolution majeure justifierait de passer aux versions 3 : interfacer la partie réseau de Libremail avec stunnel pour pouvoir utiliser des liaisons sécurisées, et plus subsidiairement d'utiliser le jeu de caractères UTF-8 pour le code source des programmes et des fichiers de données.

Caractéristiques de Libremail et évolutions

En plus de l'internationalisation justifiant le passage à la version 2, Libremail a évolué pour supporter la lecture des courriels venant de clients de messagerie de plus en plus variés, parmi lesquels des générateurs de courriels automatiques. Prenant quelquefois des libertés par rapport aux normes, ils pouvaient générer des blocages ou des plantages de certains outils de Libremail.

Au tout début, le texte des courriels devait avoir ses caractères accentués transmis tel quel (sur 8 bits), ou encodés quoted-printable. Seuls les fichiers joints dont le contenu peut être binaire pouvaient être encodés en base64.