Mailtrap
offiziellIntegriert mit der Mailtrap Email API.
Was kann man mit Mailtrap MCP machen?
- Transaktions-E-Mails senden — Senden Sie eine E-Mail über
send-emailmit Inline-Inhalt oder einer Vorlage, einschließlich CC/BCC und benutzerdefinierten Variablen. - E-Mail-Vorlagen verwalten — Verwenden Sie
list-templates,create-template,update-templateoderdelete-template, um wiederverwendbare E-Mail-Designs zu pflegen. - Zustellungsprotokolle prüfen — Fragen Sie
list-email-logsmit Filtern wie Empfänger, Status oder Datum ab und rufen Sie dann Details mitget-email-log-messageab. - E-Mails in der Sandbox testen — Senden Sie an ein Testpostfach über
send-sandbox-emailund prüfen Sie dann Nachrichten mitget-sandbox-messagesundshow-sandbox-email-message. - Sendeleistung analysieren — Erhalten Sie Zustellungs-, Bounce- und Engagement-Raten über
get-sending-stats, optional aufgeschlüsselt nach Domain oder Kategorie. - Sendeinfrastruktur konfigurieren — Verwalten Sie
list-sending-domains, erstellen oder löschen Sie Domains und rufen Sie DNS-Einrichtungsanweisungen ab.
Dokumentation
MCP Mailtrap Server
Ein MCP-Server, der Werkzeuge zum Senden und Testen in der Sandbox über Mailtrap bereitstellt.
Voraussetzungen
Bevor Sie diesen MCP-Server verwenden, müssen Sie:
- Ein Mailtrap-Konto erstellen
- Ihre Domain verifizieren
- Ihr API-Token aus den Mailtrap-API-Einstellungen abrufen
- Ihre Kontonummer aus der Mailtrap-Kontoverwaltung abrufen
Erforderliche Umgebungsvariablen:
MAILTRAP_API_TOKEN– Erforderlich für alle FunktionenMAILTRAP_ACCOUNT_ID– Erforderlich für Vorlagen, Statistiken, E-Mail-Protokolle, Sandbox-Liste/-Anzeige und sendende Domains. Nur optional für die Sende-Werkzeuge (send-email, send-sandbox-email und die batch-send-* Werkzeuge).
Optional (können stattdessen als Tool-Parameter übergeben werden):
DEFAULT_FROM_EMAIL– Standard-Absender-E-Mail, wennfromnicht für send-email, send-sandbox-email oder die batch-send-* Werkzeuge bereitgestellt wird (dort füllt esbase.from). Ermöglicht das Wechseln des Absenders pro Aufruf über den Parameterfrom.MAILTRAP_SANDBOX_ID– Standard-Sandbox-ID für Sandbox-Werkzeuge, wennsandbox_idnicht bereitgestellt wird. Ermöglicht das Wechseln zwischen Sandboxes pro Aufruf über den Parametersandbox_id.MAILTRAP_TEST_INBOX_ID– Standard-Testinbox-ID für Sandbox-Werkzeuge, wenntest_inbox_idnicht bereitgestellt wird. Ermöglicht das Wechseln zwischen Inboxes pro Aufruf über den Parametertest_inbox_id. Legacy-Alias fürMAILTRAP_SANDBOX_ID, wird weiterhin als Fallback berücksichtigt.MAILTRAP_ORGANIZATION_ID– Erforderlich für Organisations-Werkzeuge (list-sub-accounts,create-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN– Organisationsbezogenes API-Token. Erforderlich für Organisations-Werkzeuge (getrennt vonMAILTRAP_API_TOKEN).
Schnellinstallation
Smithery CLI
Smithery ist ein Registry-Installer und Manager für MCP-Server, der mit allen KI-Clients funktioniert.
npx @smithery/cli install mailtrap
Smithery verwaltet automatisch die Client-Konfiguration und bietet einen interaktiven Einrichtungsprozess. Das ist der einfachste Weg, um mit MCP-Servern zu starten.
Einrichtung
Claude Desktop
Verwenden Sie MCPB, um den Mailtrap-Server zu installieren. Sie finden diese Dateien in den Releases.
Laden Sie die .MCPB-Datei herunter und öffnen Sie sie. Wenn Sie Claude Desktop haben, wird sie geöffnet und die Konfiguration vorgeschlagen.
Claude Desktop oder Cursor
Fügen Sie 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Wenn Sie asdf zur Verwaltung von Node.js verwenden, müssen Sie den absoluten Pfad zur ausführbaren Datei verwenden (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": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_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
Manuelles Ändern der Konfiguration
Führen Sie in der Befehlspalette aus: Preferences: Open User Settings (JSON)
Fügen Sie 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] Vergessen Sie nicht, Ihren MCP-Server neu zu starten, nachdem Sie den Abschnitt "env" geändert haben.
MCP Bundle (MCPB)
Zur einfachen Installation in Hosts, die MCP-Bundles unterstützen, können Sie 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
Dies erstellt mailtrap-mcp.mcpb unter Verwendung des Repositorys manifest.json und der Build-Artefakte in dist/.
Verwendung
Nach der Konfiguration können Sie den Agenten bitten, E-Mails zu senden und Vorlagen zu verwalten, zum Beispiel:
E-Mail-Sendeoperationen:
- "Sende eine E-Mail an john.doe@example.com mit dem Betreff 'Meeting Tomorrow' und einer freundlichen Erinnerung an unser bevorstehendes Meeting."
- "Sende eine E-Mail an sarah@example.com über das Projekt-Update 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 zu erhalten, wie unsere Willkommens-E-Mail aussieht."
E-Mail-Protokolle (Zustellung debuggen):
- "Liste meine letzten gesendeten E-Mail-Protokolle auf."
- "Zeige E-Mail-Protokolle für E-Mails, die an user@example.com gesendet wurden."
- "Hole die E-Mail-Protokollnachricht für ID abc-123-uuid, um den Zustellungsstatus zu prüfen."
Sendestatistiken:
- "Hole Sendestatistiken für Januar 2025."
- "Zeige Zustellungsraten aufgeschlüsselt nach Domain für den letzten Monat."
- "Was sind meine E-Mail-Statistiken nach Kategorie von 2025-01-01 bis 2025-01-31?"
Sandbox-Operationen:
- "Hole alle Nachrichten aus meiner Sandbox-Inbox."
- "Zeige mir die erste Seite der Sandbox-Nachrichten."
- "Suche nach Nachrichten, die 'test' in meiner Sandbox-Inbox enthalten."
- "Zeige mir die Details der Sandbox-Nachricht mit ID 5159037506."
Vorlagenoperationen:
- "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 ID 12345, um den Betreff in 'Updated Welcome Message' zu ändern."
- "Lösche die Vorlage mit ID 67890."
Sendedomains:
- "Liste meine Sendedomains auf."
- "Hole die Sendedomain mit ID 3938."
- "Erstelle eine Sendedomain für example.com."
- "Lösche Sendedomain 3938."
- "Hole Sendedomain 3938 mit DNS-Einrichtungsanweisungen."
Verfügbare Werkzeuge
send-email
Sendet 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? }(eine einfache E-Mail-Zeichenfolge wird zur Laufzeit ebenfalls akzeptiert). Wenn nicht angegeben, wirdDEFAULT_FROM_EMAILverwendet.to(optional): Array von Empfängern als{ email, name? }-Objekte (einfache E-Mail-Zeichenfolgen oder eine einzelne Nicht-Array-Adresse werden zur Laufzeit ebenfalls akzeptiert). Optional, wennccoderbccangegeben ist; mindestens eines vonto/cc/bccmuss einen Empfänger enthalten.cc(optional): Array von CC-Empfängern als{ email, name? }-Objekte (einfache E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).bcc(optional): Array von BCC-Empfängern als{ email, name? }-Objekte (einfache E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).subject(bedingt): Betreffzeile der E-Mail. Erforderlich für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.text(bedingt): Textkörper der E-Mail. Erforderlich (zusammen mit oder anstelle vonhtml) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.html(bedingt): HTML-Version des E-Mail-Körpers. Erforderlich (zusammen mit oder anstelle vontext) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.category(optional): E-Mail-Kategorie für Tracking und Analysen. Muss weggelassen werden, wenntemplate_uuidgesetzt ist.template_uuid(optional): Verwendung einer Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn gesetzt, müssensubject/text/html/categoryweggelassen werden (laut Mailtrap-API).template_variables(optional): Objekt von Variablen, die in die Vorlage eingesetzt werden, auf dietemplate_uuidverweist. Nur zusammen mittemplate_uuiderlaubt.
batch-send-transactional-email
Sendet einen Stapel transaktionaler E-Mails in einem Mailtrap-API-Aufruf (Standard-Sendestream). Gemeinsame Felder gehen auf base; Überschreibungen pro Empfänger gehen in requests[]. Jede Anfrage muss mindestens einen Empfänger über to, cc oder bcc enthalten. Gleiche Inline-vs.-Vorlagen-Ausschließlichkeit wie bei send-email – nach dem Zusammenführen von Basis- und Einzelanfrage geprüft.
Parameter:
base(optional): Objekt mit Feldern, die über den Stapel hinweg gemeinsam sind.from(optional): Absender als{ email, name? }(eine einfache E-Mail-Zeichenfolge wird zur Laufzeit ebenfalls akzeptiert). Fällt aufDEFAULT_FROM_EMAILzurück.reply_to(optional): Antwortadresse.subject/text/html/category(optional, Inline-Modus): Standardinhalt für jede Anfrage.template_uuid/template_variables(optional, Vorlagenmodus): Standardvorlage + Variablen. Gegenseitig ausschließend mit den Inline-Feldern.custom_variables(optional): Standard-Benutzerdefinierte Variablen (Zeichenfolgenwerte).headers(optional): Standard-Benutzerdefinierte Header.
requests(erforderlich): Nicht-leeres Array von Nachrichten pro Empfänger. Jeder Eintrag hat:to(optional): Array von Empfängern als{ email, name? }-Objekte (einfache E-Mail-Zeichenfolgen oder eine einzelne Nicht-Array-Adresse werden zur Laufzeit ebenfalls akzeptiert). Optional, wennccoderbccangegeben ist; mindestens eines vonto/cc/bccmuss einen Empfänger enthalten.cc,bcc,reply_to(optional).- Inline- (
subject/text/html/category) oder Vorlagen- (template_uuid/template_variables) Überschreibungen; jedes weggelassene Feld fällt auf den entsprechendenbase-Wert zurück. custom_variables,headers(optional).
batch-send-bulk-email
Sendet einen Stapel von Bulk-E-Mails über die Bulk-Stream-API von Mailtrap. Gleiche base + requests[]-Form, Validierung und Inline-vs.-Vorlagen-Regeln wie bei batch-send-transactional-email – der einzige Unterschied besteht darin, dass dieses Werkzeug den Aufruf über den Bulk-Endpunkt anstelle des transaktionalen Endpunkts leitet. Siehe die obigen Parameter.
list-email-logs
Listet gesendete E-Mail-Protokolle (Zustellungsverlauf) mit optionaler Paginierung und Filtern auf. Verwenden Sie dies, um Zustellungsprobleme aus der IDE zu debuggen.
Parameter:
search_after(optional): Paginierungscursor aus der vorherigen Antwortnext_page_cursorsent_after(optional): ISO-8601-Datum/-Uhrzeit; nur Protokolle, die nach dieser Zeit gesendet wurdensent_before(optional): ISO-8601-Datum/-Uhrzeit; nur Protokolle, die vor dieser Zeit gesendet wurdenfrom_email(optional): Nach Absender-E-Mail filtern; mitfrom_operatorverwenden (Standard: ci_equal)to_email(optional): Nach Empfänger-E-Mail filtern; mitto_operatorverwenden (Standard: ci_equal)status(optional): Nach Zustellungsstatus filtern: delivered, not_delivered, enqueued, opted_out; mitstatus_operatorverwenden (Standard: equal)subject(optional): Nach E-Mail-Betreff filtern; mitsubject_operatorverwenden (Standard: ci_contain). Verwenden Siesubject_operator: empty/not_empty, um nach Vorhandensein des Betreffs zu filtern.sending_domain_id(optional): Nach Sendedomain-ID (Zahl) filtern; mitsending_domain_id_operatorverwenden (Standard: equal)sending_stream(optional): Nach Stream filtern: transactional oder bulk; mitsending_stream_operatorverwenden (Standard: equal)events(optional): Nach Ereignistyp(en) filtern: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; mitevents_operatorverwenden (include_event / not_include_event)clicks_count/opens_count(optional): Nach Klick-/Öffnungsanzahl filtern; mit*_operatorverwenden: equal, greater_than, less_thanclient_ip/sending_ip(optional): Nach IP filtern; mit*_operatorverwenden: equal, not_equal, contain, not_containemail_service_provider_response(optional): Nach Anbieterantworttext filtern; mit*_operatorverwenden (ci_contain usw.)email_service_provider(optional): Nach Anbieter (exakt) filtern; mit*_operatorverwenden: equal, not_equalrecipient_mx(optional): Nach Empfänger-MX filtern; mitrecipient_mx_operatorverwenden (ci_contain usw.)category(optional): Nach E-Mail-Kategorie filtern; mitcategory_operatorverwenden: equal, not_equal
Alle Parameter sind optional.
get-email-log-message
Ruft eine einzelne E-Mail-Protokollnachricht per ID (UUID) ab: eine lesbare Zusammenfassung (Von, An, Betreff, Sendezeitpunkt, Status, Kategorie, Stream, Engagement, Zustellungskontext), gefolgt von der detaillierten Ereignishistorie. Optional können Sie mit include_content: true auch den Nachrichtentext (HTML und Klartext) laden und anzeigen, wenn Mailtrap eine rohe Nachrichten-URL bereitstellt.
Parameter:
message_id(erforderlich): UUID der E-Mail-Logmeldung (aus der Sendeantwort oder list-email-logs). Verwenden Sielist-email-logs, um Nachrichten-IDs zu finden.include_content(optional): Wenntrue, wird die rohe EML abgerufen (fallsraw_message_urlverfügbar ist) und geparste HTML- und Klartext-Body-Abschnitte angehängt, ähnlich wie bei show-sandbox-email-message.
get-sending-stats
E-Mail-Versandstatistiken abrufen (Zustellung, Bounce, Öffnungen, Klicks, Spam-Raten) für einen Datumsbereich. Optional nach Domain, Kategorie, E-Mail-Dienstanbieter oder Datum aufschlüsseln. Zustellraten prüfen, ohne den Editor zu verlassen.
Parameter:
start_date(erforderlich): Startdatum für den Statistikzeitraum (JJJJ-MM-TT)end_date(erforderlich): Enddatum für den Statistikzeitraum (JJJJ-MM-TT)breakdown(optional): Aufschlüsselung der Statistiken:aggregated(Standard),by_domain,by_category,by_email_service_provideroderby_datesending_domain_ids(optional): Ergebnisse auf diese Sende-Domain-IDs begrenzen (Array von Ganzzahlen)sending_streams(optional): Auftransactionalund/oderbulkbegrenzen (Array von Zeichenfolgen)categories(optional): Auf diese E-Mail-Kategorien begrenzen (Array von Zeichenfolgen)email_service_providers(optional): Auf diese Anbieter begrenzen, z. B. Google, Yahoo, Outlook (Array von Zeichenfolgen)
create-template
Erstellt eine neue E-Mail-Vorlage in Ihrem Mailtrap-Konto.
Parameter:
name(erforderlich): Name der Vorlagesubject(erforderlich): E-Mail-Betreffzeilehtml(odertextist erforderlich): HTML-Inhalt der Vorlagetext(oderhtmlist erforderlich): Klartextversion der Vorlagecategory(optional): Vorlagenkategorie (Standard: „Allgemein")
list-templates
Listet alle E-Mail-Vorlagen in Ihrem Mailtrap-Konto auf.
Parameter:
- Keine Parameter erforderlich
get-template
Ruft eine einzelne E-Mail-Vorlage anhand der ID ab, einschließlich Betreff, Kategorie und HTML/Text-Body.
Parameter:
template_id(erforderlich): ID der abzurufenden Vorlage
update-template
Aktualisiert eine vorhandene E-Mail-Vorlage.
Parameter:
template_id(erforderlich): ID der zu aktualisierenden Vorlagename(optional): Neuer Name für die Vorlagesubject(optional): Neue E-Mail-Betreffzeilehtml(optional): Neuer HTML-Inhalt der Vorlagetext(optional): Neue Klartextversion der Vorlagecategory(optional): Neue Kategorie für die Vorlage
[!NOTE] Beim Aufruf von update-template muss mindestens ein aktualisierbares Feld (Name, Betreff, HTML, Text oder Kategorie) angegeben werden, um eine Aktualisierung durchzuführen.
delete-template
Löscht eine vorhandene E-Mail-Vorlage.
Parameter:
template_id(erforderlich): ID der zu löschenden Vorlage
send-sandbox-email
Sendet eine E-Mail an Ihr Mailtrap-Testpostfach für Entwicklungs- und Testzwecke. Ideal zum Testen von E-Mail-Vorlagen, ohne E-Mails an echte Empfänger zu senden. Unterstützt dieselben zwei Modi wie send-email — Inline-Inhalt oder vorlagenbasiert (template_uuid).
Parameter:
test_inbox_id(optional): Mailtrap-Testpostfach-ID. Erforderlich, sofernMAILTRAP_TEST_INBOX_IDnicht gesetzt ist; pro Aufruf übergeben, um ein bestimmtes Postfach anzusprechen.from(optional): Absender als{ email, name? }(eine reine E-Mail-Zeichenfolge wird zur Laufzeit ebenfalls akzeptiert). Falls nicht angegeben, wirdDEFAULT_FROM_EMAILverwendet.to(optional): Array von Empfängern als{ email, name? }-Objekte (reine E-Mail-Zeichenfolgen im Array oder eine durch Kommas getrennte Zeichenfolge mit einfachen E-Mails werden zur Laufzeit ebenfalls akzeptiert). Optional, wennccoderbccangegeben ist; mindestens eines vonto/cc/bccmuss einen Empfänger enthalten.cc(optional): Array von CC-Empfängern als{ email, name? }-Objekte (reine E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).bcc(optional): Array von BCC-Empfängern als{ email, name? }-Objekte (reine E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).subject(bedingt): E-Mail-Betreffzeile. Erforderlich für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.text(bedingt): E-Mail-Textinhalt. Erforderlich (zusammen mit oder anstelle vonhtml) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.html(bedingt): HTML-Version des E-Mail-Bodys. Erforderlich (zusammen mit oder anstelle vontext) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.category(optional): E-Mail-Kategorie für die Verfolgung. Muss weggelassen werden, wenntemplate_uuidgesetzt ist.template_uuid(optional): Eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt verwenden. Wenn gesetzt, müssensubject/text/html/categoryweggelassen werden.template_variables(optional): Objekt mit Variablen, die in die vontemplate_uuidreferenzierte Vorlage eingesetzt werden. Nur zusammen mittemplate_uuidzulässig.
batch-send-sandbox-email
Sendet einen Stapel von E-Mails in einem API-Aufruf an Ihr Mailtrap-Testpostfach, ohne sie an echte Empfänger zuzustellen. Gleiche base + requests[]-Struktur, Validierung und Inline-gegen-Vorlage-Regeln wie batch-send-transactional-email — der Unterschied besteht darin, dass dieses Tool den Aufruf über den Sandbox-Endpunkt für ein einzelnes Testpostfach leitet.
Parameter:
sandbox_id(optional): Mailtrap-Sandbox-ID (Testpostfach-ID). Erforderlich, sofernMAILTRAP_SANDBOX_IDnicht gesetzt ist; pro Aufruf übergeben, um eine bestimmte Sandbox anzusprechen.base(optional),requests(erforderlich): Siehebatch-send-transactional-emailoben.
[!NOTE] Für Sandbox-Tools geben Sie
test_inbox_idim Tool-Aufruf an oder setzen Sie die UmgebungsvariableMAILTRAP_TEST_INBOX_ID. Sie können pro Aufruf zwischen Postfächern wechseln, indem Sietest_inbox_idübergeben. Tools, diesandbox_idverwenden, nutzen zuerstMAILTRAP_SANDBOX_ID.
get-sandbox-messages
Ruft eine Liste von Nachrichten aus Ihrem Mailtrap-Testpostfach ab. Nützlich, um zu prüfen, welche E-Mails während des Testens in Ihrer Sandbox empfangen wurden.
Parameter:
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): Suchabfrage zum Filtern von Nachrichten
[!NOTE] Alle Parameter sind optional. Wenn keine angegeben werden, wird die erste Seite der Nachrichten aus dem Postfach zurückgegeben. Verwenden Sie page für die klassische Paginierung, last_id für die cursor-basierte Paginierung oder search, um Nachrichten nach Inhalt zu filtern.
show-sandbox-email-message
Zeigt detaillierte Informationen und den Inhalt einer bestimmten E-Mail-Nachricht aus Ihrem Mailtrap-Testpostfach, einschließlich HTML- und Text-Body-Inhalt.
Parameter:
message_id(erforderlich): ID der abzurufenden Sandbox-E-Mail-Nachricht
[!NOTE] Verwenden Sie zuerst
get-sandbox-messages, um die Liste der Nachrichten und ihre IDs zu erhalten, und verwenden Sie dann dieses Tool, um den vollständigen Inhalt einer bestimmten Nachricht anzuzeigen.
get-sandbox-project
Ruft ein Sandbox-Projekt anhand der ID ab, einschließlich seiner Postfächer und E-Mail-Anzahlen.
Parameter:
project_id(erforderlich): ID des abzurufenden Projekts
update-sandbox-project
Benennt ein vorhandenes Sandbox-Projekt um.
Parameter:
project_id(erforderlich): ID des zu aktualisierenden Projektsname(erforderlich): Neuer Name für das Projekt (2–100 Zeichen)
list-sandboxes
Listet alle Sandboxes auf, die für das API-Token über alle Projekte hinweg zugänglich sind.
Parameter:
- Keine Parameter erforderlich
mark-sandbox-as-read
Markiert alle Nachrichten in einer Sandbox als gelesen.
Parameter:
sandbox_id(erforderlich): ID der Sandbox, auf die sich die Aktion bezieht
reset-sandbox-credentials
Setzt die SMTP-Anmeldedaten für eine Sandbox zurück. Gibt den neuen Benutzernamen/das neue Passwort zurück.
Parameter:
sandbox_id(erforderlich): ID der Sandbox, auf die sich die Aktion bezieht
enable-sandbox-email-address
Aktiviert die E-Mail-Empfangsadresse für eine Sandbox (aktiviert die Mailtrap-Adresse, die Nachrichten per SMTP an die Sandbox zustellt).
Parameter:
sandbox_id(erforderlich): ID der Sandbox, auf die sich die Aktion bezieht
reset-sandbox-email-address
Generiert eine neue E-Mail-Empfangsadresse für eine Sandbox.
Parameter:
sandbox_id(erforderlich): ID der Sandbox, auf die sich die Aktion bezieht
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. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der weiterzuleitenden Sandbox-Nachrichtemail(erforderlich): 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. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der zu aktualisierenden Sandbox-Nachrichtis_read(erforderlich):truemarkiert als gelesen,falsemarkiert als ungelesen
delete-sandbox-message
Löscht eine einzelne Sandbox-Nachricht.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der zu löschenden Sandbox-Nachricht
get-sandbox-message-spam-score
Ruft den SpamAssassin-Spam-Bericht für eine Sandbox-Nachricht ab (Punktzahl, Regeln, vollständiger Bericht). Eigenständige Alternative zu include_spam_report: true auf show-sandbox-email-message.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-html-analysis
Ruft den HTML-Analysebericht für eine Sandbox-Nachricht ab (Kompatibilitätsbewertungen für Clients, problematische Elemente). Eigenständige Alternative zu include_html_analysis: true auf show-sandbox-email-message.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-headers
Ruft die geparsten E-Mail-Header für eine Sandbox-Nachricht ab.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-html
Ruft den gerenderten HTML-Body einer Sandbox-Nachricht ab.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-text
Ruft den Klartext-Body einer Sandbox-Nachricht ab.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-raw
Ruft die rohe, MIME-formatierte Nachricht (Header + Body) für eine Sandbox-Nachricht ab.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-eml
Ruft die Nachricht als EML-Dateipayload ab (geeignet zum Anhängen an ein Ticket oder zum Importieren in einen anderen E-Mail-Client).
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-message-html-source
Ruft die ungerenderte HTML-Quelle einer Sandbox-Nachricht ab (HTML vor Mailtrap-seitigen Transformationen wie CID-Link-Umschreibungen).
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
list-sandbox-attachments
Listet alle Anhänge einer Sandbox-Nachricht auf (Dateiname, Inhaltstyp, Größe, Download-Pfad).
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht
get-sandbox-attachment
Ruft Metadaten und Download-URL für einen einzelnen Anhang ab.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt aufMAILTRAP_SANDBOX_IDzurück.message_id(erforderlich): ID der Sandbox-Nachricht, die den Anhang enthältattachment_id(erforderlich): ID des abzurufenden Anhangs
list-sending-domains
Listet sendende Domains und deren DNS-Verifizierungsstatus auf.
Parameter:
- Keine Parameter erforderlich
get-sending-domain
Ruft eine sendende Domain anhand ihrer ID ab und deren Verifizierungsstatus (einschließlich DNS-Einträgen). Optional DNS-Einrichtungsanweisungen einschließen, indem include_setup_instructions auf true gesetzt wird.
Parameter:
sending_domain_id(erforderlich): ID der sendenden Domaininclude_setup_instructions(optional): Wenntrue, DNS-Einrichtungsanweisungen an die Antwort anhängen. Standard:false
create-sending-domain
Erstellt eine neue sendende Domain. Nach der Erstellung DNS-Einträge hinzufügen, um die Domain zu verifizieren (verwende get-sending-domain mit include_setup_instructions: true, um die Einträge zu sehen).
Parameter:
domain_name(erforderlich): Domain-Name (z. B. example.com)
delete-sending-domain
Löscht eine sendende Domain.
Parameter:
sending_domain_id(erforderlich): ID der zu löschenden sendenden Domain
send-sending-domain-setup-instructions
Sendet DNS-Einrichtungsanweisungen für eine sendende Domain an eine angegebene Adresse. Nützlich, um DNS-Einträge an einen DevOps-Kollegen weiterzuleiten.
Parameter:
sending_domain_id(erforderlich): ID der sendenden Domainemail(erforderlich): E-Mail-Adresse, an die DNS-Einrichtungsanweisungen gesendet werden sollen
list-suppressions
Listet oder durchsucht Sperrungen (Hard Bounces, Spam-Beschwerden, Abmeldungen, manuelle Importe). Gibt bis zu 1000 Ergebnisse pro Aufruf zurück.
Parameter:
email(optional): E-Mail-Filter. Gibt nur Sperrungen zurück, die dieser Adresse entsprechen.
delete-suppression
Löscht eine Sperrung anhand ihrer ID. Mailtrap nimmt die Zustellung an diese E-Mail wieder auf, sofern sie nicht erneut gesperrt wird.
Parameter:
suppression_id(erforderlich): ID der zu löschenden Sperrung
list-webhooks
Listet alle für das Konto konfigurierten Webhooks auf. Gibt die vollständigen Webhook-Datensätze als JSON zurück.
Parameter:
- Keine Parameter erforderlich
get-webhook
Ruft einen einzelnen Webhook anhand seiner ID ab. Gibt den vollständigen Webhook-Datensatz als JSON zurück. Hinweis: signing_secret wird hier nicht zurückgegeben – sie ist nur in der Antwort von create-webhook verfügbar.
Parameter:
webhook_id(erforderlich): ID des abzurufenden Webhooks
create-webhook
Erstellt einen Webhook. Die Antwort enthält ein signing_secret zur Überprüfung von Webhook-Payload-Signaturen – dieses Geheimnis wird nur bei der Erstellung zurückgegeben, also speichere es jetzt. Falls du es verlierst, erstelle den Webhook neu.
Parameter:
url(erforderlich): URL, an die Mailtrap Webhook-Ereignisse per POST sendetwebhook_type(erforderlich):"email_sending","audit_log"oder"inbound_receiving"active(optional, boolesch): Standardmäßigtruepayload_format(optional):"json"oder"jsonlines". Standardmäßig"json"sending_stream(optional, nuremail_sending):"transactional"oder"bulk"event_types(optional, nuremail_sending): Array vondelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(optional, nuremail_sending): ID der sendenden Domain, auf die dieser Webhook begrenzt werden sollinbound_inbox_id(optional, nurinbound_receiving): ID des eingehenden Postfachs, mit dem der Webhook verknüpft ist; weglassen, um auf alle Postfächer im Konto anzuwenden
update-webhook
Aktualisiert die änderbaren Felder eines Webhooks. webhook_type, sending_stream und domain_id können nach der Erstellung nicht geändert werden – erstelle den Webhook neu, wenn du diese ändern musst.
Parameter:
webhook_id(erforderlich): ID des zu aktualisierenden Webhooksurl(optional): Neue Webhook-URLactive(optional, boolesch): Webhook aktivieren oder deaktivierenpayload_format(optional):"json"oder"jsonlines"event_types(optional, nuremail_sending): Array vondelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(optional, nurinbound_receiving): ID des eingehenden Postfachs, mit dem der Webhook verknüpft ist
delete-webhook
Löscht einen Webhook dauerhaft anhand seiner ID. Gibt den gelöschten Webhook-Datensatz zurück.
Parameter:
webhook_id(erforderlich): ID des zu löschenden Webhooks
get-contact
Ruft einen Kontakt anhand seiner ID oder E-Mail ab. Gibt den vollständigen Kontaktdatensatz zurück (Listenmitgliedschaften, Status, benutzerdefinierte Felder).
Parameter:
contact_identifier(erforderlich): Kontakt-ID oder E-Mail-Adresse
create-contact
Erstellt einen neuen Kontakt.
Parameter:
email(erforderlich): E-Mail-Adressefields(optional): Werte benutzerdefinierter Felder, Schlüssel nach Merge-Tag (z. B.first_name). Zeichenfolge, Zahl oder boolesche Wertelist_ids(optional): IDs von Kontaktlisten, denen dieser Kontakt abonniert werden sollunsubscribed(optional, boolesch): Kontakt im Statusunsubscribederstellen
update-contact
Aktualisiert einen vorhandenen Kontakt, der anhand von ID oder E-Mail identifiziert wird. list_ids ersetzt die vollständige Mitgliedschaftsmenge des Kontakts; list_ids_included/list_ids_excluded fügen hinzu/entfernen, ohne den Rest zu stören.
Parameter:
contact_identifier(erforderlich): Kontakt-ID oder E-Mailemail(optional): Neue E-Mail-Adressefields(optional): Werte benutzerdefinierter Felder, Schlüssel nach Merge-Taglist_ids(optional): Mitgliedschaftsmenge mit dieser exakten Liste ersetzenlist_ids_included(optional): Listen-IDs zum Hinzufügen (additiv)list_ids_excluded(optional): Listen-IDs zum Entfernenunsubscribed(optional, boolesch): Aufunsubscribed(true) odersubscribed(false) setzen
delete-contact
Löscht einen Kontakt dauerhaft anhand von ID oder E-Mail. Gibt den gelöschten Kontaktdatensatz zurück, wenn die API einen solchen antwortet; andernfalls ein Bestätigungs-Payload.
Parameter:
contact_identifier(erforderlich): Kontakt-ID oder E-Mail
create-contact-event
Zeichnet ein Kontaktereignis für einen Kontakt auf (per ID oder E-Mail). Wird verwendet, um Automatisierungen für Kontaktlisten auszulösen.
Parameter:
contact_identifier(erforderlich): Kontakt-ID oder E-Mailname(erforderlich): Ereignisname (entspricht Automatisierungsauslösern)params(erforderlich): Objekt aus beliebigen Schlüssel/Wert-Paaren. Werte können Zeichenfolge, Zahl, boolesch oder null sein
list-contact-lists
Listet alle Kontaktlisten für das Konto auf.
Parameter:
search(optional): Kontaktlisten nach Name filtern (Groß-/Kleinschreibung nicht beachtet), z. B.news
get-contact-list
Ruft eine Kontaktliste anhand ihrer ID ab.
Parameter:
list_id(erforderlich): ID der abzurufenden Kontaktliste
create-contact-list
Erstellt eine neue Kontaktliste.
Parameter:
name(erforderlich): Name für die neue Liste
update-contact-list
Benennt eine vorhandene Kontaktliste um.
Parameter:
list_id(erforderlich): ID der Kontaktlistename(erforderlich): Neuer Name für die Liste
delete-contact-list
Löscht eine Kontaktliste dauerhaft anhand ihrer ID.
Parameter:
list_id(erforderlich): ID der zu löschenden Kontaktliste
list-contact-fields
Listet alle Definitionen von Kontaktfeldern für das Konto auf.
Parameter:
- Keine Parameter erforderlich
get-contact-field
Ruft eine Kontaktfelddefinition anhand ihrer ID ab.
Parameter:
field_id(erforderlich): ID des Kontaktfelds
create-contact-field
Erstellt eine neue Kontaktfelddefinition. merge_tag muss innerhalb des Kontos eindeutig sein und wird als Platzhaltername in Vorlagenvariablen verwendet.
Parameter:
name(erforderlich): Anzeigename (z. B. „Vorname“)merge_tag(erforderlich): Eindeutiger Platzhaltername (z. B.first_name)data_type(erforderlich): Einer vontext,number,boolean,date
update-contact-field
Aktualisiert eine Kontaktfelddefinition. Jede Kombination aus name, merge_tag und data_type kann geändert werden.
Parameter:
field_id(erforderlich): ID des Kontaktfeldsname(optional): Neuer Anzeigenamemerge_tag(optional): Neues Merge-Tag (muss eindeutig bleiben)data_type(optional): Einer vontext,number,boolean,date
delete-contact-field
Löscht eine Kontaktfelddefinition dauerhaft anhand ihrer ID.
Parameter:
field_id(erforderlich): ID des zu löschenden Kontaktfelds
create-contact-import
Massimport von Kontakten. Gibt einen Importjob-Datensatz zurück; überwache seinen Status mit get-contact-import.
Parameter:
contacts(erforderlich): Array von Kontakteinträgen. Jeder Eintrag benötigt:email(erforderlich): E-Mail-Adresse des Kontaktsfields(optional): Werte benutzerdefinierter Felder, Schlüssel nach Merge-Tag (Zeichenfolge- oder Zahlenwerte)list_ids_included(optional): Listen-IDs, zu denen der Kontakt hinzugefügt werden solllist_ids_excluded(optional): Listen-IDs, aus denen der Kontakt entfernt werden soll
get-contact-import
Ruft den Status eines Kontaktimportjobs ab (created/started/finished/failed) mit created/updated/over-limit-Zählungen.
Parameter:
import_id(erforderlich): ID des Kontaktimportjobs
create-contact-export
Exportiert Kontakte, die einer Menge von UND-verknüpften Filtern entsprechen. Gibt einen Exportjob-Datensatz zurück; überwache den Status mit get-contact-export, um die Download-URL abzurufen, sobald status finished ist.
Parameter:
filters(erforderlich): Array von Filterobjekten. Jedes hat:name(erforderlich): Feld, nach dem gefiltert wird (list_id,subscription_status,email, usw.)operator(erforderlich): Einer vonequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(erforderlich): Vergleichswert (Zeichenfolge, Zahl, boolesch oder Array)
get-contact-export
Ruft den Status eines Kontaktexportjobs ab. Sobald status finished ist, enthält das Feld url den CSV-Download-Link.
Parameter:
export_id(erforderlich): ID des Kontaktexportjobs
list-accounts
Listet Mailtrap-Konten auf, auf die das aktuelle API-Token zugreifen kann, mit den Zugriffsrechten jedes Kontos.
Parameter:
- Keine Parameter erforderlich
get-billing-usage
Ruft die Nutzung des aktuellen Abrechnungszeitraums für das Konto ab: Sende- und Testpläne, Limits und aktuelle Zähler.
Parameter:
- Keine Parameter erforderlich
list-account-accesses
Listet Kontozugriffe (Benutzer, Einladungen, API-Token) für das Konto auf. Optionale Filter grenzen das Ergebnis auf bestimmte Ressourcen ein. Erfordert Administrator-/Eigentümerrechte für das Konto.
Parameter:
domain_uuids(optional): Nach sendenden Domain-UUIDs filtern (Array von Zeichenfolgen)inbox_ids(optional): Nach Sandbox-Postfach-IDs filtern (Array von Zeichenfolgen)project_ids(optional): Nach Sandbox-Projekt-IDs filtern (Array von Zeichenfolgen)
remove-account-access
Entfernt einen Kontozugriff anhand seiner ID. Für User-Angaben entzieht dies ihre Berechtigungen; für Invite- oder ApiToken-Angaben entfernt es die Angabe vollständig. Erfordert Administrator/Eigentümer.
Parameter:
account_access_id(erforderlich): ID des zu entfernenden Zugriffsdatensatzes
get-permission-resources
Ruft alle Ressourcen (Postfächer, Projekte, Domains, Abrechnung, Konto) ab, für die das API-Token Administratorzugriff hat, hierarchisch verschachtelt.
Parameter:
- Keine Parameter erforderlich
bulk-update-permissions
Massenhaft Erstellen, Aktualisieren oder Löschen von Berechtigungen für einen einzelnen Kontozugriff. Vorhandene (resource_type, resource_id)-Paare werden aktualisiert; neue werden erstellt. Setze destroy: true für einen Eintrag, um ihn zu entfernen.
Parameter:
account_access_id(erforderlich): Zugangs-ID des Zielkontospermissions(erforderlich): Array von Berechtigungseinträgen. Jeder hat:resource_id(erforderlich): Ressourcen-ID (Zahl oder Zeichenkette)resource_type(erforderlich): Einer vonaccount,project,inbox,domain,billingaccess_level(optional):admin/100oderviewer/10destroy(optional, boolesch): Wenn true, wird diese Berechtigung entfernt statt erstellt oder aktualisiert
list-api-tokens
Alle API-Tokens für das Konto auflisten.
Parameter:
- Keine Parameter erforderlich
create-api-token
Ein neues API-Token erstellen. Die Antwort enthält den geheimen token-Wert — dies ist der einzige Zeitpunkt, an dem das vollständige Token zurückgegeben wird. Speichern Sie es daher sofort. Wenn Sie es verlieren, müssen Sie das Token neu erstellen.
Parameter:
name(erforderlich): Anzeigename für das Tokenresources(optional): Array von Ressourcenberechtigungen, um das Token einzuschränken. Jeder Eintrag hat:resource_type(erforderlich): Einer vonaccount,project,inbox,domain,billingresource_id(erforderlich): ID der Ressourceaccess_level(erforderlich):100(administrator) oder10(betrachter)
get-api-token
Ein API-Token anhand der ID abrufen. Gibt nur Metadaten zurück — der geheime Token-Wert 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
Ein API-Token anhand der ID zurücksetzen (rotieren). Die Antwort enthält den neuen geheimen token-Wert — wird nur bei diesem Aufruf zurückgegeben, also sofort speichern. Das vorherige Token wird ungültig.
Parameter:
api_token_id(erforderlich): ID des zurückzusetzenden API-Tokens
delete-api-token
Ein API-Token anhand der ID dauerhaft löschen. Nach dem Löschen kann das Token nicht mehr zur Authentifizierung verwendet werden.
Parameter:
api_token_id(erforderlich): ID des zu löschenden API-Tokens
list-sub-accounts
Unterkonten in der Organisation auflisten. Erfordert die MAILTRAP_ORGANIZATION_ID-Umgebungsvariable und Berechtigungen für die Unterkontenverwaltung.
Parameter:
- Keine Parameter erforderlich
create-sub-account
Ein neues Unterkonto unter der Organisation erstellen. Erfordert die MAILTRAP_ORGANIZATION_ID-Umgebungsvariable und Berechtigungen für die Unterkontenverwaltung.
Parameter:
name(erforderlich): Anzeigename für das neue Unterkonto
list-inbound-folders
Alle eingehenden Ordner im Konto auflisten. Gibt eine formatierte Zusammenfassung zurück.
Parameter:
- Keine Parameter erforderlich
get-inbound-folder
Einen einzelnen eingehenden Ordner anhand der ID abrufen. Gibt den vollständigen Ordnerdatensatz als JSON zurück.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordners
create-inbound-folder
Einen neuen eingehenden Ordner erstellen.
Parameter:
name(erforderlich): Der Ordnername
update-inbound-folder
Einen eingehenden Ordner umbenennen.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordnersname(erforderlich): Der neue Ordnername
delete-inbound-folder
Einen eingehenden Ordner dauerhaft löschen, einschließlich aller seiner Postfächer.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordners
list-inbound-inboxes
Alle Postfächer in einem eingehenden Ordner auflisten. Gibt eine formatierte Zusammenfassung zurück.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordners
get-inbound-inbox
Ein einzelnes eingehendes Postfach anhand der ID abrufen. Gibt den vollständigen Postfachdatensatz als JSON zurück.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordnersinbox_id(erforderlich): ID des Postfachs
create-inbound-inbox
Ein neues eingehendes Postfach in einem Ordner erstellen.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordnersname(erforderlich): Der Postfachnamedomain_id(optional): An eine benutzerdefinierte Sendung-Domain anhängen (Catch-All-Postfach). Für ein von Mailtrap gehostetes Postfach weglassen
update-inbound-inbox
Ein eingehendes Postfach umbenennen.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordnersinbox_id(erforderlich): ID des Postfachsname(erforderlich): Der neue Postfachname
delete-inbound-inbox
Ein eingehendes Postfach dauerhaft löschen.
Parameter:
folder_id(erforderlich): ID des eingehenden Ordnersinbox_id(erforderlich): ID des Postfachs
list-inbound-messages
Empfangene Nachrichten in einem eingehenden Postfach auflisten (seitenweise). 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 Postfachslast_id(optional): Paginierungscursor aus demlast_ideiner vorherigen Antwort
get-inbound-message
Eine einzelne eingehende Nachricht mit ihrem vollständigen Inhalt und den Download-URLs für Anhänge abrufen. Gibt den vollständigen Nachrichtendatensatz als JSON zurück.
Parameter:
inbox_id(erforderlich): ID des Postfachsmessage_id(erforderlich): ID der Nachricht
delete-inbound-message
Eine eingehende Nachricht dauerhaft löschen.
Parameter:
inbox_id(erforderlich): ID des Postfachsmessage_id(erforderlich): ID der Nachricht
reply-to-inbound-message
Auf eine eingehende Nachricht antworten (sendet an den ursprünglichen Absender). Sendet eine echte E-Mail. Adressen akzeptieren eine reine E-Mail-Zeichenkette oder { email, name? }.
Parameter:
inbox_id(erforderlich): ID des Postfachsmessage_id(erforderlich): ID der Nachricht, auf die geantwortet wirdtext/html(mindestens eines empfohlen): Antworttextfrom(optional): Absender. Für von Mailtrap gehostete Postfächer abgelehnt; für benutzerdefinierte Domain-Postfächer erforderlichcc/bcc/reply_to(optional): Zusätzliche Adressencategory(optional): Nachrichtenkategorieattachments(optional): Array von{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(optional): Objekte mit Zeichenkettenwerten
reply-all-to-inbound-message
Auf eine eingehende Nachricht antworten und die anderen Empfänger des Originals in Kopie setzen. Sendet eine echte E-Mail. Gleiche Parameter wie reply-to-inbound-message.
Parameter:
inbox_id(erforderlich): ID des Postfachsmessage_id(erforderlich): ID der Nachricht, auf die geantwortet wird- Zusätzlich die gleichen 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 Postfachsmessage_id(erforderlich): ID der weiterzuleitenden Nachrichtto(erforderlich): Mindestens ein Empfänger (reine E-Mail-Zeichenkette oder{ email, name? }, oder ein Array)- Zusätzlich die gleichen optionalen Sendefelder wie bei
reply-to-inbound-message
list-inbound-threads
Unterhaltungsthreads in einem eingehenden Postfach auflisten (seitenweise). 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 Postfachslast_id(optional): Paginierungscursor aus demlast_ideiner vorherigen Antwort
get-inbound-thread
Einen einzelnen eingehenden Thread mit seinen eingebetteten Nachrichten (älteste zuerst) abrufen. Gibt den vollständigen Thread-Datensatz als JSON zurück.
Parameter:
inbox_id(erforderlich): ID des Postfachsthread_id(erforderlich): ID des Threads
delete-inbound-thread
Einen eingehenden Thread dauerhaft löschen.
Parameter:
inbox_id(erforderlich): ID des Postfachsthread_id(erforderlich): ID des Threads
Entwicklung
- Klonen Sie das Repository:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Abhängigkeiten installieren:
npm install
Konfiguration mit Claude Desktop oder Cursor
[!TIP] Informationen zum Speicherort der Konfigurationsdatei finden Sie im Abschnitt Einrichtung.
Fügen Sie 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Wenn Sie asdf zur Verwaltung von Node.js verwenden, sollten Sie 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": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] Informationen zum Speicherort der Konfigurationsdatei finden Sie 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
Tests
Tools gegen echte Mailtrap ausführen
Es gibt zwei Möglichkeiten, ein Tool Ende-zu-Ende gegen ein echtes Mailtrap-Konto zu testen: die MCP Inspector-Browseroberfläche für interaktives Erkunden oder ihre CLI-Modus für einmalige Aufrufe aus der Shell.
Beide erfordern, dass das Bundle zuerst erstellt wird:
npm run build
und MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID in Ihrer Shell exportiert werden (das mcp:cli-Skript leitet beide an den gestarteten Server weiter).
Browseroberfläche
npm run dev
Der Inspector gibt eine URL wie http://localhost:6274 aus. Öffnen Sie diese, wechseln Sie zum Tab Tools, wählen Sie ein Tool (z. B. get-template), füllen Sie die Parameter als JSON aus und klicken Sie auf Run. Die Mailtrap-Antwort erscheint im darunterliegenden Panel.
CLI
Für einmalige Aufrufe ohne die Oberfläche verwenden Sie npm run mcp:cli. Geben Sie die CLI-Flags des Inspectors nach -- an, 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-sending-domain-setup-instructions \
--tool-arg sending_domain_id=3938 \
--tool-arg email=devops@example.com
Den 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 gemäß den MCP-Konventionen:
VALIDATION_ERROR: EingabevalidierungsfehlerCONFIGURATION_ERROR: Fehlende oder ungültige KonfigurationEXECUTION_ERROR: LaufzeitfehlerTIMEOUT: Zeitüberschreitung bei Vorgängen (Standard: 30 Sekunden)
Fehler enthalten umsetzbare Meldungen und werden in strukturierter Form protokolliert.
Sicherheit
- Eingaben über Zod-Schemas validiert
- Umgebungsvariablen sicher verarbeitet
- Timeout-Schutz für Vorgänge (30 Sekunden)
- Sensible Details in Fehlerausgaben bereinigt
Protokollierung
Strukturierte JSON-Logs mit Ebenen: INFO, WARN, ERROR, DEBUG.
Aktivieren Sie Debug-Protokollierung durch Setzen von DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Wichtig: Der Server schreibt Logs nach stderr, damit stdout für JSON-RPC-Frames reserviert bleibt. Dies verhindert, dass Hosts aufgrund verschachtelter Logs JSON-Parsing-Fehler erhalten.
Beispiel für eine Log-Analyse 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:
- Fehlendes API-Token: Stellen Sie sicher, dass
MAILTRAP_API_TOKENgesetzt ist - Sandbox funktioniert nicht: Geben Sie
test_inbox_idim Tool-Aufruf an oder setzen Sie die UmgebungsvariableMAILTRAP_TEST_INBOX_ID - Timeout-Fehler: Überprüfen Sie die Netzwerkverbindung und den Status der Mailtrap-API
- Validierungsfehler: Stellen Sie sicher, dass alle erforderlichen Felder angegeben sind
Beitragen
Fehlerberichte und Pull Requests sind auf GitHub willkommen. Dieses Projekt soll ein sicherer, einladender Raum für Zusammenarbeit sein, und Mitwirkende werden gebeten, sich an den Verhaltenskodex zu halten.
Lizenz
Das Paket ist als Open Source unter den Bedingungen der MIT-Lizenz verfügbar.
Verhaltenskodex
Alle Personen, die mit den Codebasen, Issue-Trackern, Chatrooms und Mailinglisten des Mailtrap-Projekts interagieren, werden gebeten, den Verhaltenskodex zu befolgen.