Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Mailing in Nextcloud
2FA Ablauf über E-Mail
Das Mail wird über das Systemkonto an die primäre Benutzeradresse geschixckt. Dafür muss Nextcloud eine funktionierende Mailserver-Konfiguration haben.
Für den Two-Factor email provider steht ausdrücklich, dass der Code an die primäre E-Mail-Adresse des Benutzers gesendet wird und dass Nextcloud dafür einen funktionierenden E-Mail-Server konfiguriert haben muss.
Wenn man 2FA zuverlässig betreiben will, ist es für den produktiven Betriebn sinnvoller, eine TOTP + Backup-Codes zu empfehlen. 2FA per E-Mail ist besser als gar kein 2FA, aber schwächer als TOTP, weil Mailzugang und Nextcloud-Zugang oft miteinander verknüpft sind.
Probleme beim Versand
Wenn 2FA per E-Mail bei manchen Adressen funktioniert und bei anderen nicht, ist die Nextcloud-SMTP-Grundkonfiguration sehr wahrscheinlich grundsätzlich in Ordnung. Der Fehler liegt dann meistens bei Benutzer-E-Mailadresse, Empfängerdomain, Spam/DMARC/SPF oder SMTP-Relay-Regeln.
Der 2FA-E-Mail-Provider sendet den Code an die primäre E-Mail-Adresse des Benutzers; zusätzlich muss Nextcloud einen funktionierenden Mailserver konfiguriert haben. Nextcloud selbst benötigt für ausgehende Mails ein funktionierendes SMTP-/Sendmail-Setup; die Admin-Grundeinstellungen schreiben diese Werte in die config.php.
Wenn manche Adressen funktionieren, andere nicht:
mögliche Ursachen
1. Falsche oder fehlende primäre E-Mail-Adresse beim Benutzer
2. Empfänger-Mailserver blockiert die Nachricht
3. Wenn einige 2FA-Mails ankommen, dann ist deine Nextcloud-Mailkonfiguration nicht grundsätzlich kaputt. Am wahrscheinlichsten ist:
- betroffene Benutzeradresse falsch / nicht primär / nicht erreichbar
- Empfängerdomain blockiert oder verzögert die Mail
- SPF/DKIM/DMARC/Reputation für webmaster@waldhofer.com nicht sauber
- SMTP-Provider lehnt bestimmte Empfänger ab oder limitiert
SMPT Server des Mailprovieders meckert
bei den Grundeinstellungen gebe ich alle Parameter des smtp Servers an. Warum ist es möglich, dass bei gleichbleibender Konfiguration ein Mailversand manchmal funktioniert, manchmal nicht
Die SMTP-Konfiguration in den Grundeinstellungen ist nur die statische Vorgabe: Server, Port, Verschlüsselung, Benutzer, Passwort, Absender. Jeder einzelne Versand ist aber eine neue Verbindung über Netzwerk, DNS, TLS und den SMTP-Server. Nextcloud ist dabei kein eigener Mailserver, sondern verbindet sich mit einem vorhandenen Mailserver.
Mögliche Ursachen (viele siehst du im Nextcloud Log)
1. SMTP-Timeout zu knapp
Wenn der SMTP-Server gerade langsam reagiert, ein Spam-/Virenscanner auf dem Mailserver prüft oder TLS länger dauert, kann ein Versand abbrechen, obwohl dieselben Daten beim nächsten Versuch funktionieren.
Parameter in der Config.php
'mail_smtptimeout' => 30,
2. Verschlüsselung
Wenn der Mailanbieter Port 465 anbietet, ist das oft stabiler, weil die TLS-Verbindung sofort aufgebaut wird.
3. SMTP Server limitiert oder drosselt:
Anzahl Mails pro Minute
Anzahl Logins pro Zeitfenster
Anzahl Verbindungen pro IP
Versand an externe Domains
Versand mit abweichender Absenderadresse
Dann sieht es in Nextcloud so aus, als wäre die Konfiguration fehlerhaft, obwohl der SMTP-Server nur zeitweise ablehnt. Das betrifft besonders 2FA per Mail, weil beim Login mehrere Codes in kurzer Zeit angefordert werden können.
4. Der Test-Mailversand ist nicht dasselbe wie jeder echte Versand
Der Button E-Mail senden in den Grundeinstellungen sendet laut Nextcloud eine Testmail an die E-Mail-Adresse, die im persönlichen Profil des angemeldeten Benutzers eingetragen ist.
Bei 2FA-Mails kann aber ein anderer Benutzer betroffen sein. Dann kann es an dessen hinterlegter Mailadresse, Empfänger-Server, Spamfilter oder Zustellbarkeit liegen.
5. Spamfilter prüfen
Es soll vorkommen, das 2FA Mails im Spamfilter landen
erweitertes SMTP Logging kurzfristig einschalten
Aktivierung des Debug Logs in config.php
'mail_smtpdebug' => true, 'loglevel' => 0,
Nach dem Test unbedingt wieder ausschalten!
'mail_smtpdebug' => false, 'loglevel' => 2,
Logs werden in das Nextcloud.log geschrieben, ansehen z.B. mit
docker exec -it nextcloud tail -f /var/www/html/data/nextcloud.log | grep -i mail
Wenn nextcloud.log ausserhalb des Containers liegt, kannst du das Log folgendermaßen ansehen:
tail -n 50 /directora/data/nextcloud.log | jq .
Manchmal kann es sinnvoll sein, Nextcloud neu zu starten.
docker compose up -d --force-recreate app
Administrative Einstellungen beim Versand der E-Mails
Bei den administrative Einstellungen des E-Mail Versandes ist zu beachten, über welches Absender-/SMTP-Konto Nextcloud bestimmte ausgehende E-Mails verschickt.
1. System E-Mailkonto
Das ist der klassische und meist empfohlene Weg.
Nextcloud verwendet dabei das zentrale SMTP-Konto aus den Admin-Grundeinstellungen beziehungsweise aus config.php.
Damit sendet Nextcloud Systemmails wie Passwort-Zurücksetzen, Benachrichtigungen, Freigaben, Aktivitätsmails und ähnliche Nachrichten über ein zentrales Konto. Laut Nextcloud-Doku kann Nextcloud selbst keine vollständige Mailserver-Funktion übernehmen, sondern verbindet sich mit einem vorhandenen Mailserver; die Grundeinstellungen schreiben die Werte in config/config.php.
2. E-Mailkonto des Benutzers
Diese Option nutzt nicht primär das zentrale Systemkonto, sondern versucht, über ein persönlich eingerichtetes Mailkonto des jeweiligen Nextcloud-Benutzers zu senden.
Das ist eine neuere Mail-Provider-Funktion. Laut Nextcloud-Dokumentation wurde sie ab Version 30 eingeführt. Sie erlaubt, System-E-Mails direkt über ein vom Benutzer konfiguriertes persönliches Mailkonto zu senden, ist derzeit aber auf Kalendereinladungen beschränkt. Außerdem wird aktuell die Nextcloud Mail App ab Version 4.1 benötigt, und der Benutzer muss dort ein passendes Mailkonto eingerichtet haben.
Empfehlung für deine Umgebung
Für die Docker-Nextcloud mit zentralem SMTP für Passwort-Reset und 2FA in den Grundeinstellungen System E-Mailkonto verwenden.