package imapimport import "context" // RemoteMessage ist eine über IMAP abgerufene Nachricht (nur UID/Flags — // Inhaltsabruf ist Sache späterer Kacheln, siehe "Nicht Bestandteil // dieser Kachel": IMP-02 Anhangsverarbeitung u. a.). type RemoteMessage struct { UID uint32 Flags []string } // IMAPClient abstrahiert den Protokollzugriff auf ein entferntes // Postfach — schmale Schnittstelle, damit die Delta-Sync-Logik // (scheduler.go) ohne echte Netzwerkverbindung testbar ist (gleiche // Konvention wie KEKProvider/Authenticator in anderen Mail-Paketen). // Eine reale, wire-level-IMAP4rev1-Implementierung liegt in client_real.go. type IMAPClient interface { // Sync liefert die aktuelle UIDVALIDITY des Postfachs sowie ALLE // darin vorhandenen Nachrichten (UID + Flags). Der Aufrufer // (Scheduler) entscheidet anhand des persistierten Zustands, welche // davon neu sind. Sync(ctx context.Context, mailbox string) (uidvalidity uint64, messages []RemoteMessage, err error) }