📬 Zusammenfassung
Beim automatisierten E-Mail-Versand mit n8n und Mailpit stoßen viele Nutzer auf Probleme beim Anhängen mehrerer Dateien. Ein häufiger Fehler: `options.attachments.split is not a function`. Dieser Artikel erklärt, wo der Fehler liegt, wie Sie ihn beheben und worauf Sie bei der Automatisierung von E-Mail-Workflows achten sollten – besonders wenn mehrere Anhänge ins Spiel kommen.
🔍 Hintergrund: Warum der Fehler auftritt
Der Nutzer wollte mit Mailpit (eine lokale SMTP-Testumgebung via Docker) und n8n mehrere Anhänge per E-Mail versenden. Während der Versand über WebSocket und das SMTP-Relay funktionierte, wurden die Anhänge nicht korrekt verarbeitet. Der konkrete Fehler:
> `options.attachments.split is not a function`
Dieser Fehler deutet darauf hin, dass n8n erwartet, dass das Feld `attachments` als kommaseparierter String übergeben wird – oder es falsch verarbeitet, wenn ein Array übergeben wird. In vielen Fällen liegt das Problem an einem Typenkonflikt oder unvollständiger Konfiguration im Node.
✅ Wichtige Erkenntnisse
- • Der E-Mail-Node in n8n erwartet unterschiedliche Formate je nach Konfiguration
- • Mailpit verhält sich beim Anhang-Handling anders als andere SMTP-Server
- • JSON-Parsing und Typprüfung sind entscheidend bei dynamischem Anhang-Handling
- • Nicht jeder Fehler ist selbsterklärend – Logs sind Gold wert!
🛠️ Praktische Anwendung: So lösen Sie das Problem
Schritt 1: Anhänge korrekt vorbereiten
In n8n müssen Anhänge im Format eines Arrays aus Objekten übergeben werden, z. B.:
[ { "name": "bericht.pdf", "content": $binary.data1.data, "type": "application/pdf" }, { "name": "grafik.png", "content": $binary.data2.data, "type": "image/png" } ]
Dabei ist wichtig: `$binary.*.data` verweist auf die Base64-kodierten Inhalte.
Schritt 2: SMTP-Konfiguration prüfen
Mailpit ist als Docker-Container oft unter `localhost:1025` erreichbar. Stellen Sie sicher, dass der E-Mail-Node in n8n korrekt konfiguriert ist:
- • Host: `localhost`
- • Port: `1025`
- • Authentifizierung: deaktiviert (wenn Mailpit lokal läuft)
Schritt 3: JSON korrekt übergeben
Wenn Sie versuchen, Anhänge als JSON-String zu übergeben, achten Sie darauf, dass sie korrekt geparst werden. Nutzen Sie ggf. einen Set-Node:
{ "attachments": {{$json["myAttachmentArray"]}} }
Andernfalls versucht der Node, `.split()` auf ein Objekt auszuführen – was den oben genannten Fehler verursacht.
⚙️ Technische Details im Überblick
- • n8n E-Mail Node: Erwartet ein Feld `attachments`, das ein Array von Objekten darstellt
- • Mailpit: SMTP-Testserver, akzeptiert E-Mails über Port 1025, speichert sie intern
- • WebSocket-Relay: Wird genutzt, um Nachrichten an Mailpit weiterzuleiten
- • Fehlertyp: `split is not a function` – typischer JavaScript-Typfehler, wenn `.split()` auf ein Array statt auf einen String angewendet wird
🔮 Ausblick: Automatisierter E-Mail-Versand der Zukunft
Mit steigender Nutzung von Automatisierungslösungen wie n8n werden auch die Anforderungen an Flexibilität und Fehlerresistenz steigen. Tools wie Mailpit sind großartig für lokale Tests – aber für produktive Umgebungen empfiehlt sich ein robuster SMTP-Dienst wie SendGrid oder Mailgun.
Zukünftig könnten Nodes in n8n noch intelligenter mit Dateiformaten umgehen, etwa durch automatische Typprüfung oder Format-Erkennung. Auch Drag-and-Drop-Lösungen für E-Mail-Anhänge im Workflow-Editor wären denkbar.
🚀 Ihre nächsten Schritte
Sofort umsetzen (5 Minuten): Öffnen Sie Ihren n8n-Workflow, prüfen Sie im E-Mail-Node das Feld `attachments` und stellen Sie sicher, dass Sie ein korrekt strukturiertes Array übergeben – nicht einen String oder ein Objekt.
Tool-Empfehlung: Mailpit – Ideal zum sicheren Testen von E-Mails in lokalen Umgebungen ohne Risiko, echte Mails zu versenden
Weiterführend: Lesen Sie im n8n Community-Forum den Thread zu SMTP mit Mailpit, um weitere Fehlerquellen und Lösungen von anderen Nutzern zu entdecken
---