Installer un seveur mail avec mailcow¶
Nous utilisons une version "dockerisé" de mailcow.
1. CONFIGURATION¶
1.1 DNS¶
- Créer les enregistrements DNS suivant:
Info
// Enregistrement A pour L'UI mAilcow
mail 1800 IN A 78.192.247.57
// Enregistrement MX pointant vers le hostname de mailcow
@ 10800 IN MX 10 mail.legaragenumerique.fr.
// Enregistrement TXT à prendre dans l'UI de Mailcow du domaine
mail 1800 IN TXT "<DKIM_KEY>"
dkim._domainkey 1800 IN TXT "<DKIM_KEY>"
// Enregistrement TXT pointant vers l'IP du serveur Mailcow
@ 1800 IN TXT "v=spf1 ip4:78.192.247.57 ~all"
_dmarc 10800 IN TXT "v=DMARC1; p=quarantine; sp=reject; rua=mailto:reports@exemple.com; ruf=mailto:forensics@exemple.com; fo=1"
// Enregistrement CNAME pointant vers le domaine (pour la configuration automatique des clients)
autoconfig 10800 IN CNAME mail.legaragenumerique.fr.
autodiscover 1800 IN CNAME mail.legaragenumerique.fr.
// Idéalement un enregistrement SRV pour la résolution inversée (IP > nom de domaine)
Enregistrement DKIM
Prendre l'enregistrement TXT mail de l'interface mailcow (DKIM key) et remplacer les champs <DKIM_KEY>
Pour tout domaine autre que legaragenumerique.fr hébergé par
mailcow, l'enregistrement MX doit pointer vers lehostnamedu serveurmailcow(dans cet exemple : mail.legaragenumerique.fr)
1.2 Firewall¶
- Ouvrir les ports suivant (TCP et UDP):
| Service | Encryption | Host | Port |
|---|---|---|---|
| IMAP | STARTTLS | mailcow hostname | 143 |
| IMAPS | SSL | mailcow hostname | 993 |
| POP3 | STARTTLS | mailcow hostname | 110 |
| POP3S | SSL | mailcow hostname | 995 |
| SMTP | STARTTLS | mailcow hostname | 587 |
| SMTPS | SSL | mailcow hostname | 465 |
1.3 Stack¶
- Cloner le projet:
git clone https://github.com/mailcow/mailcow-dockerized.git
cd mailcow-dockerized
./generate_config.sh
docker compose up -d
1.4 Nginx RP config (Si mailcow dérrière proxy)¶
nginx configuration reverse proxy
upstream mail {
# Redirect to HTTP port of Mailcow instance, not HTTPS !
server 192.168.0.102:880;
}
server {
listen 80;
listen [::]:80;
server_name mail.legaragenumerique.fr autodiscover.* autoconfig.*;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mail.legaragenumerique.fr autodiscover.* autoconfig.*;
ssl_certificate /etc/letsencrypt/live/mail.legaragenumerique.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.legaragenumerique.fr/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
client_max_body_size 10G;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://mail;
proxy_read_timeout 120s;
}
access_log /var/log/nginx/mail_access.log;
error_log /var/log/nginx/mail_error.log;
}
1.5 Configurations clients¶
1.5.1 Configuration Thunderbird¶

1.5.2 Configuration CARDAV & CALDAV¶
Utiliser les adresses suivantes pour synchroniser les calendriers et contacts en remplaçant mail.example.com par votre hostname mailcow et user@example.com par la boite mail concernée.
CalDAV: https://mail.example.com/SOGo/dav/user@example.com/Calendar/personal/
CardDAV: https://mail.example.com/SOGo/dav/user@example.com/Contacts/personal/
1.6 Transfert boite mail via Thunderbird¶
Processus pour récupérer les mails d'une adresse avant de d'héberger celle-ci sur mailcow, puis réimporter les mails.
1.6.1 Export¶
On exporte les mails au format .elm via Thunderbird dans un dossier.

- Déconnecter la boîte mail de
Thunderbird
1.6.2 Changement des enregistrements DNS¶
-
Changer les enregistrements DNS pour les faire pointer vers le serveur
mailcowoù la boîte mail est désormais hébergée -
Attendre la propagation du changement de DNS
Tip
Certains serveurs mail peuvent mettre jusque 24h avant d'obtenir le changement pour un enregistrement (temps de propagation)
1.6.3 Import¶
- Connecter la boîte mail dans
Thunderbird

- Attendre la fin de l'omport et la synchronisation avec les serveur mail
Les mails sont désormais disponibles sur le nouveau serveur