Skip to main content

Client-Resync — was es kann und was nicht

Der Menü-Eintrag „🔄 Postfach neu synchronisieren" im Snappymail-Top-Right-Dropdown ist bewusst nur ein Client-Resync, nicht ein serverseitiger FTS-Rebuild. Diese Seite beschreibt was er tut, was er nicht tut, und warum das die richtige Entscheidung ist.

Was der Klick tut

  1. Backend-Endpoint POST /apps/souvera_mail/stalwart/resync — nur Audit-Log. Der Endpoint schreibt eine Souvera Mail: user-initiated mailbox resync uid=…-Zeile in nextcloud.log. Kein Stalwart-Aufruf.
  2. Frontend löscht alle localStorage-Keys mit den Präfixen rl., snappymail., rainloop., smail..
  3. Full page reload — Snappymail bootstrapt neu, macht einen frischen GET /jmap/session gegen Stalwart, baut Ordner-Baum und Message-Liste komplett neu im Speicher auf.

Was der Klick nicht tut

Er triggert keinen serverseitigen FTS-Reindex. Stalwart 0.16 hat dafür kein API-Endpoint — die FTS-Indizierung läuft automatisch im Hintergrund als Task-Warteschlange innerhalb Stalwarts selbst.

Falls du wirklich einen FTS-Rebuild brauchst (z. B. nach Datenmigration oder wenn der FTS-Store korrumpiert war), musst du direkt an der Stalwart-Instanz ansetzen:

# Nur im Server-Shell — nicht via Souvera Mail
stalwart-cli --url https://stalwart.souvera.eu --credentials admin:$SECRET \
   database maintenance

Details in der offiziellen Stalwart-Doku unter stalw.art/docsServer → Storage → Maintenance. Der Server-side Rebuild ist absichtlich nicht ins Souvera-Mail-UI eingebaut, weil er (a) Instanz-weit läuft, (b) DB-Blocking-Charakter hat und (c) Admin-Credentials braucht.

Wann hilft der Client-Resync tatsächlich?

  • Stale IMAP-Statuscodes — Snappymail cached UIDVALIDITY-Werte. Nach Server-side-Umzügen von Postfächern (z. B. Migration) sind die veraltet.
  • Fehlende Ordner nach Quota-Erhöhung — der Client hatte den Ordner mangels Platz aus dem lokalen State geworfen.
  • Ungelesen-Counter-Drift — kann passieren wenn ein anderer IMAP-Client (Handy, Thunderbird) parallel Flags ändert und Snappymails Sync einen Roundtrip verpasst hat.
  • Verhakte JS-Zustände — Race-Conditions zwischen Ordner-Wechsel und Nachrichten-Load-Callback.

Wo landen die Log-Zeilen?

grep 'user-initiated mailbox resync' /var/www/nextcloud/data/nextcloud.log

Jeder Klick auf das Menü erzeugt einen INFO-Log-Eintrag. Bei häufigen Klicks eines Users ist das ein guter erster Hinweis, dass mit dessen Postfach etwas nicht stimmt.

Verwandte Seiten