Tworzenie dużych aplikacji na lokalnej maszynie, a następnie ich przetestowanie przez wysłaniem do repozytorium, stanowiło problem, gdy dochodziło się do przetestowania funkcjonalności polegającej na wysłaniu maila. Użytkownicy linuxa są w lepszej sytuacji – wystarczy, że postawią sobie sendmail-a lub postfix-a i mogą wysyłać maile. Sytuacja przedstawia się znacznie gorzej w przypadku okienek.

Na szczęście jest rozwiązanie, które od pewnego już czasu z powodzeniem testuję – hMailServer. Jest to prosty w obsłudze serwer pocztowy, który w bardzo prosty sposób pozwala nam na wysyłanie maili z lokalnej maszyny. Oczywiście aplikacja ta ma o wiele większe możliwości, jednak nie będę dzisiaj o nich pisał.

Na początek musimy pobrać serwer i go zainstalować. Instalację przeprowadzamy z domyślnymi ustawieniami. Podczas instalacji można zauważyć, że do przechowywania maili, hMailServer wykorzystuje bazę danych. Do wyboru są MySQL, PostgreSQL oraz MSSQL. Domyślnie wybrana jest ta ostatnia w wersji MS SQL Compact. Nie bójcie się. Nic nie musicie doinstalowywać. Baza ta jest zawarta w instalacji serwera. Na koniec instalacji, zostaniemy poproszeni o utworzenie hasła administratora. Warto je zapamiętać.

Po zakończeniu instalacji, zostanie uruchomione narzędzie o nazwie hMailServer Administrator. Aby móc wysyłać maile, musimy dodać domenę. W tym celu klikamy na przycisk Add domain lub prawym przyciskiem myszy na Domains i z menu kontekstowego wybieramy Add. W polu Domain wpisujemy 127.0.0.1 oraz zaznaczamy (o ile nie jest zaznaczony) checkbox Enabled. Zapisujemy zmiany przyciskiem Save.

Kolejnym krokiem, jaki musimy wykonać, jest dodanie konta do nowoutworzonej domeny. Aby to zrobić, klikamy prawym przyciskiem myszy na folder Accounts i menu wybieramy opcję Add. Podajemy nazwę użytkownika, hasło oraz wybieramy poziom dostępu (user w zupełności wystarczy). Należy pamiętać o zaznaczeniu opcji Enabled. Zapisujemy zmiany przyciskiem Save.

Na koniec musimy jeszcze wprowadzić kilka niewielkich zmian w php.ini i będziemy mogli wysyłać maile z lokalnej maszyny.

W sekcji [mail function] musimy ustawić następujące dane:

SMTP = 127.0.0.1

oraz

sendmail_from = batman@127.0.0.1

Oczywiście zamiast batman, musicie podać swoją nazwę użytkownika.

Prosty test pozwoli sprawdzić, czy dobrze skonfigurowaliśmy serwer:

$mail = mail('mail.testowy@domena.pl', 'wysylanie z locala', 'tresc wiadomosci wyslanej z locala');
var_dump($mail);

Zamiast mail.testowy@domena.pl musicie wpisać adres email, który będzie w stanie sprawdzić.