Zum Inhalt springen
Doku

Anleitung

Hängen Sie Dateien an API-E-Mails als Base64-Inhalt oder über eine URL an, betten Sie Bilder mit Content-ID ein und bleiben Sie innerhalb der erlaubten Dateitypen und Größenlimits.

Aktualisiert am 1. Okt. 2026

Diese Seite zeigt, wie Sie Dateien an E-Mails anhängen, die Sie mit POST /emails senden, entweder als Base64-kodierten Inhalt oder indem Emailit sie von einer URL herunterlädt. Sie behandelt außerdem eingebettete Bilder, erlaubte Dateitypen und Größenlimits.

Felder für Anhänge

Übergeben Sie ein Array attachments. Jedes Element ist ein Objekt mit diesen Feldern:

filenamestringerforderlich
Dateiname, den der Empfänger sieht. Er muss auf eine erlaubte Dateiendung enden.
contentstring
Die Datei, Base64-kodiert. Verwenden Sie entweder content oder url, nicht beides.
urlstring
Eine http://- oder https://-URL, von der Emailit die Datei herunterlädt. Verwenden Sie entweder content oder url, nicht beides.
content_typestring
Der MIME-Typ, etwa application/pdf. Erforderlich mit content. Mit url ist der Standardwert der Content-Type, den der Server zurückgibt.
content_idstring
Eine Content-ID. Ist sie gesetzt, wird der Anhang eingebettet, sodass Ihr HTML ihn mit cid: anzeigen kann.
encodingstringStandardwert: base64
Wie content kodiert ist. Lassen Sie den Wert auf base64, sofern Sie keinen Grund haben, ihn zu ändern.

Datei als Base64 anhängen

Lesen Sie die Datei, kodieren Sie sie als Base64 und senden Sie sie mit ihrem MIME-Typ.

Terminal
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"from\": \"Acme Billing <billing@acme.com>\",
    \"to\": \"ada@example.com\",
    \"subject\": \"Invoice INV-1042\",
    \"text\": \"Your invoice is attached.\",
    \"attachments\": [{
      \"filename\": \"INV-1042.pdf\",
      \"content\": \"$(base64 < INV-1042.pdf | tr -d '\n')\",
      \"content_type\": \"application/pdf\"
    }]
  }"

Datei über eine URL anhängen

Statt die Datei selbst zu kodieren, geben Sie Emailit eine url. Emailit lädt die Datei herunter, während es die Nachricht erstellt. Die Anfrage dauert also so lange wie der Download.

JSON
{
  "from": "Acme Billing <billing@acme.com>",
  "to": "ada@example.com",
  "subject": "Invoice INV-1042",
  "text": "Your invoice is attached.",
  "attachments": [
    {
      "filename": "INV-1042.pdf",
      "url": "https://files.acme.com/invoices/INV-1042.pdf"
    }
  ]
}

Die URL muss diese Regeln erfüllen, sonst schlägt die Anfrage mit 422 und Attachment error fehl:

  • Sie verwendet http oder https und zeigt auf einen öffentlichen Host. Private und interne Adressen werden abgelehnt.
  • Sie liefert die Datei direkt mit einem 2xx-Status. Weiterleitungen werden nicht verfolgt.
  • Der Download ist innerhalb von 30 Sekunden abgeschlossen.
  • Die Datei ist nicht größer als 25 MB, laut ihrem Header Content-Length.

Emailit erstellt für jeden Empfänger eine eigene Kopie der Nachricht und lädt URL-Anhänge für jede Kopie herunter. Stellen Sie sicher, dass signierte oder ablaufende URLs während der gesamten Anfrage gültig bleiben und dass der Datei-Host einen Download pro Empfänger verkraftet.

Bilder einbetten

Um ein Bild im HTML-Inhalt statt als separaten Anhang anzuzeigen, geben Sie ihm eine content_id und verweisen Sie in einem img-Tag mit cid: auf diese ID.

JSON
{
  "from": "Acme <hello@acme.com>",
  "to": "ada@example.com",
  "subject": "Your weekly report",
  "html": "<p><img src=\"cid:chart-week-40\" alt=\"Weekly signups\" width=\"600\"></p>",
  "attachments": [
    {
      "filename": "chart.png",
      "content": "iVBORw0KGgoAAAANSUhEUgAA...",
      "content_type": "image/png",
      "content_id": "chart-week-40"
    }
  ]
}

Die content_id im Anhang und der Wert nach cid: müssen genau übereinstimmen. Eingebettete Bilder machen die Nachricht für jeden Empfänger größer. Für Logos und andere wiederverwendete Bilder ist eine gehostete Bild-URL im HTML daher meist die bessere Wahl.

Größenlimits

Limit Wert
Gesamte Nachricht, nach der Kodierung 40 MB. Größere Nachrichten schlagen mit 413 Message too large fehl.
Ein von url heruntergeladener Anhang 25 MB
Download-Timeout für url 30 Sekunden
JSON-Anfrage-Body 50 MB

Base64-Kodierung macht Dateien etwa ein Drittel größer, und das Limit von 40 MB gilt für die kodierte Nachricht. In der Praxis sollte die Gesamtgröße Ihrer Dateien unter etwa 29 MB bleiben. Laden Sie alles, was größer ist, in Ihren eigenen Speicher hoch und senden Sie einen Link.

Erlaubte Dateitypen

filename muss auf eine dieser Endungen enden. Jede andere Endung oder ein Name ohne Endung schlägt bei der Validierung mit 400 fehl.

Kategorie Endungen
Text .txt, .csv, .log, .css, .ics, .xml
Bilder .jpg, .jpe, .jpeg, .gif, .png, .bmp, .psd, .tif, .tiff, .svg, .indd, .ai, .eps
Dokumente .doc, .docx, .rtf, .odt, .ott, .pdf, .pub, .pages, .mobi, .epub
Audio .mp3, .m4a, .m4v, .wma, .ogg, .flac, .wav, .aif, .aifc, .aiff
Video .mp4, .mov, .avi, .mkv, .mpeg, .mpg, .wmv
Tabellen .xls, .xlsx, .ods, .numbers
Präsentationen .odp, .ppt, .pptx, .pps, .key
Archive und Kontakte .zip, .vcf
E-Mail .eml
Signaturen und Verschlüsselung .p7c, .p7m, .p7s, .pgp, .asc, .sig

Ausführbare Dateien und Skripte stehen nicht auf der Liste und lassen sich nicht anhängen.

Anhänge einer gesendeten E-Mail lesen

Anhänge auflisten (GET /emails/{id}/attachments) gibt jeden Anhang mit filename, content_type, size, content_id, content_disposition (attachment oder inline) und dem Base64-kodierten content zurück. Dafür ist ein Schlüssel mit Full Access nötig. Anhänge werden zusammen mit den Nachrichteninhalten gelöscht, wenn Ihre Aufbewahrungsdauer endet.

Fehlerbehebung

Fehler Was Sie prüfen sollten
Attachment at index 0 missing content_type (required when using 'content') Fügen Sie jedem Base64-Anhang content_type hinzu.
Attachment 'report.exe' has unsupported file type '.exe' Verwenden Sie eine erlaubte Endung oder packen Sie die Datei in eine .zip.
Attachment at index 0 cannot have both 'content' and 'url' Senden Sie nur eines der beiden Felder.
Attachment error mit Failed to fetch attachment Die URL hat einen Fehlerstatus geliefert, weitergeleitet, ein Timeout erreicht oder ist nicht öffentlich. Öffnen Sie sie zur Prüfung von einem Server außerhalb Ihres Netzwerks.
Attachment error mit Attachment too large (max 25MB) Hosten Sie die Datei und senden Sie stattdessen einen Link.
413 Message too large Verringern Sie die Gesamtgröße der Anhänge.

War diese Seite hilfreich?

Danke für Ihr Feedback.

Danke, wir lesen jede Nachricht.