Mail-Graveyard/Codex-Prompt-Durchstich.md
2026-07-05 17:58:25 +02:00

1.8 KiB

Codex-Prompt — Durchstich

Kopiervorlage für Codex. Erst Codex-Briefing.md + Projektbeschreibung.md lesen, dann NUR den Durchstich bauen (nicht mehr).


Baue den Durchstich des Email-Forwarder (Go-Single-Binary, Hausstil steht als Stub-Gerüst). Ziel: ein Konto, nur den Posteingang, sauber und wiederholbar umziehen. Lies zuerst Codex-Briefing.md und Projektbeschreibung.md; die 6 harten Regeln sind bindend.

Umfang des Durchstichs:

  1. 02-database.go: SQLite-Schema anlegen (accounts, folder_map, copied, jobs), plus GetAccount, ListAccounts, SaveAccount, AlreadyCopied, MarkCopied.
  2. 04-imap-source.go: OpenIMAPSource für IMAP mit allen drei Security-Modi (tls/starttls/none) und SrcInsecure. Folders() (mit SPECIAL-USE + Delim) und Fetch("INBOX") (UID FETCH BODY[] FLAGS INTERNALDATE, streamend).
  3. 05-imap-target.go: OpenIMAPTarget (gleiche Security-Logik), Folders(), Delim(), EnsureFolder, Append mit Flags + INTERNALDATE.
  4. 06-mbox.go: MboxWriter + Append (korrektes "From "-Trennen, >From-Quoting).
  5. 07-migrate.go: migrateAccount für nur "INBOX": pro Mail Message-ID gegen copied prüfen; sonst Append (IMAP) und mbox schreiben, dann MarkCopied. RunMigration(name, false) ruft es für ein Konto auf.
  6. main.go --run <konto> muss durchlaufen.

Bewusst NOCH NICHT: Web-CRUD, Viewer, Weiterleiten, alle Ordner rekursiv, Rollen-Mapping (11-folders.go), --watch, POP3. Nur INBOX, nur CLI.

Abnahme: Konto per SQL/Seed eintragen (Klartext-IMAP-Quelle testen!), ./emailforwarder --run test zweimal laufen lassen → beim zweiten Mal werden 0 Mails kopiert (Idempotenz), Ziel-INBOX und lokale mbox enthalten dieselben Mails mit erhaltenen Flags und Original-Datum.