Installer Mailcow : serveur mail professionnel auto-hébergé

Installer Mailcow : serveur mail professionnel auto-hébergé

Déployez votre propre serveur de messagerie complet avec interface web, antispam, antivirus, calendrier et webmail. Mailcow regroupe Postfix, Dovecot, SOGo, Rspamd, ClamAV et un panneau d'admin moderne dans une stack Docker prête à l'emploi.

Introduction

Mailcow: dockerized est la solution de référence pour héberger son propre serveur mail sans la complexité de configurer Postfix/Dovecot à la main. Vous obtenez :

  • Comptes mail illimités sur plusieurs domaines
  • Webmail SOGo (interface moderne)
  • Calendrier CalDAV et carnet d'adresses CardDAV
  • Antispam Rspamd (très efficace)
  • Antivirus ClamAV
  • DKIM/SPF/DMARC configurés automatiquement
  • Quotas, alias, listes de diffusion

Prérequis

  • VPS Debian 12 ou Ubuntu 22.04+ avec minimum 6 GB RAM et 80 GB de disque
  • Docker et Docker Compose installés
  • rDNS configuré (impératif, demandez à VeryCloud via ticket si pas déjà fait)
  • Ports 25, 80, 110, 143, 443, 465, 587, 993, 995, 4190 ouverts
  • Un nom de domaine et le contrôle de ses DNS
  • Port 25 sortant non bloqué (vérifiez avec telnet smtp.gmail.com 25)

Étape 1 : Préparer le système

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git

Vérifiez que le hostname est correctement défini :

sudo hostnamectl set-hostname mail.votre-domaine.com

Étape 2 : Cloner Mailcow

cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized

Étape 3 : Générer la configuration

sudo ./generate_config.sh

Le script demande :

  • Mail server hostname (FQDN) : mail.votre-domaine.com
  • Timezone : Europe/Paris
  • Branche : master

Un fichier mailcow.conf est créé. Vous pouvez l'éditer pour ajuster les ports si nécessaire (par exemple si Nginx tourne déjà sur 80/443).

Étape 4 : Démarrer la stack

sudo docker compose pull
sudo docker compose up -d

Le premier lancement prend 5-10 minutes (téléchargement de ~3 GB d'images).

Vérifiez :

sudo docker compose ps

Tous les conteneurs doivent être Up ou healthy.

Étape 5 : Configurer les enregistrements DNS

C'est la partie critique. Chez votre registrar (OVH, Gandi, Cloudflare, etc.), ajoutez :

Type    Nom                  Valeur
A       mail                 IP_DE_VOTRE_VPS
A       autodiscover         IP_DE_VOTRE_VPS
A       autoconfig           IP_DE_VOTRE_VPS
MX      @                    10 mail.votre-domaine.com
TXT     @                    "v=spf1 mx -all"
TXT     _dmarc               "v=DMARC1; p=reject; rua=mailto:[email protected]"

L'enregistrement DKIM se génère depuis l'interface Mailcow à l'étape suivante.

Étape 6 : Première connexion à l'admin

Ouvrez :

https://mail.votre-domaine.com

Identifiants par défaut :

  • Utilisateur : admin
  • Mot de passe : moohoo

Changez immédiatement le mot de passe dans Access → Edit administrator.

Étape 7 : Ajouter un domaine et un utilisateur

Configuration → Mail Setup → Domains → Add domain :

  • Domain : votre-domaine.com
  • Description : Domaine principal
  • Aliases : 400 (par défaut)
  • Mailboxes : 10 (selon votre besoin)
  • Domain quota : 10240 MB

Validez. Mailcow génère automatiquement la clé DKIM.

Configuration → Mail Setup → Mailboxes → Add mailbox :

  • Username : contact
  • Domain : votre-domaine.com
  • Full name : Contact
  • Password : choisissez un mot de passe fort
  • Quota : 1024 MB

Vous avez désormais l'adresse [email protected].

Étape 8 : Configurer DKIM dans les DNS

Dans Configuration → Mail Setup → Configuration → ARC/DKIM keys, copiez la clé DKIM affichée et ajoutez-la dans votre DNS :

Type    Nom                          Valeur
TXT     dkim._domainkey              "v=DKIM1; k=rsa; p=MIGfMA0GC..."

Attendez quelques minutes la propagation.

Étape 9 : Tester l'envoi et la réception

Connectez-vous au webmail SOGo :

https://mail.votre-domaine.com/SOGo/

Envoyez un mail de test vers votre adresse Gmail/Outlook. Le mail doit arriver dans la boîte de réception (pas en spam).

Vérifiez votre score avec mail-tester.com :

  1. Envoyez un mail à l'adresse aléatoire qu'ils donnent
  2. Cliquez sur "Then check your score"
  3. Objectif : 10/10

Étape 10 : Configurer un client mail

Sur Outlook, Thunderbird ou iOS/Android, utilisez les paramètres autodiscover qui se configurent automatiquement.

Configuration manuelle (IMAP/SMTP) :

IMAP : mail.votre-domaine.com    Port 993    SSL/TLS
SMTP : mail.votre-domaine.com    Port 587    STARTTLS
Utilisateur : [email protected]

Dépannage

Mails reçus mais pas envoyés

Le port 25 sortant est sûrement bloqué par VeryCloud (mesure anti-spam standard). Ouvrez un ticket support pour demander son déblocage en justifiant votre usage.

Mails arrivent en spam

Vérifiez :

dig +short TXT votre-domaine.com
dig +short TXT _dmarc.votre-domaine.com
dig +short TXT dkim._domainkey.votre-domaine.com

Les trois doivent répondre. Sinon, les enregistrements DNS ne sont pas correctement configurés.

Vérifiez le rDNS :

dig +short -x IP_DE_VOTRE_VPS

Doit retourner mail.votre-domaine.com. Si ce n'est pas le cas, configurez-le dans l'espace client VeryCloud ou demandez au support.

Conteneur unhealthy

sudo docker compose logs CONTENEUR_NOM --tail 100

Le plus souvent : manque de RAM. Mailcow demande 6 GB minimum.

Commandes utiles

# Statut des conteneurs
sudo docker compose ps

# Logs d'un service
sudo docker compose logs -f postfix-mailcow
sudo docker compose logs -f rspamd-mailcow

# Mettre à jour Mailcow
cd /opt/mailcow-dockerized
sudo ./update.sh

# Sauvegarder
sudo ./helper-scripts/backup_and_restore.sh backup all

# Restaurer
sudo ./helper-scripts/backup_and_restore.sh restore

# Redémarrer toute la stack
sudo docker compose down && sudo docker compose up -d

Conclusion

Vous avez maintenant un serveur mail professionnel auto-hébergé sur votre VPS VeryCloud, avec toutes les fonctionnalités d'un Gmail/Office 365 et sans frais récurrents par utilisateur. Points importants à retenir :

  • Surveillez les blacklists (mxtoolbox.com)
  • Sauvegardez régulièrement (les emails sont précieux)
  • Mettez à jour Mailcow tous les mois (./update.sh)
  • Une IP "neuve" met 1-2 semaines à se chauffer pour ne plus tomber en spam

Ressources

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members