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