Paperless-ngx: E-Mails sauber als PDF archivieren – Gotenberg-Update und sinnvolle Einstellungen

Gotenberg 8 behebt den 400 Bad Request beim EML-Import in Paperless-ngx. Mit zwei weiteren Einstellungen werden leere Seiten vermieden und externe Bilder korrekt gerendert.

19. Juli 2026

KI-generiertPaperless-ngx: E-Mails sauber als PDF archivieren – Gotenberg-Update und sinnvolle Einstellungen
Vorher/Nachher: Leerer Header vs. vollständige Rechnung mit Apple- und YouTube-Logo

Warum ein kleines Versions-Update in Paperless-ngx den Unterschied zwischen einer nutzlosen und einer brauchbaren E-Mail-Archivierung ausmacht.

Wer E-Mails in Paperless-ngx importiert, kennt vielleicht diese Fehlermeldung:

Error while converting email to PDF: Client error '400 Bad Request'
for url 'http://gotenberg:3000/forms/chromium/convert/html'

Plötzlich landet die E-Mail nicht im Archiv, sondern im Papierkorb – oder sie wird zwar archiviert, sieht aber so schlecht aus, dass man lieber das Original im Mail-Client behält. Genau das ist mir mit Apple-Rechnungen passiert, die ich aus eM Client als .eml exportieren und in Paperless-ngx ablegen wollte.

In diesem Beitrag zeige ich, woran es liegt, welche zwei Konfigurationsoptionen du hast und wie du das Problem Schritt für Schritt in deiner Docker-Umgebung löst.


Ausgangslage: Paperless braucht Gotenberg für E-Mails

Paperless-ngx kann E-Mails (.eml) nicht alleine in PDFs umwandeln. Dafür braucht es zwei optionale Dienste:

Viele Paperless-Installationen nutzen dabei die offizielle Docker-Compose-Vorlage. Dort ist Gotenberg lange Zeit mit dem Image gotenberg/gotenberg:7.10 konfiguriert worden. Das funktionierte – bis Paperless-ngx bei der HTML-zu-PDF-Konvertierung Margin-Werte im Format 0.1in an Gotenberg sendet. Gotenberg 7 versteht diese Einheit nicht und antwortet mit 400 Bad Request.

Die Folge

Der EML-Import schlägt fehl. Die Datei wird nicht archiviert, oder – je nach Einstellung – wird sie als Fehler markiert.


Lösung: Gotenberg auf Version 8 aktualisieren

Die offensichtliche Lösung ist ein Upgrade auf Gotenberg 8. Ab Version 8 akzeptiert Gotenberg die Margin-Werte mit Einheit und die Konvertierung läuft durch.

Aber Achtung: Mit dem Versionswechsel ändern sich zwei Dinge, die man bewusst entscheiden sollte:

1. Bilder werden nicht geladen

Die Standardkonfiguration in Paperless setzt:

command:
  - "gotenberg"
  - "--chromium-disable-javascript=true"
  - "--chromium-allow-list=file:///tmp/.*"

Die Option --chromium-allow-list=file:///tmp/.* erlaubt Chromium nur, lokale Dateien aus /tmp/ zu laden. Externe Bilder – wie das Apple-Logo oder ein YouTube-Icon – werden blockiert. Das ist aus Sicht des Datenschutzes sinnvoll, denn so werden keine Tracking-Pixel oder andere externe Ressourcen beim Konvertieren abgerufen.

Für Rechnungen ist das aber oft unpraktisch: das PDF sieht dann so aus:

Vorher/Nachher-Vergleich: Leerer Header vs. vollständige Rechnung mit Logos

Links: Vor dem Update – nur der E-Mail-Header ist sichtbar, der Rechnungskörper bleibt leer. Rechts: Nach dem Update – die Rechnung wird vollständig mit Apple- und YouTube-Logo gerendert.

2. Text- und HTML-Version werden beide gerendert

Paperless nutzt standardmäßig das Layout „Text, dann HTML“. Das bedeutet: wenn die E-Mail sowohl eine Text- als auch eine HTML-Version enthält, kann die Text-Version als fast leere erste Seite erscheinen, bevor das HTML gerendert wird. Auch das verschlechtert das Ergebnis.


Zwei Optionen für bessere PDFs

Je nachdem, was dir wichtiger ist, kannst du unterschiedlich konfigurieren:

Option Leerseite Bilder/Logos Tracking-Pixel
A: HTML-only + externe Bilder erlauben behoben geladen möglich
B: HTML-only + externe Bilder blockieren behoben blockiert verhindert

Option A empfiehlt sich, wenn du Rechnungen originalgetreu archivieren willst und dir Tracking-Pixel in diesem Kontext egal sind.

Option B ist besser, wenn du externe Abrufe beim Konvertieren komplett vermeiden willst – zum Beispiel bei sensiblen Inhalten oder wenn du nicht möchtest, dass Absender erfahren, wann du eine E-Mail archiviert hast.


Schritt-für-Schritt-Anleitung (Docker / Docker Compose)

Voraussetzungen

Schritt 1: Backup der Konfigurationsdateien

cp docker-compose.yml docker-compose.yml.bak
cp docker-compose.env docker-compose.env.bak

Schritt 2: Gotenberg-Version ändern

Öffne die docker-compose.yml und ändere das Gotenberg-Image:

  gotenberg:
    image: docker.io/gotenberg/gotenberg:8
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

Speichern.

Schritt 3: Container neu erstellen

docker compose pull gotenberg
docker compose up -d gotenberg

Damit ist der ursprüngliche 400 Bad Request behoben. Teste den Import einer .eml-Datei.

Schritt 4 (optional): Leerseite entfernen

Wenn die erste Seite leer oder nur spärlich befüllt ist, konfiguriere Paperless so, dass nur die HTML-Version gerendert wird.

Füge in deiner Umgebungsdatei (docker-compose.env) hinzu:

PAPERLESS_EMAIL_PARSE_DEFAULT_LAYOUT=3

Erlaubte Werte:

Starte danach den Webserver-Container neu:

docker compose up -d webserver

Schritt 5 (optional): Bilder laden lassen

Wenn du möchtest, dass externe Bilder und Logos im PDF erscheinen, entferne in der docker-compose.yml die Zeile:

      - "--chromium-allow-list=file:///tmp/.*"

Die Gotenberg-Konfiguration sieht dann so aus:

  gotenberg:
    image: docker.io/gotenberg/gotenberg:8
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"

Starte Gotenberg neu:

docker compose up -d gotenberg

Hinweis: Wenn du diese Zeile entfernst, kann Chromium während der Konvertierung externe URLs laden. JavaScript bleibt durch --chromium-disable-javascript=true weiterhin deaktiviert.


Fazit

Ein scheinbar kleines Versions-Problem – gotenberg:7.10 gegen gotenberg:8 – macht den Unterschied zwischen einem fehlgeschlagenen E-Mail-Import und einer brauchbaren Archivierung. Mit zwei zusätzlichen Einstellungen lässt sich das Ergebnis deutlich verbessern:

Wer viele Rechnungen oder Belege per E-Mail bekommt, hat damit eine solide Basis, um diese direkt in Paperless-ngx zu archivieren, ohne vorher manuell PDFs erzeugen zu müssen.

X9bI0dfkpZUv