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 | bash

Docker Compose installieren

apt install docker-compose-plugin

DNS-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-dockerized

Konfiguration generieren

./generate_config.sh

Eingaben:

  • Hostname: mail.example.com
  • Zeitzone: Europe/Berlin

Konfiguration anpassen

nano mailcow.conf

Wichtige 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 -d

Der erste Start dauert einige Minuten.

Web-Oberfläche

Erreichbar unter:

https://mail.example.com

Standard-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/SOGo

Login mit E-Mail-Adresse und Passwort.

Funktionen:

  • E-Mail
  • 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.com

Spam-Filter (Rspamd)

Web-Oberfläche:

https://mail.example.com/rspamd

Einstellungen anpassen

1. In der Mailcow-UI: E-Mail → Konfiguration → Rspamd-Einstellungen 2. Schwellwerte anpassen 3. Whitelist/Blacklist verwalten

Updates

cd /opt/mailcow-dockerized
./update.sh

Regelmäßige Updates sind wichtig für Sicherheit.

Backup

Integriertes Backup

cd /opt/mailcow-dockerized
./helper-scripts/backup_and_restore.sh backup all

Wiederherstellen

./helper-scripts/backup_and_restore.sh restore

Automatisches Backup

crontab -e
0 3 * * * cd /opt/mailcow-dockerized && ./helper-scripts/backup_and_restore.sh backup all

Weitere 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.commax@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=y
docker compose down
docker compose up -d

Ohne Solr (spart ~500 MB RAM)

SKIP_SOLR=y

Solr 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-mailcow

Container neu starten

docker compose restart

E-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.com

Blacklist-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/tcp

Fail2ban

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=n

Fazit

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.