Journal 10 ans après, Modoboa est toujours là pour prendre soin de votre serveur de messagerie

Posté par  . Licence CC By‑SA.
29
19
jan.
2026

Puisqu'il n'est jamais trop tard pour écrire sur DLFP, voici donc une note de journal concernant Modoboa une application écrite en python qui, près de 11 ans après la dernière dépêche à son sujet concernant la version 1.2.0 (nous sommes en version 2.6.5, la version 2.7.0 pointe le bout de son nez) continue de toujours être une solution adaptée pour avoir rapidement un serveur de messagerie fonctionnel et bien doté.
Le logiciel est toujours développé par @anguyen et je l'en remercie.

Rappel des fonctionnalités offertes

Une interface d'administration

Celle-ci vous permet de gérer les comptes voire de déléguer la gestion d'un domaine, définir des quotas par domaine ou compte, de définir des relais et d'autres choses.
Il est à noter que l'interface a visuellement bien changé depuis la version 1.2.0.
Réglages
Comptes utilisateurs
Statistiques
Informations du domaine
Accueil

Cette interface permet une multitude de réglages et notamment pour celles et ceux qui le souhaitent, d'intégrer rspamd ou amavis, de signer ses messages sortants avec dkim, de valider les enregistrements DNS d'un domaine, de s'interfacer avec un annuaire LDAP, etc.

Un webmail

Pratique pour lire ses messages et y répondre si l'envie nous en prend.

Des filtres sieve

Établir des règles sieve pour son tri automatique des messages est clairement le must-have pour s'épargner une tâche rébarbative.

Une gestion des calendriers

Le logiciel propose via radicale et un petit module à installer via pip une gestion des calendriers

Un gestion des carnets d'adresse

C'est toujours mieux de pouvoir enregistrer ses contacts n'est-ce pas ?

Un répondeur automatique

Le meilleur outil pour annoncer ses vacances à la Terre entière (ou pas).

Quels changements depuis 11 ans ?

Plein de choses, je vais donc les citer pêle-mêle:

  • l'ajout d'un service de notification pour prévenir de l'arrivée d'une nouvelle version
  • une modularisation de Modoboa puis le retour à un fonctionnement quasiment monolithique
  • l'implémentation d'un contrôle de la robustesse des mots de passe
  • l'implémentation d'une API REST
  • la vérification des enregistrements DNS pour un domaine
  • la fin du support de python 2.x
  • un démon policy et le support de Redis (Valkey sans doute prochainement)
  • le support de TOTP (oui !)
  • une nouvelle interface telle que montrée plus haut
  • la possibilité de créer et gérer ses clefs DKIM dans Modoboa
  • la fin programmée des cronjobs (RQ se chargera de tout cela prochainement)
  • OAUTH2 est supporté (très bien pour intégrer des applications externes)
  • un service d'auto-configuration pour permettre aux clients lourds de savoir comment se connecter au serveur mail

Pourquoi continuer à utiliser modoboa face à l'alternative X, Y ou Z ?

Voici une question qui se pose et à laquelle j'ai quelques éléments de réponse. Étant utilisateur depuis plus de 12 ans et ayant même testé la version 0.9.0 sans être convaincu à l'époque, j'ai pu voir le logiciel évoluer avec toujours la possibilité de garder le contrôle de son installation car Modoboa s'installe avec soit un script fourni par les développeurs soit manuellement et à l'heure où certains développeurs ne jurent plus que par docker (pour ne pas le citer), c'est toujours appréciable car cela permet aux personnes comme moi de tuner leur installation plus facilement même si cela implique de bien conserver la trace de ce que l'on fait. En outre, je trouve le logiciel bien pensé et rationnel dans son approche, les fonctionnalités proposées sont souvent celles les plus utiles pour les utilisateurs.
J'ai pu migrer de la version 1.2.0 à la version 2.6.5 avec assez peu de problèmes et c'est fort appréciable de ne pas devoir repartir de zéro.

Les ressources utiles

La documentation
Le site web
Le dépôt github du projet

  • # serait mieux en dépêche

    Posté par  . Évalué à 6 (+4/-0).

    La dépêche a été refusée ?

    • [^] # Re: serait mieux en dépêche

      Posté par  (site web personnel) . Évalué à 4 (+1/-0).

      Non, elle n'a pas été créée en dépêche (l'amorce de dépêche a été supprimée « La dépêche [url] a été supprimée en rédaction par mirtouf »).

      • [^] # Re: serait mieux en dépêche

        Posté par  (site web personnel) . Évalué à 5 (+3/-0). Dernière modification le 20 janvier 2026 à 15:44.

        c'est dommage de ne pas avoir utilisé l'espace de rédaction de LinuxFr.org, cela aurait pu permettre d'impliquer les développeurs pour avoir aussi les points de vue des développeurs sur les évolutions à venir ;-)

        ça fait une bonne répétition pour la version 2.7.0 de modoboa à venir :p

        boah, la page du wiki ne doit pas être assez vendeur :D (je vois quelques améliorations pour fluidifier l'écriture / surtout informer quand une dépêche reste un peu longtemps en rédaction, mais bon…).

      • [^] # Re: serait mieux en dépêche

        Posté par  . Évalué à 2 (+2/-0).

        J'ai hésité entre rédiger une dépêche et la soumettre pour relecture ou faire un journal et comme je n'étais pas forcément satisfait du résultat de mon écriture afin de rendre mon texte intéressant pour faire venir des relecteurs, j'ai préféré passé par un journal.
        Si un consensus se dégage pour lancer une dépêche, je serai ravi de relancer le sujet.

  • # changelog

    Posté par  (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 20 janvier 2026 à 16:14.

    Je n'ai pas réussi à trouver de changelog à parcourir :/ et il n'y a pas de release sur le github (et je n'ai pas encore regardé tout le blog, shame on me *\o_)

    donc je vais reprendre quelques-uns de tes points saillants :

    l'implémentation d'une API REST

    pour avoir une interface en ligne de commande ?

    la fin du support de python 2.x

    tout a été réécrit en RoR :D ? là le retour des dév sur les apports de Python3 serait intéressants : l'occasion de revenir sur la dette technique ? Même si heureusement, cela a dû se faire lors du passage en v2 ? (donc un peu d'archéologie :D)

    OAUTH2 est supporté (très bien pour intégrer des applications externes)

    quels exemples d'applications ? un serveur XMPP comme Prosody ou ejabberd ? (déjà fédérer le login c'est bien pour l'utilisateur, il y a moyen d'aller plus loin)

    J'imagine qu'il faut rajouter un roundcube ou autre webmail pour les utilisateurs ?

    Bon choix que la licence ISC (un dérivé fonctionnellement équivalent de la BSD 2-clause, rédigé plus simplement) pour un service d'hébergement de mail ;-)

    C'est beaucoup utilisé en auto-hébergement ?

    • [^] # Re: changelog

      Posté par  . Évalué à 2 (+2/-0).

      pour avoir une interface en ligne de commande ?

      Pour l'API, la documentation est accessible sur une instance configurée (pour des raisons sécurité il me semble, la version de démo n'a plus son API accessible) à cette adresse : https://monmail.domain.tld/api/schema-v2/swagger/ et on y trouve la documentation sous cette forme:API

      Même si heureusement, cela a dû se faire lors du passage en v2 ? (donc un peu d'archéologie :D)

      Le support de python 2 a été supprimé avec la version 1.15 en 2020.

      quels exemples d'applications ?

      L'exemple de base est radicale où avec une ligne de ce genre:

      oauth2_introspection_endpoint = https://radicale:MONBEAUTOKEN@monmail.domain.tld/api/o/introspect/

      on peut se connecter avec ses identifiants et intégrer radicale à modoboa
      Ensuite, rien n'empêche de lier une autre application via un plugin.

      J'imagine qu'il faut rajouter un roundcube ou autre webmail pour les utilisateurs ?

      Modoboa fournit un webmail qui fait le job.

      C'est beaucoup utilisé en auto-hébergement ?

      Bonne question, j'en fais partie et d'autres utilisateurs remontent des bugs et parfois offrent des PR mais quantifier cela est assez compliqué, l'activité reste continue:
      PyPi stats modoboa

    • [^] # Re: changelog

      Posté par  (site web personnel) . Évalué à 8 (+7/-0).

      Je suis le dév principal de Modoboa donc je vais me permettre de répondre ;-)

      pour avoir une interface en ligne de commande ?

      Au début, c'était principalement pour faciliter l'intégration avec des systèmes externes. Depuis la v2, elle sert aussi pour le frontend en vuejs.

      tout a été réécrit en RoR :D ? là le retour des dév sur les apports de Python3 serait intéressants : l'occasion de revenir sur la dette technique ? Même si heureusement, cela a dû se faire lors du passage en v2 ? (donc un peu d'archéologie :D)

      Python 2 n'est plus supporté depuis plusieurs années donc c'était inévitable du point de vue gestion de dette technique. Mais Python 3 apporte un tas d'améliorations à différents niveaux donc la montée de version est bénéfique.

      quels exemples d'applications ? un serveur XMPP comme Prosody ou ejabberd ? (déjà fédérer le login c'est bien pour l'utilisateur, il y a moyen d'aller plus loin)

      Pour être plus précis, il s'agit d'OpenID connect qui permet le Single Sign On. C'est Modoboa qui joue le rôle d'IdP (Identity Provider). La motivation derrière ce changement était d'améliorer la sécurité du produit en arrêtant de stocker des informations critiques en session (qui servent à ouvrir des connexions IMAP/SMTP/caldav/carddav).

      Ceci étant dit, il est tout à fait possible de compléter la configuration pour permettre à des clients additionnels d'utiliser cet IdP (Thunderbird et autre).

      J'imagine qu'il faut rajouter un roundcube ou autre webmail pour les utilisateurs ?

      Modoboa fournit des modules basiques pour les utilisateurs (webmail/contacts/calendriers) mais pour qq chose de plus avancé, Roundcube est une bonne option.

      C'est beaucoup utilisé en auto-hébergement ?

      Je pense que c'est le cas d'utilisation principal, même si bcp d'hébergeurs utilisent aussi le produit. Et d'après ce que j'ai pu voir, c'est utilisé sur toute la planète aujourd'hui.

  • # Monolithe

    Posté par  . Évalué à 4 (+3/-0).

    une modularisation de Modoboa puis le retour à un fonctionnement quasiment monolithique

    Peut-on en savoir plus sur les raisons techniques de l’échec de la modularisation (ou du succès du monolithique) ?

    • [^] # Re: Monolithe

      Posté par  . Évalué à 3 (+3/-0).

      Bonne question, hélas je n'aurai pas de réponse ferme à donner mais côté administrateur, on y gagne avec moins d'opérations à réaliser lors des mises à jour.

    • [^] # Re: Monolithe

      Posté par  (site web personnel) . Évalué à 10 (+10/-0).

      Pour préciser ce qui a été dit, j'ai pris la décision à une époque d'extraire les fonctionnalités non essentielles de Modoboa dans des dépôts distincts, principalement parce que je voulais conserver des installations légères et laisser la possibilités aux utilisateurs d'installer uniquement ce dont ils ont besoin.

      D'un point de vue architecture de code, Modoboa n'a jamais été un monolithe puisque tout est découpé en modules (ou applications selon la terminologie Django). D'un point de vue Runtime, il s'agit effectivement d'un monolithe (aucun micro service autrement dit).

      Finalement, je me suis rendu compte que la logistique nécessaire à la maintenance de ces différents repos, le versioning, les releases et maintenir une rétro-compatibilité entre tout ces éléments était bien trop importante.

      J'ai donc fait machine arrière et tout a été rapatrié dans un unique dépôt. Mais le code reste modulaire.

  • # Ancienneté.

    Posté par  (site web personnel) . Évalué à 4 (+2/-0).

    Sauf erreur de ma part, Modoboa existe depuis plus au moins 2013, je crois que j’avais rencontré son fondateur si ma mémoire est bonne au FOSDEM de cette année. Ça fait plaisir de voir un projet qui perdure.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.