Docker mailserver : configurer un serveur de messagerie avec Docke
Un serveur de messagerie dédié vous offre un contrôle total sur vos échanges numériques. Ce guide vous explique comment configurer votre propre serveur mail à l’aide de Docker. Il couvre l’ensemble du processus : des prérequis système aux conseils de sécurité, en passant par un tutoriel détaillé étape par étape. Avec des conteneurs prêts à l’emploi comme Docker Mailserver, déployer une solution de messagerie sécurisée et évolutive n’a jamais été aussi simple.
Qu’est-ce qu’un serveur mail Docker ?
Un serveur mail Docker est une solution de messagerie auto-hébergée déployée dans des conteneurs via Docker. Il permet l’envoi, la réception et le stockage des emails tout en offrant un contrôle total sur la confidentialité des données, les politiques de sécurité et la configuration du système. Contrairement aux services tiers comme Gmail ou Outlook, un serveur mail Docker vous donne la maîtrise complète de votre infrastructure ; il s’agit d’une solution idéale pour les développeurs, les utilisateurs soucieux de leur vie privée et les petites entreprises.
Pourquoi utiliser Docker pour un serveur mail ?
L’hébergement d’un serveur de messagerie avec Docker présente plusieurs avantages majeurs :
- Isolation et sécurité : les conteneurs Docker isolent le serveur mail, réduisant les risques de compromission du système global et renforçant la sécurité.
- Portabilité : les conteneurs peuvent être facilement déplacés d’un environnement à un autre, assurant une configuration cohérente entre les serveurs locaux et Cloud.
- Déploiement simplifié : Docker propose des stacks préconfigurés, ce qui simplifie considérablement l’installation et évite les configurations manuelles complexes.
- Scalabilité : il est facile de faire évoluer les conteneurs Docker pour répondre à une augmentation du trafic mail ou à de nouveaux besoins en ressources.
- Gestion des versions : vous pouvez spécifier les versions des images Docker pour éviter les problèmes de compatibilité et faciliter un retour à une version antérieure si nécessaire.
- Cohérence entre les environnements : Docker garantit des configurations identiques en développement, test et production.
- Standards de sécurité les plus élevés
- Chiffrement des données avec SSL/TLS
- Data centers certifiés ISO 27001 et géo-redondants
- Protocoles IMAP et SMTP
Configurer son propre serveur de mail avec Docker : quelles sont les conditions requises ?
Ce guide s’adresse aux utilisateurs à l’aise avec Linux et Docker, qui souhaitent disposer d’une infrastructure de messagerie privée et flexible. Il est particulièrement utile pour les développeurs, les administrateurs systèmes et les petites entreprises.
Pour héberger votre propre serveur mail Docker, vous devez disposer de ressources matérielles adaptées au volume d’emails que vous prévoyez de traiter. Une adresse IPv4 statique est indispensable pour assurer des échanges de messagerie fiables et fluides. Il est également essentiel de configurer correctement les enregistrements DNS : MX, SPF, DKIM et DMARC. Enfin, le support de l’IPv6 devient un atout important pour améliorer la compatibilité et renforcer la réputation de votre serveur d’envoi.
Les recommandations actuelles :
- Image Docker :
docker-mailserver/docker-mailserver:v13.2+
- Protocoles de messagerie : SMTP (ports 25, 587, 465), IMAPS (993), POP3S (995)
- Normes de sécurité : TLS 1.3, DKIM, SPF, DMARC, DNSSEC (si pris en charge)
- Système d’exploitation hôte : Ubuntu 22.04 LTS, Debian 12 ou autres distributions Linux stables équivalentes
Simplifiez la configuration de votre serveur mail avec Docker Mailserver, un stack open source populaire maintenu par la communauté. Il réunit Postfix, Dovecot, rspamd, ClamAV et, en option, une intégration LDAP ; le tout dans un conteneur prêt à l’emploi !
Configurer son propre serveur de mail avec Docker : quels sont les éléments à prendre en compte ?
Paramètres de sécurité
Pour sécuriser efficacement votre serveur de messagerie, veillez à appliquer systématiquement les réglages suivants :
- Utiliser des certificats TLS à jour (au minimum TLS 1.2, idéalement TLS 1.3)
- Définir et appliquer les règles SPF, DKIM et DMARC
- Mettre en place un contrôle du nombre de connexions (rate limiting) et activer l’authentification via SASL
- Chiffrer les connexions IMAP/POP3 et SMTP
- Configurer la journalisation avec des outils comme rsyslog, accompagnée d’une rotation régulière et structurée des logs
Même avec une configuration en conteneur via Docker, une sécurité indépendante du système reste indispensable. Docker simplifie l’installation, mais ne remplace pas le renforcement du système : pare-feu, droits utilisateurs stricts, journalisation (par exemple avec rsyslog) et mises à jour régulières sont essentiels.
Paramètres de configuration
La configuration d’un serveur mail Docker nécessite des compétences techniques solides et une attention particulière à la sécurité. Voici les étapes à ne pas négliger :
- Choisir une image Docker et un stack de messagerie adaptés (par ex.
docker-mailserver/docker-mailserver
) - Configurer les enregistrements DNS (MX, SPF, DKIM, DMARC)
- Sécuriser l’hôte Docker (pare-feu, Fail2Ban, chiffrement)
- Sélectionner les bons outils d’administration et de surveillance
- Mettre à jour régulièrement le système et effectuer des sauvegardes (y compris les images Docker)
- Configurer les entrées DNS inversées et activer la prise en charge de l’IPv6
- Respecter les obligations légales (ex. : RGPD, archivage légal des emails)
Paramètres matériels
Pour exécuter votre propre serveur mail Docker, un matériel adapté est indispensable. Les performances nécessaires dépendent de plusieurs facteurs, notamment du nombre d’emails envoyés chaque jour et du nombre d’utilisateurs. Bien que les conteneurs Docker soient légers, vous devez tout de même prendre en compte la RAM, le processeur et l’espace de stockage. Des ressources supplémentaires peuvent être nécessaires si vous utilisez des services additionnels comme des systèmes de sauvegarde ou des outils de filtrage de contenu (contre le spam ou le phishing). De plus, une adresse IPv4 statique est indispensable pour garantir des échanges fiables avec d’autres serveurs mail, car les adresses IP dynamiques posent souvent des problèmes de délivrabilité.
Vous souhaitez donner à votre serveur mail Docker une touche individuelle et professionnelle ? Avoir votre propre adresse dédiée est alors essentiel. Enregistrez dès aujourd’hui votre propre nom de domaine chez IONOS et recevez par la même occasion un certificat SSL/TLS pour votre serveur de messagerie !
Le choix de l’environnement pour héberger votre serveur mail Docker doit tenir compte de la capacité nécessaire. Une configuration simple peut suffire pour quelques emails par jour, tandis qu’un serveur professionnel très sollicité demandera des ressources importantes en mémoire vive, processeur et stockage.
Que vous utilisiez Windows ou Linux, pensez à prendre en compte les ressources nécessaires pour le système d’exploitation.
Scénario de serveur de mail | Matériel informatique compatible | Tarif IONOS adapté |
---|---|---|
Serveur domestique simple (faible volume d’emails) | 2 vCores, 8 Go de RAM, 240 Go SSD | [VPS Linux L](https://www.ionos.fr/serveurs/vps “VPS |
Serveur pour une petite entreprise (jusqu’à 1 000 emails par jour) | 8 vCores, 16 Go de RAM, 480 Go SSD | [VPS Linux XL](https://www.ionos.fr/serveurs/vps “VPS |
Serveur d’entreprise (plus de 50 000 emails par jour) | 6 vCores, 32 Go de RAM, 2 x 480 Go SSD en RAID | Serveur dédié AMD |
Avec un serveur dédié IONOS, vous avez accès à du matériel d’entreprise qui vous est exclusivement réservé. Les deux modèles de serveurs dédiés virtuels et serveurs Cloud reposent sur des ressources virtualisées que vous partagez avec d’autres clients, et cela sans perte de performance.
Configurer son propre serveur de mail avec Docker : tutoriel
Il existe plusieurs options pour configurer votre serveur mail. Dans le tutoriel suivant, nous avons par exemple opté pour un serveur basé sur le conteneur Docker docker-mailserver. Ce conteneur open source léger (licence MIT) fournit une stack modulaire et prête à l’emploi pour la mise en place de son propre serveur de mail : tous les composants importants tels qu’un serveur SMTP, un serveur IMAP ou POP, un logiciel antispam et antivirus ou un service d’annuaires LDAP sont inclus.
Si vous souhaitez travailler avec une image Docker comme docker-mailserver
, vous devez d’abord installer la plateforme de conteneurs. Vous trouverez de plus amples informations à ce sujet dans notre tutoriel Docker.
Étape 1 : obtenir une image Docker
Vous pouvez obtenir la dernière image de docker-mailserver
dans le répertoire officiel du stack sur dockerHub ou via le dépôt d’outils GitHub officiel.
L’approche recommandée consiste à utiliser une version stable, comme v13.2
, plutôt que les balises :latest
ou :edge
.
Exécutez la commande suivante pour récupérer l’image :
docker pull mailserver/docker-mailserver:v13.2
# or:
docker pull ghcr.io/docker-mailserver/docker-mailserver:v13.2
bashÉtape 2 : configurer docker-compose.yml
Ensuite, vous devez configurer le fichier docker-compose.yml
afin de définir les services et volumes nécessaires à votre conteneur Docker.
Voici un exemple de configuration pour votre serveur de messagerie :
version: '3.8'
services:
mailserver:
image: docker.io/mailserver/docker-mailserver:v13.2
container_name: mailserver
hostname: mail-server
domainname: exemple.fr
ports:
- "25:25"
- "587:587"
- "465:465"
- "993:993"
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
- ./docker-data/nginx-proxy/certs/:/etc/letsencrypt/
- /etc/localtime:/etc/localtime:ro
environment:
- ENABLE_FAIL2BAN=1
- SSL_TYPE=letsencrypt
- PERMIT_DOCKER=network
- ONE_DIR=1
- ENABLE_POSTGREY=0
- ENABLE_CLAMAV=0
- ENABLE_SPAMASSASSIN=0
- SPOOF_PROTECTION=0
cap_add:
- NET_ADMIN
- SYS_PTRACE
yamlCette configuration garantit que votre conteneur Docker utilise les ports appropriés pour SMTP (25 et 465), IMAPS (993) et la soumission SMTP (587), et que les volumes sont correctement montés pour assurer une conservation persistante des données. Des fonctionnalités de sécurité comme Fail2Ban et Let’s Encrypt SSL sont également activées.
Pour une liste détaillée des options configurables du serveur de mail Docker, consultez le manuel officiel en ligne de docker-mailserver sur GitHub.
Étape 3 : libérer les ports
Dans votre fichier YAML docker-compose.yml
, vous remarquerez que les ports utilisés par le serveur de messagerie sont mentionnés : 25, 465 et 587 pour SMTP, ainsi que 993 pour IMAPS. Ces ports doivent être ouverts dans le pare-feu de votre serveur** afin d’assurer un trafic email fiable.
Si vous utilisez un service comme IONOS pour l’hébergement, vous pouvez facilement ouvrir ces ports via le Cloud Panel :
- Connectez-vous avec vos données client personnelles sur la page de connexion du Cloud Panel.
- Accédez à la rubrique « Serveurs & Cloud ».
- Sélectionnez le matériel de serveur loué sur lequel vous souhaitez héberger votre serveur de mail Docker.
- Cliquez sur « Réseau » dans le menu latéral gauche, puis sur « Réglages du pare-feu ».
- Ajoutez successivement les trois ports TCP 25, 465 et 587 en cliquant sur « Ajouter une règle ».

Étape 4 : intégrer le nom d’hôte dans la configuration DNS
À cette étape, vous devez vous assurer que le service DNS de votre domaine est correctement configuré :
- Enregistrement MX : il doit pointer vers le serveur de messagerie (par exemple
mail-server.exemple.fr
) que vous avez défini dans les champshostname
(nom d’hôte) etdomainname
(nom du domaine) de votre fichierdocker-compose.yml
. - Enregistrement SPF : il s’agit d’un enregistrement TXT pour le domaine (et non pour le nom d’hôte), par exemple :
v=spf1 mx ~all
.
~all
indique une « Softfail » ; vous pouvez aussi utiliser -all
si vous souhaitez appliquer une politique plus stricte.
Comment configurer le DNS dans IONOS Cloud Panel ?
En tant que client IONOS, vous pouvez effectuer ces réglages DNS pour votre serveur via le Cloud Panel en procédant comme suit :
- Connectez-vous à nouveau sur la page de connexion du Cloud Panel si ce n’est pas déjà fait.
- Cliquez sur l’entrée « Domaines & SSL ».
- Appuyez sur l’icône de la roue dentée près de l’entrée du domaine sur lequel vous configurez votre serveur de mail et sélectionnez l’option « DNS ».
- Sélectionnez « Ajouter un enregistrement », puis ajoutez les deux entrées suivantes :
- MX : Cible =
mail-server.exemple.fr
, Priorité =10
- TXT (SPF) : Type =
TXT
, Valeur =v=spf1 mx ~all
- MX : Cible =

Pour finir, il s’agit d’accepter les modifications en appuyant sur « Réinitialiser le domaine » dans le menu supérieur. Confirmez les adaptations effectuées et cliquez sur « Réinitialiser maintenant ».
Vous souhaitez archiver vos emails professionnels en toute sécurité, conformément à la réglementation européenne ? Avec la solution d’archivage d’emails de IONOS, vous pouvez automatiser la conservation de vos boîtes de réception dans un format inviolable et conforme au RGPD.
Étape 5 : générer des clés DKIM
Pour augmenter le niveau de sécurité de votre serveur de mail Docker, créez maintenant un enregistrement DKIM (DomainKeys Identified Mail) pour votre domaine. Cette méthode de chiffrement permet de signer numériquement les messages, afin que les serveurs de réception puissent en vérifier l’authenticité.
Pour générer les clés, utilisez le fichier de script setup.sh
qui se trouve dans le répertoire de docker-mailserver
. Exécutez la commande suivante :
./setup.sh config dkim
bashLa clé publique générée sera enregistrée dans le fichier suivant (à condition que le volume ait été monté correctement) :
docker-data/dms/config/opendkim/keys/exemple.fr/mail.txt
swiftOuvrez le fichier et copiez son contenu pour créer un enregistrement TXT dans la configuration DNS de votre domaine. L’enregistrement pourrait ressembler à ceci :
mail._domainkey.exemple.fr. IN TXT (
"v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOC...continuedPublicKey...IDAQAB"
)
javamail
est le sélecteur et peut être nommé comme vous le souhaitez (par exemple :default
,key2025
, etc.).- Si votre fournisseur DNS limite la longueur à 255 caractères par chaîne, vous devrez diviser la clé (comme montré dans l’exemple).
- Assurez-vous que le type d’enregistrement est bien
TXT
et qu’il s’applique au domaine complet :mail._domainkey.exemple.fr
.
En plus de DKIM, pensez également à configurer un enregistrement SPF et un enregistrement DMARC afin d’assurer une protection complète contre l’usurpation d’adresse email.
Étape 6 : démarrer le serveur de mail Docker et créer votre première adresse
Démarrez le serveur de mail configuré directement depuis le répertoire avec la commande suivante :
docker-compose up -d
bashCes instructions vous permettent de mettre en place un environnement de messagerie sécurisé et efficace, qu’il soit basé sur des conteneurs modernes ou sur une configuration plus traditionnelle.
- Standards de sécurité les plus élevés
- Chiffrement des données avec SSL/TLS
- Data centers certifiés ISO 27001 et géo-redondants
- Protocoles IMAP et SMTP