# Plan: n8n Workflow — UPS-Rechnungen abholen und weiterleiten ## Ziel Täglicher n8n-Workflow, der UPS-Rechnungsmails aus dem Postfach `vinos-monitoring@mailbox.org` per IMAP abruft, das ZIP-Attachment entpackt und die enthaltenen Rechnungen per SMTP an `rechnung@vinos.de` weiterleitet. --- ## Parameter | Parameter | Wert | |-----------|------| | Postfach | `vinos-monitoring@mailbox.org` | | Empfänger | `rechnung@vinos.de` | | Absender-Filter | `@ups.com` | | Intervall | Täglich (07:00) | | Nach Verarbeitung | Mail in Ordner "Verarbeitet" verschieben | | IMAP-Server | `imap.mailbox.org:993` (SSL/TLS) | | SMTP-Server | `smtp.mailbox.org:465` (SSL/TLS) | --- ## Voraussetzungen (manuell, vor Workflow-Erstellung) ### 1. n8n Credentials anlegen (Web-UI) In n8n unter **Settings → Credentials → Add Credential**: **IMAP-Credential:** - Typ: **IMAP** - Host: `imap.mailbox.org` - Port: `993` - User: `vinos-monitoring@mailbox.org` - Passwort: Mailbox.org-Passwort - SSL/TLS: Ja **SMTP-Credential:** - Typ: **SMTP** - Host: `smtp.mailbox.org` - Port: `465` - User: `vinos-monitoring@mailbox.org` - Passwort: Mailbox.org-Passwort - SSL/TLS: Ja ### 2. Ordner "Verarbeitet" im Postfach anlegen Per Webmail auf mailbox.org oder per IMAP-Client einen Ordner `Verarbeitet` erstellen. --- ## Workflow-Aufbau (6 Nodes) ``` Schedule Trigger → Email Read (IMAP) → IF (hat ZIP-Attachment?) → Compression (Decompress) → Send Email (SMTP) → IMAP Move to Folder ``` ### Node 1: Schedule Trigger - **Typ:** `n8n-nodes-base.scheduleTrigger` - **Konfiguration:** Täglich um 07:00 Uhr (`0 7 * * *`) ### Node 2: Email Read (IMAP) - **Typ:** `n8n-nodes-base.emailReadImap` - **Postfach:** `vinos-monitoring@mailbox.org` - **Ordner:** INBOX - **Filter:** Ungelesene Mails - **Attachments:** Herunterladen aktiviert - **Credential:** IMAP (mailbox.org) ### Node 3: IF — Hat ZIP-Attachment? - **Typ:** `n8n-nodes-base.if` - **Bedingung:** Binary-Daten vorhanden UND Dateiname endet auf `.zip` - **Zweck:** Nur Mails mit ZIP-Anhang verarbeiten ### Node 4: Compression — ZIP entpacken - **Typ:** `n8n-nodes-base.compression` - **Operation:** Decompress - **Input:** Binary-Feld des ZIP-Attachments - **Output:** Entpackte Dateien als Binary-Daten ### Node 5: Send Email (SMTP) - **Typ:** `n8n-nodes-base.sendEmail` (oder `n8n-nodes-base.emailSend`) - **Von:** `vinos-monitoring@mailbox.org` - **An:** `rechnung@vinos.de` - **Betreff:** `UPS-Rechnung` + Datum aus Original-Mail - **Body:** Kurzer Hinweistext (z.B. "Anbei die entpackte UPS-Rechnung") - **Attachments:** Entpackte Dateien aus Node 4 - **Credential:** SMTP (mailbox.org) ### Node 6: IMAP — Mail verschieben - **Typ:** `n8n-nodes-base.emailReadImap` (oder HTTP-Request an IMAP) - **Operation:** Mail als gelesen markieren + in Ordner "Verarbeitet" verschieben - **Hinweis:** n8n hat keine native "IMAP Move"-Operation — ggf. per Code-Node (IMAP-Befehl MOVE) oder als "gelesen markieren" vereinfachen --- ## Bekannte Einschränkung: IMAP Move n8n's IMAP-Node kann Mails lesen, aber das Verschieben in einen anderen Ordner ist nicht nativ unterstützt. Optionen: 1. **Nur als gelesen markieren** — einfachste Lösung, Node 2 liest dann nur ungelesene 2. **Code-Node mit IMAP-Bibliothek** — per JavaScript direkt IMAP MOVE ausführen 3. **HTTP-Request an Mailbox.org API** — falls vorhanden **Empfehlung:** Option 1 (als gelesen markieren) für den Start. "Nur ungelesene lesen" verhindert Doppelverarbeitung zuverlässig. --- ## Umsetzung ### Schritt 1: Workflow-Grundgerüst via API erstellen - POST an `https://flow.wvits.de/api/v1/workflows` - 5-6 Nodes (je nach IMAP-Move-Lösung) - Credentials als Platzhalter (in UI verknüpfen) ### Schritt 2: Credentials in n8n-UI verknüpfen - IMAP-Credential den Email-Read-Nodes zuweisen - SMTP-Credential dem Send-Email-Node zuweisen ### Schritt 3: Testlauf - Test-Mail mit ZIP-Anhang an `vinos-monitoring@mailbox.org` senden - Workflow manuell in der UI ausführen - Prüfen: ZIP entpackt? Mail bei `rechnung@vinos.de` angekommen? ### Schritt 4: Workflow aktivieren - `POST /api/v1/workflows/{id}/activate` --- ## Verifikation 1. **API-Test:** `GET /api/v1/workflows/{id}` — Node-Struktur prüfen 2. **Manueller Testlauf:** In n8n-UI "Execute Workflow" 3. **Prüfpunkte:** - [ ] IMAP-Verbindung zu mailbox.org funktioniert - [ ] Ungelesene Mails werden abgerufen - [ ] ZIP-Attachment wird erkannt und gefiltert - [ ] ZIP wird entpackt, Dateien korrekt - [ ] SMTP-Versand an rechnung@vinos.de funktioniert - [ ] Entpackte Dateien sind als Attachment in der Mail - [ ] Verarbeitete Mail wird als gelesen markiert 4. **Fehlerfall:** Mail ohne ZIP → IF-Node filtert korrekt --- ## Dateien | Datei | Zweck | |-------|-------| | `/home/rwiegand/Nextcloud/vinos/n8n/.env` | API-Key + Base-URL (vorhanden) | | `/home/rwiegand/Nextcloud/vinos/n8n/README.md` | Projekt-Doku (Update nach Abschluss) |