← Tous les articles

Juin 2026 · 2 min de lecture

Parsing d'e-mails sans LLM, mais en mieux

Du parsing d'e-mails à grand volume par reconnaissance de motifs plutôt que par apprentissage automatique.

EmailPythonBig Data

1 500 e-mails par jour, 11 000 par semaine, plus de 500 000 par an.

C'est la charge de données que l'on doit gérer pour un seul client. Quand on a commencé à faire du NLP, des statistiques et de lourds calculs orientés données sur autant d'e-mails, on a rencontré un problème majeur : tout est orienté LLM, alors même que ces modèles ne sont pas adaptés à une tâche aussi répétitive.

Claude, Gemini, ChatGPT et consorts ont tous tendance à utiliser les itérations précédentes pour améliorer le token suivant, ce qui n'a rien de bon pour nos traitements.

Ensuite, il y a Talon, une bibliothèque open-source créée par MailGun. Il s'avère qu'elle est dépréciée et plutôt lente pour des tâches très basiques, même si elle est meilleure sur les cas complexes.

On s'est dit : pourquoi ne pas descendre plus bas niveau ? Dans notre esprit, BeautifulSoup était ce juste milieu... sauf qu'il est encore plus lent que Talon !

On n'avait pas besoin de toutes les fonctionnalités « confort » du ML, ni de singleton, ni de « tout-en-un » : il nous fallait seulement un parsing d'e-mails basique, simple et efficace. On a donc développé le nôtre, en C. Il est plus rapide que toutes les autres bibliothèques de parsing d'e-mails que l'on a essayées, il est plutôt fiable pour la plupart des cas d'usage et ne devrait pas être déprécié avant un bon moment.

FastEmailParser

Notre solution : open-source, très rapide et qui fait le travail.

Codée en C pour des questions d'efficacité et de pérennité.

Installez-la dès maintenant :

pip install fastemailparser

Comment ça marche

Nous avons fait le choix de nous reposer exclusivement sur la reconnaissance de motifs (pattern matching). Oubliez le ML, les algorithmes orientés données, les LLM, etc. On parle de bonnes vieilles regex, de conditions faites main et de beaucoup de gestion d'erreurs.

Maintenant, si vous voulez l'essayer, voyons rapidement comment ça fonctionne !

D'abord, on découpe une chaîne d'e-mails donnée selon le format (HTML, texte brut, en-tête MIME, etc.), en renvoyant un itérateur :

from emailparser import Email  
  
for email in Email(open("email.html", "r").read()):  
  ...

Chaque e-mail de la chaîne est maintenant correctement découpé et on peut y accéder facilement, tout en récupérant les données clés :

for email in Email(open("email.html", "r").read()):  
    emailparser.parse_headers(email)  
    emailparser.extract_body(email)  
    emailparser.strip_signature(email)  
    ...

Le tout en des fractions de milliseconde.

Quelques-unes des choses que FastEmailParser fait bien :

  • Découper les chaînes d'e-mails (au moins celles d'Outlook)
  • Gérer le HTML et le texte brut
  • Injecter du CSS et du HTML dans chaque segment pour qu'il reste utilisable « tel quel »
  • Supprimer et/ou extraire les métadonnées (expéditeur, date, etc.)
  • Extraire la signature (fonctionne dans la plupart des cas, mais encore en cours de développement)

Lisez d'autres exemples et essayez-le dès maintenant sur : https://github.com/Methode-dev/EmailParser

Publié à l'origine sur https://www.linkedin.com.

Méthode SAS au capital social de 1050€
contact@methode.dev
132 rue Bossuet, 69006, Lyon, France

© 2026 Méthode. All Rights Reserved.
Made with Webstudio.is