Mail-Graveyard/Projektbeschreibung.md
2026-07-05 22:30:32 +02:00

2.5 KiB
Raw Permalink Blame History

Mail-Graveyard

Kleines Go-Single-Binary für Postfach-Umzüge zwischen Hosts. Holt Mails aus Quell-Konten (IMAP, POP3 nur als Notnagel) und spielt sie 1:1 in Ziel-Konten auf dem neuen Host ein Ordnerstruktur, Flags und Original-Datum bleiben erhalten. Gleichzeitig wird jede Mail lokal als mbox (Cold Backup) weggeschrieben. Bedienung komplett im Browser im Outlook-2013-Look; die lokalen mbox-Postfächer lassen sich dort auch betrachten und bei Bedarf einzeln weiterleiten.

Wozu

Reiner Host-Umzug. Beispiel dr-gold:

Quelle (Intersolute, IMAP) Ziel (All-Inkl, IMAP) Fall
hans-peter@dr-gold.de archiv-hans-peter@dr-gold.com Ex-Mitarbeiter
jane-doe@dr-gold.de temp-jane-doe@dr-gold.com aktiv, Übergang

Zieladresse ist frei gemappt (eine Zeile pro Konto). Nach dem Umzug wird die Domain portiert; für das Tool ist das egal es arbeitet nur mit dem Mapping, das zum Umzugszeitpunkt gilt.

Die harten Regeln (nicht verhandelbar)

  1. Umzug = IMAP APPEND, niemals SMTP. Nur APPEND erhält Ordner, Flags (gelesen/beantwortet) und INTERNALDATE. SMTP würde alles als neu/ungelesen mit falschem Datum zustellen und die Ordner platt machen.
  2. SMTP nur fürs manuelle Weiterleiten einzelner Mails aus dem Viewer sauber getrennt vom Umzug (09-smtp.go).
  3. Lokales Format = mbox (eine Datei pro Ordner). Kein PST in Go nicht lean schreibbar. mbox öffnet eM Client / Thunderbird direkt.
  4. Idempotenz über Message-ID. Zweiter Lauf kopiert nur das Delta → erlaubt --watch als Cutover-Delta-Sync bis zur Portierung.
  5. Secrets bleiben lokal. config.json und die DB (mit den Postfach- Passwörtern) sind ge-.gitignore-t. Erst bei Go-Live rotieren + einlagern.
  6. Alt-Provider-tauglich. Muss mit unverschlüsseltem IMAP/POP3 (Klartext 143/110, STARTTLS, kaputte Zerts) klarkommen. Ordnernamen mit Sonderzeichen (modified-UTF-7) sauber übertragen. Standardordner (Posteingang/Gesendet/ Entwürfe/Spam/Papierkorb/Archiv/Postausgang) werden per Rolle zusammengeführt, nicht wegen Namensunterschied gedoppelt. Details: backend/11-folders.go.

Bedienung

  • Web (Default): ./mail-graveyard → Browser auf 127.0.0.1:8087.
  • CLI (Cronjob/Cutover): ./mail-graveyard --run all (einmalig) oder ./mail-graveyard --run dr-gold --watch (Delta-Schleife).