Mailtrap

offiziell

Integriert mit der Mailtrap Email API.

Was kann man mit Mailtrap MCP machen?

  • Transaktions-E-Mails senden — Bitte den Assistenten, eine E-Mail mit Betreff und Text- oder HTML-Inhalt zu senden, optional mit einer Vorlage und Variablen.
  • Im Email Sandbox testen — Nachrichten an eine Sandbox senden und deren Inhalte, Header und Anhänge prüfen, ohne echte Empfänger zu erreichen.
  • Zustellung mit Protokollen debuggen — Protokolle gesendeter E-Mails auflisten und filtern, dann eine bestimmte Nachricht öffnen, um ihren Ereignisverlauf und Zustellstatus zu prüfen.
  • Versandstatistiken analysieren — Zustell-, Bounce-, Öffnungs-, Klick- und Spam-Raten für einen Zeitraum abrufen, aufgeschlüsselt nach Domain, Kategorie oder Datum.
  • Vorlagen verwalten — E-Mail-Vorlagen in Ihrem Mailtrap-Konto erstellen, auflisten, aktualisieren und löschen.
  • Domains und Unterdrückungen verwalten — Domains auflisten, DNS-Einrichtungsanweisungen abrufen und unterdrückte Adressen prüfen oder entfernen.

Dokumentation

TypeScript test NPM

Offizieller Mailtrap-MCP-Server

Der offizielle MCP-Server für Mailtrap — die Plattform für E-Mail-Zustellung. Er verbindet dein Mailtrap-Konto mit Claude, Cursor, VS Code und anderen MCP-kompatiblen KI-Assistenten.

Versende transaktionale und Massen-E-Mails, teste Nachrichten sicher in Email Sandbox, verwalte Vorlagen, Kontakte, Domains und Webhooks, prüfe E-Mail-Protokolle und Zustellstatistiken, behebe Zustellbarkeitsprobleme und verwalte Kontoressourcen — alles mit natürlichsprachlichen Prompts.

Funktionen

  • E-Mail-API und SMTP — Versende transaktionale und Massen-E-Mails, einschließlich Nachrichten in Batches und auf Vorlagenbasis.
  • E-Mail-Tests — Teste Nachrichten in Email Sandbox und prüfe Inhalte, Header, Anhänge, Spam-Bewertungen und die Kompatibilität mit HTML-Clients.
  • Zustellungsüberwachung — Durchsuche E-Mail-Protokolle, prüfe den Ereignisverlauf und analysiere Zustellungs-, Bounce-, Öffnungs-, Klick- und Spam-Raten.
  • E-Mail-Infrastruktur — Verwalte Domains, DNS-Verifizierung, Webhooks und Sperrlisten.
  • Kontakte — Verwalte Kontakte, Listen, benutzerdefinierte Felder und Ereignisse sowie Importe und Exporte.
  • Kontoverwaltung — Prüfe die Abrechnungsnutzung und verwalte Zugriff, Berechtigungen, API-Tokens und Unterkonten.

Unterstützte MCP-Clients

Funktioniert mit Claude Desktop, Claude Code, Cursor, VS Code und allen anderen MCP-kompatiblen Clients. Die Einrichtungsanleitungen für die einzelnen Clients findest du weiter unten.

Voraussetzungen

Bevor du diesen MCP-Server verwendest, benötigst du:

  1. Ein Mailtrap-Konto erstellen
  2. Deine Domain verifizieren
  3. Dein API-Token in den Mailtrap-API-Einstellungen abrufen
  4. Deine Account ID in der Mailtrap-Kontoverwaltung abrufen
  5. Node.js 22 oder höher installieren, sofern du nicht das Docker-Image verwendest

Erforderliche Umgebungsvariablen:

  • MAILTRAP_API_TOKEN - Für alle Funktionen erforderlich
  • MAILTRAP_ACCOUNT_ID - Erforderlich für Vorlagen, get-sending-stats, E-Mail-Protokolle, Sandbox-Auflisten/Anzeigen, Domains und Sperrlisten. Nur für die Sendetools (send-email, send-sandbox-email und die batch-send-*-Tools), die E-Mail-Kampagnentools, get-marketing-stats, die Unternehmensinfo-Tools, die Tracking-Abmeldetools und list-accounts optional.

Optional (können stattdessen als Tool-Parameter übergeben werden):

  • DEFAULT_FROM_EMAIL - Standard-Absender-E-Mail-Adresse, wenn from nicht an send-email, send-sandbox-email oder die batch-send-*-Tools übergeben wird (dort wird sie für base.from verwendet). Ermöglicht den Wechsel des Absenders pro Aufruf über den Parameter from.
  • MAILTRAP_SANDBOX_ID - Standard-Sandbox-ID, wenn sandbox_id eines Tools nicht übergeben wird (das ältere test_inbox_id wird bei den Sandbox-Nachrichten-Tools zum Senden/Auflisten/Anzeigen weiterhin akzeptiert). Ermöglicht den Wechsel der Sandbox pro Aufruf über Parameter.
  • MAILTRAP_TEST_INBOX_ID - Veralteter Alias für MAILTRAP_SANDBOX_ID; wird für bestehende Konfigurationen weiterhin als Fallback gelesen und gibt bei Verwendung eine Deprecation-Warnung an stderr aus.
  • MAILTRAP_ORGANIZATION_ID - Für Organisationstools erforderlich (list-sub-accounts, create-sub-account, delete-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN - Organisationsbezogenes API-Token. Für Organisationstools erforderlich (getrennt von MAILTRAP_API_TOKEN).

Schnellinstallation

Install in Cursor

Install with Node in VS Code

Docker

Führe den Server über stdio mit dem Image aus dem Docker MCP Catalog aus:

docker run --rm -i \
  -e MAILTRAP_API_TOKEN="${MAILTRAP_API_TOKEN}" \
  -e MAILTRAP_ACCOUNT_ID="${MAILTRAP_ACCOUNT_ID}" \
  -e DEFAULT_FROM_EMAIL="${DEFAULT_FROM_EMAIL}" \
  -e MAILTRAP_SANDBOX_ID="${MAILTRAP_SANDBOX_ID}" \
  -e MAILTRAP_ORGANIZATION_ID="${MAILTRAP_ORGANIZATION_ID}" \
  -e MAILTRAP_ORGANIZATION_API_TOKEN="${MAILTRAP_ORGANIZATION_API_TOKEN}" \
  mcp/mailtrap

Unter Voraussetzungen findest du die erforderlichen und optionalen Umgebungsvariablen.

So erstellst du einen Build aus diesem Repository: docker build -t mcp/mailtrap .

Smithery CLI

Smithery ist eine Registry und ein Installer für MCP-Server, der mit KI-Clients funktioniert.

Installiere den veröffentlichten Server (mailtrap/mailtrap-mcp) in einem lokalen Client (ersetze den Clientnamen nach Bedarf):

npx -y smithery mcp add mailtrap/mailtrap-mcp --client claude

Weitere Clients (cursor, windsurf usw.) und Informationen zum Veröffentlichen von Updates findest du in der Smithery-CLI-Dokumentation.

Einrichtung

Claude Desktop

Verwende MCPB, um den Mailtrap-Server zu installieren. Diese Dateien findest du unter Releases.
Lade die .MCPB-Datei herunter und öffne sie. Wenn du Claude Desktop verwendest, wird die Datei geöffnet und du wirst aufgefordert, die Konfiguration vorzunehmen.

Claude Desktop oder Cursor

Füge die folgende Konfiguration hinzu:

{
  "mcpServers": {
    "mailtrap": {
      "command": "npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
      }
    }
  }
}

Wenn du asdf zur Verwaltung von Node.js verwendest, musst du den absoluten Pfad zur ausführbaren Datei angeben (Beispiel für Mac).

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "22.14.0",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
      }
    }
  }
}

Speicherort der Claude-Desktop-Konfigurationsdatei

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Speicherort der Cursor-Konfigurationsdatei

Mac: ~/.cursor/mcp.json

Windows: %USERPROFILE%\.cursor\mcp.json

VS Code

Konfiguration manuell ändern

Führe in der Befehlspalette Folgendes aus: Preferences: Open User Settings (JSON)

Füge dann in der Einstellungsdatei die folgende Konfiguration hinzu:

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "npx",
        "args": ["-y", "mcp-mailtrap"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "your_sender@example.com",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
        }
      }
    }
  }
}

[!TIP] Vergiss nicht, deinen MCP-Server neu zu starten, nachdem du den Abschnitt "env" geändert hast.

MCP Bundle (MCPB)

Für eine einfache Installation auf Hosts, die MCP Bundles unterstützen, kannst du eine .mcpb-Bundle-Datei verteilen.

# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack

# Inspect bundle metadata
npm run mcpb:info

# Sign the bundle for distribution (optional)
npm run mcpb:sign

Dadurch wird mailtrap-mcp.mcpb erstellt. Das Skript kopiert dist/, manifest.json, icon.png und die Lizenz nach mcpb-build/, installiert dort die Produktionsabhängigkeiten und packt nur dieses Verzeichnis. Führe mcpb pack . nicht im Stammverzeichnis des Repositorys aus.

Verwendung

Nach der Konfiguration kannst du den Agenten beispielsweise bitten, E-Mails zu versenden und Vorlagen zu verwalten:

E-Mail-Versand:

  • "Sende eine E-Mail an john.doe@example.com mit dem Betreff 'Meeting Tomorrow' und einer freundlichen Erinnerung an unser bevorstehendes Meeting."
  • "Schreibe sarah@example.com wegen des Projektupdates und setze das Team unter team@example.com in CC."
  • "Sende die Willkommensvorlage (uuid b81aabcd-1a1e-41cf-91b6-eca0254b3d96) an new@example.com mit den Variablen { name: 'Alex' }."
  • "Sende eine Sandbox-E-Mail an test@example.com mit dem Betreff 'Test Template', um eine Vorschau unserer Willkommens-E-Mail zu sehen."

E-Mail-Protokolle (Zustellung debuggen):

  • "Liste meine zuletzt gesendeten E-Mail-Protokolle auf."
  • "Zeige E-Mail-Protokolle für E-Mails an, die an user@example.com gesendet wurden."
  • "Rufe das E-Mail-Protokoll für die Nachricht mit der ID abc-123-uuid ab, um den Zustellungsstatus zu prüfen."

Statistiken:

  • "Rufe die Versandstatistiken für Januar 2025 ab."
  • "Zeige die Zustellungsraten des letzten Monats nach Domain aufgeschlüsselt."
  • "Wie sehen meine E-Mail-Statistiken nach Kategorie für den Zeitraum vom 2025-01-01 bis zum 2025-01-31 aus?"
  • "Wie hat sich mein E-Mail-Marketing im letzten Monat entwickelt? Vergleiche Kampagnen mit Automatisierungen."

Sandbox-Vorgänge:

  • "Rufe alle Nachrichten aus meiner Sandbox ab."
  • "Zeige mir die erste Seite der Sandbox-Nachrichten."
  • "Suche in meiner Sandbox nach Nachrichten, die 'test' enthalten."
  • "Erstelle eine Sandbox namens 'QA' im Projekt 42 und gib mir ihre SMTP-Zugangsdaten."
  • "Lösche alle Nachrichten aus Sandbox 1234."
  • "Zeige mir die Details der Sandbox-Nachricht mit der ID 5159037506."

Vorlagenvorgänge:

  • "Liste alle E-Mail-Vorlagen in meinem Mailtrap-Konto auf."
  • "Erstelle eine neue E-Mail-Vorlage namens 'Welcome Email' mit dem Betreff 'Welcome to our platform!'."
  • "Aktualisiere die Vorlage mit der ID 12345 und ändere den Betreff in 'Updated Welcome Message'."
  • "Lösche die Vorlage mit der ID 67890."

Domains:

  • "Liste meine Domains auf."
  • "Rufe die Domain mit der ID 3938 ab."
  • "Erstelle eine Domain für example.com."
  • "Aktiviere das Klick-Tracking für Domain 3938."
  • "Lösche Domain 3938."
  • "Rufe Domain 3938 mit DNS-Einrichtungsanweisungen ab."
  • "Zeige die Unternehmensinformationen für Domain 3938 an."
  • "Lege die Unternehmensinformationen für Domain 3938 auf Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com fest."
  • "Ändere die Stadt in den Unternehmensinformationen für Domain 3938 in New York."

Sperrlisten:

Tracking-Abmeldungen:

  • "Beende das Öffnungs- und Klick-Tracking für privacy@example.com auf Domain 3938."
  • "Liste alle Personen auf, die sich vom Tracking abgemeldet haben."

Kontakte und Listen:

  • "Füge john.doe@example.com zu meiner Newsletter-Kontaktliste hinzu."
  • "Zeige mir alle meine Kontaktlisten."
  • "Erstelle ein Kontaktfeld namens 'signup_source', um nachzuverfolgen, woher Kontakte stammen."
  • "Aktualisiere den Kontakt john.doe@example.com und setze dessen Tarif auf 'pro'."
  • "Importiere Kontakte aus dieser CSV-Datei in meine Onboarding-Liste."
  • "Exportiere alle Kontakte aus meiner Newsletter-Liste."
  • "Erfasse ein Ereignis 'trial_started' für den Kontakt john.doe@example.com."

Webhooks:

  • "Liste alle in meinem Konto konfigurierten Webhooks auf."
  • "Erstelle einen Webhook für https://example.com/hooks/mailtrap für Bounce- und Spam-Ereignisse."
  • "Aktualisiere Webhook 4821, sodass auch Zustellungsereignisse gesendet werden."
  • "Lösche Webhook 4821."

Konto und Abrechnung:

  • "Wie hoch ist meine aktuelle Abrechnungsnutzung in diesem Monat?"
  • "Wie viele E-Mails habe ich in meinem Tarif noch übrig?"
  • "Liste alle Personen auf, die Zugriff auf dieses Mailtrap-Konto haben."
  • "Zeige mir die Berechtigungsressourcen, die in meinem Konto verfügbar sind."

API-Tokens:

  • "Liste alle API-Tokens in meinem Konto auf."
  • "Erstelle ein neues API-Token für die Staging-Umgebung."
  • "Setze das API-Token mit der ID 1234 zurück."
  • "Lösche das ungenutzte API-Token 1234."

Organisation und Unterkonten:

  • "Liste alle Unterkonten in meiner Organisation auf."
  • "Erstelle ein neues Unterkonto für das Kundenprojekt 'Acme Corp'."

Umbenannte Tools

Mailtrap bezeichnet Test-Postfächer jetzt als Sandboxes und Versanddomains als Domains; die Tools wurden entsprechend umbenannt. Die alten Namen erscheinen nicht mehr in der Toolliste, Aufrufe mit diesen Namen funktionieren jedoch weiterhin und geben eine Deprecation-Warnung an stderr aus. Sie werden in einer zukünftigen Hauptversion entfernt.

MCP-Clients und Agent-Frameworks gleichen Zulassungs-, Sperr- und Filterlisten mit den angekündigten Toolnamen ab. Übertrage daher alle Einträge für einzelne Tools auf die neuen Namen: Ein Sperreintrag für delete-sending-domain blockiert delete-domain nicht mehr.

Alter NameNeuer Name
create-sandbox-inboxcreate-sandbox
get-sandbox-inboxget-sandbox
update-sandbox-inboxupdate-sandbox
delete-sandbox-inboxdelete-sandbox
clean-sandbox-inboxclean-sandbox
list-sending-domainslist-domains
get-sending-domainget-domain
create-sending-domaincreate-domain
update-sending-domainupdate-domain
delete-sending-domaindelete-domain
send-sending-domain-setup-instructionssend-domain-setup-instructions
sending_domain_id-Parameter der Domain- und Unternehmensinfo-Toolsdomain_id
MAILTRAP_TEST_INBOX_ID-UmgebungsvariableMAILTRAP_SANDBOX_ID

Filter, die einem API-Feld entsprechen, behalten ihre Namen: sending_domain_id bei list-email-logs und sending_domain_ids bei den Statistik-Tools.

Verfügbare Tools

send-email

Versendet eine transaktionale E-Mail über Mailtrap. Unterstützt zwei sich gegenseitig ausschließende Modi — Inline-Inhalt (subject + text/html) oder vorlagenbasiert (template_uuid).

Parameter:

  • from (optional): Absender als { email, name? } (zur Laufzeit wird auch eine einfache E-Mail-Adresse als Zeichenfolge akzeptiert). Wenn nicht angegeben, wird DEFAULT_FROM_EMAIL verwendet.
  • to (optional): Array von Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen als Zeichenfolgen oder eine einzelne Adresse ohne Array akzeptiert). Optional, wenn cc oder bcc angegeben ist; mindestens eines von to / cc / bcc muss einen Empfänger enthalten.
  • cc (optional): Array von CC-Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen als Zeichenfolgen akzeptiert).
  • bcc (optional): Array von BCC-Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen als Zeichenfolgen akzeptiert).
  • subject (conditional): Betreffzeile der E-Mail. Für den Inline-Versand erforderlich; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • text (conditional): E-Mail-Text. Für den Inline-Versand erforderlich (zusammen mit oder anstelle von html); muss weggelassen werden, wenn template_uuid gesetzt ist.
  • html (conditional): HTML-Version des E-Mail-Texts. Für den Inline-Versand erforderlich (zusammen mit oder anstelle von text); muss weggelassen werden, wenn template_uuid gesetzt ist.
  • category (optional): E-Mail-Kategorie für Tracking und Analysen. Muss weggelassen werden, wenn template_uuid gesetzt ist.
  • template_uuid (optional): Eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalten verwenden. Wenn gesetzt, müssen subject / text / html / category weggelassen werden (gemäß Mailtrap API).
  • template_variables (optional): Objekt mit Variablen, die in die durch template_uuid referenzierte Vorlage eingesetzt werden. Nur zusammen mit template_uuid zulässig.

batch-send-transactional-email

Sendet mehrere Transaktions-E-Mails mit einem Mailtrap-API-Aufruf (Standard-Sendestream). Gemeinsame Felder werden unter base angegeben; Überschreibungen pro Empfänger unter requests[]. Jede Anfrage muss mindestens einen Empfänger über to, cc oder bcc enthalten. Dieselben Regeln zum gegenseitigen Ausschluss von Inline-Inhalten und Vorlagen wie bei send-email — geprüft, nachdem die Basis mit jeder Anfrage zusammengeführt wurde.

Parameter:

  • base (optional): Objekt mit Feldern, die für den gesamten Batch gelten.
    • from (optional): Absender als { email, name? } (zur Laufzeit wird auch eine einfache E-Mail-Adresse als Zeichenfolge akzeptiert). Fällt auf DEFAULT_FROM_EMAIL zurück.
    • reply_to (optional): Antwortadresse.
    • subject / text / html / category (optional, Inline-Modus): Standardinhalte für jede Anfrage.
    • template_uuid / template_variables (optional, Vorlagenmodus): Standardvorlage und Variablen. Nicht zusammen mit den Inline-Feldern verwendbar.
    • custom_variables (optional): Standardwerte für benutzerdefinierte Variablen (Zeichenfolgen).
    • headers (optional): Standardwerte für benutzerdefinierte Header.
  • requests (required): Nicht leeres Array mit Nachrichten pro Empfänger. Jeder Eintrag enthält:
    • to (optional): Array von Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen als Zeichenfolgen oder eine einzelne Adresse ohne Array akzeptiert). Optional, wenn cc oder bcc angegeben ist; mindestens eines von to / cc / bcc muss einen Empfänger enthalten.
    • cc, bcc, reply_to (optional).
    • Überschreibungen für Inline-Inhalte (subject/text/html/category) oder Vorlagen (template_uuid/template_variables); jedes ausgelassene Feld übernimmt den entsprechenden Wert aus base.
    • custom_variables, headers (optional).

batch-send-bulk-email

Sendet mehrere Bulk-E-Mails über die Bulk-Stream-API von Mailtrap. Dieselbe Struktur base + requests[], dieselbe Validierung und dieselben Regeln zum gegenseitigen Ausschluss von Inline-Inhalten und Vorlagen wie bei batch-send-transactional-email — der einzige Unterschied besteht darin, dass dieses Tool den Aufruf statt an den Transaktions-Endpunkt an den Bulk-Endpunkt weiterleitet. Siehe die obigen Parameter.

list-email-logs

Listet gesendete E-Mail-Protokolle (Zustellungsverlauf) mit optionaler Paginierung und Filtern auf. Verwenden Sie diese Funktion, um Zustellungsprobleme direkt in der IDE zu untersuchen.

Parameter:

  • search_after (optional): Paginierungscursor aus dem next_page_cursor der vorherigen Antwort
  • sent_after (optional): Datum/Uhrzeit im ISO-8601-Format; nur Protokolle, die nach diesem Zeitpunkt gesendet wurden
  • sent_before (optional): Datum/Uhrzeit im ISO-8601-Format; nur Protokolle, die vor diesem Zeitpunkt gesendet wurden
  • from_email (optional): Nach Absender-E-Mail-Adresse filtern; zusammen mit from_operator verwenden (Standard: ci_equal)
  • to_email (optional): Nach Empfänger-E-Mail-Adresse filtern; zusammen mit to_operator verwenden (Standard: ci_equal)
  • status (optional): Nach Zustellungsstatus filtern: delivered, not_delivered, enqueued, opted_out; zusammen mit status_operator verwenden (Standard: equal)
  • subject (optional): Nach E-Mail-Betreff filtern; zusammen mit subject_operator verwenden (Standard: ci_contain). Verwenden Sie subject_operator: empty/not_empty, um nach dem Vorhandensein eines Betreffs zu filtern.
  • sending_domain_id (optional): Nach Domain-ID (Zahl) filtern; zusammen mit sending_domain_id_operator verwenden (Standard: equal)
  • sending_stream (optional): Nach Stream filtern: transactional oder bulk; zusammen mit sending_stream_operator verwenden (Standard: equal)
  • events (optional): Nach Ereignistyp(en) filtern: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; zusammen mit events_operator verwenden (include_event / not_include_event)
  • clicks_count / opens_count (optional): Nach Anzahl der Klicks/Öffnungen filtern; *_operator verwenden: equal, greater_than, less_than
  • client_ip / sending_ip (optional): Nach IP-Adresse filtern; *_operator verwenden: equal, not_equal, contain, not_contain
  • email_service_provider_response (optional): Nach Antworttext des Anbieters filtern; zusammen mit *_operator verwenden (ci_contain usw.)
  • email_service_provider (optional): Nach Anbieter filtern (exakt); *_operator verwenden: equal, not_equal
  • recipient_mx (optional): Nach MX-Eintrag des Empfängers filtern; zusammen mit recipient_mx_operator verwenden (ci_contain usw.)
  • category (optional): Nach E-Mail-Kategorie filtern; category_operator verwenden: equal, not_equal

Alle Parameter sind optional.

get-email-log-message

Ruft eine einzelne E-Mail-Protokollnachricht anhand ihrer ID (UUID) ab: eine lesbare Zusammenfassung (Absender, Empfänger, Betreff, Sendezeit, Status, Kategorie, Stream, Interaktionen, Zustellungskontext) und anschließend den detaillierten Ereignisverlauf. Optional können Sie mit include_content: true auch den Nachrichteninhalt (HTML und Klartext) laden und anzeigen, sofern Mailtrap eine URL zur Roh-Nachricht bereitstellt.

Parameter:

  • message_id (required): UUID der E-Mail-Protokollnachricht (aus der Sendeantwort oder list-email-logs). Verwenden Sie list-email-logs, um Nachrichten-IDs zu finden.
  • include_content (optional): Wenn true, wird die rohe EML-Datei abgerufen (sofern raw_message_url verfügbar ist) und es werden geparste HTML- und Klartextabschnitte angehängt, ähnlich wie bei show-sandbox-email-message.

get-sending-stats

Ruft E-Mail-Versandstatistiken (Zustellungs-, Bounce-, Öffnungs-, Klick- und Spam-Raten) für einen Datumsbereich ab. Optional können die Daten nach Domain, Kategorie, E-Mail-Dienstanbieter oder Datum aufgeschlüsselt werden. Prüfen Sie die Zustellungsraten, ohne den Editor zu verlassen.

Parameter:

  • start_date (required): Startdatum des Statistikzeitraums (YYYY-MM-DD)
  • end_date (required): Enddatum des Statistikzeitraums (YYYY-MM-DD)
  • breakdown (optional): Aufschlüsselung der Statistiken nach: aggregated (Standard), by_domain, by_category, by_email_service_provider oder by_date
  • sending_domain_ids (optional): Ergebnisse auf diese Domain-IDs beschränken (Array von Ganzzahlen)
  • sending_streams (optional): Auf transactional und/oder bulk beschränken (Array von Zeichenfolgen)
  • categories (optional): Auf diese E-Mail-Kategorien beschränken (Array von Zeichenfolgen)
  • email_service_providers (optional): Auf diese Anbieter beschränken, z. B. Google, Yahoo, Outlook (Array von Zeichenfolgen)

get-marketing-stats

Ruft aggregierte E-Mail-Marketing-Statistiken für Kampagnen und Automatisierungen innerhalb eines Datumsbereichs ab: Anzahl und Raten für gesendete E-Mails, Zustellungen, Bounces, Öffnungen, Klicks, Spam und Abmeldungen. delivery_rate und bounce_rate sind Anteile von sent_count; die übrigen Raten sind Anteile von delivery_count.

Parameter:

  • start_date (required): Beginn des Datumsbereichs (einschließlich), YYYY-MM-DD
  • end_date (required): Ende des Datumsbereichs (einschließlich), YYYY-MM-DD
  • sending_domain_ids (optional): Ergebnisse auf diese Domain-IDs beschränken (Array von Ganzzahlen)
  • sources (optional): campaigns oder automations schränkt die Statistiken auf diese Quelle ein; weglassen oder beide übergeben, um den gesamten E-Mail-Marketing-Traffic einzubeziehen (Array von Zeichenfolgen)
  • email_service_providers (optional): Auf diese Anbieter beschränken, z. B. Google, Yahoo, Outlook (Array von Zeichenfolgen)

create-template

Erstellt eine neue E-Mail-Vorlage in Ihrem Mailtrap-Konto.

Parameter:

  • name (required): Name der Vorlage
  • subject (required): Betreffzeile der E-Mail
  • html (oder text ist erforderlich): HTML-Inhalt der Vorlage
  • text (oder html ist erforderlich): Klartextversion der Vorlage
  • category (optional): Vorlagenkategorie (Standard ist "General")

list-templates

Listet die E-Mail-Vorlagen in Ihrem Mailtrap-Konto mit Paginierung über Seitentoken auf. Wenn weitere Vorlagen vorhanden sind, nennt das Ergebnis das token für die nächste Seite. Die Seiten entsprechen Offsets in der nach Neuheit sortierten Liste. Löschen Sie Vorlagen und beginnen Sie die Liste daher erneut bei token 1, anstatt mit dem nächsten Token fortzufahren; eine leere Seite nennt die letzte Seite, auf der noch Vorlagen vorhanden sind.

Parameter:

  • token (optional): Abzurufende Seitennummer (Paginierung über Seitentoken). Standard ist 1
  • per_page (optional): Anzahl der Vorlagen pro Seite. Standard ist 50, maximal 100. Auf jeder Seite denselben Wert übergeben

get-template

Ruft eine einzelne E-Mail-Vorlage anhand ihrer ID ab, einschließlich Betreff, Kategorie und HTML-/Textinhalt.

Parameter:

  • template_id (required): ID der abzurufenden Vorlage

update-template

Aktualisiert eine vorhandene E-Mail-Vorlage.

Parameter:

  • template_id (required): ID der zu aktualisierenden Vorlage
  • name (optional): Neuer Name der Vorlage
  • subject (optional): Neue Betreffzeile der E-Mail
  • html (optional): Neuer HTML-Inhalt der Vorlage
  • text (optional): Neue Klartextversion der Vorlage
  • category (optional): Neue Kategorie der Vorlage

[!NOTE] Beim Aufruf von update-template muss mindestens ein aktualisierbares Feld (name, subject, html, text oder category) angegeben werden, damit eine Aktualisierung durchgeführt wird.

delete-template

Löscht eine vorhandene E-Mail-Vorlage.

Parameter:

  • template_id (required): ID der zu löschenden Vorlage

send-sandbox-email

Sendet eine E-Mail an Ihre Mailtrap-Sandbox zu Entwicklungs- und Testzwecken. Damit können Sie E-Mail-Vorlagen testen, ohne E-Mails an echte Empfänger zu senden. Unterstützt dieselben zwei Modi wie send-email — Inline-Inhalte oder vorlagenbasiert (template_uuid).

Parameter:

  • sandbox_id (optional): Bevorzugt. Mailtrap-Sandbox-ID. Erforderlich, sofern MAILTRAP_SANDBOX_ID nicht gesetzt ist.
  • test_inbox_id (optional): Veralteter Alias für sandbox_id, wenn sandbox_id nicht angegeben ist.
  • from (optional): Absender als { email, name? } (zur Laufzeit wird auch eine einfache E-Mail-Adresse akzeptiert). Wenn nicht angegeben, wird DEFAULT_FROM_EMAIL verwendet.
  • to (optional): Array von Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen im Array oder eine durch Kommas getrennte Zeichenfolge mit einfachen E-Mail-Adressen akzeptiert). Optional, wenn cc oder bcc angegeben ist; mindestens eines von to / cc / bcc muss einen Empfänger enthalten.
  • cc (optional): Array von CC-Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen akzeptiert).
  • bcc (optional): Array von BCC-Empfängern als { email, name? }-Objekte (zur Laufzeit werden auch einfache E-Mail-Adressen akzeptiert).
  • subject (conditional): Betreffzeile der E-Mail. Für Inline-Versand erforderlich; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • text (conditional): E-Mail-Text. Für Inline-Versand erforderlich (zusammen mit oder anstelle von html); muss weggelassen werden, wenn template_uuid gesetzt ist.
  • html (conditional): HTML-Version des E-Mail-Texts. Für Inline-Versand erforderlich (zusammen mit oder anstelle von text); muss weggelassen werden, wenn template_uuid gesetzt ist.
  • category (optional): E-Mail-Kategorie für das Tracking. Muss weggelassen werden, wenn template_uuid gesetzt ist.
  • template_uuid (optional): Eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalten verwenden. Wenn gesetzt, müssen subject / text / html / category weggelassen werden.
  • template_variables (optional): Objekt mit Variablen, die in die durch template_uuid referenzierte Vorlage eingesetzt werden. Nur zusammen mit template_uuid zulässig.

batch-send-sandbox-email

Sendet mehrere E-Mails in einem API-Aufruf an Ihre Mailtrap-Sandbox, ohne sie an echte Empfänger zuzustellen. Dieselbe Struktur von base + requests[], dieselbe Validierung und dieselben Regeln für Inline-Inhalte und Vorlagen wie bei batch-send-transactional-email — der Unterschied besteht darin, dass dieses Tool den Aufruf über den Sandbox-Endpunkt für eine einzelne Sandbox leitet.

Parameter:

  • sandbox_id (optional): Mailtrap-Sandbox-ID. Erforderlich, sofern MAILTRAP_SANDBOX_ID nicht gesetzt ist; pro Aufruf angeben, um eine bestimmte Sandbox anzusprechen.
  • base (optional), requests (required): Siehe oben unter batch-send-transactional-email.

[!NOTE] Die meisten Sandbox-Tools verwenden sandbox_id (oder greifen auf MAILTRAP_SANDBOX_ID zurück; die veraltete Umgebungsvariable MAILTRAP_TEST_INBOX_ID funktioniert weiterhin). send-sandbox-email, get-sandbox-messages und show-sandbox-email-message akzeptieren ebenfalls den veralteten Wert test_inbox_id. get-sandbox, update-sandbox, delete-sandbox und clean-sandbox verwenden sandbox_id mit dem veralteten Wert inbox_id (dieselbe ID; inbox_id wird bei Nachrichtentools nicht verwendet). Tools für eingehende E-Mails verwenden inbox_id für ein anderes Produkt (empfangene E-Mails), nicht für die Sandbox.

get-sandbox-messages

Ruft eine Liste von Nachrichten aus Ihrer Mailtrap-Sandbox ab. Nützlich, um zu prüfen, welche E-Mails während des Tests in Ihrer Sandbox eingegangen sind.

Parameter:

  • sandbox_id (optional): Bevorzugt. Sandbox-ID, sofern MAILTRAP_SANDBOX_ID nicht gesetzt ist.
  • test_inbox_id (optional): Veralteter Alias für sandbox_id.
  • page (optional): Seitennummer für die Paginierung (Minimum: 1)
  • last_id (optional): Paginierung anhand der letzten Nachrichten-ID. Gibt Nachrichten nach der angegebenen Nachrichten-ID zurück (Minimum: 1)
  • search (optional): Suchanfrage zum Filtern von Nachrichten

[!NOTE] Sandbox-ID-Parameter sind optional, wenn MAILTRAP_SANDBOX_ID gesetzt ist. Wenn weder sandbox_id, test_inbox_id noch eine Umgebungsvariable angegeben ist, schlägt der Aufruf fehl. Paginierung: Verwenden Sie bei Bedarf page, last_id oder search.

show-sandbox-email-message

Zeigt detaillierte Informationen und den Inhalt einer bestimmten E-Mail-Nachricht aus Ihrer Mailtrap-Sandbox an, einschließlich HTML- und Textinhalt.

Parameter:

  • sandbox_id (optional): Bevorzugt. Sandbox-ID, sofern MAILTRAP_SANDBOX_ID nicht gesetzt ist.
  • test_inbox_id (optional): Veralteter Alias für sandbox_id.
  • message_id (required): ID der abzurufenden Sandbox-E-Mail-Nachricht

[!NOTE] Verwenden Sie zuerst get-sandbox-messages, um Nachrichten-IDs abzurufen, und anschließend dieses Tool, um den vollständigen Inhalt anzuzeigen.

list-sandbox-projects

Listet alle Sandbox-Projekte und ihre Sandboxes auf.

Parameter:

  • Keine Parameter erforderlich

create-sandbox-project

Erstellt ein neues Sandbox-Projekt, um Sandboxes zu gruppieren.

Parameter:

  • name (required): Name des Projekts (2–100 Zeichen)

get-sandbox-project

Ruft ein Sandbox-Projekt anhand seiner ID ab, einschließlich seiner Sandboxes und E-Mail-Anzahlen.

Parameter:

  • project_id (required): ID des abzurufenden Projekts

update-sandbox-project

Benennt ein vorhandenes Sandbox-Projekt um.

Parameter:

  • project_id (required): ID des zu aktualisierenden Projekts
  • name (required): Neuer Name des Projekts (2–100 Zeichen)

delete-sandbox-project

Löscht ein Sandbox-Projekt und alle zugehörigen Sandboxes.

Parameter:

  • project_id (required): ID des zu löschenden Projekts

create-sandbox

Erstellt eine neue Sandbox innerhalb eines Projekts. Gibt die SMTP-Zugangsdaten der neuen Sandbox zurück.

Parameter:

  • project_id (required): ID des Projekts, in dem die Sandbox erstellt werden soll
  • name (required): Name der Sandbox

get-sandbox

Ruft Sandbox-Details ab, einschließlich SMTP-Zugangsdaten, E-Mail-Anzahlen und Status.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Erforderlich, sofern MAILTRAP_SANDBOX_ID nicht gesetzt ist.
  • inbox_id (optional): Veralteter Alias für sandbox_id.

update-sandbox

Aktualisiert den Namen oder den E-Mail-Benutzernamen einer Sandbox.

Parameter:

  • sandbox_id (required): Sandbox-ID (veralteter Alias: inbox_id)
  • name (optional): Neuer Name der Sandbox
  • email_username (optional): Neuer E-Mail-Benutzername der Sandbox

Mindestens eines von name oder email_username muss angegeben werden.

delete-sandbox

Löscht eine Sandbox und alle ihre Nachrichten.

Parameter:

  • sandbox_id (required): Sandbox-ID (veralteter Alias: inbox_id)

clean-sandbox

Löscht alle Nachrichten aus einer Sandbox, ohne die Sandbox selbst zu löschen.

Parameter:

  • sandbox_id (required): Sandbox-ID (veralteter Alias: inbox_id)

list-sandboxes

Listet alle Sandboxes auf, auf die das API-Token projektübergreifend zugreifen kann.

Parameter:

  • Keine Parameter erforderlich

mark-sandbox-as-read

Markiert alle Nachrichten in einer Sandbox als gelesen.

Parameter:

  • sandbox_id (required): ID der Sandbox, für die die Aktion ausgeführt werden soll

reset-sandbox-credentials

Setzt die SMTP-Zugangsdaten einer Sandbox zurück. Gibt den neuen Benutzernamen und das neue Passwort zurück.

Parameter:

  • sandbox_id (required): ID der Sandbox, für die die Aktion ausgeführt werden soll

enable-sandbox-email-address

Aktiviert die E-Mail-Empfangsadresse einer Sandbox (schaltet die Mailtrap-Adresse ein, über die Nachrichten per SMTP an die Sandbox zugestellt werden).

Parameter:

  • sandbox_id (required): ID der Sandbox, für die die Aktion ausgeführt werden soll

reset-sandbox-email-address

Erstellt eine neue E-Mail-Empfangsadresse für eine Sandbox.

Parameter:

  • sandbox_id (required): ID der Sandbox, für die die Aktion ausgeführt werden soll

forward-sandbox-message

Leitet eine Sandbox-Nachricht an eine externe E-Mail-Adresse weiter. Wird auf Ihr monatliches Weiterleitungskontingent angerechnet.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der weiterzuleitenden Sandbox-Nachricht
  • email (required): E-Mail-Adresse, an die die Nachricht weitergeleitet werden soll

update-sandbox-message

Markiert eine Sandbox-Nachricht als gelesen oder ungelesen.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der zu aktualisierenden Sandbox-Nachricht
  • is_read (required): true markiert die Nachricht als gelesen, false als ungelesen

delete-sandbox-message

Löscht eine einzelne Sandbox-Nachricht.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der zu löschenden Sandbox-Nachricht

get-sandbox-message-spam-score

Ruft den SpamAssassin-Spambericht für eine Sandbox-Nachricht ab (Bewertung, Regeln, vollständiger Bericht). Eigenständige Alternative zu include_spam_report: true bei show-sandbox-email-message.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-html-analysis

Ruft den HTML-Analysebericht für eine Sandbox-Nachricht ab (Kompatibilitätsbewertungen für E-Mail-Clients, problematische Elemente). Eigenständige Alternative zu include_html_analysis: true bei show-sandbox-email-message.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-headers

Ruft die geparsten E-Mail-Header einer Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-html

Ruft den gerenderten HTML-Text einer Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-text

Ruft den Nur-Text-Inhalt einer Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-raw

Ruft die rohe, MIME-formatierte Nachricht (Header + Text) einer Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-eml

Ruft die Nachricht als EML-Dateiinhalt ab (geeignet zum Anhängen an ein Ticket oder zum Importieren in einen anderen E-Mail-Client).

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-message-html-source

Ruft den nicht gerenderten HTML-Quelltext einer Sandbox-Nachricht ab (HTML vor Mailtrap-seitigen Änderungen wie CID-Link-Umschreibungen).

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

list-sandbox-attachments

Listet alle Anhänge einer Sandbox-Nachricht auf (Dateiname, Inhaltstyp, Größe, Downloadpfad).

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht

get-sandbox-attachment

Ruft Metadaten und die Download-URL für einen einzelnen Anhang ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Verwendet ersatzweise MAILTRAP_SANDBOX_ID.
  • message_id (required): ID der Sandbox-Nachricht, die den Anhang enthält
  • attachment_id (required): ID des abzurufenden Anhangs

list-domains

Listet Domains und ihren DNS-Verifizierungsstatus auf.

Parameter:

  • Keine Parameter erforderlich

get-domain

Ruft eine Domain anhand ihrer ID und ihren Verifizierungsstatus ab (einschließlich DNS-Einträgen). Optional können DNS-Einrichtungsanweisungen einbezogen werden, indem include_setup_instructions auf true gesetzt wird.

Parameter:

  • domain_id (required): Domain-ID (veralteter Alias: sending_domain_id)
  • include_setup_instructions (optional): Wenn true, werden DNS-Einrichtungsanweisungen an die Antwort angehängt. Standard: false

create-domain

Erstellt eine neue Domain. Fügen Sie nach der Erstellung DNS-Einträge hinzu, um die Domain zu verifizieren (verwenden Sie get-domain mit include_setup_instructions: true, um die Einträge anzuzeigen).

Parameter:

  • domain_name (required): Domainname (z. B. example.com)

update-domain

Tracking- und Eingehend-Einstellungen einer Domain aktualisieren.

Parameter:

  • domain_id (erforderlich): Domain-ID (veralteter Alias: sending_domain_id)
  • open_tracking_enabled (optional): Öffnungen von E-Mails verfolgen, die von dieser Domain gesendet werden
  • click_tracking_enabled (optional): Klicks auf Links in E-Mails verfolgen, die von dieser Domain gesendet werden
  • tracking_opt_out_enabled (optional): Den Link zum Deaktivieren des Trackings zu getrackten E-Mails hinzufügen. Erfordert das Tracking von Öffnungen oder Klicks
  • auto_unsubscribe_link_enabled (optional): E-Mails automatisch einen Abmeldelink hinzufügen
  • inbound_enabled (optional): Zulassen, dass die Domain einem Posteingang für eingehende E-Mails als Catch-all zugewiesen wird

Mindestens eine Einstellung außer domain_id muss angegeben werden.

delete-domain

Eine Domain löschen.

Parameter:

  • domain_id (erforderlich): Zu löschende Domain-ID (veralteter Alias: sending_domain_id)

send-domain-setup-instructions

DNS-Einrichtungsanweisungen für eine Domain an eine angegebene Adresse senden. Nützlich, um DNS-Einträge an ein DevOps-Teammitglied weiterzuleiten.

Parameter:

  • domain_id (erforderlich): Domain-ID (veralteter Alias: sending_domain_id)
  • email (erforderlich): E-Mail-Adresse, an die die DNS-Einrichtungsanweisungen gesendet werden sollen

get-company-info

Unternehmensinformationen einer Domain abrufen, die zur Compliance-Verifizierung der Domain verwendet werden.

Parameter:

  • domain_id (erforderlich): Domain-ID (veralteter Alias: sending_domain_id)

create-company-info

Unternehmensinformationen einer Domain festlegen, die für die Compliance-Verifizierung der Domain erforderlich sind.

Parameter:

  • domain_id (erforderlich): Domain-ID (veralteter Alias: sending_domain_id)
  • name (erforderlich): Name des Unternehmens oder der Einzelperson
  • address (erforderlich): Straßenadresse
  • city (erforderlich): Stadt
  • country (erforderlich): Land
  • zip_code (erforderlich): Postleitzahl
  • website_url (erforderlich): URL der Unternehmenswebsite
  • phone (optional): Telefonnummer
  • privacy_policy_url (optional): URL der Datenschutzrichtlinienseite
  • terms_of_service_url (optional): URL der Nutzungsbedingungen
  • info_level (optional): business oder individual

update-company-info

Unternehmensinformationen einer Domain aktualisieren.

Parameter:

  • domain_id (erforderlich): Domain-ID (veralteter Alias: sending_domain_id)
  • Alle Felder von create-company-info sind optional. Mindestens eines muss angegeben werden; nicht angegebene Felder bleiben unverändert.

list-suppressions

Sperrungen auflisten oder durchsuchen (Hard Bounces, Spam-Beschwerden, Abmeldungen, manuelle Importe). Gibt pro Aufruf bis zu 1000 Ergebnisse zurück.

Parameter:

  • email (optional): E-Mail-Filter. Gibt nur Sperrungen zurück, die dieser Adresse entsprechen.

create-suppression

Eine E-Mail-Adresse zur Sperrliste des Kontos hinzufügen, damit Mailtrap keine E-Mails mehr an sie zustellt.

Parameter:

  • email (erforderlich): Zu sperrende E-Mail-Adresse
  • domain_id (erforderlich): ID der Domain, für die die Sperrung gilt
  • sending_stream (erforderlich): transactional oder bulk
  • type (optional): hard bounce, spam complaint, unsubscription oder manual import. Standardmäßig manual import

delete-suppression

Eine Sperrung anhand ihrer ID löschen. Mailtrap setzt die Zustellung an diese E-Mail-Adresse fort, sofern sie nicht erneut gesperrt wird.

Parameter:

  • suppression_id (erforderlich): ID der zu löschenden Sperrung

list-tracking-opt-outs

E-Mail-Adressen auflisten, die vom Öffnungs- und Klick-Tracking ausgeschlossen sind. Gibt pro Aufruf bis zu 1000 Datensätze zurück.

Parameter:

  • email (optional): E-Mail-Filter. Gibt nur Opt-outs zurück, die dieser Adresse entsprechen
  • start_time (optional): Nur Opt-outs, die zu diesem Zeitpunkt oder später erstellt wurden (ISO 8601)
  • end_time (optional): Nur Opt-outs, die zu diesem Zeitpunkt oder früher erstellt wurden (ISO 8601)
  • last_id (optional): Paginierungscursor — der last_id aus der vorherigen Antwort

create-tracking-opt-out

Eine E-Mail-Adresse für eine Domain vom Öffnungs- und Klick-Tracking ausschließen.

Parameter:

  • email (erforderlich): E-Mail-Adresse, die vom Tracking ausgeschlossen werden soll
  • domain_id (erforderlich): ID der Domain, für die der Tracking-Ausschluss gilt

delete-tracking-opt-out

Eine E-Mail-Adresse aus der Tracking-Ausschlussliste entfernen, damit das Öffnungs- und Klick-Tracking wieder für sie gilt.

Parameter:

  • tracking_opt_out_id (erforderlich): ID des zu löschenden Tracking-Ausschlusses

list-webhooks

Alle für das Konto konfigurierten Webhooks auflisten. Gibt die vollständigen Webhook-Datensätze als JSON zurück.

Parameter:

  • Keine Parameter erforderlich

get-webhook

Einen einzelnen Webhook anhand seiner ID abrufen. Gibt den vollständigen Webhook-Datensatz als JSON zurück. Hinweis: signing_secret wird hier nicht zurückgegeben — es ist nur in der Antwort von create-webhook verfügbar.

Parameter:

  • webhook_id (erforderlich): ID des abzurufenden Webhooks

create-webhook

Einen Webhook erstellen. Die Antwort enthält ein signing_secret zur Überprüfung der Webhook-Payload-Signaturen — dieses Geheimnis wird nur bei der Erstellung zurückgegeben. Speichern Sie es daher jetzt. Wenn Sie es verlieren, erstellen Sie den Webhook neu.

Parameter:

  • url (erforderlich): URL, an die Mailtrap Webhook-Ereignisse per POST sendet
  • webhook_type (erforderlich): "email_sending", "audit_log" oder "inbound_receiving"
  • active (optional, boolean): standardmäßig true
  • payload_format (optional): "json" oder "jsonlines". Standardmäßig "json"
  • sending_stream (optional, nur email_sending): "transactional" oder "bulk"
  • event_types (optional, nur email_sending): Array aus delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • domain_id (optional, nur email_sending): Domain-ID, auf die dieser Webhook beschränkt werden soll
  • inbound_inbox_id (optional, nur inbound_receiving): ID des Posteingangs für eingehende E-Mails, mit dem der Webhook verknüpft ist; weglassen, um ihn auf alle Posteingänge des Kontos anzuwenden

update-webhook

Änderbare Felder eines Webhooks aktualisieren. webhook_type, sending_stream und domain_id können nach der Erstellung nicht geändert werden — erstellen Sie den Webhook neu, wenn Sie diese ändern müssen.

Parameter:

  • webhook_id (erforderlich): ID des zu aktualisierenden Webhooks
  • url (optional): Neue Webhook-URL
  • active (optional, boolean): Webhook aktivieren oder deaktivieren
  • payload_format (optional): "json" oder "jsonlines"
  • event_types (optional, nur email_sending): Array aus delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • inbound_inbox_id (optional, nur inbound_receiving): ID des Posteingangs für eingehende E-Mails, mit dem der Webhook verknüpft ist

delete-webhook

Einen Webhook anhand seiner ID dauerhaft löschen. Gibt den gelöschten Webhook-Datensatz zurück.

Parameter:

  • webhook_id (erforderlich): ID des zu löschenden Webhooks

get-contact

Einen Kontakt anhand seiner ID oder E-Mail-Adresse abrufen. Gibt den vollständigen Kontaktdatensatz zurück (Listenmitgliedschaften, Status, benutzerdefinierte Felder).

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail-Adresse

create-contact

Einen neuen Kontakt erstellen.

Parameter:

  • email (erforderlich): E-Mail-Adresse
  • fields (optional): Werte benutzerdefinierter Felder, zugeordnet über Merge-Tags (z. B. first_name). Werte als Zeichenfolge, Zahl oder Boolean
  • list_ids (optional): IDs der Kontaktlisten, für die dieser Kontakt angemeldet werden soll
  • unsubscribed (optional, boolean): Kontakt mit dem Status unsubscribed erstellen

update-contact

Einen bestehenden Kontakt aktualisieren, der anhand seiner ID oder E-Mail-Adresse identifiziert wird. list_ids ersetzt die gesamte Mitgliedschaftsliste des Kontakts; list_ids_included/list_ids_excluded fügen Einträge hinzu oder entfernen sie, ohne den Rest zu ändern.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail-Adresse
  • email (optional): Neue E-Mail-Adresse
  • fields (optional): Werte benutzerdefinierter Felder, zugeordnet über Merge-Tags
  • list_ids (optional): Mitgliedschaftsliste durch genau diese Liste ersetzen
  • list_ids_included (optional): Hinzuzufügende Listen-IDs (ergänzend)
  • list_ids_excluded (optional): Zu entfernende Listen-IDs
  • unsubscribed (optional, boolean): Auf unsubscribed (true) oder subscribed (false) setzen

delete-contact

Einen Kontakt anhand seiner ID oder E-Mail-Adresse dauerhaft löschen. Gibt den gelöschten Kontaktdatensatz zurück, wenn die API einen solchen bereitstellt; andernfalls wird eine Bestätigungs-Payload zurückgegeben.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail-Adresse

create-contact-event

Ein Kontakt-Ereignis für einen Kontakt (anhand seiner ID oder E-Mail-Adresse) erfassen. Wird zum Auslösen von Automatisierungen für Kontaktlisten verwendet.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail-Adresse
  • name (erforderlich): Ereignisname (entspricht den Automatisierungsauslösern)
  • params (erforderlich): Objekt mit beliebigen Schlüssel-Wert-Paaren. Werte können Zeichenfolgen, Zahlen, Booleans oder null sein

list-contact-lists

Alle Kontaktlisten des Kontos auflisten.

Parameter:

  • search (optional): Kontaktlisten nach Namen filtern (Groß-/Kleinschreibung wird ignoriert), z. B. news

get-contact-list

Eine Kontaktliste anhand ihrer ID abrufen.

Parameter:

  • list_id (erforderlich): ID der abzurufenden Kontaktliste

create-contact-list

Eine neue Kontaktliste erstellen.

Parameter:

  • name (erforderlich): Name der neuen Liste

update-contact-list

Eine bestehende Kontaktliste umbenennen.

Parameter:

  • list_id (erforderlich): ID der Kontaktliste
  • name (erforderlich): Neuer Name der Liste

delete-contact-list

Eine Kontaktliste anhand ihrer ID dauerhaft löschen.

Parameter:

  • list_id (erforderlich): ID der zu löschenden Kontaktliste

list-contact-fields

Alle Definitionen der Kontaktfelder des Kontos auflisten.

Parameter:

  • Keine Parameter erforderlich

get-contact-field

Eine Definition eines Kontaktfelds anhand ihrer ID abrufen.

Parameter:

  • field_id (erforderlich): ID des Kontaktfelds

create-contact-field

Eine neue Definition eines Kontaktfelds erstellen. merge_tag muss innerhalb des Kontos eindeutig sein und wird als Platzhaltername in Vorlagenvariablen verwendet.

Parameter:

  • name (erforderlich): Anzeigename (z. B. "First Name")
  • merge_tag (erforderlich): Eindeutiger Platzhaltername (z. B. first_name)
  • data_type (erforderlich): Einer von text, number, boolean, date

update-contact-field

Eine Definition eines Kontaktfelds aktualisieren. Eine beliebige Kombination aus name, merge_tag und data_type kann geändert werden.

Parameter:

  • field_id (erforderlich): ID des Kontaktfelds
  • name (optional): Neuer Anzeigename
  • merge_tag (optional): Neuer Merge-Tag (muss eindeutig bleiben)
  • data_type (optional): Einer von text, number, boolean, date

delete-contact-field

Eine Definition eines Kontaktfelds anhand ihrer ID dauerhaft löschen.

Parameter:

  • field_id (erforderlich): ID des zu löschenden Kontaktfelds

create-contact-import

Kontakte gesammelt importieren. Gibt einen Importauftrag-Datensatz zurück; fragen Sie dessen Status mit get-contact-import ab.

Parameter:

  • contacts (erforderlich): Array mit Kontakteinträgen. Jeder Eintrag benötigt:
    • email (erforderlich): E-Mail-Adresse des Kontakts
    • fields (optional): Werte benutzerdefinierter Felder, zugeordnet über Merge-Tags (Werte als Zeichenfolgen oder Zahlen)
    • list_ids_included (optional): Listen-IDs, zu denen der Kontakt hinzugefügt werden soll
    • list_ids_excluded (optional): Listen-IDs, aus denen der Kontakt entfernt werden soll

get-contact-import

Den Status eines Kontaktimportauftrags (created/started/finished/failed) mit der Anzahl erstellter, aktualisierter und über dem Limit liegender Kontakte abrufen.

Parameter:

  • import_id (erforderlich): ID des Kontaktimportauftrags

create-contact-export

Kontakte exportieren, die einer Reihe von UND-verknüpften Filtern entsprechen. Gibt einen Exportauftrag-Datensatz zurück; fragen Sie den Status mit get-contact-export ab, um die Download-URL abzurufen, sobald status finished ist.

Parameter:

  • filters (erforderlich): Array von Filterobjekten. Jedes enthält:
    • name (erforderlich): Feld, nach dem gefiltert werden soll (list_id, subscription_status, email usw.)
    • operator (erforderlich): Einer der Werte equal, not_equal, contains, not_contains, is_empty, is_not_empty
    • value (erforderlich): Vergleichswert (String, Zahl, Boolean oder Array)

get-contact-export

Ruft den Status eines Kontakt-Exportauftrags ab. Sobald status den Wert finished hat, enthält das Feld url den CSV-Download-Link.

Parameter:

  • export_id (erforderlich): ID des Kontakt-Exportauftrags

list-email-campaigns

Listet die E-Mail-Kampagnen des Kontos in absteigender Reihenfolge nach Erstellungsdatum auf, mit Paginierung über Seitentoken. Optional kann mit search nach Namen gefiltert werden.

Parameter:

  • token (optional): Abzurufende Seitennummer (Paginierung über Seitentoken). Standardwert: 1
  • per_page (optional): Anzahl der Kampagnen pro Seite. Standardwert: 50, Maximum: 100
  • search (optional): Kampagnen nach Namen filtern (nicht zwischen Groß- und Kleinschreibung unterscheidende Teilübereinstimmung)

get-email-campaign

Ruft eine E-Mail-Kampagne anhand ihrer ID ab.

Parameter:

  • email_campaign_id (erforderlich): ID der E-Mail-Kampagne

create-email-campaign

Erstellt eine neue E-Mail-Kampagne. Die Kampagne wird immer im Status draft erstellt; Planen und Starten erfolgen über separate Tools (schedule-email-campaign, start-email-campaign).

Parameter:

  • name (erforderlich): Kampagnenname
  • domain_id (erforderlich): ID der verifizierten Domain für die Kampagne, wie von list-domains zurückgegeben
  • from_local_part (erforderlich): Lokaler Teil (vor dem @-Zeichen) der Absenderadresse
  • template_attributes (erforderlich): Inline-E-Mail-Vorlage. Enthält:
    • subject (erforderlich): Betreffzeile der E-Mail (max. 255 Zeichen). Unterstützt Merge-Tags, z. B. Hi {{first_name}}
    • body_html (optional): HTML-Textkörper (das Design). Erforderlich, bevor die Kampagne geplant oder gestartet werden kann. Fügen Sie einen Abmeldelink über ein Ankerelement ein, dessen href den Platzhalter __unsubscribe_url__ enthält
    • body_text (optional): Nur-Text-Alternative des E-Mail-Textkörpers
    • merge_tags (optional): Namen der Merge-Tags ohne weitere Angaben, auf die im Betreff/Textkörper verwiesen wird, z. B. ["first_name"]
  • from_display_name (optional): Anzeigename im Absender-Header
  • reply_to (optional): Bestandteile der Antwortadresse (display_name, local_part, domain)
  • delivery_mode (optional): rapid (so schnell wie möglich senden) oder gradual (auf delivery_options.emails_per_hour drosseln)
  • delivery_options (optional): Optionen zur Drosselung der Zustellung (emails_per_hour)
  • contact_list_ids (optional): IDs der Kontaktlisten, an die gesendet werden soll (werden als vollständige Menge der eingeschlossenen Listen behandelt)
  • contact_segment_ids (optional): IDs der Kontaktsegmente, an die gesendet werden soll (werden als vollständige Menge der eingeschlossenen Segmente behandelt)

update-email-campaign

Aktualisiert eine E-Mail-Kampagne im Status draft. Nur die angegebenen Felder werden geändert; die Vorlage wird direkt bearbeitet. Kampagnen in anderen Status können nicht aktualisiert werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zu aktualisierenden E-Mail-Kampagne
  • Alle anderen Parameter sind optional und identisch mit create-email-campaign (name, domain_id, from_local_part, from_display_name, reply_to, template_attributes, delivery_mode, delivery_options, contact_list_ids, contact_segment_ids)

delete-email-campaign

Löscht eine E-Mail-Kampagne anhand ihrer ID. Nur eine Kampagne im Status draft kann gelöscht werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zu löschenden E-Mail-Kampagne

start-email-campaign

Startet den Versand einer E-Mail-Kampagne im Status draft sofort. Nur Kampagnen im Status draft können gestartet werden; die Vorlage muss ein body_html-Design haben, und Zielgruppe sowie verifizierte Domain müssen festgelegt sein.

Parameter:

  • email_campaign_id (erforderlich): ID der zu startenden E-Mail-Kampagne

schedule-email-campaign

Plant den Versand einer E-Mail-Kampagne im Status draft zu einem zukünftigen Zeitpunkt. Nur Kampagnen im Status draft können geplant werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zu planenden E-Mail-Kampagne
  • datetime (erforderlich): Zeitpunkt für den Versand der Kampagne (ISO 8601). Muss in der Zukunft liegen und darf höchstens 1 Monat entfernt sein

cancel-email-campaign

Bricht eine E-Mail-Kampagne im Status scheduled ab und versetzt sie zurück in den Status draft. Nur Kampagnen im Status scheduled können abgebrochen werden.

Parameter:

  • email_campaign_id (erforderlich): ID der abzubrechenden E-Mail-Kampagne

terminate-email-campaign

Beendet eine E-Mail-Kampagne, die gerade versendet wird (started, queued oder paused), und bricht den laufenden Versand ab.

Parameter:

  • email_campaign_id (erforderlich): ID der zu beendenden E-Mail-Kampagne

reset-email-campaign

Setzt eine E-Mail-Kampagne im Status scheduled auf draft zurück. Nur Kampagnen im Status scheduled können zurückgesetzt werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zurückzusetzenden E-Mail-Kampagne

get-email-campaign-stats

Ruft aggregierte Leistungsstatistiken für eine E-Mail-Kampagne ab (Anzahlen und Raten für Zustellungen, Öffnungen, Klicks, Bounces, Spam-Beschwerden und Abmeldungen).

Parameter:

  • email_campaign_id (erforderlich): ID der E-Mail-Kampagne
  • start_date (optional): Beginn des Aggregationszeitraums (einschließlich), YYYY-MM-DD. Standardmäßig der Tag, an dem die Kampagne zuletzt gestartet wurde
  • end_date (optional): Ende des Aggregationszeitraums (einschließlich), YYYY-MM-DD. Standardmäßig das aktuelle Datum

list-accounts

Listet die Mailtrap-Konten auf, auf die das aktuelle API-Token zugreifen kann, einschließlich der Zugriffsebenen für jedes Konto. Funktioniert ohne MAILTRAP_ACCOUNT_ID; verwenden Sie es daher, um Ihre Konto-ID zu ermitteln.

Parameter:

  • Keine Parameter erforderlich

get-billing-usage

Ruft die Nutzung im aktuellen Abrechnungszeitraum für das Konto ab: Versand- und Testtarife, Limits und aktuelle Zählerstände.

Parameter:

  • Keine Parameter erforderlich

list-account-accesses

Listet die Kontozugriffe (Benutzer, Einladungen, API-Tokens) für das Konto auf. Optionale Filter schränken das Ergebnis auf bestimmte Ressourcen ein. Erfordert Admin-/Inhaberberechtigungen für das Konto.

Parameter:

  • domain_uuids (optional): Nach Domain-UUIDs filtern (Array von Strings)
  • inbox_ids (optional): Nach Sandbox-IDs filtern (Array von Strings)
  • project_ids (optional): Nach Sandbox-Projekt-IDs filtern (Array von Strings)

remove-account-access

Entfernt einen Kontozugriff anhand seiner ID. Bei User-Bezeichnern werden die Berechtigungen widerrufen; bei Invite- oder ApiToken-Bezeichnern wird der Bezeichner vollständig entfernt. Erfordert Admin-/Inhaberberechtigungen.

Parameter:

  • account_access_id (erforderlich): ID des zu entfernenden Zugriffseintrags

get-permission-resources

Ruft alle Ressourcen (Sandboxes, Projekte, Domains, Abrechnung, Konto) ab, für die das API-Token über Adminzugriff verfügt, nach Hierarchie verschachtelt.

Parameter:

  • Keine Parameter erforderlich

bulk-update-permissions

Erstellt, aktualisiert oder löscht Berechtigungen für einen einzelnen Kontozugriff in einem Schritt. Vorhandene (resource_type, resource_id)-Paare werden aktualisiert; neue werden erstellt. Setzen Sie destroy: true für einen Eintrag, um ihn zu entfernen.

Parameter:

  • account_access_id (erforderlich): ID des Ziel-Kontozugriffs
  • permissions (erforderlich): Array von Berechtigungseinträgen. Jeder enthält:
    • resource_id (erforderlich): Ressourcen-ID (Zahl oder String)
    • resource_type (erforderlich): Einer der Werte account, project, inbox, domain, billing
    • access_level (optional): admin/100 oder viewer/10
    • destroy (optional, Boolean): Bei true wird diese Berechtigung entfernt, anstatt erstellt oder aktualisiert zu werden

list-api-tokens

Listet alle API-Tokens für das Konto auf.

Parameter:

  • Keine Parameter erforderlich

create-api-token

Erstellt ein neues API-Token. Die Antwort enthält den geheimen Wert token — dies ist das einzige Mal, dass das vollständige Token zurückgegeben wird. Speichern Sie es daher sofort. Wenn Sie es verlieren, erstellen Sie das Token neu.

Parameter:

  • name (erforderlich): Anzeigename für das Token
  • expires_at (optional): Ablaufdatum des Tokens als ISO-8601-Datum und -Uhrzeit. Für den Serverstandard (1 Jahr) weglassen; für ein Token ohne Ablaufdatum explizit null übergeben. Werte in der Vergangenheit oder mehr als 5 Jahre in der Zukunft werden abgelehnt
  • resources (optional): Array von Ressourcenberechtigungen, auf die das Token beschränkt werden soll. Jeder Eintrag enthält:
    • resource_type (erforderlich): Einer der Werte account, project, inbox, domain, billing
    • resource_id (erforderlich): ID der Ressource
    • access_level (erforderlich): 100 (Admin) oder 10 (Betrachter)

get-api-token

Ruft ein API-Token anhand seiner ID ab. Gibt nur Metadaten zurück — der geheime Tokenwert wird hier nicht zurückgegeben (nur über create-api-token / reset-api-token).

Parameter:

  • api_token_id (erforderlich): ID des API-Tokens

reset-api-token

Setzt ein API-Token anhand seiner ID zurück (rotiert es). Die Antwort enthält den neuen geheimen Wert token — er wird nur bei diesem Aufruf zurückgegeben. Speichern Sie ihn daher sofort. Das vorherige Token wird ungültig.

Parameter:

  • api_token_id (erforderlich): ID des zurückzusetzenden API-Tokens
  • expires_at (optional): Ablaufdatum des neuen Tokens als ISO-8601-Datum und -Uhrzeit. Für den Serverstandard (1 Jahr) weglassen; für ein Token ohne Ablaufdatum explizit null übergeben. Werte in der Vergangenheit oder mehr als 5 Jahre in der Zukunft werden abgelehnt

delete-api-token

Löscht ein API-Token anhand seiner ID dauerhaft. Nach dem Löschen kann sich das Token nicht mehr authentifizieren.

Parameter:

  • api_token_id (erforderlich): ID des zu löschenden API-Tokens

list-sub-accounts

Listet die Unterkonten der Organisation auf. Erfordert die Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Berechtigungen zur Verwaltung von Unterkonten.

Parameter:

  • Keine Parameter erforderlich

create-sub-account

Erstellt ein neues Unterkonto in der Organisation. Erfordert die Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Berechtigungen zur Verwaltung von Unterkonten.

Parameter:

  • name (erforderlich): Anzeigename für das neue Unterkonto

delete-sub-account

Löscht ein Unterkonto anhand seiner ID dauerhaft und entfernt alle zugehörigen Daten. Wird das letzte Unterkonto gelöscht, wird die Organisation gelöscht; ein wiederholter Aufruf gibt 404 zurück. Eine gleichzeitige Löschung desselben Unterkontos gibt 409 zurück. Erfordert die Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Adminberechtigungen für die Organisation. Außerdem muss für die Organisation die Funktion Organization & Sub-accounts aktiviert sein (andernfalls 403).

Parameter:

  • sub_account_id (erforderlich): ID des zu löschenden Unterkontos

list-inbound-folders

Listet alle Eingangsordner im Konto auf. Gibt eine formatierte Zusammenfassung zurück.

Parameter:

  • Keine Parameter erforderlich

get-inbound-folder

Ruft einen einzelnen Eingangsordner anhand seiner ID ab. Gibt den vollständigen Ordnerdatensatz als JSON zurück.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners

create-inbound-folder

Erstellt einen neuen Eingangsordner.

Parameter:

  • name (erforderlich): Name des Ordners

update-inbound-folder

Benennt einen Eingangsordner um.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners
  • name (erforderlich): Neuer Ordnername

delete-inbound-folder

Löscht einen Eingangsordner dauerhaft zusammen mit allen zugehörigen Postfächern.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners

list-inbound-inboxes

Listet alle Postfächer in einem Eingangsordner auf. Gibt eine formatierte Zusammenfassung zurück.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners

get-inbound-inbox

Ruft ein einzelnes Eingangs-Postfach anhand seiner ID ab. Gibt den vollständigen Postfachdatensatz als JSON zurück.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners
  • inbox_id (erforderlich): ID des Postfachs

create-inbound-inbox

Erstellt ein neues Eingangs-Postfach in einem Ordner.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners
  • name (erforderlich): Name des Posteingangs
  • domain_id (optional): Einer benutzerdefinierten Domain zuordnen (Catch-all-Posteingang). Für einen von Mailtrap gehosteten Posteingang weglassen

update-inbound-inbox

Einen eingehenden Posteingang umbenennen.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners
  • inbox_id (erforderlich): ID des Posteingangs
  • name (erforderlich): Neuer Name des Posteingangs

delete-inbound-inbox

Einen eingehenden Posteingang dauerhaft löschen.

Parameter:

  • folder_id (erforderlich): ID des Eingangsordners
  • inbox_id (erforderlich): ID des Posteingangs

list-inbound-messages

Empfangene Nachrichten in einem eingehenden Posteingang auflisten (cursorbasierte Paginierung). Gibt eine formatierte Zusammenfassung mit einem Hinweis auf die nächste Seite zurück, wenn weitere Ergebnisse vorhanden sind.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • last_id (optional): Paginierungscursor aus dem last_id einer vorherigen Antwort

get-inbound-message

Eine einzelne eingehende Nachricht mit vollständigem Inhalt und Download-URLs für Anhänge abrufen. Gibt den vollständigen Nachrichtendatensatz als JSON zurück.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • message_id (erforderlich): ID der Nachricht

delete-inbound-message

Eine eingehende Nachricht dauerhaft löschen.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • message_id (erforderlich): ID der Nachricht

reply-to-inbound-message

Auf eine eingehende Nachricht antworten (wird an den ursprünglichen Absender gesendet). Sendet eine echte E-Mail. Adressen können als einfache E-Mail-Zeichenfolge oder als { email, name? } angegeben werden.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • message_id (erforderlich): ID der Nachricht, auf die geantwortet werden soll
  • text / html (mindestens eines empfohlen): Antworttext
  • from (optional): Absender. Für von Mailtrap gehostete Posteingänge abgelehnt; für Posteingänge mit benutzerdefinierter Domain erforderlich
  • cc / bcc / reply_to (optional): Zusätzliche Adressen
  • category (optional): Nachrichtenkategorie
  • attachments (optional): Array von { content (base64), filename, type?, disposition?, content_id? }
  • headers / custom_variables (optional): Objekte mit Zeichenfolgenwerten

reply-all-to-inbound-message

Auf eine eingehende Nachricht antworten und die anderen ursprünglichen Empfänger in Kopie setzen. Sendet eine echte E-Mail. Dieselben Parameter wie bei reply-to-inbound-message.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • message_id (erforderlich): ID der Nachricht, auf die geantwortet werden soll
  • Zusätzlich dieselben optionalen Sendefelder wie bei reply-to-inbound-message

forward-inbound-message

Eine eingehende Nachricht an neue Empfänger weiterleiten. Sendet eine echte E-Mail.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • message_id (erforderlich): ID der weiterzuleitenden Nachricht
  • to (erforderlich): Mindestens ein Empfänger (einfache E-Mail-Zeichenfolge oder { email, name? }, oder ein Array)
  • Zusätzlich dieselben optionalen Sendefelder wie bei reply-to-inbound-message

list-inbound-threads

Konversationsthreads in einem eingehenden Posteingang auflisten (cursorbasierte Paginierung), optional gefiltert nach search. Gibt eine formatierte Zusammenfassung mit einem Hinweis auf die nächste Seite zurück, wenn weitere Ergebnisse vorhanden sind.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • last_id (optional): Paginierungscursor aus dem last_id einer vorherigen Antwort
  • search (optional): Groß-/Kleinschreibung ignorierender Text, der mit dem Betreff des Threads sowie den Absender-, Empfänger-, CC- und BCC-Adressen seiner Nachrichten abgeglichen wird. Bei der Paginierung denselben Wert übergeben

get-inbound-thread

Einen einzelnen eingehenden Thread mit eingebetteten Nachrichten abrufen (älteste zuerst). Gibt den vollständigen Thread-Datensatz als JSON zurück.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • thread_id (erforderlich): ID des Threads

delete-inbound-thread

Einen eingehenden Thread dauerhaft löschen.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • thread_id (erforderlich): ID des Threads

list-inbound-forward-rules

Die Weiterleitungsregeln eines eingehenden Posteingangs auflisten. Gibt eine formatierte Zusammenfassung zurück.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs

get-inbound-forward-rule

Eine einzelne eingehende Weiterleitungsregel anhand ihrer ID abrufen. Gibt den vollständigen Regeldatensatz einschließlich Bedingungen und Zielen als JSON zurück.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • forward_rule_id (erforderlich): ID der Weiterleitungsregel

create-inbound-forward-rule

Eine Weiterleitungsregel für einen eingehenden Posteingang erstellen. Empfangene Nachrichten, die alle Bedingungen erfüllen, werden an die Ziele der Regel weitergeleitet.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • name (erforderlich): Regelname, innerhalb des Posteingangs eindeutig
  • conditions (optional): Array von { match_type, operator, value?, header_key? }. match_type ist sender, recipient oder header; operator ist equal, not_equal, contains, starts_with, ends_with, empty oder not_empty (empty/not_empty nur für header und ohne value); header_key ist für header erforderlich. Weglassen oder [] übergeben, um alle Nachrichten abzugleichen
  • destinations (optional): Array von { email }, an die passende Nachrichten weitergeleitet werden

update-inbound-forward-rule

Eine eingehende Weiterleitungsregel aktualisieren. Nur die angegebenen Felder werden geändert; ein angegebenes Array von conditions oder destinations ersetzt die gesamte Menge.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • forward_rule_id (erforderlich): ID der Weiterleitungsregel
  • name (optional): Neuer Regelname
  • conditions (optional): Ersatz für die Bedingungsmenge (gleiche Struktur wie beim Erstellen); [] entfernt alle Bedingungen, sodass die Regel alle Nachrichten abgleicht
  • destinations (optional): Ersatz für die Zielmenge; [] entfernt alle Ziele

delete-inbound-forward-rule

Eine eingehende Weiterleitungsregel dauerhaft löschen.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • forward_rule_id (erforderlich): ID der Weiterleitungsregel

Entwicklung

  1. Repository klonen:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. Abhängigkeiten installieren:
npm install

Konfiguration mit Claude Desktop oder Cursor

[!TIP] Den Speicherort der Konfigurationsdatei findest du im Abschnitt Einrichtung.

Füge die folgende Konfiguration hinzu:

{
  "mcpServers": {
    "mailtrap": {
      "command": "node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
      }
    }
  }
}

Wenn du asdf zur Verwaltung von Node.js verwendest, solltest du den absoluten Pfad zur ausführbaren Datei angeben:

(Beispiel für Mac)

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "22.14.0",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
      }
    }
  }
}

VS Code

[!TIP] Den Speicherort der Konfigurationsdatei findest du im Abschnitt Einrichtung.

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "node",
        "args": ["/path/to/mailtrap-mcp/dist/index.js"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "your_sender@example.com",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
        }
      }
    }
  }
}

Testen

Tools mit echtem Mailtrap testen

Es gibt zwei Möglichkeiten, ein Tool durchgängig mit einem echten Mailtrap-Konto zu testen: die Browseroberfläche des MCP Inspector zur interaktiven Erkundung oder dessen CLI-Modus für einzelne Aufrufe über die Shell.

In beiden Fällen muss das Bundle zuerst erstellt werden:

npm run build

und MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID müssen in deiner Shell exportiert sein (das Skript mcp:cli übergibt beide an den gestarteten Server).

Browseroberfläche

npm run dev

Der Inspector gibt eine URL wie http://localhost:6274 aus. Öffne sie, wechsle zum Tab Tools, wähle ein Tool aus (z. B. get-template), gib die Parameter als JSON ein und klicke auf Run. Die Mailtrap-Antwort wird im Bereich darunter angezeigt.

CLI

Für einzelne Aufrufe ohne Benutzeroberfläche verwende npm run mcp:cli. Übergib die CLI-Flags des Inspectors nach --, damit npm sie unverändert weiterleitet:

# List all tools
npm run mcp:cli -- --method tools/list

# Call a tool — flags after the `--`
npm run mcp:cli -- \
  --method tools/call \
  --tool-name get-template \
  --tool-arg template_id=12345

# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
  --method tools/call \
  --tool-name send-domain-setup-instructions \
  --tool-arg domain_id=3938 \
  --tool-arg email=devops@example.com

MCPB-Server ausführen

# Run the MCPB server directly
node dist/mcpb-server.js

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] Für die Entwicklung mit dem MCP Inspector:

npm run dev:mcpb

Fehlerbehandlung

Dieser Server verwendet eine strukturierte Fehlerbehandlung, die den MCP-Konventionen entspricht:

  • VALIDATION_ERROR: Fehler bei der Eingabevalidierung
  • CONFIGURATION_ERROR: Fehlende oder ungültige Konfiguration
  • EXECUTION_ERROR: Laufzeitfehler
  • TIMEOUT: Zeitüberschreitung bei Vorgängen (standardmäßig 30 Sekunden)

Fehler enthalten umsetzbare Hinweise und werden in strukturierter Form protokolliert.

Sicherheit

  • Eingaben werden mithilfe von Zod-Schemas validiert
  • Umgebungsvariablen werden sicher verarbeitet
  • Vorgänge sind durch eine Zeitüberschreitung geschützt (30 Sekunden)
  • Vertrauliche Details werden in der Fehlerausgabe bereinigt

Protokollierung

Strukturierte JSON-Protokolle mit den Stufen INFO, WARN, ERROR, DEBUG.

Aktiviere die Debug-Protokollierung, indem du DEBUG=true setzt.

# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js

Wichtig: Der Server schreibt Protokolle nach stderr, damit stdout für JSON-RPC-Frames reserviert bleibt. So werden JSON-Parsing-Fehler durch vermischte Protokolleinträge verhindert.

Beispiel für eine Protokollanalyse mit jq:

# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'

# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'

Fehlerbehebung

Häufige Probleme:

  1. API-Token fehlt: Stelle sicher, dass MAILTRAP_API_TOKEN gesetzt ist
  2. Sandbox funktioniert nicht: Übergib sandbox_id im Tool-Aufruf (oder das veraltete test_inbox_id bei den Tools zum Senden, Auflisten und Anzeigen von Nachrichten) oder setze die Umgebungsvariable MAILTRAP_SANDBOX_ID
  3. Zeitüberschreitungsfehler: Überprüfe die Netzwerkverbindung und den Status der Mailtrap-API
  4. Validierungsfehler: Stelle sicher, dass alle erforderlichen Felder angegeben sind

Mitwirken

Fehlerberichte und Pull Requests sind auf GitHub willkommen. Dieses Projekt soll ein sicherer und einladender Ort für Zusammenarbeit sein. Von Mitwirkenden wird erwartet, dass sie sich an den Verhaltenskodex halten.

Lizenz

Das Paket ist als Open Source unter den Bedingungen der MIT-Lizenz verfügbar.

Verhaltenskodex

Von allen, die mit den Codebasen, Issue-Trackern, Chaträumen und Mailinglisten des Mailtrap-Projekts interagieren, wird erwartet, dass sie den Verhaltenskodex befolgen.