Přeskočit na obsah

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.

  • Účet v Resendu.
  • Ověřenou doménu (Domains → Add domain). Bez ní můžete posílat jen testovací e-maily z onboarding@resend.dev na 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”
  1. Otevřete E-mailové služby → Přidat službu → Resend.
  2. 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
  1. Klikněte na Ověřit a uložit.
  2. Když kontrola projde, služba se uloží. Přístupové údaje šifrujeme obálkovým šifrováním přes AWS KMS.

Záznamy Resend ukáže na stránce domény. Pro example.cz vypadají takto:

; DKIM
resend._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._domainkey a send, ne celé jméno.
  • DMARC začněte na p=none a pak zpřísněte na p=quarantine / p=reject.

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.

  • Bez ověřené domény můžete posílat jen z onboarding@resend.dev a jen na e-mailovou adresu svého účtu v Resendu. Cokoli jiného skončí chybou 403 – 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čí jako failed s vráceným kreditem.

Webhooky (sledování doručení)

Sekce “Webhooky (sledování doručení)”
  1. Na stránce služby ve Frontmailu zkopírujte webhook URL (tlačítko kopírovat):

    https://api.frontmail.dev/webhooks/providers/resend/<token>
  2. 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)
  1. 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.

  • 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 jako held_service_error a 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 failed a vrácení kreditu.
  • transient – 5xx, 429, timeouty. Opakujeme s exponenciálně rostoucí pauzou; po posledním pokusu failed a 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.
  • Doména ověřená: TXT resend._domainkey + MX a TXT na send
  • 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