Changelog
Legende: Neu = neue Funktion. Geändert = Änderung an bestehendem Verhalten oder Aussehen. Behoben = Fehlerbehebung. Entfernt = entfernte Funktion. Sicherheit = sicherheitsrelevante Änderung.
Versionen folgen Semantic Versioning (MAJOR.MINOR.PATCH): MAJOR = inkompatible Änderung, MINOR = neue Funktion abwärtskompatibel, PATCH = Fehlerbehebung.
v0.14.7 – 2026-02-19
Neu
- Automatisches „Gesendet"-Routing für Send-As-Identitäten mit geteilten Postfächern. Bisher scheiterte das Speichern der Sende-Kopie mit der Fehlermeldung „Die Nachricht wurde gesendet, konnte aber nicht im Gesendet-Ordner gespeichert werden. TRYCREATE Mailbox does not exist.", wenn eine Identität mit einer anderen E-Mail-Adresse (typisch: ein geteiltes Postfach wie
reseller@souvera.eu) verwendet und der Sent-Ordner der Identität auf „(Standard)" belassen wurde. Ab v0.14.7 erkennt Souvera Mail diese Situation automatisch und speichert die Kopie im Sent-Ordner des geteilten Postfachs — genau dort, wo Anwender sie erwarten, analog zum Outlook/Exchange-Verhalten. - Robuste Ordner-Erkennung. Souvera Mail probiert der Reihe nach die häufigsten Sent-Ordner-Namen im geteilten Namespace:
Sent Items(Stalwart-Default aus Souvera Central),Sent,Gesendete Elemente,Gesendet. Der erste existierende Ordner bekommt die Kopie. Ordner, die es nicht gibt, werden übersprungen, ohne die Nachricht erneut zu übertragen (Prüfung passiert vor der Message-Übertragung). - Benutzer-Overrides bleiben respektiert. Wer in den Identitäts-Einstellungen explizit einen Sent-Ordner-Pfad gesetzt hat, behält dieses Verhalten — der manuell konfigurierte Pfad wird als letzter Kandidat probiert und als sichere Rückfallebene erhalten.
Für Administratoren
- Erfolgreiches Umleiten schreibt eine grep-bare Info-Zeile ins
nextcloud.log:SOUVERA Send-As: saved sent copy for identity "<email>" in shared folder "<path>" - Wenn wirklich kein Kandidat funktioniert (kein shared Sent-Pfad, kein Client-
saveFolder, kein account-weiterSentFolder), bleibt das ursprüngliche Verhalten erhalten:CantSaveMessagemit der Original-IMAP-Fehlermeldung. Der Absender sieht dann die vertraute Nicht-Speicher-Meldung; die Nachricht ist trotzdem versandt. - Voraussetzung im Mailserver: der Anwender braucht (mindestens)
l+i-ACL-Rechte auf dem geteilten Sent-Ordner. Standard-Rollen in Souvera Central setzen das automatisch — wer manuell eigene Rollen definiert hat, sollte prüfen.
v0.14.6 – 2026-02-19
Sicherheit
- Nachbesserung des Postfach-Ownership-Guards. Nach dem Fix in v0.14.5 wurde ein zweiter Live-Vorfall gemeldet, bei dem der Guard trotzdem nicht ausgelöst hat: Sobald Snappymail beim allerersten Aufruf eine gültige Session mit der Nextcloud-Anmeldung aufgebaut hatte, prüfte Souvera Mail auf allen folgenden Requests nicht mehr, ob der Mailserver tatsächlich das erwartete Postfach zurückgibt — der Guard war nur im „frischen Login"-Zweig aktiv. v0.14.6 verlagert die Prüfung nach ganz vorne: vor jeder Postfach-Auslieferung, in jedem Request, für jeden Benutzer. Ein einmal aufgebauter Snappymail-Auth-Cookie kann eine falsche Postfach-Anzeige nicht mehr überleben.
- Automatisches Löschen der internen Auth-Cookies bei einer verweigerten Prüfung. Schlägt die Ownership-Prüfung fehl, werden zusätzlich Snappymails eigene Auth-Cookies invalidiert, damit ein Hard-Reload nicht erneut in einen zwischengespeicherten Zustand fällt.
Für Administratoren
- Log-Signaturen bleiben unverändert:
Souvera Mail: MAILBOX OWNERSHIP MISMATCHbzw.Souvera Mail: mailbox access deniedinnextcloud.log. Wenn du nach der Aktualisierung auf v0.14.6 diese Zeilen häufig siehst, ist die Wahrscheinlichkeit hoch, dass in Souvera Central Konten noch nicht auf dem Mailserver provisioniert wurden — die Diagnose läuft dann überocc souvera_mail:whoami <uid>. - Die Guard-Prüfung ist ein einzelner HTTP-Round-Trip gegen den Mailserver-Endpunkt
/jmap/session. Bei Nichterreichbarkeit wird der Login weiterhin verweigert (fail-closed).
v0.14.5 – 2026-02-18
Sicherheit
- Kritische Absicherung gegen Postfach-Verwechslungen. In sehr seltenen Fällen (z.B. wenn ein neu angelegtes Konto noch nicht vollständig auf dem Mailserver bereitgestellt wurde) konnte Souvera Mail beim Login versehentlich das Postfach eines anderen Benutzers öffnen. Dieses Verhalten ist ab v0.14.5 unmöglich: Vor dem Öffnen jedes Postfachs prüft Souvera Mail direkt beim Mailserver, ob der angemeldete Benutzer tatsächlich Eigentümer des zu öffnenden Postfachs ist. Weicht die Angabe des Mailservers vom erwarteten Konto ab, wird der Login abgebrochen und ein klarer Fehlerhinweis angezeigt — es wird niemals ein fremdes Postfach angezeigt.
- Fail-closed bei Nichterreichbarkeit des Mailservers. Kann Souvera Mail den Mailserver für die Eigentümer-Prüfung nicht erreichen, wird der Login ebenfalls verweigert. Verfügbarkeit weicht in dieser Situation bewusst dem Sicherheitsprinzip: lieber ein sichtbarer Fehler als ein potentiell falsches Postfach.
Für Administratoren
- Ein abgelehnter Login schreibt eine critical-Log-Zeile mit dem Muster
Souvera Mail: MAILBOX OWNERSHIP MISMATCHbzw.Souvera Mail: mailbox access deniednachnextcloud.log. Damit lassen sich Provisionierungsfehler in Souvera Central proaktiv auffinden, bevor Endanwender sich melden. - Die Fehlermeldung im Browser verweist Anwender direkt auf den Administrator und nennt das passende Diagnose-Kommando
occ souvera_mail:whoami <uid>, um die vollständige E-Mail-Auflösungskette einzusehen.
v0.14.4 – 2026-02-18
Behoben
- Sichtbarer CSS-Text unter „Verbundene Geräte“ behoben. Ein versehentlich verdoppelter Style-Block im Einstellungs-Template hat den Style-Bereich zu früh geschlossen und den restlichen CSS-Code sichtbar als Text unter der Geräteliste angezeigt. Das Layout ist wieder sauber.
v0.14.3 – 2026-02-18
Neu
- Präzise OIDC-Diagnose im
occ souvera_mail:warmup-oidc-Kommando und im Nextcloud-Log. Vorher zeigte ein Warmup-Fehlschlag die nichtssagende Meldung „H2CK/oidc missing or souvera_mail client not registered?“ — die vier möglichen Ursachen (H2CK nicht installiert / H2CK deaktiviert / H2CK-ABI zu alt / Client-ID in unserer App-Konfiguration fehlt) wurden in einen Topf geworfen. Jetzt sagt die Ausgabe genau, was zu tun ist — z. B. „H2CK/oidc app is NOT installed — runocc app:install oidc“ oder „Souvera Mail OIDC client identifier is NOT persisted in app-config … Runocc souvera_mail:oidc:register-client --force“. - Der neue Report-Schlüssel
remediationim--json-Modus enthält denselben aktionierbaren Hinweis maschinenlesbar — Deploy-Pipelines können ohne Log-Parsen reagieren.
Behoben
- Verwirrende Sammel-Fehlermeldung bei OIDC-Ausfall. Der Alarm-Vorfall (SEG Marburg, 18.02.2026) zeigte, dass die frühere Meldung „H2CK/oidc missing or souvera_mail client not registered“ gleichzeitig drei völlig unterschiedliche Zustände beschrieb — App fehlt, App deaktiviert oder Client nicht gespeichert. Ab dieser Version wird jeder Zustand einzeln benannt, mit passendem
occ-Befehl.
Sicherheit
- Bei jedem Login schreibt Souvera Mail zusätzlich einen INFO-Log-Eintrag ins Nextcloud-Log, wenn OIDC in einem verdächtigen Zustand ist (App fehlt, Client-ID leer). So sehen Betreiber Probleme bereits, bevor der erste Nutzer sie meldet. Grep-Muster:
Souvera Mail: OIDC diagnostic.
v0.14.2 – 2026-02-18
Neu
- Diagnose-Kommando
occ souvera_mail:whoami <uid>. Zeigt für einen beliebigen Nextcloud-Benutzer, welche E-Mail-Adresse Souvera Mail beim Login auflösen würde — inklusive der vier Quellen in ihrer Prüfreihenfolge (Souvera-Mail-Override, Nextcloud-Kontoprofil, IUser-Attribut, uid-Fallback). Sofort erkennbar, wenn ein neu angelegter Benutzer versehentlich die E-Mail-Adresse eines anderen bekommen hat. Mit--jsonmaschinenlesbar. Exit-Codes 0/1/2 für Pipelines.
Sicherheit
- Frühwarnsystem gegen falsche Postfach-Zuordnung. Wenn eine Provisionierungs-Software (z. B. Souvera Central) einem neu angelegten Benutzer versehentlich die E-Mail-Adresse eines anderen Benutzers in
settings/emaileinträgt, würde Souvera Mail dieses fremde Postfach öffnen. Ab dieser Version schreibt Souvera Mail eine Warnung ins Nextcloud-Log, sobald uid und aufgelöste E-Mail-Adresse nicht zusammenpassen (z. B. uid=joerg, aber E-Mail=hello@gratify.it). Auslesen mitgrep 'Souvera Mail: email/uid mismatch' nextcloud.log. Der Login wird bewusst nicht blockiert (falsche Alarme durch legitime Aliase wieinfo@möglich) — das Log-Signal reicht zur schnellen Diagnose.
v0.14.1 – 2026-02-18
Behoben
- Ordner mit Umlauten (z. B. 1_Gründung) werden wieder korrekt angezeigt. Vorher erschienen sie in der Seitenleiste als kryptische Zeichenfolge (
1_Gr&APw-ndung). Ursache war eine Fehlinterpretation der UTF-8-Fähigkeit des Mailservers — die Namen werden nun grundsätzlich über den universellen IMAP-Standard-Weg übertragen und darstellungs- wie such-fähig gemacht. - „Nachrichtenliste ist nicht verfügbar“ beim Öffnen solcher Ordner behoben. Der Klick auf Ordner mit Umlauten zeigt jetzt wieder die enthaltenen Nachrichten. War die Folgewirkung des selben Encoding-Bugs.
- Suche und Filter finden wieder Treffer. Zuvor lieferte die Suche auch bei eindeutig vorhandenen Nachrichten „Keine Treffer“ — die Suchanfrage wurde dem Server im falschen Zeichenkodierungsmodus geschickt. Suchbegriffe mit Umlauten werden jetzt mit expliziter UTF-8-Angabe an den Server übermittelt.
- Widerrufen von App-Passwörtern schlägt nicht mehr fehl mit generischer Meldung „Revocation failed“. Ursache war eine Ereignis-Rekursion — unser eigener Zuhörer für Nextcloud-Token-Widerrufe hat gleichzeitig auf der Stalwart-Seite gelöscht, wodurch der zweite Löschversuch aus dem selben Ablauf mit „Eintrag nicht mehr vorhanden“ scheiterte. Mit Re-Entrancy-Schutz behoben; das Frontend zeigt zusätzlich nun die echte Server-Fehlermeldung statt eines generischen Fallbacks.
v0.14.0 – 2026-02-18
Neu
- Gemeinsames App-Passwort für Mail und Nextcloud/DAV. Ein einziges App-Passwort funktioniert ab sofort sowohl für IMAP/SMTP/Sieve (Thunderbird, K-9 Mail, Apple Mail, Outlook) als auch für Kalender, Kontakte und WebDAV-Dateizugriff (DAVx⁵, Apple Kalender, Nextcloud-Client). Erstellung wie gewohnt in Souvera Mail unter Sicherheit & Geräte — das eine, einmalig angezeigte Passwort ist überall gültig.
- Markierung „nur Mail (legacy)“ in der App-Passwort-Liste für Passwörter, die vor v0.14.0 erstellt wurden. Diese funktionieren weiterhin für Mail, aber nicht für Kalender/Kontakte/WebDAV — einfach widerrufen und neu erstellen, dann greift das kombinierte Verhalten.
Geändert
- Das Standard-„App-Passwort erstellen“-Formular unter Nextcloud → Einstellungen → Sicherheit ist für Mitglieder der Gruppe
souvera-usersausgeblendet. Ein Hinweisbanner leitet direkt zur kombinierten Erstellung in Souvera Mail weiter, damit niemand versehentlich ein reines Nextcloud-Passwort erzeugt, das später beim Mail-Empfang scheitert. - Widerrufen wirkt beidseitig. Wird ein kombiniertes App-Passwort in Souvera Mail widerrufen, verschwindet gleichzeitig der Nextcloud-Auth-Token. Umgekehrt: wird ein Token in Nextcloud unter „Geräte & Sitzungen“ widerrufen, wird automatisch auch die Mail-Seite gesperrt — kompromittierte Geräte sind wirklich raus.
Sicherheit
- Kombinierte App-Passwörter werden über die offizielle Nextcloud-Token-API (
IProvider::generateToken) angelegt — keine direkten SQL-Einträge inoc_authtoken. Damit greifen alle Nextcloud-Sicherheits- und Rotationsmechanismen (Verschlüsselung, Widerruf via Passwort-Reset, Wipe-Marker) automatisch mit.
v0.13.29 – 2026-02-17
Erststand des Changelogs — fasst den bisherigen Entwicklungsstand zusammen. Künftige Änderungen werden als einzelne Versionen geführt.
Neu
- Vollständige Umbenennung von X2Mail/SnappyMail auf Souvera Mail — einheitliches Branding, App-ID
souvera_mail. - Anmeldung per Single Sign-On über Nextcloud: keine getrennte Mail-Anmeldung mehr, ein Klick auf das Mail-Symbol genügt.
- Persönliche App-Passwörter für IMAP-, POP3- und SMTP-Programme (Thunderbird, K-9 Mail, Apple Mail, Outlook u. a.) — erstellbar direkt in Souvera Mail unter Einstellungen → Sicherheit & Geräte.
- Ansicht Verbundene Geräte: alle aktiven Nextcloud-Sessions und Client-Apps auf einen Blick, mit „Alle anderen abmelden“-Schaltfläche.
- Anzeige des Speicherverbrauchs als Pille rechts oben im Postfach — Farbcode grün/gelb/rot je nach Auslastung.
- Automatische Identitäten: Absender-Anzeigename und -Adresse werden beim ersten Login aus dem Nextcloud-Profil übernommen.
- Automatische Synchronisation geteilter Postfächer als zusätzliche Absender-Identitäten (aktualisiert alle 15 Minuten).
- Dashboard-Widget „Ungelesene Mails“ — zeigt die aktuellsten Ungelesenen direkt auf der Nextcloud-Startseite; Modus wählbar zwischen „nur ungelesen“ und „gesamter Posteingang“.
- Erweitertes F1-Hilfe-Modal im Postfach: neue Tabs „Mail-Client“, „Kalender & Kontakte“ und „Shield & Apps“ mit IMAP-/SMTP-/POP3-/CalDAV-Konfiguration und Kopier-Buttons.
- Kalender- und Kontakte-Sync über CalDAV/CardDAV in externen Programmen (DAVx⁵ auf Android, Apple Kalender/Kontakte, Thunderbird).
- Anbindung an Souvera Shield (Spam-Quarantäne) direkt aus dem Hilfe-Modal.
- Serverseitige Filter (Sieve) per Vorlage konfigurierbar — Autoresponder, Weiterleitungen, Ordner-Sortierung.
Geändert
- Sichtbarkeit der App ist strikt an die Gruppe
souvera-usersgebunden. Nutzer außerhalb der Gruppe sehen das Mail-Symbol nicht. - Sidebar-Beschriftung von „Souvera Mail“ auf „Mail“ verkürzt, damit sie im Nextcloud-Menü nicht umbricht.
- Einstellungen sind vom separaten Nextcloud-Personal-Bereich in einen eigenen Tab „Sicherheit & Geräte“ innerhalb von Souvera Mail umgezogen.
- Neues, dunkelmodus-taugliches App-Icon.
Behoben
- Sortierung nach Datum funktioniert wieder zuverlässig — auch bei Postfächern ohne serverseitige Sortier-Unterstützung.
- Externe Programme (Thunderbird, K-9) melden nach dem Erstellen eines App-Passworts nicht mehr fälschlich „Authentifizierung fehlgeschlagen“ — die E-Mail-Adresse funktioniert nun direkt als Benutzername.
- Verbindung zu IMAP/SMTP/Sieve wird nach 15 Minuten Inaktivität automatisch mit einem frischen Anmelde-Token erneuert.
- Diverse Darstellungsfehler im Dark Mode (Kontraste, Rahmenfarben, Kopier-Buttons).
- Filter-Ansicht im Postfach-Einstellungsdialog zeigt keinen generischen „Error 1“ mehr, wenn ManageSieve aktiv ist.
- Absturz beim Öffnen der Einstellungen auf frisch installierten Nextcloud-Instanzen behoben.
Sicherheit
- App-Passwörter erhalten nur noch die minimal erforderlichen Rechte (least privilege). Sie können nicht als vollwertige Kontozugänge missbraucht werden.
- Anmelde-Token werden nicht mehr in Grenzsituationen zwischengespeichert, in denen sie kurz vor dem Ablauf stehen.