E-maily pro frontendové vývojáře
Posílejte e-maily přímo z frontendu.Plaťte za špičky, ne celý rok.
Připojte poskytovatele, kterého už používáte, postavte HTML šablonu s typovanými parametry a zavolejte send() rovnou z prohlížeče. Když sezóna přeroste vaši kvótu, nic se nezahodí – zprávy počkají v hold frontě a odejdou hned, jak dokoupíte kredity.
Tarif Free s 300 e-maily měsíčně. Bez platební karty.
contact.js
import { init, sendForm } from '@frontmail/browser';
init({ publicKey: 'pk_live_2Jx8…' });
const form = document.querySelector('#contact');
form.addEventListener('submit', async (event) => {
event.preventDefault();
const { status } = await sendForm('svc_default', 'tpl_contact', form);
// 'queued' – or 'held' when you're out of credits. Never dropped.
});ContactForm.tsx
import { FrontmailProvider, useSendEmail } from '@frontmail/react';
function ContactForm() {
const { send, status } = useSendEmail('svc_default', 'tpl_contact');
return (
<form
onSubmit={(event) => {
event.preventDefault();
const { email, message } = Object.fromEntries(new FormData(event.currentTarget));
send({ email, message });
}}
>
<input name="email" type="email" required />
<textarea name="message" required />
<button disabled={status === 'sending'}>Send</button>
</form>
);
}
const options = { publicKey: 'pk_live_2Jx8…' };
// <FrontmailProvider options={options}><ContactForm /></FrontmailProvider>ContactForm.vue
<script setup lang="ts">
import { reactive } from 'vue';
import { useSendEmail } from '@frontmail/vue';
const { send, status } = useSendEmail('svc_default', 'tpl_contact');
const form = reactive({ email: '', message: '' });
</script>
<template>
<form @submit.prevent="send(form)">
<input v-model="form.email" type="email" required />
<textarea v-model="form.message" required />
<button :disabled="status === 'sending'">Send</button>
</form>
</template>ContactForm.svelte
<script lang="ts">
import { createFrontmail, frontmailForm } from '@frontmail/svelte';
const frontmail = createFrontmail({ publicKey: 'pk_live_2Jx8…' });
const { status } = frontmail;
</script>
<form use:frontmailForm={{ serviceId: 'svc_default', templateId: 'tpl_contact', frontmail }}>
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<button disabled={$status === 'sending'}>Send</button>
</form>order-confirmation.ts
import { Frontmail } from '@frontmail/node';
const frontmail = new Frontmail({ privateKey: process.env.FRONTMAIL_PRIVATE_KEY });
await frontmail.send({
serviceId: 'svc_transactional',
templateId: 'tpl_order_confirmation',
params: {
customer_name: 'Jana',
order_id: 'A-1042',
items: [{ title: 'Ceramic mug', qty: 2 }],
},
});Jak to funguje
Z formuláře do schránky ve třech krocích
Připojte službu
SMTP, Gmail, Outlook nebo transakční poskytovatel jako Mailgun, Postmark či SES. Přístupové údaje šifrujeme a každý den kontrolujeme.
Navrhněte HTML šablonu
Plné HTML s Handlebars, typované parametry a živý náhled na počítači i mobilu, ve světlém i tmavém režimu.
Pošlete to z kódu
Zavolejte send() s veřejným klíčem z libovolného frameworku, nebo ze serveru s privátním klíčem. Opakování i idempotence jsou v ceně.
Žádný ztracený e-mail
Došlé kredity nikdy neznamenají ztracenou zprávu
Kvóta jednou dojde a OAuth token jednou vyprší. Frontmail to bere jako důvod počkat, nikdy jako důvod e-mail zahodit.
frontmail.send()- Jsou k dispozici kredity?
- AnoZařazeno a odeslánoNejdřív z měsíční kvóty, pak z balíčku, který vyprší nejdřív.
- NeRezerva (overdraft)+10 % měsíční kvóty u placených tarifů, vyúčtuje se v další faktuře.
- Podrženo, ne zahozenoAPI odpoví 202 se stavem „held“. Zprávy čekají na Free až 3 dny, na placených tarifech až 14 dní.
- Automaticky odeslánoNákup balíčku, auto top-up, upgrade nebo nové období podržené zprávy odešle – od nejstarší.
- Poskytovatel odmítne přihlašovací údaje?
- Převezme to záložní službaŠablona může mít záložní službu pro chyby přihlášení i trvalé chyby.
- Podrženo do opravyBez zálohy zprávy počkají a odejdou, jakmile bude služba zase v pořádku.
Hold fronta
Nemáte kredit? Požadavek přijmeme a uložíme. Než cokoli vyprší, pošleme vám e-mail, a podržené zprávy můžete hromadně uvolnit nebo zahodit.
Rezerva nad kvótu
Placené tarify mají rezervu 10 % měsíční kvóty, takže o něco rušnější měsíc prostě pojede dál.
Auto top-up
Zvolte balíček a práh, případně dobití hned při první podržené zprávě. Limity útraty vás ochrání před překvapením.
Health-check a failover
Každou službu kontrolujeme denně a při každé chybě přihlášení. Nefunkční údaje spustí upozornění, banner v dashboardu a záložní službu.
Upozornění při 50, 80 a 100 % čerpání a při první podržené zprávě.
Kreditové balíčky
Nechte si menší tarif. Na rušné měsíce dokupte balíček.
Balíčky jsou jednorázový nákup s platností 3–12 měsíců a fungují na každém tarifu včetně Free. Zadejte, kolik e-mailů čekáte v jednotlivých měsících, a my najdeme nejlevnější kombinaci.
5 000 e-mailů
platnost 3 měsíce
10 €
2 € za 1 000
Koupit balíček25 000 e-mailů
platnost 6 měsíců
39 €
1,56 € za 1 000
Koupit balíček100 000 e-mailů
platnost 12 měsíců
129 €
1,29 € za 1 000
Koupit balíček
Naše doporučení
Tarif Free
Co dokoupit
- leden: 1× balíček 5 000 e-mailů10 €
- březen: 1× balíček 25 000 e-mailů39 €
- červenec: 1× balíček 25 000 e-mailů39 €
- prosinec: 1× balíček 25 000 e-mailů39 €
- Tarif
- 0 €
- Balíčky
- 127 €
- Celkem za rok
- 127 €
Tarif, který by celý rok pokryl vaši špičku 25 000 e-mailů (Business 50k), by stál 468 €. Ušetříte 341 € (73 %).
Začít zdarmaFunkce
Všechno, co kontaktní formulář potřebuje – a mnohem víc
HTML šablony s živým náhledem
Plné HTML, podmínky a cykly v Handlebars, typované parametry s validací, verze s porovnáním a návratem zpět.
Váš poskytovatel, vaše reputace
SMTP, Gmail, Outlook, Mailgun, SES, Postmark, SendGrid, Mailjet, Brevo a Resend – a ke každé šabloně záložní služba.
Ochrana proti spamu hned od začátku
Cloudflare Turnstile na všech formulářích jedním kliknutím, whitelist domén, limity na IP adresu i klíč, blokování headless prohlížečů a hlídání anomálií.
Prohledávatelná historie
U každé zprávy vykreslený obsah, parametry a časová osa událostí. Opětovné odeslání jedním klikem, export do CSV.
Sledování doručení
Doručeno, vráceno, stížnost, otevřeno i prokliknuto – přímo z webhooků poskytovatele. Tvrdé bounce automaticky blokujeme.
Týmy, role a MFA
Pozvěte kolegy jako vlastníka, admina, vývojáře, čtenáře nebo účetního. TOTP, záložní kódy a audit log citlivých akcí.
SDK s typovanými parametry
Vanilla JS, React, React Native, Vue, Svelte i Node. Spusťte npx frontmail types a editor bude znát každý parametr šablony.
Chyby, které se samy vysvětlí
Jednotný formát chyb s kódem, popisem a odkazem do dokumentace. SDK samo zopakuje síťové chyby a 5xx, a přitom nic nepošle dvakrát.
Poskytovatelé
Funguje s e-mailovou službou, kterou už máte
Osobní schránka pro malý web, transakční poskytovatel pro větší objemy – a ke každému podrobný návod v dokumentaci.
- SMTPSeznam, Zoho, vlastní server…SMTP
- GmailOAuth
- Outlook / Microsoft 365OAuth
- Amazon SESAPI
- MailgunEU / USAPI
- PostmarkAPI
- SendGridAPI
- MailjetAPI
- BrevoAPI
- ResendAPI
Přechod z EmailJS
Stačí změnit jeden import
Balíček @frontmail/emailjs-compat nabízí stejné funkce jako @emailjs/browser. Založte si ve Frontmailu službu a šablonu, vyměňte import a kód nechte, jak je.
- 1Připojte svou e-mailovou službu a naimportujte HTML šablony.
- 2Vyměňte import balíčku a klíče.
- 3Hotovo. Později můžete přejít na @frontmail/browser kvůli typovaným parametrům.
- import emailjs from '@emailjs/browser';
+ import emailjs from '@frontmail/emailjs-compat';
emailjs.init({ publicKey: 'YOUR_PUBLIC_KEY' });
emailjs
.sendForm('YOUR_SERVICE_ID', 'YOUR_TEMPLATE_ID', '#contact-form')
.then((response) => console.log('SUCCESS', response.status));Srovnání obou služeb
| Situace | EmailJS* | Frontmail |
|---|---|---|
| Vyčerpaná měsíční kvóta | Další požadavky se neodešlou, dokud se kvóta neobnoví nebo nezměníte tarif. | Požadavky přijmeme a podržíme až 14 dní (na Free 3 dny), po dobití kreditu se odešlou samy. |
| Rate limit REST API | 1 požadavek za sekundu. | 2–50 požadavků za sekundu podle tarifu, k tomu dávkový endpoint. |
| Sezónní špička | Přechod na vyšší tarif. | Tarif si necháte a dokoupíte balíček s platností 3–12 měsíců. |
* Údaje o EmailJS k září 2026 podle emailjs.com/pricing. EmailJS je ochranná známka svého vlastníka; Frontmail s EmailJS nijak nesouvisí.
Ceník
Jednoduché tarify. Balíčky na špičky.
Začněte zdarma a přejděte výš, až to budete potřebovat. Při roční platbě ušetříte 20 %.
Free
300 e-mailů měsíčně
0 €/ měsíc
Navždy zdarma
Začít zdarma- 3 šablon
- Bez příloh
- Historie: 7 dní
- 1 uživatel
- 2 požadavků za sekundu
- Hold fronta: 3 dny
- Whitelist domén a Turnstile
- Patička „Sent via Frontmail“
Starter
3 000 e-mailů měsíčně
7 €/ měsíc
84 € při roční platbě
Vybrat Starter- 10 šablon
- Přílohy do 1 MB na požadavek
- Historie: 30 dní
- 1 uživatel
- 5 požadavků za sekundu
- Hold fronta: 14 dní
- Rezerva 10 % nad kvótu
- Whitelist domén a Turnstile
- Nejoblíbenější
Pro
10 000 e-mailů měsíčně
15 €/ měsíc
180 € při roční platbě
Vybrat Pro- Neomezeně šablon
- Přílohy do 5 MB na požadavek
- Historie: 90 dní
- 5 uživatelů
- 20 požadavků za sekundu
- Hold fronta: 14 dní
- Rezerva 10 % nad kvótu
- Whitelist domén a Turnstile
Business
50 000 e-mailů měsíčně
39 €/ měsíc
468 € při roční platbě
Vybrat Business 50k- Neomezeně šablon
- Přílohy do 25 MB na požadavek
- Historie: 180 dní
- Neomezeně uživatelů
- 50 požadavků za sekundu
- Hold fronta: 14 dní
- Rezerva 10 % nad kvótu
- Whitelist domén a Turnstile
Varianty Business
Kreditové balíčky
Jednorázový nákup na jakémkoli tarifu. Čerpá se až po měsíční kvótě, vždy nejdřív ten, který dřív vyprší.
Porovnání všech tarifů
| Tarif | Free | Starter | Pro | Business 50k | Business 100k | Business 200k |
|---|---|---|---|---|---|---|
| Cena za měsíc | 0 € | 7 € | 15 € | 39 € | 71 € | 127 € |
| E-mailů měsíčně | 300 | 3 000 | 10 000 | 50 000 | 100 000 | 200 000 |
| Šablony | 3 | 10 | Neomezeně | Neomezeně | Neomezeně | Neomezeně |
| Přílohy | – | 1 MB | 5 MB | 25 MB | 25 MB | 25 MB |
| Historie | 7 dní | 30 dní | 90 dní | 180 dní | 180 dní | 180 dní |
| Uživatelé | 1 | 1 | 5 | Neomezeně | Neomezeně | Neomezeně |
| Rate limit | 2 req/s | 5 req/s | 20 req/s | 50 req/s | 50 req/s | 50 req/s |
| Rezerva | – | 10 % | 10 % | 10 % | 10 % | 10 % |
| Hold fronta | 3 dny | 14 dní | 14 dní | 14 dní | 14 dní | 14 dní |
Ceny jsou bez DPH. Firmám z EU s platným DIČ fakturujeme v režimu přenesení daňové povinnosti.
Otázky k platbám
Převádí se nevyčerpaná kvóta do dalšího měsíce?
Ne – měsíční kvóta se s každým obdobím obnovuje. Kreditové balíčky jsou jiné: platí 3, 6 nebo 12 měsíců, takže je kupujte, až je budete potřebovat.
Co se stane, když mi dojdou kredity?
Placené tarify nejdřív čerpají rezervu. Potom se nové zprávy podrží (neodmítnou) a odejdou samy, jakmile koupíte balíček, zapne se auto top-up, přejdete na vyšší tarif nebo začne nové období. Pokud chcete, aby API rovnou selhalo, přepněte organizaci do režimu reject a dostanete chybu 402.
Jak se účtuje rezerva nad kvótu?
Skutečně využité kredity z rezervy přičteme k další faktuře. Nevyužitá rezerva nic nestojí.
Můžu tarif změnit nebo zrušit?
Přechod na vyšší tarif platí hned a doplatíte jen poměrnou část. Přechod na nižší tarif i zrušení se projeví na konci zaplaceného období. Už koupené balíčky platí až do své expirace.
V jaké měně budu platit?
Zákazníci fakturovaní v EU platí v eurech, ostatní v amerických dolarech. DPH se spočítá při platbě podle fakturační země a DIČ.
Jak můžu platit?
Kartou, přes Apple Pay nebo Google Pay a tam, kde je to možné, i inkasem SEPA. Ke každé platbě dostanete fakturu ke stažení v dashboardu.
FAQ
Časté otázky
Je bezpečné mít veřejný klíč ve frontendu?
Ano. Veřejným klíčem jde posílat jen přes vaše šablony, jen z domén na whitelistu a za Turnstile a rate limity. Privátní klíč patří jen na server, nikdy do kódu v prohlížeči.
Potřebuju vlastního e-mailového poskytovatele?
Ano – Frontmail posílá přes službu, kterou připojíte, takže e-maily chodí z vaší domény a s vaší reputací. Pro malý web stačí i osobní Gmail nebo Outlook.
Co obsahuje tarif Free?
300 e-mailů měsíčně, 3 šablony, ochranu proti spamu a historii za 7 dní. E-maily mají malou patičku „Sent via Frontmail“. I na Free si můžete dokoupit kreditové balíčky.
Kde jsou uložená moje data?
V regionu AWS eu-central-1 (Frankfurt, Německo). Přístupové údaje k poskytovatelům šifrujeme přes AWS KMS. Historii zpráv držíme jen tak dlouho, jak dovoluje váš tarif.
Co když vyprší připojení ke Gmailu nebo Outlooku?
Každou službu kontrolujeme denně a hned po chybě přihlášení. Dostanete e-mail a uvidíte banner v dashboardu; zprávy mezitím půjdou přes záložní službu, nebo počkají v hold frontě, dokud službu znovu nepřipojíte.
Můžu posílat i ze serveru?
Ano. Node SDK i REST API přijímají privátní klíč, který obejde kontrolu původu i CAPTCHA a odemkne dávkové odesílání až 100 zpráv na jeden požadavek.
Formulář spusťte ještě dnes. Sezóny se bát nemusíte.
Tarif Free, bez karty, s plným API. Na vyšší tarif nebo balíček přejdete, až vám to provoz řekne.