Dieser Guide richtet sich an Administratoren die den Mailserver verwalten, neue Domains einrichten oder Applikationen anbinden.
https://mail.ec-falkenstein.dehttps://mail.tischerlab.ukAm Beispiel jsus-events.de. Alle weiteren Domains folgen demselben Schema.
Admin-UI → Configuration → Domains → Add domain:
jsus-events.deAlle Records für die neue Domain in Cloudflare → DNS anlegen.
A-Record (Mailserver)
| Typ | Name | Wert | Proxy |
|---|---|---|---|
| A | mail |
91.99.89.168 |
Grau (DNS only) |
MX-Record
| Typ | Name | Wert | Priorität |
|---|---|---|---|
| MX | @ |
mail.jsus-events.de |
10 |
SPF
| Typ | Name | Wert |
|---|---|---|
| TXT | @ |
v=spf1 mx -all |
DKIM
| Typ | Name | Wert |
|---|---|---|
| TXT | dkim._domainkey |
v=DKIM1; k=rsa; p=... (Wert aus Mailcow) |
DMARC
| Typ | Name | Wert |
|---|---|---|
| TXT | _dmarc |
v=DMARC1; p=quarantine; rua=mailto:[email protected] |
Auf dem VPS prüfen ob alle Records korrekt propagiert sind:
dig A mail.jsus-events.de @1.1.1.1
dig TXT jsus-events.de @1.1.1.1
dig TXT dkim._domainkey.jsus-events.de @1.1.1.1
dig TXT _dmarc.jsus-events.de @1.1.1.1
Alle Records müssen den erwarteten Wert zurückgeben bevor Postfächer angelegt werden.
Mailcow stellt das Let’s Encrypt Zertifikat nur für den primären Hostnamen (mail.ec-falkenstein.de) aus. Jede weitere Mail-Subdomain muss explizit eingetragen werden.
In /opt/mailcow-dockerized/mailcow.conf die Zeile ADDITIONAL_SAN ergänzen:
ADDITIONAL_SAN=mail.tischerlab.uk
Mehrere Hostnamen kommagetrennt:
ADDITIONAL_SAN=mail.tischerlab.uk,mail.jsus-events.de
Danach den ACME-Container neu erstellen – restart reicht nicht, da die Umgebungsvariable neu eingelesen werden muss:
cd /opt/mailcow-dockerized
docker compose down acme-mailcow && docker compose up -d acme-mailcow
docker logs mailcowdockerized-acme-mailcow-1 -f
Erfolgreich wenn die Logs Certificate signed! und Certificate successfully obtained zeigen.
Admin-UI → E-Mail → Mailboxes → Add mailbox
Alle internen Dienste die Mails versenden (Benachrichtigungen, Formulare, Bestätigungen) nutzen Mailcow als SMTP-Relay. Für jeden Dienst wird eine eigene dedizierte Mailbox empfohlen – so lassen sich Mails im Log eindeutig zuordnen.
Allgemeine SMTP-Einstellungen:
| Einstellung | Wert |
|---|---|
| SMTP-Server | mail.ec-falkenstein.de |
| Port | 587 |
| Verschlüsselung | STARTTLS |
| Authentifizierung | Ja |
| Benutzername | dedizierte Mailbox, z.B. [email protected] |
Umgebungsvariablen oder Konfigurationsdatei:
SMTP_ADDRESS=mail.ec-falkenstein.de
SMTP_PORT=587
SMTP_STARTTLS=true
[email protected]
SMTP_PASSWORD=...
[email protected]
Admin-UI → Admin → Email Settings:
mail.ec-falkenstein.deAdmin-UI → Administration → Mail:
mail.ec-falkenstein.deUCS dient als Identity Provider für Mailcow. User werden automatisch per LDAP-Sync importiert und können sich mit ihren UCS-Zugangsdaten in SOGo anmelden. Postfächer werden beim ersten Login automatisch angelegt.
Admin-UI → Zugang → Identity Provider:
| Einstellung | Wert |
|---|---|
| Identity Provider | LDAP |
| Host | zgwv9e535t78liy7.myfritz.net |
| Port | 7389 |
| SSL / StartTLS | Deaktiviert |
| Base DN | DC=lkg,DC=lkg-falkenstein,DC=digital |
| Bind DN | uid=ldapsearch,cn=users,DC=lkg,DC=lkg-falkenstein,DC=digital |
| Filter | (objectClass=posixAccount) |
| Username Feld | mail |
| Attribut Feld | mailprimaryaddress |
| Benutzer beim Login erstellen | Aktiv |
| Vollsynchronisation | Aktiv |
| Importiere Benutzer | Aktiv |
| Sync-Intervall | 15 Minuten |
ucs.tischerlab.ukMailcow läuft auf einem externen Hetzner-VPS und kann interne Hostnamen nicht auflösen. ucs.tischerlab.uk zeigt über Cloudflare DNS nicht auf den UCS-Container im Heimnetz. Der Zugriff erfolgt daher über MyFRITZ als dynamischen DNS-Eintrag, kombiniert mit einer Portweiterleitung in der FritzBox auf Port 7389.
→ Siehe UCS-Dokumentation: Externe Dienste & LDAP-Erreichbarkeit
Port 7389 ist aktuell direkt in der FritzBox nach außen weitergeleitet. Das bedeutet der LDAP-Server ist aus dem Internet erreichbar. Zugriff erfordert zwar gültige Bind-Credentials, trotzdem sollte dieser Port mittelfristig geschlossen werden. Geplante Lösung: Mailcow per VPN ins Heimnetz einbinden, damit LDAP nicht extern exponiert ist.
docker exec mailcowdockerized-postfix-mailcow-1 mailq
Eine leere Queue ist normal. Viele deferred-Mails an unbekannte Empfänger sind ein Warnsignal für Missbrauch.
docker exec mailcowdockerized-postfix-mailcow-1 postsuper -d ALL
Nur verwenden wenn sicher ist dass keine legitimen Mails in der Queue liegen.
docker logs mailcowdockerized-acme-mailcow-1 --tail 20
Zertifikate werden automatisch erneuert. Letzte Zeile sollte sleeping one day sein.
Regelmäßig unter mxtoolbox.com/blacklists die IP 91.99.89.168 prüfen.
Barracuda-Delisting: barracudacentral.org/rbl/removal
Cloudflare Proxy für Mail-Subdomains
Mail-Subdomains (mail.*) dürfen nie durch Cloudflare proxied werden (orange Wolke). IMAP und SMTP funktionieren nicht durch den Proxy. Immer grau (DNS only) lassen.
Cloudflare Tunnel
Tunnel-Routen auf Mail-Subdomains erzeugen falsche AAAA-Records (fd10:...) die Let’s Encrypt und den ACME-Container blockieren. Mail-Subdomains gehören nicht in den Tunnel.
Port 25 bei Hetzner
Port 25 outbound ist standardmäßig geblockt. Freischaltung über den Hetzner-Support beantragen – dauert bis zu 2 Stunden. MTR-Report wird als Nachweis benötigt:
mtr --report --port 25 --tcp mx00.emig.gmx.net
DKIM nach Domain-Anlage
Nach dem Anlegen einer neuen Domain in Mailcow muss der DKIM-Key manuell generiert und der TXT-Record in Cloudflare eingetragen werden. Ohne DKIM landen Mails im Spam.
Kompromittierte Postfächer
Fremde Postfächer mit zufälligen Namen sind ein Zeichen für kompromittierte Admin-Zugangsdaten. Sofortmaßnahmen:
postsuper -d ALL