Je viens à peine de terminer une mission pour un laboratoire qui consiste à implémenter un logiciel permettant de traiter des emails en OCaml: MrMime.
Cette mission m'a permis de comprendre quelque chose d'essentielle à propos des emails et des MUAs: un email, c'est extrêmement compliqué.
Tout le monde le sait plus ou moins et rien que parler d’adresse email, cela hérisse le poil de beaucoup de développeurs qui ont eu la curiosité de se renseigner sur le sujet (je ne parle pas, bien entendu, des personnes qui se contentent d'une regex).
En effet, on a environ 8 standards différents (selon ce qu'on souhaite gérer) à propos des emails avec des limitations datant de la RFC822. Cette dernière ayant pas mal de zones d'ombres (le folding-whitespace et les commentaires entre autre) heureusement clarifiées par la dernière RFC5322. On rajoute à cela le support de l'UTF-8 (depuis 2012 avec la RFC6532) sans oublié la RFC2047 (si on est resté old-school) à propos de l'inline encoded string et pour finir le couple RFC2045/RFC2046 concernant le format MIME. Après, il y en a d'autres ici ou là concernant certaines mises à jour.
Bref, un vrai bordel où il devient difficile d'allier compatibilité et performance, résilience et erreur - bref, tout les problèmes d'un développeur lambda.
Mais le point et c'est ce qui caractérise les emails, c'est que l'email reste le moyen de communication sur internet par excellence. En faite, sa complexité, pour moi, découle du simple fait que c'est le protocole de communication entre nous tous. En ce sens, il est tout aussi brouillon ou hasardeux que nos langues naturelles dans une moindre mesure (puisqu'il doit être compris aussi par un ordinateur).
En somme, je considère que faire un MUA est très/trop complexe dans le sens où la définition globale d'un email reste (heureusement) très informelle et qu'on peut difficilement trouver une façon de lire/traiter/manipuler des emails d'une manière qui conviendrait à tous. Il n'y a heureusement pas une manière standard d'extraire l'information que l'on cherche dans un email et que, même si on arrive à trouver des patterns (comme un multipart/alternate avec le même message au format texte ou au format HTML) il n'empêche qu'on tombe toujours sur des surprises pas si exceptionnelles que ça.
Tout ça pour dire que une large partie du problème (à savoir pourquoi on a pas un best MUA) reste enraciner dans le format même de l'email et que d'une certaine façon, c'est mieux comme ça.
# Retour depuis le turfu
Posté par Dinosaure (site web personnel) . En réponse au journal À la recherche des clients mail sous Linux. Évalué à 9.
Je viens à peine de terminer une mission pour un laboratoire qui consiste à implémenter un logiciel permettant de traiter des emails en OCaml: MrMime.
Cette mission m'a permis de comprendre quelque chose d'essentielle à propos des emails et des MUAs: un email, c'est extrêmement compliqué.
Tout le monde le sait plus ou moins et rien que parler d’adresse email, cela hérisse le poil de beaucoup de développeurs qui ont eu la curiosité de se renseigner sur le sujet (je ne parle pas, bien entendu, des personnes qui se contentent d'une regex).
En effet, on a environ 8 standards différents (selon ce qu'on souhaite gérer) à propos des emails avec des limitations datant de la RFC822. Cette dernière ayant pas mal de zones d'ombres (le folding-whitespace et les commentaires entre autre) heureusement clarifiées par la dernière RFC5322. On rajoute à cela le support de l'UTF-8 (depuis 2012 avec la RFC6532) sans oublié la RFC2047 (si on est resté old-school) à propos de l'inline encoded string et pour finir le couple RFC2045/RFC2046 concernant le format MIME. Après, il y en a d'autres ici ou là concernant certaines mises à jour.
Bref, un vrai bordel où il devient difficile d'allier compatibilité et performance, résilience et erreur - bref, tout les problèmes d'un développeur lambda.
Mais le point et c'est ce qui caractérise les emails, c'est que l'email reste le moyen de communication sur internet par excellence. En faite, sa complexité, pour moi, découle du simple fait que c'est le protocole de communication entre nous tous. En ce sens, il est tout aussi brouillon ou hasardeux que nos langues naturelles dans une moindre mesure (puisqu'il doit être compris aussi par un ordinateur).
En somme, je considère que faire un MUA est très/trop complexe dans le sens où la définition globale d'un email reste (heureusement) très informelle et qu'on peut difficilement trouver une façon de lire/traiter/manipuler des emails d'une manière qui conviendrait à tous. Il n'y a heureusement pas une manière standard d'extraire l'information que l'on cherche dans un email et que, même si on arrive à trouver des patterns (comme un
multipart/alternateavec le même message au format texte ou au format HTML) il n'empêche qu'on tombe toujours sur des surprises pas si exceptionnelles que ça.Tout ça pour dire que une large partie du problème (à savoir pourquoi on a pas un best MUA) reste enraciner dans le format même de l'email et que d'une certaine façon, c'est mieux comme ça.