📚 Cet article s’intègre dans notre parcours self-hosting Afrique de l’Ouest. Pour la stratégie complète (Coolify, Hetzner, Docker, sauvegarde, sécurité), voir le guide pilier self-hosting 2026.
Google Workspace Business Standard à 12 USD par utilisateur et par mois, Microsoft 365 Business à 12,50 USD. Pour une PME ouest-africaine de 25 personnes, comptez 3 600 à 3 750 USD par an juste pour la messagerie professionnelle. Vos emails confidentiels (contrats clients, négociations, données financières, retours patients) transitent et sont stockés sur des serveurs Google ou Microsoft aux États-Unis. Mailcow est l’alternative open source qui s’est imposée chez les PME francophones d’Afrique de l’Ouest et du Maghreb : stack Postfix + Dovecot + Rspamd + ClamAV + SOGo (webmail Roundcube alternative) + Z-Push (ActiveSync), interface admin moderne, multi-domaine. Auto-hébergé sur Hetzner CX23 (4,51 €/mois) + un domaine = environ 9 €/mois pour 50 boîtes professionnelles illimitées.
Sommaire
- Pourquoi Mailcow en 2026 (informations vérifiées en avril 2026, susceptibles d’évoluer)
- Concepts fondamentaux
- Vue d’ensemble pratique
- Tutoriels du cluster
- Cas d’usage
- Adaptation au contexte ouest-africain
- Erreurs fréquentes
- FAQ
Pourquoi Mailcow domine en 2026
Cinq raisons concrètes.
Coût. 25 boîtes Google Workspace = 300 USD/mois. Mailcow self-hosted = 9 €/mois (VPS + domaine). Économie 3 500 USD/an. Sur 5 ans, c’est 17 500 USD réinvestissables ailleurs.
Souveraineté complète. Vos emails (contrats clients, secrets négociation, dossiers patients, échanges avocat) restent sur votre VPS Hetzner Falkenstein. Aucune analyse Google, aucune indexation Microsoft, aucune entrée à la NSA via le CLOUD Act. Conformité naturelle ARTCI ivoirienne, CDP marocaine, NESA émiratie.
Stack mature et stable. Postfix (depuis 1998, utilisé par 30% des serveurs mail mondiaux), Dovecot (IMAP/POP3 leader), Rspamd (anti-spam moderne), ClamAV. Tous mis à jour automatiquement par Mailcow.
Webmail moderne SOGo. Interface webmail comparable à Gmail visuellement, calendrier CalDAV, contacts CardDAV, mobile via Apple Mail / Outlook / Gmail app, ActiveSync via Z-Push pour outlook desktop.
Multi-domaine illimité. Une instance Mailcow gère plusieurs domaines : votre-entreprise.com, boutique-en-ligne.ci, cabinet-avocat.ma. Sans frais supplémentaires. Idéal pour ESN ou holdings.
Concepts fondamentaux
MTA, MDA, MUA
Architecture mail standard. MTA (Mail Transfer Agent) = Postfix : route emails entre serveurs. MDA (Mail Delivery Agent) = Dovecot : stocke emails dans boîtes utilisateurs. MUA (Mail User Agent) = SOGo, Outlook, Apple Mail : client.
SPF, DKIM, DMARC
Trois mécanismes anti-usurpation à configurer côté DNS :
- SPF : déclare quels serveurs ont droit d’envoyer pour votre domaine.
- DKIM : signature cryptographique de chaque email (Mailcow signe automatiquement).
- DMARC : politique de validation et reporting.
Sans ces trois, vos emails partent en spam Gmail/Outlook. Mailcow génère les enregistrements DNS automatiquement.
PTR (reverse DNS)
Le serveur mail doit avoir un PTR (reverse DNS) qui matche son hostname. Hetzner permet de configurer le PTR de votre VPS via panel. Sans PTR correct, emails rejetés par Gmail.
IP réputation
L’IP de votre VPS doit avoir une bonne réputation pour que les emails ne partent pas en spam. Hetzner Falkenstein offre IPs « neuves » généralement clean. Vérifier sur mxtoolbox.com avant déploiement.
Whitelist Hetzner pour ports SMTP
Hetzner bloque les ports 25/465/587 sortants par défaut sur les VPS récents. Demande de whitelist via support. Réponse en 24-48h.
TLS et chiffrement transit
Mailcow active TLS 1.3 par défaut sur SMTP, IMAP, et webmail. Certificats Let’s Encrypt automatiques.
Vue d’ensemble pratique
1. Préparation
VPS Hetzner CX23, IP fixe avec PTR, domaine avec accès DNS, ouverture ports SMTP par Hetzner. Voir Déployer Mailcow sur Hetzner.
2. Configuration DNS
SPF + DKIM + DMARC + MX + PTR. Voir Configuration DNS Mailcow.
3. Création boîtes et alias
Interface admin pour créer boîtes, alias, groupes, autoresponders. Voir Boîtes mail alias et groupes.
4. Migration depuis Google Workspace ou Microsoft 365
imapsync pour copier emails existants. Voir Migrer de Google Workspace ou Microsoft 365.
Tutoriels du cluster Mailcow
- Déployer Mailcow sur Hetzner VPS
- Configuration DNS SPF DKIM DMARC
- Créer boîtes, alias et groupes
- Migrer de Google ou Microsoft 365
Cas d’usage
Cabinet juridique 15 personnes
Cabinet à Casablanca : confidentialité absolue exigée par secret professionnel. Mailcow self-hosted Hetzner = aucun mail sur Gmail. Économie 1 800 USD/an. Auditeur de l’ordre des avocats valide.
Marketplace e-commerce
Marketplace à Dakar : envois transactionnels (confirmation commande, livraison, factures). Mailcow + DKIM strict = délivrabilité 98% Gmail/Outlook clients.
Cabinet médical
Cabinet à Tunis stockant échanges patient-médecin : NESA et CDP exigent souveraineté. Mailcow répond directement.
ESN multi-clients
ESN à Abidjan : un domaine Mailcow par client, branding distinct, isolation. 8 clients = 8 domaines sur même Mailcow, coût marginal nul.
ONG humanitaire
ONG opérant au Sahel : 30 collaborateurs distribués Niger/Burkina/Mali. Webmail SOGo accessible mobile, économie 4 320 USD/an vs Google Workspace.
Trois choses à retenir pour le contexte local
Quatre adaptations spécifiques.
Coût total annuel. 25 personnes : Google Workspace = 3 600 USD/an. Mailcow Hetzner = 108 €/an. Économie 3 500 USD/an. Sur 5 ans, c’est 18 000 USD pour la PME.
Délivrabilité depuis Afrique. Hetzner Falkenstein offre IPs avec bonne réputation. Vérifier que votre IP n’est pas blacklistée sur Spamhaus, Barracuda. Configuration DKIM/DMARC stricte essentielle.
Conformité régulateurs. ARTCI (CI), CDP (Sénégal/Maroc), NESA (UAE) imposent souvent stockage local ou européen. Mailcow Hetzner Allemagne répond. Auditeurs satisfaits.
Multi-langue webmail. SOGo traduit en français, arabe, anglais. Configuration locale par utilisateur.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Emails partent en spam Gmail | SPF/DKIM/DMARC manquants | Configurer les 3 + warmup IP |
| Port 25 bloqué sortant | Hetzner par défaut | Demander whitelist via support 24-48h |
| PTR ne match pas | Hetzner panel non configuré | Set reverse DNS = mail.votre-domaine.com |
| RAM saturée | ClamAV gourmand | CX23 minimum (4 Go), désactiver ClamAV si pas besoin |
| SOGo lent | Postgres mal optimisé | Tuner shared_buffers et work_mem |
| IP blacklistée | Spam massif sortant | Mailcow rate limit + audit users compromis |
| Backups oubliés | Volume Docker pas sauvegardé | helper script Mailcow inclus |
| Disk plein | Pas de quotas | Configurer per-user quotas dans admin |
FAQ
Mailcow vs Mail-in-a-Box vs Stalwart ? Mailcow le plus mature et complet. Mail-in-a-Box plus simple mais moins flexible. Stalwart prometteur (Rust) mais jeune, moins de production deployments.
Capacité Hetzner CX23 ? 50-80 boîtes mail confortablement. Au-delà CX42 (8,40 €/mois) ou CCX13.
Calendar et contacts partagés ? Oui via SOGo CalDAV/CardDAV. Compatible Apple Calendar, Outlook, Thunderbird.
Outlook desktop ? Oui via Z-Push (ActiveSync). Comme Outlook avec Exchange.
Mobile push notifications ? Oui via ActiveSync. Apps mail iOS/Android natives.
Limites taille email ? Configurable, défaut 100 Mo. Ajustable jusqu’à 500 Mo.
Transfert externe (forwarding) ? Oui par boîte ou alias.
Sur un angle proche
- Démarrer maintenant : Déployer Mailcow sur Hetzner
- Documentation officielle : docs.mailcow.email
- GitHub : github.com/mailcow/mailcow-dockerized
Comparaison face aux alternatives 2026
| Solution | Coût (25 utilisateurs) | Auto-hébergé | Délivrabilité |
|---|---|---|---|
| Mailcow + Hetzner CX23 | 9 €/mois | Oui | 95-98% si DNS OK |
| Google Workspace | 300 USD/mois | Non | 99% |
| Microsoft 365 Business | 312 USD/mois | Non | 99% |
| Mail-in-a-Box | 9 €/mois | Oui | 95% |
| Stalwart | 9 €/mois | Oui | 95% |
| Migadu | 19 USD/mois (illimité boîtes) | Non (SaaS) | 98% |
Checklist mise en production
- VPS Hetzner CX23 avec PTR configuré.
- Whitelist Hetzner ports 25/465/587 via support.
- DNS A, MX, SPF, DKIM, DMARC, PTR.
- HTTPS Let’s Encrypt actif sur webmail.
- 2FA admin Mailcow activé.
- Backups quotidiens vers MinIO/B2.
- Monitoring Uptime Kuma sur SMTP/IMAP/webmail.
- Test envoi/réception depuis Gmail, Outlook.
- Vérification mxtoolbox.com complete clean.
- Quotas users définis.
Où héberger votre projet web ?
Hostinger propose des plans dimensionnés pour les freelances et PME. Lien d’affiliation — pas de surcoût pour vous.
Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.
Étape 1 : choisir un VPS adapté à Mailcow
Mailcow demande au minimum 6 Go de RAM et 2 vCPU pour rouler confortablement avec 30 boîtes mail. Sur Hetzner, le CX31 à environ 13 EUR/mois (~8 530 FCFA) convient. Sur Scaleway, prendre un DEV1-M à 12 EUR. Évitez les VPS à 3 EUR : Mailcow swappera et l antispam Rspamd ramera.
Demandez un reverse DNS (PTR) propre sur l IP : indispensable pour passer les filtres Gmail et Outlook. Sans rDNS aligné, vos mails partent en spam même avec SPF/DKIM/DMARC parfaits.
Étape 2 : préparer le DNS avant l installation
Créez les enregistrements MX, A, AAAA, SPF, DMARC chez votre registrar (OVH, Cloudflare, Namecheap). Le DKIM sera ajouté après le premier démarrage de Mailcow qui génère la clé.
mail.exemple.sn. IN A 203.0.113.42
exemple.sn. IN MX 10 mail.exemple.sn.
exemple.sn. IN TXT "v=spf1 mx -all"
_dmarc.exemple.sn. IN TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@exemple.sn"
Attendez 30 minutes la propagation. Vérifiez avec dig MX exemple.sn @1.1.1.1. Tant que la résolution échoue, n installez pas Mailcow.
Étape 3 : installer Docker et Docker Compose v2
Sur Debian 12, suivez le script officiel Docker. Mailcow nécessite Docker Engine 20.10+ et Compose plugin v2.
curl -fsSL https://get.docker.com | sh
docker compose version
Si la commande renvoie Docker Compose version v2.x, vous êtes prêt. Sinon, installez le plugin manuellement via apt install docker-compose-plugin.
Étape 4 : cloner Mailcow et générer la configuration
Mailcow s installe en clonant le dépôt officiel dans /opt/mailcow-dockerized. Le script generate_config.sh demande le FQDN du serveur mail.
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh
Saisissez mail.exemple.sn à la question FQDN. Le fichier mailcow.conf est créé avec mots de passe aléatoires. Ne le perdez pas.
Étape 5 : démarrer la stack et vérifier les conteneurs
Première montée de stack : 11 conteneurs (postfix, dovecot, rspamd, sogo, redis, mariadb, nginx, acme, watchdog, unbound, clamd).
docker compose pull
docker compose up -d
docker compose ps
Tous les conteneurs doivent afficher Up et healthy après 90 secondes. Si acme-mailcow reste en restart, vérifiez que les ports 80 et 443 sont bien libres et que le DNS pointe sur l IP du serveur.
Étape 6 : créer le premier domaine et la première boîte
Connectez-vous sur https://mail.exemple.sn avec admin/moohoo (à changer immédiatement). Configuration → Domaines → Ajouter, puis Configuration → Boîtes mail → Ajouter.
Quota suggéré : 5 Go par utilisateur PME. Activez SOGo si vous voulez le webmail intégré (calendrier, contacts, tâches). Désactivez si vos utilisateurs sont 100 % Outlook ou Thunderbird.
Étape 7 : publier la clé DKIM générée
Après création du domaine, Mailcow génère une clé DKIM. Configuration → Configuration → ARC/DKIM keys → copier la valeur TXT.
Créez l enregistrement dkim._domainkey.exemple.sn IN TXT "v=DKIM1; k=rsa; p=..." chez votre DNS. Testez avec dig TXT dkim._domainkey.exemple.sn. Une fois la clé publiée, Rspamd signera automatiquement tous les mails sortants.
Étape 8 : envoyer un mail test et vérifier le score
Utilisez mail-tester.com : envoyez un message vers l adresse fournie depuis votre nouvelle boîte. Score cible : 9/10 ou 10/10.
Si vous obtenez 7/10 ou moins, vérifiez les points rouges : SPF non aligné, DMARC manquant, contenu HTML mal formé. Corrigez puis renvoyez. Cette étape valide la délivrabilité avant toute communication réelle avec vos clients ou partenaires.
Étape 9 : sauvegarder Mailcow chaque nuit
Mailcow fournit un script helper-scripts/backup_and_restore.sh. Planifiez une sauvegarde nocturne vers un disque externe ou un bucket S3 distant.
0 3 * * * MAILCOW_BACKUP_LOCATION=/mnt/backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all --delete-days 14
Comptez 2 à 8 Go par snapshot pour une PME de 30 boîtes. Tester la restauration au moins une fois par trimestre sur un VPS jetable. Une sauvegarde jamais testée n existe pas. Voir aussi nos guides DevOps et nos articles sécurité.
Étape 10 : surveiller et mettre à jour mensuellement
Mailcow publie des mises à jour quasi mensuelles. Le script update.sh orchestre tout : pull des images, redémarrage propre, migration DB. Faites-le un samedi matin avec snapshot VPS pris juste avant.
Surveillez les logs Rspamd : un pic d expéditeurs vers une seule destination = compte compromis. Bloquez immédiatement et changez le mot de passe. Cette vigilance évite que votre IP finisse blacklistée pour spam et coupée chez tous vos destinataires Gmail.
Étape 11 : durcir l accès admin et SSH
L interface admin Mailcow est exposée publiquement par défaut. Ajoutez un fail2ban natif activé dans Mailcow (Configuration → fail2ban) avec ban de 24 h après 5 tentatives. Limitez l accès SSH au VPS aux seules IPs de bureau via UFW : ufw allow from 41.214.0.0/16 to any port 22.
Activez le 2FA TOTP pour tous les comptes admin. Une intrusion sur un VPS mail ne ruine pas que vos données : votre IP peut être inscrite sur Spamhaus en 24 h, bloquant la délivrabilité de tous vos clients pour des semaines. Cette précaution coûte 10 minutes et sauve des contrats.
Étape 12 : prévoir le coût total de possession sur 1 an
Budget annuel typique pour 30 boîtes mail PME : VPS 156 EUR (~102 330 FCFA), nom de domaine 12 EUR, certificats Let s Encrypt gratuits, sauvegarde Wasabi 1 To 84 EUR, soit environ 252 EUR annuels (~165 300 FCFA). Comparé à Microsoft 365 Business Standard à 11 EUR/utilisateur/mois soit 3 960 EUR/an pour 30 utilisateurs, l économie est massive.
Le contrepoids : vous payez une demi-journée d administration par mois (4 h × 50 EUR = 200 EUR/an si externalisé). Total Mailcow self-hosted ~452 EUR/an versus M365 ~3 960 EUR. Le calcul devient encore plus favorable au-delà de 50 utilisateurs.