Resend
Resend je moderní e-mailové API stavěné hlavně pro vývojáře, s přehledným dashboardem a rychlým nastavením domény. Skvěle se hodí pro nové projekty, které chtějí mít transakční poštu hotovou za pár minut.
Resend zvolte, když začínáte nový projekt, máte rádi jednoduché nástroje a posíláte malé až střední objemy transakční pošty. Bezplatný tarif je malý, na většinu kontaktních formulářů ale stačí. Pro velmi velké objemy za nejnižší cenu se podívejte na Amazon SES, pro marketing i transakční poštu s daty v EU na Brevo nebo Mailjet. Viz přehled služeb.
Co budete potřebovat
Sekce “Co budete potřebovat”- Účet v Resendu.
- Ověřenou doménu (Domains → Add domain). Bez ní můžete posílat jen testovací e-maily z
onboarding@resend.devna vlastní adresu účtu – viz Sandbox a limity. - API klíč s oprávněním „Sending access“ (ne „Full access“): API Keys → Create API key → Permission: Sending access, volitelně omezený na jednu doménu. To je minimum, které Frontmail potřebuje. Otestovat spojení klíč jen pro odesílání rozpozná a přijme.
Připojení ve Frontmailu
Sekce “Připojení ve Frontmailu”- Otevřete E-mailové služby → Přidat službu → Resend.
- Vyplňte pole:
| Pole | Kde ho najdete | Příklad |
|---|---|---|
| API klíč | API Keys (zobrazí se jen jednou) | re_123abc456def… |
| Podpisový klíč webhooku | Webhooks → váš endpoint → Signing secret | whsec_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| Max. e-mailů za sekundu | Volitelné; výchozí 2/s (výchozí limit týmu v Resendu) | 2 |
- Klikněte na Ověřit a uložit.
- Když kontrola projde, služba se uloží. Přístupové údaje šifrujeme obálkovým šifrováním přes AWS KMS.
DNS: SPF, DKIM a DMARC
Sekce “DNS: SPF, DKIM a DMARC”Záznamy Resend ukáže na stránce domény. Pro example.cz vypadají takto:
; DKIMresend._domainkey.example.cz. TXT "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ…"
; SPF + zpracování bounců na subdoméně „send“ (obálkový odesílatel)send.example.cz. MX 10 feedback-smtp.us-east-1.amazonses.com.send.example.cz. TXT "v=spf1 include:amazonses.com ~all"
; DMARC (Resend ho doporučuje, sám ho ale nevytvoří)_dmarc.example.cz. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.cz"- SPF nese subdoména
send, takže SPF záznam hlavní domény měnit nemusíte. - V názvu MX serveru je region, který jste u domény zvolili (
us-east-1,eu-west-1…). - Někteří správci DNS doménu doplňují automaticky – jako název zadejte jen
resend._domainkeyasend, ne celé jméno. - DMARC začněte na
p=nonea pak zpřísněte nap=quarantine/p=reject.
Regiony
Sekce “Regiony”Při přidávání domény vám Resend nabídne region odesílání – např. Severní Virginie (us-east-1), Irsko (eu-west-1), São Paulo (sa-east-1) nebo Tokio (ap-northeast-1). API endpoint (api.resend.com) je pro všechny regiony stejný, takže ve Frontmailu žádné pole pro region není – region je vlastností domény. Chcete-li ho změnit, přidejte doménu znovu s novým regionem a upravte DNS.
Sandbox a limity
Sekce “Sandbox a limity”- Bez ověřené domény můžete posílat jen z
onboarding@resend.deva jen na e-mailovou adresu svého účtu v Resendu. Cokoli jiného skončí chybou403 – You can only send testing emails to your own email address, kterou Frontmail bere jako chybu auth. - Bezplatný tarif: 3 000 e-mailů měsíčně, 100 denně, 1 doména.
- Limit rychlosti: ve výchozím stavu 2 požadavky za sekundu na tým; proto je výchozí hodnota Frontmailu pro Resend 2/s. Na požádání ho Resend zvýší.
- Po překročení denní nebo měsíční kvóty vrací Resend
429 daily_quota_exceeded/monthly_quota_exceeded; opakování do obnovení kvóty nepomůže, takže takové zprávy obvykle skončí jakofaileds vráceným kreditem.
Webhooky (sledování doručení)
Sekce “Webhooky (sledování doručení)”-
Na stránce služby ve Frontmailu zkopírujte webhook URL (tlačítko kopírovat):
https://api.frontmail.dev/webhooks/providers/resend/<token> -
V Resendu otevřete Webhooks → Add endpoint, vložte URL a vyberte události:
| Událost v Resendu | Událost ve Frontmailu |
|---|---|
email.delivered |
delivered |
email.bounced (Permanent) |
bounced – přidá se na suppression list |
email.bounced (Transient / jiné) |
zaznamená se jako měkký bounce |
email.delivery_delayed |
zaznamená se u zprávy |
email.complained |
complained – přidá se na suppression list |
email.opened |
opened (zapněte sledování otevření u domény) |
email.clicked |
clicked (zapněte sledování kliknutí u domény) |
- Otevřete endpoint, zkopírujte Signing secret (
whsec_…) a vložte ho do pole Podpisový klíč webhooku ve Frontmailu.
Ověření podpisu: Resend doručuje webhooky přes Svix. Frontmail kontroluje hlavičky svix-id, svix-timestamp a svix-signature: HMAC-SHA256 z id.timestamp.tělo vaším podpisovým klíčem; požadavky s časovým razítkem odchýleným o víc než 5 minut odmítne. Bez klíče události ověřit nejde a ignorujeme je.
Frontmail ke každému e-mailu přidá tag s ID zprávy, aby se události daly spárovat.
Časté chyby
Sekce “Časté chyby”- auth – nefunguje služba (neplatný či smazaný klíč, neověřená doména, omezení testovacího režimu, 401/403). Služba se označí jako
unhealthy, vlastník dostane e-mail a upozornění v dashboardu. Převezme to záložní služba šablony; jinak vrátíme kredit a zpráva počká ve frontě zadržených zpráv jakoheld_service_errora po opravě služby se odešle sama (ověřujeme při uložení a při denní kontrole stavu). - permanent – nejde odeslat právě tahle zpráva (neplatný příjemce, validace 422). Záložní služba, pokud je, jinak
faileda vrácení kreditu. - transient – 5xx, 429, timeouty. Opakujeme s exponenciálně rostoucí pauzou; po posledním pokusu
faileda vrácení kreditu.
| Odpověď Resendu | Třída | Co dělat |
|---|---|---|
401 missing_api_key / 403 invalid_api_key |
auth | Vytvořte nový klíč Sending access a aktualizujte službu. |
403 validation_error – The example.cz domain is not verified |
auth | Dokončete ověření domény v Resendu, nebo opravte doménu adresy Od v šabloně. |
403 validation_error – You can only send testing emails to your own email address |
auth | Ověřte vlastní doménu; testovací odesílatel resend.dev je jen pro vaši vlastní schránku. |
422 validation_error – neplatné pole to |
permanent | Viz neplatný příjemce. |
422 invalid_attachment / 422 validation_error (jiná pole) |
permanent | Opravte šablonu nebo přílohu; viz HTML šablony. |
429 rate_limit_exceeded |
transient | Příliš mnoho požadavků za sekundu; nechte Max. e-mailů za sekundu na 2, nebo požádejte Resend o víc. |
429 daily_quota_exceeded / monthly_quota_exceeded |
transient | Kvóta je vyčerpaná; přejděte na vyšší tarif. |
500 internal_server_error, timeout |
transient | Výpadek Resendu – Frontmail to zopakuje. |
Kontrolní seznam
Sekce “Kontrolní seznam”- Doména ověřená: TXT
resend._domainkey+ MX a TXT nasend - DMARC záznam nastavený (zpočátku
p=none) - API klíč jen se Sending access
- Otestovat spojení prošel
- Adresa Od v šabloně na ověřené doméně (ne
resend.dev) - Webhook endpoint s delivered, bounced, complained (+ opened/clicked)
- Signing secret (
whsec_…) zkopírovaný do Frontmailu