Przejdź do głównej zawartości

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.

  • 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.
  1. Otwórz Usługi e-mail → Dodaj usługę → Brevo.
  2. 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
  1. Kliknij Zweryfikuj i zapisz – Frontmail odczyta kluczem dane twojego konta Brevo.
  2. Usługa zostanie zapisana, gdy sprawdzenie się powiedzie. Dane dostępowe są szyfrowane kopertowo przez AWS KMS.

Brevo pokazuje rekordy w Senders, Domains & Dedicated IPs → Domains → Authenticate. Typowe wartości:

; Domain ownership code
example.com. TXT "brevo-code:1a2b3c4d5e6f7a8b9c0d"
; DKIM – newer domains get two CNAMEs, older ones a single TXT at mail._domainkey
brevo1._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 record
example.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._domainkey kontra CNAME brevo1/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 do p=quarantine / p=reject.

Brevo ma jeden endpoint API (api.brevo.com/v3) i przechowuje dane w UE. We Frontmail nie ma czego wybierać.

  • 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: drop do wysyłek na próbę; Frontmail go nie używa.
  1. Skopiuj URL webhooka ze strony usługi we Frontmail (przycisk kopiowania):

    https://api.frontmail.dev/webhooks/providers/brevo/<token>
  2. W Brevo otwórz Transactional → Settings → Webhook → Add a new webhook (nowszy interfejs: Settings → Webhooks → Transactional).

  3. 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.)

  4. 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.

  • 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 jako held_service_error i 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 failed i zwrot kredytu.
  • transient – 5xx, 429, timeouty. Ponawiane z wykładniczym opóźnieniem; po ostatniej próbie failed i 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.
  • 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)