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
localhostalbo 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ć
| Sytuacja | Narzędzie |
|---|---|
| Szybki rzut oka, czy mail wychodzi i jak wygląda | tymczasowa skrzynka (np. SpamBox) |
| Praca lokalna, dużo wiadomości, bez wychodzenia do internetu | Mailpit lub smtp4dev |
| Testy end-to-end w CI z prawdziwym dostawcą poczty | Mailtrap, Mailosaur, płatny Mailinator |
| Sprawdzenie dostarczalności i trafiania do spamu | prawdziwe 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.