Brevo
Brevo (dawniej Sendinblue) to francuska platforma marketingowa „wszystko w jednym” – newslettery, SMS, CRM – z wbudowanym API do poczty transakcyjnej. Dane są przechowywane w UE, a darmowy plan pozwala na kilkaset e-maili dziennie.
Wybierz Brevo, gdy już używasz go do newsletterów lub CRM i chcesz mieć wszystko w jednym miejscu albo szukasz dostawcy z danymi w UE i hojnym darmowym limitem dziennym. Jeśli potrzebujesz tylko poczty transakcyjnej i najlepszej dostarczalności, porównaj z Postmark lub Mailgun w przeglądzie usług.
Wymagania
Dział zatytułowany „Wymagania”- Konto Brevo z aktywowaną pocztą transakcyjną. Nowe konta są czasem wstrzymywane do weryfikacji, zanim będą mogły wysyłać pocztę transakcyjną.
- Zweryfikowany nadawca: dodaj i uwierzytelnij swoją domenę w Senders, Domains & Dedicated IPs → Domains, a adres nadawcy dodaj w Senders.
- Klucz API v3 z SMTP & API → API keys → Generate a new API key (zaczyna się od
xkeysib-). Klucze API Brevo nie mają zakresów – utwórz osobny klucz nazwany np. „Frontmail”, żeby móc go unieważnić niezależnie. Nie używaj klucza SMTP (xsmtpsib-…); Frontmail korzysta z HTTP API. - Jeśli na twoim koncie włączone są Authorised IPs (ustawienia bezpieczeństwa), wyłącz je albo dodaj wychodzące adresy IP Frontmail – w przeciwnym razie każde wywołanie jest odrzucane z
403 unrecognised IP address.
Podłączenie we Frontmail
Dział zatytułowany „Podłączenie we Frontmail”- Otwórz Usługi e-mail → Dodaj usługę → Brevo.
- Wypełnij pola:
| Pole | Gdzie je znaleźć | Przykład |
|---|---|---|
| Klucz API (v3) | SMTP & API → API keys (wyświetlany tylko raz) | xkeysib-1a2b3c…-XyZ |
| Token webhooka | Opcjonalnie – token, który wybierzesz dla webhooka Brevo (zobacz niżej) | 9f8e7d6c5b4a… |
| Maks. liczba e-maili na sekundę | Opcjonalnie; domyślnie 10/s | 10 |
- Kliknij Zweryfikuj i zapisz – Frontmail odczyta kluczem dane twojego konta Brevo.
- 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”Brevo pokazuje rekordy w Senders, Domains & Dedicated IPs → Domains → Authenticate. Typowe wartości:
; Domain ownership codeexample.com. TXT "brevo-code:1a2b3c4d5e6f7a8b9c0d"
; DKIM – newer domains get two CNAMEs, older ones a single TXT at mail._domainkeybrevo1._domainkey.example.com. CNAME b1.example-com.dkim.brevo.com.brevo2._domainkey.example.com. CNAME b2.example-com.dkim.brevo.com.
; SPF – merge into your existing recordexample.com. TXT "v=spf1 include:spf.brevo.com ~all"
; DMARC_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- Skopiuj dokładne nazwy i wartości rekordów z Brevo – format DKIM zmieniał się z czasem (TXT
mail._domainkeykontra CNAMEbrevo1/brevo2), a starsze konta mogą nadal pokazywaćinclude:spf.sendinblue.com. - Brevo traktuje rekord DMARC jako wymagany do uwierzytelnienia domeny; na początek wystarczy
p=none. Po przejrzeniu raportów zaostrz go dop=quarantine/p=reject.
Regiony
Dział zatytułowany „Regiony”Brevo ma jeden endpoint API (api.brevo.com/v3) i przechowuje dane w UE. We Frontmail nie ma czego wybierać.
Sandbox i limity
Dział zatytułowany „Sandbox i limity”- Darmowy plan: 300 e-maili dziennie (łącznie transakcyjne i marketingowe).
- Plany płatne opierają się na miesięcznym wolumenie e-maili; gdy skończą się kredyty, Brevo odpowiada
402 not_enough_credits, co Frontmail traktuje jako błąd auth (usługa jest bezużyteczna, dopóki nie doładujesz konta). - Weryfikacja konta: dopóki Brevo nie zweryfikuje twojego konta, API może odrzucać wysyłki z
account_under_validation. - Brevo obsługuje nagłówek
X-Sib-Sandbox: dropdo wysyłek na próbę; Frontmail go nie używa.
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/brevo/<token> -
W Brevo otwórz Transactional → Settings → Webhook → Add a new webhook (nowszy interfejs: Settings → Webhooks → Transactional).
-
Wklej URL i w sekcji uwierzytelniania wybierz Token. Wygeneruj długi losowy token i wklej go w Brevo oraz w polu Token webhooka we Frontmail. Brevo będzie wtedy wysyłać
Authorization: Bearer <token>przy każdym wywołaniu. (Działa też Basic auth – użyj tokenu jako hasła.) -
Wybierz zdarzenia:
| Zdarzenie Brevo | Zdarzenie Frontmail |
|---|---|
| Delivered | delivered |
| Hard bounce, Invalid email | bounced (twarde) – dodany do listy wykluczeń |
| Soft bounce, Blocked | zapisywane jako miękkie odbicie |
| Deferred | zapisywane przy wiadomości |
| Complaint (spam) | complained – dodany do listy wykluczeń |
| Opened | opened |
| Clicked | clicked |
Weryfikacja podpisu: Brevo nie podpisuje danych. Tajny token w URL identyfikuje usługę, a gdy ustawisz Token webhooka, Frontmail odrzuca wywołania, których token bearer (lub hasło Basic auth) się nie zgadza.
Frontmail oznacza każdą wiadomość tagiem fm:<message id>, ż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 klucz, nieautoryzowany adres IP, brak kredytów, konto w trakcie weryfikacji). 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, nieprawidłowy lub niezweryfikowany nadawca, walidacja 400). 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ź Brevo | Klasa | Co zrobić |
|---|---|---|
401 unauthorized – Key not found |
auth | Wygeneruj nowy klucz API v3 (nie klucz SMTP) i zaktualizuj usługę. |
403 permission_denied – unrecognised IP address |
auth | Wyłącz Authorised IPs albo dodaj adresy IP Frontmail. |
402 not_enough_credits |
auth | Przejdź na wyższy plan albo poczekaj na odnowienie dziennego/miesięcznego limitu. |
400 account_under_validation |
auth | Dokończ weryfikację konta w Brevo (sprawdź swoją skrzynkę od Brevo). |
400 invalid_parameter – sender is invalid / not verified |
permanent | Dodaj i zweryfikuj adres nadawcy w Senders. |
400 invalid_parameter – email is not valid |
permanent | Zobacz nieprawidłowy odbiorca. |
429 Too Many Requests |
transient | Przekroczony limit żądań; ponawiane z opóźnieniem. |
500 / 502 / 503, timeout |
transient | Awaria Brevo – Frontmail ponawia próby. |
Lista kontrolna
Dział zatytułowany „Lista kontrolna”- Aktywowana poczta transakcyjna, zweryfikowane konto
- Uwierzytelniona domena:
brevo-code, DKIM, SPF, DMARC - Adres nadawcy dodany w Senders
- Osobny klucz API v3 (
xkeysib-…), Authorised IPs wyłączone lub Frontmail dozwolony - Testuj połączenie przechodzi
- Transakcyjny webhook z uwierzytelnianiem tokenem, ten sam token we Frontmail
- Zdarzenia: delivered, hard/soft bounce, invalid, blocked, complaint (+ opened/clicked)