Mail-API · by WebXIO

Ein Request. Ihre Mail ist unterwegs.

SMTP-Relay nimmt die Mails Ihrer Anwendung per REST-API entgegen, füllt die Vorlage in der richtigen Sprache und stellt sie über Ihr eigenes Mailkonto zu: Microsoft 365, Google oder jeder SMTP-Server. Mit Warteschlange, Wiederholungen und Protokoll, betrieben von WebXIO in Europa.

admin.smtp.webxio.at — api/v1/send

Request

curl -X POST https://admin.smtp.webxio.at/api/v1/send \
  -H "Authorization: Bearer $SMTP_RELAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "anna@example.com",
    "templateId": 7,
    "language": "de-AT",
    "variables": { "firstName": "Anna" }
  }'

Antwort

HTTP/1.1 202 Accepted
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59

{ "id": 42, "status": "queued", "language": "de" }

SMTP-Relay in Zahlen

Endpunkt
POST /api/v1/send
Zustellversuche
bis zu 5
Sprachen je Vorlage
bis zu 50
Betrieb
Europa, selbst betrieben

01Ablauf

Vom Request bis ins Postfach.

Ihre Anwendung schickt einen Request, den Rest erledigt das Relay: prüfen, rendern, einreihen, zustellen.

  1. Ihre Anwendung

    Schickt Empfänger, Vorlage und Variablen als JSON, authentifiziert mit dem API-Key ihres Projekts.

    Bearer srk_…
  2. Prüfung

    Key, Rate-Limit und Inhalt werden geprüft. Sobald die Mail in der Warteschlange liegt, antwortet die API mit einer ID.

    202 Accepted
  3. Vorlage

    Die Vorlage wird in der passenden Sprache gerendert: genau diese, dann die Basissprache, dann Englisch, dann Deutsch.

    Handlebars
  4. Warteschlange

    Bis zu 5 Versuche mit wachsenden Pausen. Dauerhafte Fehler wie ein unbekannter Empfänger werden nicht wiederholt.

    BullMQ · Valkey
  5. Ihr Mailkonto

    Versendet wird über das SMTP-Konto Ihres Projekts: Microsoft 365, Google oder jeder andere Server, auf Wunsch per SSL, TLS oder STARTTLS.

    SMTP
  6. Postfach

    Der Status wechselt auf „sent“, mit Message-ID und Zeitpunkt. Abrufbar per API und im Protokoll.

    status: sent

Versendet wird über Ihr eigenes Konto: Absenderadresse, SPF und DKIM bleiben bei Ihrem Mailanbieter.

02Funktionen

Alles zwischen App und Postfach.

Was Ihre Anwendung sonst selbst bauen müsste, steckt im Relay und lässt sich im Admin-UI verwalten.

Vorlagen

Betreff, HTML und Text mit Platzhaltern, Bedingungen und Schleifen. Im Admin-UI mit visuellem Editor und Live-Vorschau.

  • Syntaxfehler fallen beim Speichern auf, nicht beim Versand
  • Werte werden im HTML automatisch escaped
  • Textversion mit einem Klick aus dem Inhalt
  • Handlebars
  • HTML + Text

Mehrsprachig

Bis zu 50 Übersetzungen pro Vorlage. Sie schicken die Sprache mit, das Relay wählt die passende Übersetzung.

  • Sprachcodes nach BCP 47, etwa de-AT
  • Fallback: genau, Basissprache, Englisch, Deutsch
  • Die Antwort nennt die verwendete Sprache
  • BCP 47
  • de-AT → de → en

Warteschlange & Wiederholungen

Jede Mail landet zuerst in der Warteschlange. Schlägt der Versand fehl, versucht es das Relay bis zu 5-mal.

  • Pausen: 30 s · 1 min · 2 min · 4 min
  • Dauerhafte Fehler (SMTP 5xx) werden nicht wiederholt
  • 503 statt stiller Verluste, wenn die Warteschlange ausfällt
  • BullMQ
  • Valkey

Eigene Mailkonten

Mehrere SMTP-Konten pro Projekt, eines davon als Standard. Pro Mail lässt sich mit accountId ein anderes wählen.

  • Verbindungstest direkt im Admin-UI
  • Verschlüsselung: keine, SSL, TLS oder STARTTLS
  • Zugangsdaten verschlüsselt gespeichert (AES-256-GCM)
  • Microsoft 365
  • Google
  • SMTP

API-Keys & Rate-Limit

Jedes Projekt bekommt eigene, benannte Keys, etwa für Produktion und Test. Widerrufen geht mit einem Klick.

  • Der Key wird nur einmal angezeigt, gespeichert wird nur sein Hash
  • Standard 60, höchstens 100 Mails pro Minute und Projekt
  • Bei Überschreitung 429 mit Retry-After
  • Bearer srk_…
  • 429 + Retry-After

Protokoll & Dashboard

Jede Mail mit Status, Versuchen und letztem Fehler, filterbar nach Projekt, Status und Freitext.

  • Zugestellt, fehlgeschlagen, Zustellrate, Warteschlange
  • Verlauf pro Tag über 7 bis 90 Tage
  • Aktivste Projekte und letzte Fehler auf einen Blick
  • queued
  • sending
  • sent
  • failed
In Planung

Noch nicht verfügbar, aber vorgesehen:

  • Anhänge
  • Webhooks
  • Bounce-Handling
  • DKIM / SPF
  • Öffnungs- und Klick-Tracking

03API

Ein Endpunkt. Kein SDK nötig.

Ein POST mit JSON genügt, aus jeder Sprache und jedem Framework. Den Status jeder Mail fragen Sie mit ihrer ID ab.

Zwei Wege zu senden

  1. Mit Vorlage

    templateId, variables und optional language. Inhalt und Übersetzungen pflegen Sie im Admin-UI, Ihr Code bleibt schlank.

  2. Ohne Vorlage

    subject plus html und/oder text direkt im Request, für Mails, deren Inhalt Ihre Anwendung selbst erzeugt.

Fehlercodes

400
Ungültiger Request, etwa Adresse oder Sprachcode
401
API-Key fehlt, ist ungültig oder widerrufen
422
Vorlage oder Mailkonto nicht verknüpft oder inaktiv, Rendern fehlgeschlagen
429
Rate-Limit erreicht, Retry-After beachten
503
Warteschlange nicht erreichbar, Mail nicht angenommen

Grenzen

Empfänger
bis zu 50 je to, cc und bcc
Request
bis zu 2 MB JSON
Betreff
bis zu 998 Zeichen
Rate-Limit
60 pro Minute, bis zu 100

Den API-Key nur serverseitig verwenden, nie im Browser.

Zustellung — Mail 42
  1. curl …/api/v1/messages/42
  2. queued id 42 · template 7 · de
  3. sending Versuch 1 von 5
  4. queued 421 try again later · neuer Versuch in 30 s
  5. sending Versuch 2 von 5
  6. sent 250 OK · messageId <5f1c…@example.com>
GET /api/v1/messages/42

Status abfragen

{
  "id": 42,
  "status": "sent",
  "attempts": 2,
  "language": "de",
  "messageId": "<5f1c…@example.com>",
  "sentAt": "2026-09-29T09:14:03.000Z",
  "error": null
}

04Betrieb

Keine Mail geht still verloren.

Das Relay ist auf Nachvollziehbarkeit gebaut: Jede angenommene Mail hat eine ID, einen Status und einen Verlauf.

Prinzipien

  1. Angenommen heißt eingereiht

    Die API antwortet erst, wenn die Mail sicher in der Warteschlange liegt. Sonst gibt es 503, und Ihre Anwendung weiß Bescheid.

  2. Zugangsdaten verschlüsselt

    SMTP-Passwörter liegen AES-256-GCM-verschlüsselt in der Datenbank, API-Keys nur als SHA-256-Hash.

  3. Getrennte Konten

    Jeder Benutzer sieht nur seine eigenen Mailkonten, Vorlagen und Projekte.

  4. Ihr Absender bleibt Ihrer

    Versendet wird über Ihr eigenes Mailkonto. Absenderadresse, Reputation, SPF und DKIM bleiben bei Ihrem Anbieter.

  5. Europäische Infrastruktur

    Betrieben von WebXIO auf eigener Infrastruktur in Europa, gebaut und ausgeliefert über das eigene GitLab.

  6. Selbst im Einsatz

    Das Relay verschickt seine eigenen Anmelde-Mails über sich selbst, ebenso die Kontaktformulare von webxio.at und dieser Seite.

Unter der Haube

Europa

Ein schlanker Stack aus erprobten, offenen Bausteinen.

API & Admin
admin.smtp.webxio.at
Backend
NestJS · PostgreSQL
Warteschlange
BullMQ · Valkey
Versand
Nodemailer · SMTP
Admin-UI
Vue · Deutsch & Englisch
Standort
Europa, selbst betrieben

05FAQ

Was es ist – und was nicht.

Ehrliche Antworten auf die häufigsten Fragen.

Ist SMTP-Relay ein SMTP-Server?

Nein. Es gibt keinen Port, an den sich Mailprogramme verbinden. Ihre Anwendung spricht eine HTTPS-API, das Relay versendet dann über ein SMTP-Konto.

Brauche ich ein eigenes Mailkonto?

Ja, versendet wird über ein SMTP-Konto, etwa Microsoft 365, Google Workspace oder das Ihres Hosters. Wenn Sie noch keines haben, wählen Sie im Formular „Beratung gewünscht“.

Kümmert sich das Relay um SPF, DKIM und DMARC?

Noch nicht. Die Einträge gehören zu Ihrer Domain und Ihrem Mailanbieter, der die Mails signiert. Eigene DKIM-Unterstützung ist in Planung.

Gibt es Anhänge, Webhooks oder Bounce-Handling?

Noch nicht. Alle drei sind in Planung, ebenso Öffnungs- und Klick-Tracking. Bis dahin fragen Sie den Zustellstatus per GET /api/v1/messages/:id ab.

Gibt es ein SDK?

Nicht nötig: Ein HTTP-Request genügt, aus jeder Sprache. Das Admin-UI zeigt für jedes Projekt einen fertigen curl-Aufruf.

Wie viel kann ich versenden?

Pro Projekt standardmäßig 60 Mails pro Minute, höchstens 100. Dazu kommen die Grenzen Ihres Mailanbieters: Microsoft 365 erlaubt zum Beispiel 30 pro Minute.

Eignet es sich für Newsletter?

Nein. Ohne Abmeldelinks und Bounce-Handling ist das Relay für Transaktions-Mails gedacht: Bestätigungen, Benachrichtigungen, Kontaktformulare.

Wie bekomme ich Zugang?

Über das Formular unten. Konten legt bei uns ein Mensch an, eine Selbstregistrierung gibt es nicht. Danach richten Sie Mailkonto, Vorlagen und Projekt im Admin-UI ein, auf Wunsch gemeinsam mit uns.

06Zugang

Zugang anfragen.

Konten legt bei uns ein Mensch an, kein Automat. Schreiben Sie kurz, wofür Sie das Relay brauchen.

So geht's weiter

  1. Sie beschreiben kurz Ihre Anwendung und Ihr Mailkonto.
  2. Wir melden uns und klären Umfang und Einrichtung.
  3. Sie bekommen einen Zugang zum Admin-UI und richten Mailkonto, Vorlagen und API-Key ein, auf Wunsch gemeinsam mit uns.

Optional, z. B. https://example.com

Über dieses Konto werden Ihre Mails verschickt.

Welche Anwendung, welche Mails? Mindestens 10 Zeichen.