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í.
Krok za krokem
Sekce “Krok za krokem”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) |
4. Změňte import
Sekce “4. Změňte import”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.
Syntaxe šablon
Sekce “Syntaxe šablon”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.
Srovnání
Sekce “Srovnání”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.