Comparaison des solutions de messagerie¶
Cette page alimente un ADR (Architecture Decision Record) pour le choix du serveur de messagerie auto-heberge. Méthodologie : voir ADR dans Documenter son code.
Grille de comparaison¶
| Critère | Stalwart Mail Server | Maddy | Postfix + Dovecot | Mailu |
|---|---|---|---|---|
| Licence | AGPL 3.0 | GPL 3.0 | Postfix: IBM PL / Dovecot: MIT | MIT |
| Langage | Rust | Go | C (Postfix) + C (Dovecot) | Python + Nginx + Docker |
| Architecture | All-in-one (binaire unique) | All-in-one (binaire unique) | Modulaire (2+ composants) | All-in-one (conteneurs Docker) |
| Protocoles SMTP | SMTP, LMTP, soumission | SMTP, soumission | SMTP, LMTP, soumission | SMTP, soumission |
| Protocoles consultation | IMAP, JMAP, POP3 | IMAP | IMAP, POP3 (Dovecot) | IMAP, POP3 |
| JMAP | Natif (complet) | Non | Non | Non |
| CalDAV/CardDAV | Natif | Non | Non (ajout Radicale) | Non (ajout Radicale) |
| Filtre anti-spam | Integre (rspamd-compatible) | rspamd integre | Externe (rspamd, SpamAssassin) | rspamd integre |
| DKIM/SPF/DMARC | Natif | Natif | OpenDKIM + opendmarc (externe) | rspamd (integre) |
| ARC | Natif | Non | Via OpenARC | Via rspamd |
| Sieve (filtres côté serveur) | Natif (ManageSieve) | Natif | Dovecot Sieve (pigeonhole) | Natif |
| Backend stockage | RocksDB, S3, PostgreSQL, MySQL, SQLite | SQLite, fichier | Maildir, mdbox, sdbox | Maildir (Docker volumes) |
| Backend authentification | Interne, LDAP, OIDC, SQL | Interne, LDAP | PAM, LDAP, SQL (via Dovecot) | Interne, LDAP |
| OIDC/OAuth2 | Natif | Non | Non (via plugin Dovecot) | Non |
| Interface web admin | Oui (intégrée) | Non (CLI) | Non (ajout PostfixAdmin, etc.) | Oui (intégrée) |
| Webmail integre | Non (ajout externe) | Non | Non (ajout Roundcube, etc.) | Roundcube ou SOGo integre |
| Empreinte mémoire | ~50-100 Mo | ~30-60 Mo | ~200-400 Mo (ensemble) | ~500-800 Mo (tous conteneurs) |
| Empreinte CPU | Faible (Rust, async) | Faible (Go) | Moyenne (multi-processus) | Moyenne (multi-conteneurs) |
| Clustering / HA | Actif-actif natif | Non | Oui (Dovecot Director, etc.) | Non officiel |
| API de gestion | REST API complète | CLI | CLI (postconf, doveadm) | REST API |
| Configuration | TOML + Web UI + REST API | TOML | Multiples fichiers (main.cf, etc.) | Docker Compose + Web UI |
| Maturité | 3+ ans (croissance rapide) | 4+ ans | 25+ ans (référence historique) | 8+ ans |
| Communauté | Active (GitHub, Discord) | Petite | Tres large (historique) | Moyenne (Docker users) |
Analyse détaillée¶
Stalwart Mail Server — Recommande¶
Forces :
- Architecture all-in-one : SMTP + IMAP + JMAP + anti-spam + DKIM + CalDAV dans un seul binaire Rust
- Seule solution avec support JMAP complet (protocole moderne, optimal pour les clients mobiles)
- CalDAV/CardDAV integre — pas besoin d'un serveur de calendrier separe
- Authentification OIDC native — integration directe avec Keycloak
- Backend de stockage flexible : RocksDB pour les petits déploiements, PostgreSQL/S3 pour le scale
- Clustering actif-actif natif avec stockage partage
- Interface web d'administration intégrée
- Empreinte mémoire et CPU remarquablement faible (Rust, async I/O)
- Filtres Sieve avec ManageSieve pour le filtrage côté serveur
Faiblesses :
- Projet plus jeune que Postfix+Dovecot (mais en croissance tres rapide)
- Moins de documentation communautaire que l'ecosysteme Postfix
- AGPL 3.0 — contrainte pour l'integration dans des produits proprietaires (mais pas pour l'auto-hebergement)
- Pas de webmail integre (ajout de Roundcube ou Stalwart Webmail en complement)
Verdict : choix par defaut pour un nouveau déploiement de messagerie auto-hebergee. La combinaison JMAP + OIDC + CalDAV + clustering dans un seul binaire en fait la solution la plus complète et la plus simple a opérer.
Maddy — Minimaliste Go¶
Forces :
- Binaire unique en Go, tres simple a déployer
- Configuration TOML lisible et concise
- Empreinte mémoire la plus faible de toutes les solutions
- Bonne integration rspamd
Faiblesses :
- Pas de JMAP, pas de CalDAV, pas de POP3
- Pas d'OIDC — authentification LDAP ou interne uniquement
- Pas d'interface web d'administration
- Pas de clustering natif
- Communauté restreinte, développement par un mainteneur principal
Verdict : excellent choix pour un serveur personnel ou un petit domaine avec peu d'utilisateurs. Trop limite pour un usage enterprise.
Postfix + Dovecot — Référence historique¶
Forces :
- Référence absolue du monde email depuis 25+ ans
- Documentation exhaustive, immense base de connaissances
- Flexibilite maximale : chaque composant peut etre remplace ou personnalise
- Ecosysteme de plugins tres riche (Sieve, LDAP, SQL, ACL, quotas)
- Scalabilité prouvee (déploiements de millions de boites)
- Licence permissive (IBM PL + MIT)
Faiblesses :
- Complexité d'installation et de configuration (dizaines de fichiers, multiples composants)
- Pas de JMAP natif
- Anti-spam, DKIM, DMARC necessitent des composants externes (rspamd, OpenDKIM, opendmarc)
- Pas d'interface d'administration (PostfixAdmin, iRedMail en complement)
- Pas d'OIDC natif
- Empreinte mémoire plus elevee (multi-processus)
Verdict : pertinent pour les équipes ayant une expertise Postfix existante, ou quand la flexibilite modulaire est un requis dur (backends de stockage exotiques, architectures multi-sites complexes). Planifier une évaluation de Stalwart pour les nouveaux déploiements.
Mailu — Docker-first¶
Forces :
- Déploiement Docker Compose clef en main (SMTP, IMAP, webmail, anti-spam, admin)
- Interface web d'administration intuitive
- Webmail integre (Roundcube ou SOGo au choix)
- Configuration via variables d'environnement (12-factor)
- Bonne documentation pour les debutants
Faiblesses :
- Dependance forte a Docker (pas de déploiement baremetal)
- Empreinte mémoire elevee (multiple conteneurs)
- Pas de JMAP, pas de CalDAV integre
- Pas d'OIDC natif
- Clustering non officiel (docker swarm communautaire)
- Performance limitee pour les gros volumes (architecture multi-conteneurs)
Verdict : excellent choix pour un déploiement rapide avec webmail integre. Pertinent pour les équipes qui veulent une solution tout-en-un Docker sans configuration avancee. Limite pour les déploiements enterprise a grande échelle.
Matrice de decision¶
graph TD
Besoin["Besoin principal"]
Besoin --> Moderne["Moderne /<br/>All-in-one"]
Besoin --> Flex["Maximum<br/>flexibilite"]
Besoin --> Docker["Docker<br/>tout-en-un"]
Moderne --> Stalwart["Stalwart<br/>JMAP, OIDC, CalDAV,<br/>clustering natif"]
Flex --> Postfix["Postfix+Dovecot"]
Docker --> Mailu | Contexte | Solution recommandee |
|---|---|
| Nouveau déploiement, DSI moderne | Stalwart (all-in-one, JMAP, OIDC) |
| Expertise Postfix existante, architecture complexe | Postfix+Dovecot (flexibilite max) |
| Déploiement Docker rapide avec webmail | Mailu (Docker Compose clef en main) |
| Serveur personnel, minimalisme | Maddy (Go, minimal, leger) |
| Requis JMAP ou CalDAV natif | Stalwart (seule solution) |
| Requis OIDC / SSO Keycloak | Stalwart (OIDC natif) |
Decision recommandee¶
Pour une DSI orientee souverainete avec Keycloak dans le paysage IAM :
Decision : Stalwart Mail Server comme serveur de messagerie auto-heberge, déployé avec Podman, avec authentification OIDC via Keycloak et stockage RocksDB (ou PostgreSQL pour les déploiements > 500 boites).
Justification : architecture all-in-one (SMTP + IMAP + JMAP + CalDAV + anti-spam + DKIM), authentification OIDC native, clustering actif-actif, empreinte faible (Rust), et support JMAP pour les clients modernes. Stalwart est la seule solution qui couvre l'ensemble des besoins dans un binaire unique.
Migration depuis Postfix+Dovecot
Si un Postfix+Dovecot existant est en place, la migration peut etre progressive : Stalwart peut utiliser un backend LDAP commun avec Dovecot, et l'outil imap-sync permet de migrer les boites aux lettres sans interruption. Voir Bonnes pratiques — Migration.