Jak przetestować formularz kontaktowy, zanim ktoś go użyje

« Blog · Autor:

Zepsuty formularz kontaktowy nie zgłasza się sam. Wygląda tak samo jak działający: pola się wypełniają, przycisk się klika, pojawia się „dziękujemy za wiadomość". Że nic nie doszło, dowiadujesz się miesiąc później, gdy ktoś zadzwoni z pretensją, że nie odpisujesz.

To jedna z najczęstszych cichych awarii na stronach firmowych — i jedna z najłatwiejszych do sprawdzenia.

Dlaczego to się psuje tak często

Bo wysyłka poczty zależy od rzeczy poza samą stroną: konfiguracji serwera, danych logowania do serwera pocztowego, wpisów SPF i DKIM w DNS. Każda z nich może się zmienić bez dotykania kodu — przy przenosinach na inny hosting, po aktualizacji PHP, po zmianie hasła do konta pocztowego.

Kod nie rzuca błędem, bo funkcja wysyłająca zwykle zwraca tylko informację, że wiadomość przekazano, a nie że dostarczono.

Co sprawdzić

  • Czy wiadomość w ogóle dochodzi — na adres inny niż Twój własny na tym samym serwerze. Poczta do samego siebie potrafi działać nawet wtedy, gdy na zewnątrz nic nie wychodzi.
  • Czy nie ląduje w spamie — sprawdź u odbiorcy zewnętrznego, nie u siebie.
  • Czy pole odpowiedzi jest ustawione — bez Reply-To odpowiadasz sam sobie.
  • Czy polskie znaki przechodzą — kodowanie potrafi się posypać właśnie w wiadomościach z formularza.
  • Czy załącznik dochodzi, jeśli formularz je przyjmuje.
  • Co się dzieje przy pustych i błędnych polach — komunikat czy cicha porażka.

Test bez własnej skrzynki

Do sprawdzania nie warto używać prywatnego adresu: zaśmieca skrzynkę, a przy powtarzalnych testach nie da się odróżnić wiadomości z dzisiaj od tej sprzed tygodnia. Wygodniej utworzyć adres jednorazowy, wysłać przez formularz i odczytać wynik.

Jeśli robisz to regularnie albo chcesz mieć to w zestawie testów, da się to wywołać z wiersza poleceń:

# skrzynka
curl -s -X POST https://www.getsend.xyz/api/v1/inboxes \
     -H "Authorization: Bearer $GETSEND_KEY"

# po wyslaniu formularza -- co przyszlo
curl -s -H "Authorization: Bearer $GETSEND_KEY" \
     https://www.getsend.xyz/api/v1/inboxes/ADRES/messages

Opis pozostałych wywołań jest na stronie API.

Jak często

Raz przy uruchomieniu strony to za mało. Sensowne minimum to sprawdzenie po każdej zmianie hostingu, po aktualizacji systemu zarządzania treścią i raz na kwartał ot tak. Zajmuje dwie minuty, a wykrywa awarię, która potrafi trwać miesiącami.

Jeśli formularz jest istotny dla firmy, warto go włączyć do testów automatycznych — wtedy sprawdza się sam przy każdym wdrożeniu.