Funktionsweise
Der Worker verbindet sich alle 2 Minuten per IMAP mit dem IONOS-Postfach und prüft zwei Ordner auf neue Nachrichten:| IONOS-Ordnername | Interne Richtung |
|---|---|
INBOX | inbound |
Gesendete Objekte | outbound |
Sync-Ablauf pro Ordner
- Sync-State laden aus
email_sync_state(letzte bekannte UID) - UID-Validity prüfen — wenn geändert, ist ein vollständiger Resync nötig
- Neue Mails abrufen (nur UIDs größer als
last_uid) - Archivierungs-Check — UIDs die im Postfach fehlen werden als
is_archivedmarkiert - Pro Mail:
- MIME-Parsing (Header, Body, Anhänge)
- Duplikat-Check über
message_id - Thread zuordnen oder erstellen
- Kunden-Matching über E-Mail-Adresse
- In
emails-Tabelle speichern - Anhänge in Supabase Storage hochladen
- Sync-State aktualisieren (neue
last_uid)
Konfiguration
Alle Werte werden über die.env gesteuert:
Sync-Intervall ändern
Insrc/sync/worker.js, Zeile:
pm2 restart imap-sync
Fehlerbehandlung
- Einzelne Mails die nicht geparst werden können, werden übersprungen — der Rest läuft weiter
- Bei IMAP-Verbindungsfehlern wartet der Worker bis zum nächsten Intervall
- Fehler werden im
email_sync_statealserror_messagegespeichert - Alle Fehler werden in PM2-Logs geschrieben