78 Dokumentationen verfügbar

Wissensdatenbank

Mailcow Email Server Installation

Zuletzt aktualisiert: 29.12.2025 um 16:32 Uhr

Mailcow E-Mail-Server Installation

Mailcow ist eine leistungsstarke, Docker-basierte E-Mail-Server-Lösung, die alle wichtigen Komponenten für einen professionellen Mailserver mitbringt: Postfix, Dovecot, SOGo Webmail, Rspamd Anti-Spam, ClamAV Anti-Virus und eine moderne Admin-Oberfläche.

Systemanforderungen

Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Ihr Server die folgenden Mindestanforderungen erfüllt:

Komponente Minimum Empfohlen
CPU 2 Kerne 4+ Kerne
RAM 4 GB 8+ GB
Festplatte 20 GB SSD 50+ GB SSD
Betriebssystem Ubuntu 22.04/24.04 LTS, Debian 11/12
Docker Docker CE 24.x oder höher
Docker Compose v2.x (Plugin)
⚠️ Achtung: Der Server benötigt eine dedizierte öffentliche IP-Adresse. Shared Hosting oder NAT-Verbindungen sind für einen Mailserver nicht geeignet.

Vorbereitungen

Hostname konfigurieren

Setzen Sie den korrekten Hostnamen für Ihren Server. Dieser muss als FQDN (Fully Qualified Domain Name) konfiguriert sein:

# Hostname setzen
sudo hostnamectl set-hostname mail.ihredomain.de

# /etc/hosts anpassen
sudo nano /etc/hosts

Fügen Sie folgende Zeile hinzu:

123.456.789.10  mail.ihredomain.de mail

DNS-Einträge konfigurieren

Die folgenden DNS-Einträge müssen bei Ihrem Domain-Provider konfiguriert werden:

Typ Name Wert Priorität
A mail 123.456.789.10 -
AAAA mail 2001:db8::1 (falls IPv6) -
MX @ mail.ihredomain.de 10
CNAME autodiscover mail.ihredomain.de -
CNAME autoconfig mail.ihredomain.de -
TXT @ v=spf1 mx a -all -
TXT _dmarc v=DMARC1; p=quarantine; rua=mailto:postmaster@ihredomain.de -
💡 Tipp: Der DKIM-Eintrag wird nach der Installation automatisch generiert und kann dann aus der Mailcow-Oberfläche kopiert werden.

Reverse DNS (PTR-Record)

Kontaktieren Sie Ihren Hosting-Provider, um einen PTR-Record für Ihre IP-Adresse einrichten zu lassen. Der PTR-Record muss auf mail.ihredomain.de zeigen. Dies ist für die E-Mail-Zustellung essentiell.

Docker Installation

System aktualisieren

# Paketlisten aktualisieren und System upgraden
sudo apt update && sudo apt upgrade -y

# Erforderliche Pakete installieren
sudo apt install -y curl git apt-transport-https ca-certificates gnupg lsb-release

Docker CE installieren

# Docker GPG-Key hinzufügen
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Docker Repository hinzufügen
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Docker installieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Docker beim Systemstart aktivieren
sudo systemctl enable docker
sudo systemctl start docker

Docker Installation prüfen

# Docker Version prüfen
docker --version

# Docker Compose Version prüfen
docker compose version

# Testcontainer ausführen
sudo docker run hello-world
✅ Erfolg: Wenn Sie "Hello from Docker!" sehen, ist Docker korrekt installiert.

Firewall konfigurieren

Öffnen Sie die folgenden Ports für den Mailserver:

# UFW installieren (falls nicht vorhanden)
sudo apt install -y ufw

# Standard-Regeln setzen
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH erlauben (wichtig!)
sudo ufw allow 22/tcp

# HTTP und HTTPS für Webmail und Admin
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# SMTP-Ports
sudo ufw allow 25/tcp    # SMTP
sudo ufw allow 465/tcp   # SMTPS (Submission over TLS)
sudo ufw allow 587/tcp   # Submission (STARTTLS)

# IMAP-Ports
sudo ufw allow 143/tcp   # IMAP (STARTTLS)
sudo ufw allow 993/tcp   # IMAPS

# POP3-Ports (optional)
sudo ufw allow 110/tcp   # POP3 (STARTTLS)
sudo ufw allow 995/tcp   # POP3S

# Sieve (Filterregeln)
sudo ufw allow 4190/tcp

# Firewall aktivieren
sudo ufw enable

# Status prüfen
sudo ufw status verbose
Port Protokoll Beschreibung
25 SMTP E-Mail-Empfang von anderen Servern
80/443 HTTP/HTTPS Webmail & Admin-Oberfläche
465 SMTPS E-Mail-Versand (SSL/TLS)
587 Submission E-Mail-Versand (STARTTLS)
993 IMAPS E-Mail-Abruf via IMAP
995 POP3S E-Mail-Abruf via POP3
4190 Sieve Serverseitige Filterregeln

Mailcow Installation

Mailcow herunterladen

# In das /opt Verzeichnis wechseln
cd /opt

# Mailcow Repository klonen
sudo git clone https://github.com/mailcow/mailcow-dockerized

# In das Mailcow-Verzeichnis wechseln
cd mailcow-dockerized

Konfiguration generieren

# Konfigurationsassistent starten
sudo ./generate_config.sh

Der Assistent fragt nach folgenden Informationen:

Mail server hostname (FQDN)
Geben Sie hier Ihren vollständigen Hostnamen ein, z.B. mail.ihredomain.de
Timezone
Für Deutschland: Europe/Berlin
Which branch should Mailcow use?
Wählen Sie master für die stabile Version

Konfiguration anpassen (optional)

# mailcow.conf bearbeiten
sudo nano mailcow.conf

Wichtige Einstellungen in der mailcow.conf:

# Hostname
MAILCOW_HOSTNAME=mail.ihredomain.de

# Zeitzone
TZ=Europe/Berlin

# HTTP/HTTPS Ports (Standard: 80/443)
HTTP_PORT=80
HTTPS_PORT=443

# Zusätzliche SAN-Domains für SSL
ADDITIONAL_SAN=autodiscover.ihredomain.de,autoconfig.ihredomain.de

# Skip Let's Encrypt (falls eigene Zertifikate)
SKIP_LETS_ENCRYPT=n

# Clamd Memory Limit (bei wenig RAM reduzieren)
CLAMD_MILTER_MEMORY=256M

Container starten

# Container herunterladen und starten
sudo docker compose pull
sudo docker compose up -d
ℹ️ Info: Der erste Start kann 5-10 Minuten dauern, da alle Container heruntergeladen und initialisiert werden müssen.

Installation prüfen

# Status der Container prüfen
sudo docker compose ps

# Logs überwachen
sudo docker compose logs -f
✅ Erfolg: Wenn alle Container den Status "healthy" oder "running" haben, ist die Installation abgeschlossen.

Erste Schritte nach der Installation

Admin-Oberfläche aufrufen

Öffnen Sie einen Browser und navigieren Sie zu:

https://mail.ihredomain.de

Standard-Zugangsdaten:

Feld Wert
Benutzername admin
Passwort moohoo
❌ Wichtig: Ändern Sie das Administrator-Passwort sofort nach dem ersten Login!

Administrator-Passwort ändern

  1. Klicken Sie oben rechts auf "Admin"
  2. Wählen Sie "Edit"
  3. Geben Sie ein neues, sicheres Passwort ein
  4. Speichern Sie die Änderungen

Domain hinzufügen

  1. Navigieren Sie zu E-Mail → Configuration → Domains
  2. Klicken Sie auf "Add domain"
  3. Geben Sie Ihre Domain ein (z.B. ihredomain.de)
  4. Konfigurieren Sie die gewünschten Limits
  5. Klicken Sie auf "Add domain and restart SOGo"

DKIM-Key kopieren

Nach dem Hinzufügen der Domain:

  1. Gehen Sie zu E-Mail → Configuration → Domains
  2. Klicken Sie auf den DKIM-Button (Schlüssel-Symbol) neben Ihrer Domain
  3. Kopieren Sie den angezeigten TXT-Record
  4. Fügen Sie diesen bei Ihrem DNS-Provider hinzu

Der DNS-Eintrag sieht etwa so aus:

Name:  dkim._domainkey.ihredomain.de
Type:  TXT
Value: v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkq...

Postfach erstellen

  1. Navigieren Sie zu E-Mail → Configuration → Mailboxes
  2. Klicken Sie auf "Add mailbox"
  3. Füllen Sie die Felder aus:
    • Username: z.B. info
    • Domain: Ihre Domain wählen
    • Full name: Anzeigename
    • Password: Sicheres Passwort
    • Quota: Speicherplatz in MB (0 = unbegrenzt)
  4. Klicken Sie auf "Add"

Webmail-Zugang (SOGo)

Benutzer können sich im Webmail anmelden unter:

https://mail.ihredomain.de/SOGo

Login-Daten:

  • Benutzername: Vollständige E-Mail-Adresse (z.B. info@ihredomain.de)
  • Passwort: Das bei der Postfacherstellung vergebene Passwort

E-Mail-Client Einrichtung

Für die Einrichtung in E-Mail-Programmen wie Outlook, Thunderbird oder Apple Mail:

Einstellung Wert
IMAP-Server mail.ihredomain.de
IMAP-Port 993 (SSL/TLS)
SMTP-Server mail.ihredomain.de
SMTP-Port 465 (SSL/TLS) oder 587 (STARTTLS)
Benutzername Vollständige E-Mail-Adresse
Authentifizierung Normal password
💡 Tipp: Dank der AutoDiscover/AutoConfig-Einträge werden viele E-Mail-Clients die Einstellungen automatisch erkennen.

Wartung und Updates

Mailcow aktualisieren

# In das Mailcow-Verzeichnis wechseln
cd /opt/mailcow-dockerized

# Update-Script ausführen
sudo ./update.sh

Das Update-Script führt automatisch folgende Schritte aus:

  1. Backup der aktuellen Konfiguration
  2. Download der neuesten Version
  3. Container stoppen
  4. Neue Container herunterladen
  5. Container neu starten

Container-Status prüfen

# Alle Container anzeigen
sudo docker compose ps

# Logs eines bestimmten Containers
sudo docker compose logs -f postfix-mailcow
sudo docker compose logs -f dovecot-mailcow
sudo docker compose logs -f nginx-mailcow

Container neu starten

# Alle Container neustarten
sudo docker compose restart

# Einzelnen Container neustarten
sudo docker compose restart postfix-mailcow

Mailcow stoppen und starten

# Mailcow stoppen
sudo docker compose down

# Mailcow starten
sudo docker compose up -d

Backup einrichten

Manuelles Backup

# Backup-Script ausführen
cd /opt/mailcow-dockerized
sudo ./helper-scripts/backup_and_restore.sh backup all

Das Backup wird standardmäßig in /opt/mailcow-dockerized/backup gespeichert.

Automatisches Backup (Cronjob)

# Crontab bearbeiten
sudo crontab -e

# Tägliches Backup um 3:00 Uhr
0 3 * * * cd /opt/mailcow-dockerized && ./helper-scripts/backup_and_restore.sh backup all --delete-days 7

Backup wiederherstellen

# Verfügbare Backups anzeigen
sudo ./helper-scripts/backup_and_restore.sh restore

# Bestimmtes Backup wiederherstellen
sudo ./helper-scripts/backup_and_restore.sh restore all BACKUP_ORDNER
⚠️ Warnung: Speichern Sie Backups immer auch auf einem externen System oder Speicherort!

SSL-Zertifikate

Let's Encrypt (Standard)

Mailcow nutzt standardmäßig Let's Encrypt für kostenlose SSL-Zertifikate. Diese werden automatisch erneuert.

# Zertifikat-Status prüfen
sudo docker compose exec acme-mailcow openssl x509 -in /var/lib/acme/cert.pem -noout -dates

Zertifikat manuell erneuern

# ACME-Container neustarten
sudo docker compose restart acme-mailcow

# Logs prüfen
sudo docker compose logs -f acme-mailcow

Eigene Zertifikate verwenden

Wenn Sie eigene Zertifikate verwenden möchten:

  1. Setzen Sie SKIP_LETS_ENCRYPT=y in der mailcow.conf
  2. Kopieren Sie Ihre Zertifikate nach:
    • data/assets/ssl/cert.pem (Zertifikat)
    • data/assets/ssl/key.pem (Private Key)
  3. Starten Sie die Container neu: sudo docker compose restart

Sicherheit

Fail2Ban aktivieren

Mailcow enthält bereits eine integrierte Netfilter-Lösung. In der Admin-Oberfläche:

  1. Navigieren Sie zu System → Configuration → Fail2Ban Parameters
  2. Aktivieren Sie Fail2Ban
  3. Konfigurieren Sie:
    • Ban time: Sperrzeit in Sekunden (Standard: 86400 = 24h)
    • Max attempts: Maximale Fehlversuche (Standard: 10)
    • Retry window: Zeitfenster für Versuche (Standard: 600)

Gesperrte IPs verwalten

# Gesperrte IPs anzeigen
sudo docker compose exec netfilter-mailcow nft list set ip filter f2b-blacklist

# IP entsperren
sudo docker compose exec netfilter-mailcow nft delete element ip filter f2b-blacklist { 1.2.3.4 }

Zwei-Faktor-Authentifizierung

Für zusätzliche Sicherheit können Benutzer 2FA aktivieren:

  1. Benutzer meldet sich im Webmail an
  2. Klick auf Benutzername → "Edit"
  3. Unter "Two-Factor Authentication" TOTP aktivieren
  4. QR-Code mit Authenticator-App scannen

Problemlösungen

E-Mails werden nicht zugestellt

Prüfen Sie folgende Punkte:

  • DNS-Einträge korrekt gesetzt (MX, SPF, DKIM, DMARC)?
  • PTR-Record (Reverse DNS) konfiguriert?
  • Firewall-Ports geöffnet?
  • IP auf Blacklist? Prüfen unter: MXToolbox Blacklist Check
# Postfix-Logs prüfen
sudo docker compose logs -f postfix-mailcow

# Mail-Queue anzeigen
sudo docker compose exec postfix-mailcow postqueue -p

SSL-Zertifikat wird nicht ausgestellt

# ACME-Logs prüfen
sudo docker compose logs acme-mailcow

# DNS prüfen
dig +short mail.ihredomain.de A
dig +short mail.ihredomain.de AAAA

Häufige Ursachen:

  • Port 80 nicht erreichbar (HTTP-Challenge)
  • DNS-Einträge noch nicht propagiert
  • Rate-Limit bei Let's Encrypt erreicht

Container startet nicht

# Container-Status prüfen
sudo docker compose ps

# Logs des problematischen Containers
sudo docker compose logs CONTAINER_NAME

# Container neu erstellen
sudo docker compose up -d --force-recreate CONTAINER_NAME

Speicherplatz prüfen

# Docker-Speicherverbrauch
sudo docker system df

# Nicht verwendete Ressourcen bereinigen
sudo docker system prune -a

# Speicherplatz der Mail-Daten
du -sh /opt/mailcow-dockerized/data/

Nützliche Befehle

Aktion Befehl
Alle Container anzeigen sudo docker compose ps
Logs aller Container sudo docker compose logs -f
Mailcow starten sudo docker compose up -d
Mailcow stoppen sudo docker compose down
Mailcow neustarten sudo docker compose restart
Mailcow aktualisieren sudo ./update.sh
Backup erstellen sudo ./helper-scripts/backup_and_restore.sh backup all
Mail-Queue anzeigen sudo docker compose exec postfix-mailcow postqueue -p
Mail-Queue leeren sudo docker compose exec postfix-mailcow postsuper -d ALL

Weitere Hilfe

Bei Fragen oder Problemen stehen folgende Ressourcen zur Verfügung:

💡 Tipp: Die Mailcow-Community ist sehr aktiv und hilfsbereit. Bei Problemen lohnt sich ein Blick ins Forum oder die GitHub Issues.