>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Python

Comment configurer son propre serveur mail avec Docker sans devenir fou

Mailu

Tout administrateur système ou développeur a essayé au moins une fois dans sa vie de configurer son propre serveur mail from scratch. D'habitude, cette expérience laisse des cicatrices émotionnelles profondes. Vous installez Postfix, connectez Dovecot, configurez MySQL pour stocker les utilisateurs, puis vous vous battez avec SpamAssassin, configurez OpenDKIM, générez des certificats, et vous vous creusez la tête sur SPF et DMARC. Après une semaine de souffrance, les emails finissent toujours dans les spams sur Gmail, et les configs deviennent un bordel illisible.

Quand j'ai eu besoin de configurer le mail pour quelques projets perso et le domaine d'une petite équipe, je ne voulais pas assembler un Frankenstein manuellement. Payer un supplément pour les abonnements corporate Google Workspace ou Yandex 360 n'était pas non plus dans les plans. C'est comme ça que je suis tombé sur Mailu — un projet qui a empaqueté tout l'attirail de gentleman du serveur mail dans des conteneurs Docker bien rangés.

Qu'est-ce que Mailu

Mailu se positionne comme une distribution mail isolée basée sur Docker. Le projet existe depuis 2016, a rassemblé presque 7 500 étoiles sur GitHub, et est activement maintenu.

L'idée principale est simple : fournir un serveur prêt à l'emploi qui se déploie en dix minutes via docker-compose, mais sans traîner du bloat inutile. Contrairement aux solutions tout-en-un lourdes comme Zimbra ou Nextcloud, Mailu fait exactement une chose — recevoir, filtrer et envoyer des mails de manière fiable. Il n'y a pas de code propriétaire, de trackers, ni de fonctionnalités payantes cachées à l'intérieur. Tous les composants sont ouverts et distribués sous une licence libre.

Domains

Ce qu'il y a sous le capot

L'architecture du projet est modulaire. Au lieu d'un seul gros conteneur, Mailu est divisé en une douzaine de microservices, chacun responsable de son propre domaine :

  • Nginx en frontend qui gère le trafic web et redirige les ports mail
  • Dovecot pour le support des protocoles IMAP et POP3
  • Postfix comme serveur SMTP
  • Rspamd pour la protection anti-spam, l'apprentissage automatique et la vérification de réputation
  • ClamAV pour scanner les pièces jointes entrantes à la recherche de virus
  • Un panneau de contrôle construit avec Python et Flask
  • Plusieurs clients web au choix, incluant Roundcube et Snappymail

Tous ces conteneurs communiquent via le réseau interne de Docker, et les données (emails, bases utilisateurs, clés) sont stockées dans des volumes montés.

Fonctionnalités clés

Sécurité et délivrabilité sans corvée manuelle

Dans le mail, la partie la plus difficile n'est pas de recevoir un message — c'est de l'envoyer pour que les services mail du destinataire ne le mettent pas en spam. Mailu gère la configuration de sécurité pour vous :

  • Émet et renouvelle automatiquement les certificats TLS gratuits via Let's Encrypt
  • Génère les clés DKIM directement dans le panneau d'admin et suggère les bons enregistrements TXT pour le DNS
  • Supporte les protocoles modernes de protection de livraison, incluant DANE et MTA-STS
  • Protège l'interface web avec Snuffleupagus (un patch de sécurité pour PHP)

Panneau d'admin pratique et support multi-domaine

Grâce à l'interface web, l'administrateur crée des domaines, configure des boîtes mail, des alias et des adresses temporaires. Un détail sympas : vous pouvez déléguer l'administration d'un domaine spécifique à une autre personne. Par exemple, vous hébergez le serveur mais confiez la gestion des boîtes mail au responsable du client.

Vous pouvez aussi y définir des quotas d'espace disque pour chaque utilisateur, des annonces globales et des règles de redirection.

Clients web prêts à l'emploi et auto-configuration

Les utilisateurs n'ont pas nécessairement besoin d'installer des clients mail sur leur téléphone ou ordinateur. Le package inclut le classique Roundcube et le léger Snappymail.

Si quelqu'un préfère Thunderbird, Apple Mail ou Outlook, le serveur fournit des profils d'auto-configuration standard. L'utilisateur n'a qu'à entrer son login et mot de passe, et le client récupérera automatiquement les bons ports et protocoles de chiffrement.

Filtres intelligents et récupération de mail

Mailu supporte ManageSieve. Cela signifie que les utilisateurs peuvent configurer des règles de tri, des réponses automatiques de vacances et la redirection d'emails directement depuis le client web. Il y a aussi un fetchmail intégré qui collecte les mails de comptes externes tiers et les dépose dans votre compte local.

Comment lancer

Les développeurs ont créé un excellent générateur de configuration web sur le site officiel setup.mailu.io. Vous cochez simplement les composants nécessaires (quel client web installer, si vous avez besoin d'antivirus, quelle base de données), spécifiez le nom de domaine du serveur, et vous obtenez une archive prête avec deux fichiers : mailu.env et docker-compose.yml.

Après cela, le lancement se résume à trois commandes dans le terminal :

# Переходим в директорию с конфигами
cd /mailu

# Скачиваем образы и запускаем сервисы в фоне
docker compose up -d

# Создаем первого администратора
docker compose exec admin flask mailu admin admin example.com 'ВашСложныйПароль'

Puis vous n'avez plus qu'à aller dans le panneau de contrôle, ajouter les enregistrements DNS chez votre registrar (MX, SPF, DKIM, DMARC), et le serveur est prêt pour une exploitation complète.

Pièges à éviter

Peu importe la commodité du logiciel, ça n'annule pas la physique des protocoles mail. Avant de déployer, gardez quelques points à l'esprit :

  1. Consommation RAM. Si vous activez ClamAV, le serveur a besoin d'au moins 3-4 Go de RAM. Les bases de données antivirus sont lourdes. Si vous avez un VPS faible avec 1 Go de RAM, vous devrez désactiver l'antivirus dans les paramètres, en ne gardant que Rspamd.
  2. Propreté de l'adresse IP. Les hébergeurs donnent souvent des adresses avec un mauvais historique. Avant de lancer, vérifiez absolument l'IP du serveur contre les listes noires (DNSBL) et configurez le rDNS (enregistrement PTR) via le support de l'hébergement, sinon les emails n'atteindront pas Gmail et Outlook.
  3. Port 25. De nombreux fournisseurs cloud bloquent le port 25 en sortie par défaut pour combattre les spammeurs. Assurez-vous que votre hébergeur permet de l'ouvrir.

À qui le projet est destiné

Mailu est un excellent choix pour les studios de développement web, les petites entreprises et les passionnés d'auto-hébergement. Il couvre 99% des besoins mail corporate, ne nécessite pas des heures de configuration manuelle de Postfix, et se met à jour avec un simple docker compose pull.

Si vous en avez marre des prix qui augmentent constamment pour les services mail tiers pour les domaines, ou si vous voulez garder votre correspondance sous votre contrôle total, déployez une démo Mailu. Il y a de fortes chances que vous n'ayez plus jamais envie de revenir à l'assemblage manuel des serveurs mail.

Projets similaires