Resend
Resend to nowoczesne API poczty tworzone z myślą o programistach, z przejrzystym panelem i szybką konfiguracją domeny. Świetnie pasuje do nowych projektów, w których poczta transakcyjna ma działać w kilka minut.
Wybierz Resend, gdy zaczynasz nowy projekt, lubisz proste narzędzia i wysyłasz mały lub średni wolumen poczty transakcyjnej. Darmowy plan jest niewielki, ale wystarcza dla większości formularzy kontaktowych. Przy bardzo dużych wolumenach w najniższej cenie zobacz Amazon SES; do marketingu i poczty transakcyjnej z danymi w UE – Brevo lub Mailjet. Zobacz przegląd usług.
Wymagania
Dział zatytułowany „Wymagania”- Konto Resend.
- Zweryfikowana domena (Domains → Add domain). Bez niej możesz wysyłać tylko testowe e-maile z
onboarding@resend.devna adres swojego konta – zobacz Sandbox i limity. - Klucz API z uprawnieniem „Sending access” (nie „Full access”): API Keys → Create API key → Permission: Sending access, opcjonalnie ograniczony do jednej domeny. To minimalne uprawnienie, jakiego potrzebuje Frontmail. Testuj połączenie rozpoznaje klucz tylko do wysyłania i go akceptuje.
Podłączenie we Frontmail
Dział zatytułowany „Podłączenie we Frontmail”- Otwórz Usługi e-mail → Dodaj usługę → Resend.
- Wypełnij pola:
| Pole | Gdzie je znaleźć | Przykład |
|---|---|---|
| Klucz API | API Keys (wyświetlany tylko raz) | re_123abc456def… |
| Sekret podpisu webhooka | Webhooks → your endpoint → Signing secret | whsec_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| Maks. liczba e-maili na sekundę | Opcjonalnie; domyślnie 2/s (domyślny limit zespołu w Resend) | 2 |
- Kliknij Zweryfikuj i zapisz.
- Usługa zostanie zapisana, gdy sprawdzenie się powiedzie. Dane dostępowe są szyfrowane kopertowo przez AWS KMS.
DNS: SPF, DKIM i DMARC
Dział zatytułowany „DNS: SPF, DKIM i DMARC”Resend pokazuje rekordy na stronie domeny. Dla example.com wyglądają tak:
; DKIMresend._domainkey.example.com. TXT "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ…"
; SPF + bounce handling on the "send" subdomain (the envelope sender)send.example.com. MX 10 feedback-smtp.us-east-1.amazonses.com.send.example.com. TXT "v=spf1 include:amazonses.com ~all"
; DMARC (recommended by Resend, not created automatically)_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- SPF jest w subdomenie
send, więc nie musisz ruszać rekordu SPF domeny głównej. - Host MX zawiera region wybrany dla domeny (
us-east-1,eu-west-1, …). - Niektórzy dostawcy DNS automatycznie dopisują domenę – jako nazwy hostów wpisz
resend._domainkeyisend, a nie pełne nazwy. - Zacznij DMARC od
p=none, potem zaostrz dop=quarantine/p=reject.
Regiony
Dział zatytułowany „Regiony”Przy dodawaniu domeny Resend pozwala wybrać jej region wysyłki – np. North Virginia (us-east-1), Irlandię (eu-west-1), São Paulo (sa-east-1) lub Tokio (ap-northeast-1). Endpoint API (api.resend.com) jest wspólny dla wszystkich regionów, więc we Frontmail nie ma pola regionu; region to właściwość domeny. Żeby go zmienić, dodaj domenę ponownie z nowym regionem i zaktualizuj DNS.
Sandbox i limity
Dział zatytułowany „Sandbox i limity”- Bez zweryfikowanej domeny możesz wysyłać tylko z
onboarding@resend.devi tylko na adres e-mail swojego konta Resend. Wszystko inne kończy się błędem403 – You can only send testing emails to your own email address, który Frontmail traktuje jako błąd auth. - Darmowy plan: 3000 e-maili miesięcznie, 100 dziennie, 1 domena.
- Limit żądań: domyślnie 2 żądania na sekundę na zespół; dlatego domyślne tempo Frontmail dla Resend to 2/s. Resend może je podnieść na prośbę.
- Przekroczenie dziennego lub miesięcznego limitu zwraca
429 daily_quota_exceeded/monthly_quota_exceeded; ponawianie nie pomoże do czasu odnowienia limitu, więc takie wiadomości zwykle kończą jakofailedze zwrotem kredytu.
Webhooki (śledzenie doręczeń)
Dział zatytułowany „Webhooki (śledzenie doręczeń)”-
Skopiuj URL webhooka ze strony usługi we Frontmail (przycisk kopiowania):
https://api.frontmail.dev/webhooks/providers/resend/<token> -
W Resend otwórz Webhooks → Add endpoint, wklej URL i wybierz zdarzenia:
| Zdarzenie Resend | Zdarzenie Frontmail |
|---|---|
email.delivered |
delivered |
email.bounced (Permanent) |
bounced – dodany do listy wykluczeń |
email.bounced (Transient / inne) |
zapisywane jako miękkie odbicie |
email.delivery_delayed |
zapisywane przy wiadomości |
email.complained |
complained – dodany do listy wykluczeń |
email.opened |
opened (włącz śledzenie otwarć w domenie) |
email.clicked |
clicked (włącz śledzenie kliknięć w domenie) |
- Otwórz endpoint, skopiuj Signing secret (
whsec_…) i wklej go w pole Sekret podpisu webhooka we Frontmail.
Weryfikacja podpisu: Resend dostarcza webhooki przez Svix. Frontmail sprawdza nagłówki svix-id, svix-timestamp i svix-signature: HMAC-SHA256 z id.timestamp.body twoim sekretem podpisu, i odrzuca żądania ze znacznikiem czasu przesuniętym o więcej niż 5 minut. Bez sekretu zdarzenia nie są weryfikowane i są ignorowane.
Frontmail dodaje do każdego e-maila tag z ID wiadomości, żeby dało się dopasować zdarzenia.
Częste błędy
Dział zatytułowany „Częste błędy”- auth – usługa nie działa (nieprawidłowy lub usunięty klucz, niezweryfikowana domena, ograniczenia trybu testowego, 401/403). Usługa zostaje oznaczona jako
unhealthy; właściciel dostaje e-mail i baner w panelu. Przejmuje usługa zapasowa szablonu; w przeciwnym razie kredyt wraca, a wiadomość czeka w kolejce wstrzymanych wiadomości jakoheld_service_errori jest wysyłana automatycznie po naprawieniu usługi (sprawdzanej ponownie przy zapisie i w codziennym health checku). - permanent – tej wiadomości nie da się wysłać (nieprawidłowy odbiorca, walidacja 422). Usługa zapasowa, jeśli jest skonfigurowana, w przeciwnym razie
failedi zwrot kredytu. - transient – 5xx, 429, timeouty. Ponawiane z wykładniczym opóźnieniem; po ostatniej próbie
failedi zwrot kredytu.
| Odpowiedź Resend | Klasa | Co zrobić |
|---|---|---|
401 missing_api_key / 403 invalid_api_key |
auth | Utwórz nowy klucz Sending access i zaktualizuj usługę. |
403 validation_error – The example.com domain is not verified |
auth | Dokończ weryfikację domeny w Resend albo popraw domenę nadawcy w szablonie. |
403 validation_error – You can only send testing emails to your own email address |
auth | Zweryfikuj własną domenę; testowy nadawca resend.dev służy tylko do wysyłki do twojej skrzynki. |
422 validation_error – Invalid to field |
permanent | Zobacz nieprawidłowy odbiorca. |
422 invalid_attachment / 422 validation_error (inne pola) |
permanent | Popraw szablon lub załącznik; zobacz Szablony HTML. |
429 rate_limit_exceeded |
transient | Za dużo żądań na sekundę; trzymaj Maks. liczba e-maili na sekundę na poziomie 2 albo poproś Resend o więcej. |
429 daily_quota_exceeded / monthly_quota_exceeded |
transient | Limit wyczerpany; przejdź na wyższy plan. |
500 internal_server_error, timeout |
transient | Awaria Resend – Frontmail ponawia próby. |
Lista kontrolna
Dział zatytułowany „Lista kontrolna”- Domena zweryfikowana: TXT
resend._domainkey+ MX i TXTsend - Opublikowany rekord DMARC (na początek
p=none) - Klucz API tylko z Sending access
- Testuj połączenie przechodzi
- Adres nadawcy w szablonie w zweryfikowanej domenie (nie
resend.dev) - Endpoint webhooka z delivered, bounced, complained (+ opened/clicked)
- Sekret podpisu (
whsec_…) skopiowany do Frontmail