Zum Inhalt

Mailcow – Setup & Support 2026

Stand: 10.09.2026 (verifiziert)

Überblick

Diese Seite dokumentiert das Mailcow-Setup, die SMTP- und E-Mail-Architektur sowie die Verbindung zu OpenWrt und Caddy. Sie dient als Referenz für Betrieb, Fehleranalyse und Erweiterungen im Mailbereich.

Verwandte Seiten

1. Übersicht

Mailcow läuft lokal als virtuelle Maschine und Docker-Anwendung.

System Wert
Mailcow Server 192.168.178.146
Mailcow-Verzeichnis /opt/mailcow-dockerized
Beispielpostfach berthold@epping-haus.de
Groupware/Webmail SOGo
SMTP Postfix
Spamfilter Rspamd
IMAP Dovecot
Outbound Relay Brevo SMTP

2. Mailfluss

Eingehend

Internet
  -> TCP/25
  -> OpenWrt DNAT
  -> 192.168.178.146:25
  -> Postfix
  -> Rspamd
  -> Dovecot
  -> Mailbox

Ausgehend

Mailclient / SOGo
  -> Mailcow / Postfix
  -> smtp-relay.brevo.com:587
  -> Internet

3. OpenWrt

Relevante Weiterleitungen:

Port Ziel Verwendung
25/TCP 192.168.178.146:25 Mailcow SMTP
80/TCP 192.168.178.146:80 bestehender Mailcow HTTP-Zugriff
443/TCP 192.168.178.150:443 Caddy HTTPS

Die Caddy-Freigabe verändert den bestehenden Mailcow-Port 25 nicht.

4. Mailcow SMTP

uci show firewall.@redirect[1]
nft list chain inet fw4 dstnat_wan

Soll:

TCP/25 -> 192.168.178.146:25

5. Empfang prüfen

tcpdump -ni ens18 tcp port 25

Mailcow:

cd /opt/mailcow-dockerized
docker compose ps
docker compose logs --tail=200 postfix-mailcow
docker compose logs --tail=200 rspamd-mailcow

Gezielte Reject-Suche:

docker compose logs --since=30m postfix-mailcow | \
grep -iE 'reject|milter|status=bounced|status=deferred'

6. Erfolgreiche Zustellung

cd /opt/mailcow-dockerized

docker compose logs --since=30m postfix-mailcow | \
grep -E 'to=<berthold@epping-haus\.de>|status=sent'

Ein Eintrag wie

relay=dovecot[...]:24 ... dsn=2.0.0, status=sent (... Saved)

bestätigt die lokale Ablage.

7. Brevo

cd /opt/mailcow-dockerized

docker compose logs --tail=200 postfix-mailcow | \
grep -iE 'brevo|smtp-relay|sasl|authentication|bounced|deferred'

Erfolgreich sind unter anderem:

Trusted TLS connection established to smtp-relay.brevo.com
dsn=2.0.0, status=sent

Bei 535 5.7.8 SASL authentication failed sind die Brevo-Zugangsdaten zu prüfen.

8. Mailcow 502 Diagnose

Bei einem 502 nach Neustart von Mailcow zuerst PHP-FPM-DNS prüfen:

cd /opt/mailcow-dockerized

docker compose exec nginx-mailcow getent hosts php-fpm-mailcow
docker compose exec nginx-mailcow nc -zv -w 3 php-fpm-mailcow 9001
docker compose exec nginx-mailcow nc -zv -w 3 php-fpm-mailcow 9002

Bei korrekter Erreichbarkeit kann ein Neustart nur von nginx-mailcow ausreichend sein:

docker compose restart nginx-mailcow
sleep 10
curl -k -I https://mail.epping-haus.de

9. Sicherheitsregeln

  • SMTP-Zugangsdaten niemals unverschlüsselt dokumentieren.
  • Brevo-Token niemals in Tickets, Screenshots oder Chats veröffentlichen.
  • Das SMGW und die smgw_zone niemals als Nebenwirkung verändern.
  • Vor Firewalländerungen immer Backup erstellen.

Stand: September 2026