Mailjet
Mailjet (część Sinch) to europejska platforma do poczty transakcyjnej i marketingowej. Domyślnie przechowuje dane w UE i ma użyteczny darmowy plan, dlatego jest popularny wśród europejskich małych firm.
Wybierz Mailjet, gdy chcesz dostawcę z UE z darmowym planem albo już wysyłasz przez Mailjet newslettery i chcesz wysyłać pocztę transakcyjną z tego samego konta. Do czysto transakcyjnej wysyłki z największym naciskiem na dostarczalność zobacz Postmark; do hostingu w UE z API dla programistów – Mailgun EU. Porównanie: przegląd usług.
Wymagania
Dział zatytułowany „Wymagania”- Konto Mailjet (nowe konta mogą przejść krótką weryfikację przy aktywacji).
- Zweryfikowany nadawca: dodaj domenę w Account settings → Senders & Domains → Add domain i uwierzytelnij ją (SPF + DKIM) albo przynajmniej zweryfikuj pojedynczy adres nadawcy.
- Para kluczy API (klucz API + klucz tajny). Klucze Mailjet nie mają zakresów uprawnień, więc opcją z minimalnymi uprawnieniami jest osobny klucz subkonta: Account settings → REST API → API Key Management → Create a sub-account API key. Subkonto ma własnych nadawców, statystyki i limit i można je unieważnić bez ruszania głównego klucza.
Podłączenie we Frontmail
Dział zatytułowany „Podłączenie we Frontmail”- Otwórz Usługi e-mail → Dodaj usługę → Mailjet.
- Wypełnij pola:
| Pole | Gdzie je znaleźć | Przykład |
|---|---|---|
| Klucz API | Account settings → REST API → API Key Management | a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 |
| Klucz tajny | Ta sama strona (kliknij, żeby odsłonić; można go wygenerować ponownie) | f6e5d4c3b2a1… |
| Nazwa użytkownika webhooka | Opcjonalnie – nazwa użytkownika, którą wpiszesz w URL webhooka (zobacz niżej) | frontmail |
| Hasło webhooka | Opcjonalnie – odpowiadające jej hasło | long-random-string |
| Maks. liczba e-maili na sekundę | Opcjonalnie; domyślnie 10/s | 5 |
- Kliknij Zweryfikuj i zapisz – Frontmail wywoła API Mailjet z parą kluczy.
- Usługa zostanie zapisana, gdy sprawdzenie się powiedzie. Oba klucze są szyfrowane kopertowo przez AWS KMS.
DNS: SPF, DKIM i DMARC
Dział zatytułowany „DNS: SPF, DKIM i DMARC”Mailjet pokazuje wartości w Senders & Domains → twoja domena → Authentication settings:
; SPF – merge with your existing SPF record (only one per domain!)example.com. TXT "v=spf1 include:spf.mailjet.com ~all"
; DKIMmailjet._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNAD…"
; Domain ownership (only when Mailjet asks for it)mailjet._a1b2c3d4.example.com. TXT "a1b2c3d4e5f6…"
; DMARC_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- Jeśli masz już
v=spf1 include:_spf.google.com ~all, zmień go nav=spf1 include:_spf.google.com include:spf.mailjet.com ~all– nie dodawaj drugiego rekordu SPF. - Nadawcą koperty w Mailjet jest jego własna domena odbić, więc wyrównanie DMARC opiera się na DKIM – upewnij się, że DKIM pokazuje OK.
- Zacznij DMARC od
p=none, później zaostrz.
Regiony
Dział zatytułowany „Regiony”Frontmail komunikuje się z api.mailjet.com. Mailjet domyślnie przechowuje dane w UE. Mailjet ma też osobną infrastrukturę w USA (api.us.mailjet.com) dla kont tam utworzonych – Frontmail obsługuje obecnie tylko domyślny endpoint, więc użyj konta utworzonego na standardowej (unijnej) platformie.
Sandbox i limity
Dział zatytułowany „Sandbox i limity”- Darmowy plan: 200 e-maili dziennie, 6000 miesięcznie.
- Plany płatne znoszą limit dzienny i są rozliczane miesięcznie.
- Nowe konta mogą zostać poddane przeglądowi przez zespół compliance Mailjet, jeśli wskaźnik odbić lub skarg jest wysoki; do końca przeglądu wysyłka jest zablokowana.
- Flaga API
SandboxModew Mailjet waliduje wiadomości bez ich wysyłania; Frontmail jej nie używa.
Webhooki (śledzenie doręczeń)
Dział zatytułowany „Webhooki (śledzenie doręczeń)”Mailjet nazywa je Event notifications (webhooki).
-
Skopiuj URL webhooka ze strony usługi we Frontmail (przycisk kopiowania):
https://api.frontmail.dev/webhooks/providers/mailjet/<token> -
Zalecane: zabezpiecz go przez Basic auth. Mailjet nie ma osobnego pola na uwierzytelnianie, więc wpisz dane logowania w URL, a te same wartości podaj we Frontmail w polach Nazwa użytkownika webhooka / Hasło webhooka:
https://frontmail:long-random-string@api.frontmail.dev/webhooks/providers/mailjet/<token> -
W Mailjet otwórz Account settings → Event notifications (webhooks) i wklej URL dla tych zdarzeń:
| Zdarzenie Mailjet | Zdarzenie Frontmail |
|---|---|
| Sent (przyjęte przez serwer odbiorcy) | delivered |
Bounce – hard_bounce: true |
bounced – dodany do listy wykluczeń |
| Bounce – soft, Blocked | zapisywane jako miękkie odbicie |
| Spam | complained – dodany do listy wykluczeń |
| Open | opened |
| Click | clicked |
- Po zapisaniu Mailjet wysyła wywołanie testowe; zdarzenie powinno pojawić się w dzienniku zdarzeń usługi.
Weryfikacja podpisu: Mailjet nie podpisuje danych zdarzeń. Tajny token w URL identyfikuje usługę, a jeśli ustawisz hasło webhooka, Frontmail odrzuca każde żądanie, którego Basic auth się nie zgadza.
Frontmail ustawia CustomID w Mailjet na ID wiadomości Frontmail, żeby zdarzenia trafiały do właściwej wiadomości.
Częste błędy
Dział zatytułowany „Częste błędy”- auth – usługa nie działa (błędny klucz API/tajny, 401/403, niezweryfikowany nadawca lub domena, zablokowane konto). Usługa zostaje oznaczona jako
unhealthy; właściciel dostaje e-mail i baner w panelu. Przejmuje usługa zapasowa szablonu; bez niej 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 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ź Mailjet | Klasa | Co zrobić |
|---|---|---|
401 – API key authentication/authorization failure |
auth | Sprawdź parę: klucz API i klucz tajny; w razie potrzeby wygeneruj nowe. |
403 – Forbidden / konto zablokowane lub w przeglądzie |
auth | Sprawdź panel Mailjet i skontaktuj się z pomocą techniczną Mailjet. |
400 – „The sender … is not validated / not authorized” |
auth | Zweryfikuj adres nadawcy lub domenę w Senders & Domains (we właściwym subkoncie). |
400 mj-0013 – „… is an invalid email address” |
permanent | Zobacz nieprawidłowy odbiorca. |
400 – inne błędy walidacji (za długi temat, za duży załącznik) |
permanent | Popraw szablon; zobacz Szablony HTML. |
429 – Too many requests |
transient | Osiągnięto limit tempa lub dzienny; Frontmail ponawia próby. Obniż Maks. liczba e-maili na sekundę. |
500 / 503, timeout |
transient | Awaria Mailjet – Frontmail ponawia próby. |
Lista kontrolna
Dział zatytułowany „Lista kontrolna”- Domena dodana i uwierzytelniona w Mailjet (SPF include +
mailjet._domainkey) - Jeden scalony rekord SPF; DMARC
p=none - Osobna para kluczy API subkonta
- Testuj połączenie przechodzi
- URL powiadomień o zdarzeniach z danymi Basic auth, te same wartości we Frontmail
- Włączone zdarzenia: sent, bounce, blocked, spam (+ open, click)
- Dzienny wolumen w granicach limitu twojego planu