Każda aplikacja, która wysyła maile, potrzebuje ich testowania: powitania po rejestracji, linku aktywacyjnego, resetu hasła, potwierdzenia zamówienia. Można to robić ręcznie albo automatycznie. Od razu uczciwie: SpamBox nie udostępnia publicznego API, więc do testów automatycznych polecamy inne narzędzia. Opisujemy je niżej.

Ręczne testy w tymczasowej skrzynce

Do sprawdzenia, czy mail w ogóle wychodzi i jak wygląda u odbiorcy, wystarczy losowy adres. Wpisujesz go w formularzu, wysyłasz i po kilku sekundach widzisz wiadomość. To dobry test „z zewnątrz”: mail przechodzi przez prawdziwy internet, prawdziwe serwery pocztowe i filtry antyspamowe.

Na co patrzeć przy ręcznym teście:

  • Czy mail w ogóle dotarł i ile to trwało. Kilka minut opóźnienia często oznacza kolejkę po stronie aplikacji.
  • Nadawca i temat. Czy w polu „Od” jest nazwa firmy, a nie adres w rodzaju www-data@serwer.
  • Linki. Czy link aktywacyjny prowadzi na produkcję, a nie na localhost albo serwer testowy.
  • Kod weryfikacyjny w temacie. Jeśli go tam umieścisz, użytkownik skopiuje go bez otwierania wiadomości. W SpamBox taki kod pokazuje się od razu jako przycisk.
  • Wygląd bez obrazków i na wąskim ekranie telefonu.

Testy automatyczne: narzędzia z API

Gdy testów jest dużo albo mają się uruchamiać w CI, ręczne klikanie przestaje wystarczać. Wtedy potrzebujesz skrzynki, którą test odczyta programowo.

Lokalny przechwytywacz SMTP

Narzędzia takie jak Mailpit czy smtp4dev uruchamiasz lokalnie albo w kontenerze obok aplikacji. Aplikacja wysyła na nie maile przez SMTP, a one nic nie wysyłają dalej, tylko pokazują wiadomości w przeglądarce i udostępniają je przez API. Mailpit jest open source i zastąpił w wielu projektach popularnego kiedyś MailHoga, który nie jest już rozwijany. To najszybsza i najtańsza opcja do testów developerskich.

Usługi w chmurze

Mailtrap, Mailosaur czy płatne plany Mailinatora dają skrzynki testowe dostępne przez API, często z prywatną domeną. Przydają się, gdy testy odpalają się na serwerze CI albo gdy chcesz sprawdzać maile wysyłane przez prawdziwego dostawcę, a nie przez lokalny SMTP.

Co wybrać

SytuacjaNarzędzie
Szybki rzut oka, czy mail wychodzi i jak wyglądatymczasowa skrzynka (np. SpamBox)
Praca lokalna, dużo wiadomości, bez wychodzenia do internetuMailpit lub smtp4dev
Testy end-to-end w CI z prawdziwym dostawcą pocztyMailtrap, Mailosaur, płatny Mailinator
Sprawdzenie dostarczalności i trafiania do spamuprawdziwe skrzynki u różnych dostawców

Dobre praktyki

  • Na środowisku testowym blokuj wysyłkę na prawdziwe adresy klientów. Najprościej przez przechwytywacz SMTP.
  • Kody jednorazowe umieszczaj w temacie, a linki aktywacyjne rób krótkie i z wyraźnym przyciskiem.
  • Pamiętaj, że część użytkowników używa tymczasowych adresów. Jeśli je blokujesz, rób to świadomie. Piszemy o tym w tekście o blokadach tymczasowych e-maili.