Přeskočit na obsah

Migrace z EmailJS

Frontmail je navržený tak, aby přechod z EmailJS zabral pár minut: prohlížečové SDK má stejné signatury funkcí, REST API přijímá stejná pole a syntaxe šablon je u jednoduchých šablon kompatibilní.

1. Vytvořte organizaci a připojte službu

Sekce “1. Vytvořte organizaci a připojte službu”

Zaregistrujte se na app.frontmail.dev a připojte stejného e-mailového poskytovatele, kterého používáte v EmailJS (viz Služby). Pokud jste používali službu Gmail nebo Outlook, připojte ji znovu přes OAuth; u SMTP nebo API poskytovatelů zadejte stejné přihlašovací údaje.

2. Znovu vytvořte šablony

Sekce “2. Znovu vytvořte šablony”

Pro každou šablonu z EmailJS vytvořte šablonu ve Frontmailu. Zkopírujte předmět, To, From, Reply-To a obsah. Pak klikněte na Detect parameters a nastavte typy a povinnost parametrů – rozdíly najdete níže v části Syntaxe šablon.

3. Namapujte klíče a ID

Sekce “3. Namapujte klíče a ID”
EmailJS Frontmail Kde to najdete
Public Key (user_id) Public key pk_… Zabezpečení → Veřejný klíč
Private Key (accessToken) Private key sk_… – jen na serveru Zabezpečení → Privátní klíče (zobrazí se jen jednou)
Service ID ID služby svc_… E-mailové služby
Template ID ID šablony tpl_… Šablony
Domain allowlist Povolené weby (allowed origins) Zabezpečení → Povolené weby
reCAPTCHA Cloudflare Turnstile s vlastním bezplatným widgetem Klíče v Zabezpečení → Ochrana proti botům (Turnstile), v šabloně Nastavení → Ochrana → Vyžadovat CAPTCHA (Turnstile)
import emailjs from '@emailjs/browser';
import emailjs from '@frontmail/emailjs-compat';

Vaše volání emailjs.init(), emailjs.send() a emailjs.sendForm() fungují dál – změní se jen ID a klíč. Viz Kompatibilita s EmailJS.

Používáte skript z CDN? Nahraďte <script> od EmailJS kompatibilním buildem, který vystavuje stejný globální objekt emailjs, takže vaše volání zůstanou beze změny:

<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>

Připněte konkrétní verzi a ponechte atribut integrity – kde najdete hash novějších vydání, popisuje Připnutí verze.

Případně načtěte nativní SDK (@frontmail/browser, připnuté stejně) a přejmenujte volání emailjs. na frontmail. – argumenty jsou stejné, ale promise vrací status: 'queued' nebo 'held' místo 200.

Voláte REST API přímo? Změňte hostitele na https://api.frontmail.dev. Cesty /api/v1.0/email/send a /api/v1.0/email/send-form i pole v těle požadavku zůstávají stejné.

5. Turnstile místo reCAPTCHA

Sekce “5. Turnstile místo reCAPTCHA”

Pokud vaše šablony používaly reCAPTCHA, odstraňte widget reCAPTCHA a přidejte Turnstile. Stejně jako u reCAPTCHA použijete klíče z vlastního účtu: v Cloudflare si vytvořte bezplatný widget Turnstile, jeho klíče vložte do Zabezpečení → Ochrana proti botům (Turnstile) a klikněte na Zapnout CAPTCHA u všech šablon; nové šablony ho pak vyžadují automaticky. Widget s vaším site key dejte do formuláře – viz Turnstile. Pole g-recaptcha-response se nepoužívá.

6. Otestujte a přepněte

Sekce “6. Otestujte a přepněte”

Pošlete testovací e-mail z editoru šablony, nasaďte a sledujte Historii. Účet v EmailJS si nechte, dokud neuvidíte, že přes Frontmail prochází skutečný provoz.

7. Volitelně: přejděte na nativní SDK

Sekce “7. Volitelně: přejděte na nativní SDK”

@frontmail/browser nebo SDK pro váš framework vám dá typované parametry, stav held, getStatus() a typované chyby.

Frontmail používá Handlebars; EmailJS používá syntaxi podobnou Mustache. Běžné případy:

EmailJS Frontmail Poznámky
{{name}} {{name}} Stejné. Ve Frontmailu se vždy HTML-escapuje.
{{{html_content}}} {{html_content}} s parametrem typu html Trojité závorky ve Frontmailu escapování nevypínají; použijte sanitizovaný typ html.
Sekce ve stylu {{#if}} z Mustache {{#name}}…{{/name}} {{#if name}}…{{/if}} Použijte explicitní bloky Handlebars.
Invertovaná sekce Mustache {{^name}}…{{/name}} {{#unless name}}…{{/unless}}
Seznamy přes sekce {{#each items}}…{{/each}} s parametrem typu list Pro validaci definujte itemFields.
– {{formatDate}}, {{formatMoney}}, {{eq}}… Další helpery.

Výchozí hodnoty nastavené v polích šablony v EmailJS odpovídají ve Frontmailu hodnotě default daného parametru.

Věcné srovnání funkcí důležitých pro migraci, stav k září 2026. Ceny a limity obou služeb se v čase mění – než se rozhodnete, ověřte si je na stránkách jednotlivých poskytovatelů.

EmailJS Frontmail
Když se vyčerpá měsíční kvóta Požadavky se odmítají až do dalšího období nebo upgradu Zprávy se zadrží a odešlou automaticky po doplnění kreditů; volitelně overdraft a auto top-up
Předplacené kreditové balíčky s platností Nenabízí Balíčky 5k / 25k / 100k s platností 3–12 měsíců, v každém tarifu
Rate limit REST API 1 požadavek za sekundu 2–50 požadavků za sekundu podle tarifu, navíc /v1/send-batch
Jazyk šablon Proměnné s jednoduchými sekcemi Handlebars s podmínkami, cykly, helpery a typovanými, validovanými parametry
CAPTCHA reCAPTCHA v2 Cloudflare Turnstile, u všech šablon zapnutý jedním kliknutím
Failover poskytovatele Nenabízí Záložní služba pro každou šablonu, denní health-checky
Sledování doručení Nenabízí Delivered / bounced / complained / opened / clicked přes webhooky poskytovatele
Opakování a idempotence v SDK Nezdokumentováno Automatické opakování s idempotenčními klíči
SDK pro frameworky Browser SDK, React Native SDK Browser, React, React Native, Vue, Svelte, Node, kompatibilní s EmailJS

Pokud tu narazíte na neaktuální údaj, napište nám prosím na support@frontmail.dev a opravíme ho.