close
PHP

Jak wysyłać maile z serwera lokalnego XAMPP?

email

Jeśli próbowałeś kiedyś użyć funkcji mail() na serwerze lokalnym, to wiesz, że nie będzie ona działać poprawnie i wysłany mail nigdy nie dotrze do odbiorcy. Spowodowane jest to nieskonfigurowanym serwerem poczty wychodzącej. W tym artykule dowiesz się jak użyć adresu Gmail do konfiguracji XAMPP’a.

Pierwszą rzeczą, której będziemy potrzebować jest konto Google. Warto specjalnie stworzyć nowe. Wewnątrz plików serwera będziemy podawać dane dostępowe, więc korzystanie ze swojego głównego konta nie jest dobrym pomysłem.

Kolejną potrzebną rzeczą będzie sam XAMPP. Jeśli jeszcze z niego nie korzystasz, to możesz pobrać go tutaj.

Konfiguracja

Przejdźmy do konfiguracji plików. Otwórz plik C:\xampp\php\php.ini. Znajdź (ctrl + F) linię ;extension=php_openssl.dll i usuń średnik.

W tym samym pliku (php.ini) musimy zmienić jeszcze jedną rzecz. Znajdź linię [mail function]. Zaraz pod nią powinieneś znaleźć podobne ustawienia:

Cały powyższy kod zamieniamy na:

Podmień testdevcorner@gmail.com na własny adres gmail.

Ostatnią rzeczą jaką musimy dodać są ustawienia pakietu sendmail. Otwórz C:\xampp\sendmail\sendmail.ini i usuń całą zawartość. Następnie wklej poniższy kod:

Podmień testdevcorner@gmail.com na własny adres gmail i pass52352351 na hasło do tego konta. Możemy teraz przetestować wysyłanie maili.

Test wysyłania maili

W celu przetestowania wysyłki wiadomości utworzymy prosty skrypt. Wewnątrz folderu C:\xampp\htdocs utwórz folder email. Wewnątrz utworzonego katalogu stwórz plik index.php. Wklej do niego poniższy kod:

Ten skrypt wysyła krótką wiadomość na podany w zmiennej $to adres email. Wpisz tam swój adres email (inny niż ten, który wpisywałeś wcześniej). Następnie przejdź na stronę http://localhost/email. Po chwili wyświetli się napis Wiadomość wysłana, a na podanym w $to adresie znajdziesz wiadomość:

wiadomosc przeslana

Zablokowana próba logowania

Google może czasami zablokować próbę logowania z serwera lokalnego. W tym przypadku na zastępczy adres email otrzymasz podobną wiadomość:

alert

Możesz w tej sytuacji kliknąć “zezwolić na dostęp mniej bezpiecznym aplikacjom” i zmienić ustawienia bezpieczeństwa. Jeśli nie otrzymałeś tej wiadomości i wysyłanie nie działa, to ustawienia możesz zmienić ręcznie. Uwaga – nigdy nie rób tego na swoim prywatnym koncie.

 

Prośba do stałych czytelników: w tym artykule do przedstawienia kodu użyłem innej skórki niż zazwyczaj. Będę bardzo wdzięczny, jeśli napiszecie w komentarzu, która lepiej wygląda. Jasna (taka jak w tym artykule) czy ciemna (taka jak tutaj). Dzięki! 🙂

Tags : mailxampp
  • Dominik Korsa

    Jak dla mnie ta jaśniejsza skórka lepsza 🙂 (Choć zazwyczaj programuję z ciemną)

    Fajny poradnik (nawet wyłączyłem AdBlocka, co mi się rzadko zdarza) 😛

  • Fera Gasaron

    Już sobie poradziłam w pliku D:xamppapacheconfextrahttpd-xampp.conf trzeba dodać jeszcze następujący kod:
    Alias /email “D:/xampp/htdocs/email”

    AllowOverride AuthConfig
    Require all granted

    I hula 🙂

  • Fera Gasaron

    Zrobiłam wszystko wg opisu (xampp mam na dysku D, więc ścieżki również zmieniłam odpowiednio) i po wpisaniu http://localhost/email dostaje stronę z błędem 404 “Nie znaleziono obiektu!” 🙁 Nie mam pojęcia co jest nie tak 🙁 Ktoś mógłby mi pomóc???

  • mat m

    UWAGA!
    Jeżeli XAMPP-a instalowaliście w innej lokalizacji niż domyślna należy zmienić ścierzkę w [mail function] w sendmail_path na dopowiednią dla swojej lokalizacji swojego XAMPP-a a w nim pliku sendmail.exe

  • Marcin Magiera

    Zdecydowanie ciemna 🙂

  • Nook17

    Ciemna jest ok

  • Można też do lokalnego developmentu skorzystać z takiego rozwiązania jak np. mailtrap.io 😉