Umstieg von EmailJS
Frontmail ist so gebaut, dass der Umstieg von EmailJS nur Minuten dauert: Das Browser-SDK hat dieselben Funktionssignaturen, die REST-API akzeptiert dieselben Felder, und bei einfachen Vorlagen ist auch die Vorlagensyntax kompatibel.
Schritt für Schritt
Abschnitt betitelt „Schritt für Schritt“1. Organisation erstellen und E-Mail-Dienst verbinden
Abschnitt betitelt „1. Organisation erstellen und E-Mail-Dienst verbinden“Registrieren Sie sich auf app.frontmail.dev und verbinden Sie denselben E-Mail-Anbieter, den Sie in EmailJS nutzen (siehe E-Mail-Dienste). Wenn Sie einen Gmail- oder Outlook-Dienst verwendet haben, verbinden Sie ihn erneut per OAuth; bei SMTP- oder API-Anbietern tragen Sie dieselben Zugangsdaten ein.
2. Vorlagen neu anlegen
Abschnitt betitelt „2. Vorlagen neu anlegen“Legen Sie für jede EmailJS-Vorlage eine Vorlage in Frontmail an. Übernehmen Sie Betreff, To, From, Reply-To und den Inhalt. Klicken Sie dann auf Aus Vorlage erkennen und legen Sie Typen und Pflichtfelder fest – die Unterschiede beschreibt der Abschnitt Vorlagensyntax weiter unten.
3. Schlüssel und IDs zuordnen
Abschnitt betitelt „3. Schlüssel und IDs zuordnen“| EmailJS | Frontmail | Wo Sie es finden |
|---|---|---|
Public Key (user_id) |
Öffentlicher Schlüssel pk_… |
Sicherheit → Öffentlicher Schlüssel |
Private Key (accessToken) |
Privater Schlüssel sk_… – nur auf dem Server |
Sicherheit → Private Schlüssel (wird nur einmal angezeigt) |
| Service ID | Dienst-ID svc_… |
E-Mail-Dienste |
| Template ID | Vorlagen-ID tpl_… |
Vorlagen |
| Domain allowlist | Erlaubte Websites | Sicherheit → Erlaubte Websites |
| reCAPTCHA | Cloudflare Turnstile mit Ihrem eigenen kostenlosen Widget | Schlüssel unter Sicherheit → Bot-Schutz (Turnstile), pro Vorlage Einstellungen → Schutz → CAPTCHA verlangen (Turnstile) |
4. Import ändern
Abschnitt betitelt „4. Import ändern“import emailjs from '@emailjs/browser';import emailjs from '@frontmail/emailjs-compat';Ihre Aufrufe von emailjs.init(), emailjs.send() und emailjs.sendForm() funktionieren weiter –
es ändern sich nur die IDs und der Schlüssel. Siehe EmailJS-Kompatibilität.
Sie binden das Skript über ein CDN ein? Ersetzen Sie das <script> von EmailJS durch den
Compat-Build. Er stellt dasselbe globale Objekt emailjs bereit, Ihre Aufrufe bleiben also
unverändert:
<script src="https://cdn.jsdelivr.net/npm/@frontmail/emailjs-compat@0.1.0/dist/emailjs-compat.umd.js" integrity="sha384-RH+fuNzBqTKgxDJBHRmWfOn37fs33L+Or1ujDV7wThynx9FxD9uPptLu80LpCrEc" crossorigin="anonymous"></script>Legen Sie die genaue Version fest und behalten Sie das Attribut integrity bei – wo Sie den Hash
neuerer Releases finden, steht unter
Version festlegen.
Alternativ laden Sie das native SDK (@frontmail/browser, ebenfalls mit fester Version) und
benennen die Aufrufe emailjs. in frontmail. um – die Argumente sind dieselben, das Promise
liefert aber status: 'queued' oder 'held' statt 200.
Sie rufen die REST-API direkt auf? Ändern Sie den Host auf https://api.frontmail.dev. Die Pfade
/api/v1.0/email/send und /api/v1.0/email/send-form sowie die Felder im Body bleiben gleich.
5. Turnstile statt reCAPTCHA
Abschnitt betitelt „5. Turnstile statt reCAPTCHA“Wenn Ihre Vorlagen reCAPTCHA verwendet haben, entfernen Sie das reCAPTCHA-Widget und fügen Sie
Turnstile hinzu. Wie bei reCAPTCHA verwenden Sie Schlüssel aus Ihrem eigenen Konto: Erstellen Sie
in Cloudflare ein kostenloses Turnstile-Widget, tragen Sie dessen Schlüssel unter Sicherheit →
Bot-Schutz (Turnstile) ein und klicken Sie auf CAPTCHA für alle Vorlagen aktivieren; neue
Vorlagen verlangen es dann automatisch. Binden Sie das Widget mit Ihrem Site Key in das Formular
ein – siehe Turnstile. Das Feld g-recaptcha-response wird nicht
verwendet.
6. Testen und umschalten
Abschnitt betitelt „6. Testen und umschalten“Senden Sie einen Test aus dem Vorlagen-Editor, deployen Sie und behalten Sie den Verlauf im Blick. Behalten Sie Ihr EmailJS-Konto, bis Sie gesehen haben, dass echter Traffic über Frontmail läuft.
7. Optional: auf das native SDK umsteigen
Abschnitt betitelt „7. Optional: auf das native SDK umsteigen“@frontmail/browser oder ein Framework-SDK bietet Ihnen typisierte Parameter, den Status held,
getStatus() und typisierte Fehler.
Vorlagensyntax
Abschnitt betitelt „Vorlagensyntax“Frontmail verwendet Handlebars, EmailJS eine Mustache-ähnliche Syntax. Häufige Fälle:
| EmailJS | Frontmail | Hinweise |
|---|---|---|
{{name}} |
{{name}} |
Gleich. In Frontmail immer HTML-escaped. |
{{{html_content}}} |
{{html_content}} mit Parametertyp html |
Dreifache Klammern schalten das Escaping in Frontmail nicht ab; verwenden Sie den bereinigten Typ html. |
{{#if}}-artige Abschnitte aus Mustache {{#name}}…{{/name}} |
{{#if name}}…{{/if}} |
Verwenden Sie explizite Handlebars-Blöcke. |
Invertierter Mustache-Abschnitt {{^name}}…{{/name}} |
{{#unless name}}…{{/unless}} |
|
| Listen über Abschnitte | {{#each items}}…{{/each}} mit einem list-Parameter |
Definieren Sie itemFields für die Validierung. |
| – | {{formatDate}}, {{formatMoney}}, {{eq}} … |
Weitere Helper. |
Standardwerte aus den Vorlagenfeldern in EmailJS entsprechen in Frontmail dem default des
jeweiligen Parameters.
Vergleich
Abschnitt betitelt „Vergleich“Ein sachlicher Vergleich der für den Umstieg relevanten Funktionen, Stand September 2026. Preise und Limits beider Dienste ändern sich mit der Zeit – prüfen Sie vor Ihrer Entscheidung die Seiten der jeweiligen Anbieter.
| EmailJS | Frontmail | |
|---|---|---|
| Wenn das Monatskontingent aufgebraucht ist | Anfragen werden bis zum nächsten Zeitraum oder einem Upgrade abgelehnt | Nachrichten werden zurückgehalten und automatisch gesendet, sobald Credits hinzukommen; optional Überziehung und automatische Aufladung |
| Vorausbezahlte Credit-Pakete mit Gültigkeit | Nicht angeboten | Pakete mit 5k / 25k / 100k Credits, 3–12 Monate gültig, in jedem Tarif |
| Rate Limit der REST-API | 1 Anfrage pro Sekunde | 2–50 Anfragen pro Sekunde je nach Tarif, zusätzlich /v1/send-batch |
| Vorlagensprache | Variablen mit einfachen Abschnitten | Handlebars mit Bedingungen, Schleifen, Helpern und typisierten, validierten Parametern |
| CAPTCHA | reCAPTCHA v2 | Cloudflare Turnstile, mit einem Klick für alle Vorlagen aktiv |
| Failover beim Anbieter | Nicht angeboten | Ersatzdienst pro Vorlage, tägliche Health-Checks |
| Zustellverfolgung | Nicht angeboten | Delivered / bounced / complained / opened / clicked über die Webhooks des Anbieters |
| Wiederholungen und Idempotenz im SDK | Nicht dokumentiert | Automatische Wiederholungen mit Idempotency Keys |
| Framework-SDKs | Browser-SDK, React-Native-SDK | Browser, React, React Native, Vue, Svelte, Node, EmailJS-kompatibel |
Wenn Ihnen hier eine veraltete Angabe auffällt, schreiben Sie uns bitte an support@frontmail.dev – wir korrigieren sie.