Preskočiť na obsah

Resend

Resend je moderné e-mailové API stavané predovšetkým pre vývojárov, s prehľadným dashboardom a rýchlym nastavením domény. Výborne sa hodí na nové projekty, ktoré chcú mať transakčnú poštu spustenú za pár minút.

Resend zvoľte, keď začínate nový projekt, máte radi jednoduché nástroje a posielate malé až stredné objemy transakčnej pošty. Bezplatný tarif je malý, na väčšinu kontaktných formulárov však stačí. Pre veľmi veľké objemy za najnižšiu cenu sa pozrite na Amazon SES, pre marketing aj transakčnú poštu s dátami v EÚ na Brevo alebo Mailjet. Pozri aj prehľad služieb.

  • Účet v Resende.
  • Overenú doménu (Domains → Add domain). Bez nej môžete posielať len testovacie e-maily z onboarding@resend.dev na adresu vlastného účtu – pozri Sandbox a limity.
  • API kľúč s oprávnením „Sending access“ (nie „Full access“): API Keys → Create API key → Permission: Sending access, voliteľne obmedzený na jednu doménu. To je minimálne oprávnenie, ktoré Frontmail potrebuje. Otestovať pripojenie kľúč určený len na odosielanie rozpozná a prijme.
  1. Otvorte E-mailové služby → Pridať službu → Resend.
  2. Vyplňte polia:
Pole Kde ho nájdete Príklad
API kľúč API Keys (zobrazí sa len raz) re_123abc456def…
Podpisový kľúč webhooku Webhooks → váš endpoint → Signing secret whsec_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Max. e-mailov za sekundu Voliteľné; predvolene 2/s (predvolený limit tímu v Resende) 2
  1. Kliknite na Overiť a uložiť.
  2. Keď kontrola prejde, služba sa uloží. Prístupové údaje šifrujeme obálkovým šifrovaním cez AWS KMS.

Resend zobrazí záznamy na stránke domény. Pre example.sk vyzerajú takto:

; DKIM
resend._domainkey.example.sk. TXT "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ…"
; SPF + spracovanie bounceov na subdoméne „send“ (odosielateľ obálky)
send.example.sk. MX 10 feedback-smtp.us-east-1.amazonses.com.
send.example.sk. TXT "v=spf1 include:amazonses.com ~all"
; DMARC (Resend ho odporúča, ale automaticky ho nevytvorí)
_dmarc.example.sk. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.sk"
  • SPF je na subdoméne send, takže SPF záznam hlavnej domény nemusíte meniť.
  • Hostiteľ MX obsahuje región, ktorý ste pre doménu zvolili (us-east-1, eu-west-1, …).
  • Niektorí poskytovatelia DNS doménu dopĺňajú automaticky – ako názov hostiteľa zadajte resend._domainkey a send, nie celé názvy.
  • DMARC začnite s p=none a potom ho sprísnite na p=quarantine / p=reject.

Pri pridávaní domény vám Resend umožní zvoliť jej región odosielania – napr. Severná Virgínia (us-east-1), Írsko (eu-west-1), São Paulo (sa-east-1) alebo Tokio (ap-northeast-1). API endpoint (api.resend.com) je pre všetky regióny rovnaký, preto vo Frontmaile nie je pole na výber regiónu; región je vlastnosťou domény. Ak ho chcete zmeniť, pridajte doménu znova s novým regiónom a aktualizujte DNS.

  • Bez overenej domény môžete posielať len z onboarding@resend.dev a len na e-mailovú adresu svojho účtu v Resende. Všetko ostatné skončí chybou 403 – You can only send testing emails to your own email address, ktorú Frontmail považuje za chybu autentifikácie.
  • Bezplatný tarif: 3 000 e-mailov mesačne, 100 denne, 1 doména.
  • Rate limit: predvolene 2 požiadavky za sekundu na tím; preto má Frontmail pre Resend predvolene 2/s. Resend ho na požiadanie zvýši.
  • Prekročenie dennej alebo mesačnej kvóty vráti 429 daily_quota_exceeded / monthly_quota_exceeded; opakovanie nepomôže, kým sa kvóta neobnoví, takže takéto správy zvyčajne skončia ako failed a kredit sa vráti.
  1. Na stránke služby vo Frontmaile skopírujte URL webhooku (tlačidlo na kopírovanie):

    https://api.frontmail.dev/webhooks/providers/resend/<token>
  2. V Resende otvorte Webhooks → Add endpoint, vložte URL a vyberte udalosti:

Udalosť v Resende Udalosť vo Frontmaile
email.delivered delivered
email.bounced (Permanent) bounced – pridá sa do zoznamu blokovaných adries
email.bounced (Transient / iné) zaznamená sa ako mäkký bounce
email.delivery_delayed zaznamená sa pri správe
email.complained complained – pridá sa do zoznamu blokovaných adries
email.opened opened (zapnite sledovanie otvorení pri doméne)
email.clicked clicked (zapnite sledovanie kliknutí pri doméne)
  1. Otvorte endpoint, skopírujte Signing secret (whsec_…) a vložte ho vo Frontmaile do poľa Podpisový kľúč webhooku.

Overenie podpisu: Resend doručuje webhooky cez Svix. Frontmail kontroluje hlavičky svix-id, svix-timestamp a svix-signature: HMAC-SHA256 z id.timestamp.body s vaším podpisovým kľúčom, a odmieta požiadavky, ktorých časová pečiatka sa líši o viac ako 5 minút. Bez kľúča sa udalosti neoveria a ignorujú sa.

Frontmail ku každému e-mailu pridá tag s ID svojej správy, aby bolo možné udalosti spárovať.

  • auth – nefunguje služba (neplatný alebo zmazaný kľúč, neoverená doména, obmedzenia testovacieho režimu, 401/403). Služba sa označí ako unhealthy, vlastník dostane e-mail a upozornenie v dashboarde. Prevezme to záložná služba šablóny; inak vrátime kredit a správa počká vo fronte pozdržaných e-mailov ako held_service_error a po oprave služby sa odošle sama (overujeme pri uložení a pri dennej kontrole stavu).
  • permanent – nedá sa odoslať práve táto správa (neplatný príjemca, validácia 422). Záložná služba, ak je nastavená, inak failed a vrátenie kreditu.
  • transient – 5xx, 429, timeouty. Opakujeme s exponenciálne rastúcou pauzou; po poslednom pokuse failed a vrátenie kreditu.
Odpoveď Resendu Trieda Čo robiť
401 missing_api_key / 403 invalid_api_key auth Vytvorte nový kľúč so Sending access a aktualizujte službu.
403 validation_error – The example.com domain is not verified auth Dokončite overenie domény v Resende alebo opravte doménu odosielateľa v šablóne.
403 validation_error – You can only send testing emails to your own email address auth Overte vlastnú doménu; testovací odosielateľ resend.dev je len pre vašu vlastnú schránku.
422 validation_error – Invalid to field permanent Pozri neplatný príjemca.
422 invalid_attachment / 422 validation_error (iné polia) permanent Opravte šablónu alebo prílohu; pozri HTML šablóny.
429 rate_limit_exceeded transient Príliš veľa požiadaviek za sekundu; nechajte Max. e-mailov za sekundu na 2 alebo požiadajte Resend o vyšší limit.
429 daily_quota_exceeded / monthly_quota_exceeded transient Kvóta je vyčerpaná; prejdite na vyšší tarif.
500 internal_server_error, timeout transient Výpadok Resendu – Frontmail to zopakuje.
  • Doména overená: resend._domainkey TXT + send MX a TXT
  • DMARC záznam zverejnený (na začiatok p=none)
  • API kľúč len so Sending access
  • Otestovať pripojenie prešlo
  • Adresa odosielateľa v šablóne na overenej doméne (nie resend.dev)
  • Webhook endpoint s udalosťami delivered, bounced, complained (+ opened/clicked)
  • Podpisový kľúč (whsec_…) skopírovaný do Frontmailu