Zum Inhalt springen

Anhänge

Warum dieser Schritt

Was ist überhaupt ein Anhang: Erkennen

Der MIME-Parser hat die Email zerlegt und dabei auch die Anhänge schon identifiziert. Jetzt übernimmt der AttachmentStep. Dieses erste Unterkapitel klärt, woher die Anhang-Daten kommen, wie sie aussehen und wann der Schritt übersprungen wird.

Aus dem MIME-Parser: Anhänge sind bereits identifiziert

Anna schickt eine Email mit zwei Anhängen: einer Rechnung als PDF und einem Foto als JPEG. Als diese Email am System ankommt, hat der MIME-Parser die beiden Anhänge bereits aus der Multipart-Struktur herausgelöst. Sie liegen im Zusammenhang aus vorherigen Schritten (einem gemeinsamen Daten-Container, der die Schritte miteinander verbindet) als Liste vor, jeder Eintrag mit Dateiname, MIME-Typ und Inhalt.

Der AttachmentStep muss die Anhänge also nicht selbst erkennen. Seine Aufgabe beginnt erst danach: speichern und weiterverarbeiten.

EmailText + 2 Anhänge
MIME-Parseraus Multipart
Zusammenhang aus vorherigen Schrittenctx[parsed][attachments]
AttachmentStepliest die Liste

Was ein Anhang konkret ist

Jeder Anhang im Zusammenhang aus vorherigen Schritten besteht aus drei Feldern:

  • filename: Der Dateiname, wie Anna ihn gewählt hat, zum Beispiel "Rechnung_R-2026-0412.pdf"
  • mime_type: Der MIME-Typ, zum Beispiel "application/pdf" oder "image/jpeg"
  • content: Der dekodierte Binärinhalt der Datei

Die Felder wurden vom MIME-Parser gesetzt. Der MIME-Typ stammt aus dem Content-Type-Header des jeweiligen Multipart-Teils, der Dateiname aus der Content-Disposition, der Inhalt wurde bei Bedarf aus Base64 dekodiert.

Ein Anhangim Kontext
filenameRechnung_R-2026-0412.pdf
mime_typeapplication/pdf
contentBinärinhalt
Quelle: MIME-Parservom vorigen Schritt

Skip-Shortcut: Keine Anhänge, kein Aufwand

Die meisten Emails kommen ohne Anhang: Terminbestätigungen, Newsletter, kurze Anfragen. Für diese Emails ist der AttachmentStep sofort fertig. Die erste Zeile der process-Methode prüft, ob die Anhang-Liste leer ist. Wenn ja, wird der Step ohne weitere Aktion verlassen.

Dieser Shortcut vermeidet Aufwand in der Pipeline. Kein unnötiger Dateisystem-Zugriff, kein OCR-Aufruf, kein DB-Insert.

AttachmentStepStart
Liste leer?attachments prüfen
Ja: sofort fertigkein weiterer Aufwand
Nein: weiter mit VerarbeitungSchleife über Anhänge

Jeder einzeln: Pro Anhang eine eigene Verarbeitung

Hat die Email Anhänge, arbeitet der Service sie einzeln ab. Eine Schleife geht durch die Liste und ruft für jeden Eintrag eine eigene Funktion auf: processSingle. Diese Trennung ist wichtig, weil jeder Anhang seinen eigenen Erfolgs- oder Fehlerzustand bekommen kann.

Fällt die Verarbeitung eines Anhangs aus (zum Beispiel, weil der OCR-Dienst bei dieser einen Datei nicht funktioniert), wird das als Ergebniseintrag für diesen einen Anhang festgehalten. Die Schleife macht mit dem nächsten Eintrag weiter. Ein problematischer Anhang beeinflusst die anderen nicht.

3 AnhängeListe
Anhang 1 (PDF)done
Anhang 2 (JPEG)done
Anhang 3 (ZIP)unsupported
Anhang (hypothetisch)failed möglich
Ergebnis-ArrayStatus pro Anhang