Mailcow ist eine All-in-One-Mailserver-Lösung, die auf Docker basiert. Sie enthält alles für professionelles E-Mail-Hosting.
Was bietet Mailcow?
- Postfix: SMTP-Server
- Dovecot: IMAP/POP3
- Rspamd: Spam-Filter
- ClamAV: Antivirus
- SOGo: Webmail und Kalender
- Web-Oberfläche: Einfache Verwaltung
- Let's Encrypt: Automatische SSL-Zertifikate
Voraussetzungen
- RAM: Mindestens 4 GB (6 GB empfohlen)
- Festplatte: 20 GB+ (SSD empfohlen)
- Docker: Docker und Docker Compose
- Domain: Mit korrekten DNS-Einträgen
- Ports: 25, 80, 443, 110, 143, 465, 587, 993, 995
Docker installieren
curl -fsSL https://get.docker.com | bashDocker Compose installieren
apt install docker-compose-pluginDNS-Einträge vorbereiten
Für mail.example.com:
| Typ | Name | Wert | |-----|------|------| | A | mail | SERVER-IP | | MX | @ | mail.example.com (Priorität 10) | | TXT | @ | v=spf1 mx a -all | | TXT | _dmarc | v=DMARC1; p=quarantine; |
DKIM wird nach der Installation von Mailcow generiert.
Reverse DNS (PTR)
Beim Hoster den PTR-Record setzen:
- IP → mail.example.com
Installation
Mailcow herunterladen
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerizedKonfiguration generieren
./generate_config.shEingaben:
- Hostname:
mail.example.com - Zeitzone:
Europe/Berlin
Konfiguration anpassen
nano mailcow.confWichtige Einstellungen:
MAILCOW_HOSTNAME=mail.example.com
MAILCOW_TZ=Europe/Berlin
# Ressourcen-Limits (optional)
SKIP_CLAMD=n # ClamAV aktiviert
SKIP_SOLR=y # Solr deaktiviert (spart RAM)Container starten
docker compose pull
docker compose up -dDer erste Start dauert einige Minuten.
Web-Oberfläche
Erreichbar unter:
https://mail.example.comStandard-Login:
- Benutzer:
admin - Passwort:
moohoo
Sofort ändern!
Erste Schritte
Admin-Passwort ändern
1. System → Administrator 2. Neues Passwort setzen
Domain hinzufügen
1. E-Mail → Konfiguration → Domains 2. "Domain hinzufügen" 3. Domain eingeben: example.com
Postfach erstellen
1. E-Mail → Konfiguration → Mailboxen 2. "Mailbox hinzufügen" 3. E-Mail, Name, Passwort eingeben
DKIM einrichten
1. E-Mail → Konfiguration → Domains 2. Bei der Domain auf "DNS" klicken 3. DKIM-Key anzeigen 4. Als TXT-Record im DNS eintragen
Format:
dkim._domainkey.example.com TXT "v=DKIM1;k=rsa;p=LANGER_KEY..."Webmail (SOGo)
Erreichbar unter:
https://mail.example.com/SOGoLogin mit E-Mail-Adresse und Passwort.
Funktionen:
- Kalender
- Kontakte
- Aufgaben
E-Mail-Clients einrichten
IMAP/SMTP-Einstellungen
| Protokoll | Server | Port | Verschlüsselung | |-----------|--------|------|-----------------| | IMAP | mail.example.com | 993 | SSL/TLS | | SMTP | mail.example.com | 587 | STARTTLS |
Benutzername: Vollständige E-Mail-Adresse
Autodiscover
Mailcow unterstützt Autodiscover. Die meisten Clients konfigurieren sich automatisch.
DNS-Eintrag hinzufügen:
autoconfig.example.com CNAME mail.example.com
autodiscover.example.com CNAME mail.example.comSpam-Filter (Rspamd)
Web-Oberfläche:
https://mail.example.com/rspamdEinstellungen anpassen
1. In der Mailcow-UI: E-Mail → Konfiguration → Rspamd-Einstellungen 2. Schwellwerte anpassen 3. Whitelist/Blacklist verwalten
Updates
cd /opt/mailcow-dockerized
./update.shRegelmäßige Updates sind wichtig für Sicherheit.
Backup
Integriertes Backup
cd /opt/mailcow-dockerized
./helper-scripts/backup_and_restore.sh backup allWiederherstellen
./helper-scripts/backup_and_restore.sh restoreAutomatisches Backup
crontab -e0 3 * * * cd /opt/mailcow-dockerized && ./helper-scripts/backup_and_restore.sh backup allWeitere Domains hinzufügen
1. DNS-Einträge für neue Domain setzen 2. In Mailcow: E-Mail → Konfiguration → Domains 3. Domain hinzufügen 4. DKIM-Key generieren und im DNS eintragen 5. Postfächer erstellen
Alias-Adressen
1. E-Mail → Konfiguration → Aliase 2. Alias hinzufügen 3. Quelle und Ziel eingeben
Beispiel: info@example.com → max@example.com
Catch-All
Alle E-Mails an unbekannte Adressen einer Domain empfangen:
1. Alias erstellen 2. Quelle: @example.com 3. Ziel: admin@example.com
Ressourcen optimieren
Ohne ClamAV (spart ~1 GB RAM)
In mailcow.conf:
SKIP_CLAMD=ydocker compose down
docker compose up -dOhne Solr (spart ~500 MB RAM)
SKIP_SOLR=ySolr wird für Volltext-Suche in E-Mails verwendet.
Troubleshooting
Logs anzeigen
cd /opt/mailcow-dockerized
docker compose logs -f
# Nur Postfix
docker compose logs -f postfix-mailcow
# Nur Dovecot
docker compose logs -f dovecot-mailcowContainer neu starten
docker compose restartE-Mail-Zustellung testen
# Mail-Queue anzeigen
docker compose exec postfix-mailcow postqueue -p
# Testmail senden
docker compose exec postfix-mailcow mail -s "Test" admin@example.comBlacklist-Check
Prüfen ob Ihre IP auf Blacklists steht:
- mxtoolbox.com
- multirbl.valli.org
Sicherheit
Firewall
Nur benötigte Ports öffnen:
ufw allow 25/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 587/tcp
ufw allow 993/tcp
ufw allow 995/tcpFail2ban
Mailcow hat integriertes Fail2ban. In der UI konfigurierbar unter: System → Fail2ban-Parameter
Admin-Zugang einschränken
In docker-compose.override.yml:
services:
nginx-mailcow:
environment:
- ALLOW_ADMIN_EMAIL_LOGIN=nFazit
Mailcow ist die komfortabelste Lösung für einen eigenen Mailserver. Die Docker-basierte Installation ist einfach, Updates sind schnell eingespielt. Mit der Web-Oberfläche lassen sich alle Einstellungen ohne Kommandozeile vornehmen.