Wysyłanie maila z lokalnej maszyny

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ć.

  1. Sławomir Bączyk

    Moim zdaniem Test Mail Server Tool, nadaje się do tego dużo bardziej. Przede wszystkim jest lżejszy. Zapisuje maile ładnie do wskazanego katalogu jako pliki .eml i próbuje zaraz po wysłaniu otworzyć je w domyślnym programie pocztowym.

  2. Narzędzie wydaje się być ciekawe, jednak z tego co zrozumiałem na stronie producenta, to ten mail nie jest wysyłany, tylko przechowywany lokalnie na dysku. A mi zależy na tym, by sprawdić jak będzie wyglądał wysłany mail nie tylko w różnych klientach pocztowych, ale również w różnych webmailach.

  3. Ja preferuję Papercut firmy Invalidlogic. Prosty soft – ściągasz, rozpakowujesz, odpalasz i chodzi sobie w Tray'u. Żadnego instalowania, konfigurowania. Wszystko działa :) . Tylko z kodowaniem treści mail'i czasem sobie nie radzi.

  4. ~Najki
    Podobnie jak w przypadku Test Mail Server Tool jest to tylko emulacja serwera pocztowego. A ja potrzebowałem sprawdzić jak wygląda mail w różnych klientach pocztowych oraz webmailach. Dlatego potrzebowałem wysłać prawdziwego maila.

  5. Tego też szukałem batman.
    Jednak Twój opis jest niewystarczający, aby program hMailServer, wysyłał faktycznie maila w Internet. Tak po wywołaniu funkcji mail() w php, ustawia sobie maile w kolejce, ale ich nie wysyła.
    Popracuję nad tym i może coś tu więcej napiszę.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting