PHP mail: Wysyłanie wiadomości e-mail z poziomu PHP
PHP daje nam możliwość wysłania wiadomości e-mail bezpośrednio z poziomu kodu. Służy do tego funkcja mail(). Przedstawię poniżej jej konstrukcję oraz przykład użycia:
<?php $adres = "przyklad@uzycia.pl"; $tytul = "Tytuł wiadomości"; $wiadomosc = "Treść przykładowej wiadomości wysyłanej bezpośrednio z kodu za pomocą funkcji mail()."; // użycie funkcji mail mail($adres, $tytul, $wiadomosc); ?>
Powyższy skrypt spowoduje wysłanie maila o treści „Treść przykładowej wiadomości” i tytule „Tytuł wiadomości” na adres „przyklad@uzycia.pl”. Jest jeszcze czwarty, opcjonalny argument – nagłówki. Można w nim wskazać adres nadawcy, sposób kodowania oraz zawartość wiadomości.
Zaprezentuję niżej, w jaki sposób wysłać wiadomość HTML, wykorzystując format nagłówków:
<?php $od = "From: uzytkownik@kursphp.com \r\n"; $od .= 'MIME-Version: 1.0'."\r\n"; $od .= 'Content-type: text/html; charset=iso-8859-2'."\r\n"; $adres = "przyklad@uzycia.pl"; $tytul = "Tytuł wiadomości"; $wiadomosc = "<html> <head> </head> <body> <b>Witam serdecznie!</b><br/> Zapraszam na stronę: <a href="https://kursphp.com">Kurs PHP</a> </body> </html>"; // użycie funkcji mail mail($adres, $tytul, $wiadomosc, $od); ?>
W zmiennej $od podajemy wszystkie niezbędne nagłówki. „From:” zawiera informacje o adresie nadawcy, Content-type mówi o typie zawartości e-maila, a charset o kodowaniu.
Problemy z polskimi znakami
Często zdarza się, że wysyłając maila z polską treścią, dostaniemy krzaczki w kliencie pocztowym. Wynika to przede wszystkim z błędnego kodowania zestawu znaków. Kodowanie, które obsługuje polskie znaki to m. in. ISO-8859-2, UTF-8 czy cp-1250. Dlatego ważne jest umieszczenie fragmentu: Content-type: text/html; charset=iso-8859-2 w nagłówku maila, by jego zawartość przyszła bez błędów.
W praktyce wysyłanie maili bezpośrednio z kodu jest bardzo często stosowane. Przykładowo, formularz rejestracji użytkownika, maile weryfikacyjne, przypominanie hasła – wszystkie te sytuacje wykorzystują mechanizm mail PHP.
W obsłudze sklepów internetowych e-maili wysyłanych jest mnóstwo. Poza wspomnianymi wyżej, są jeszcze wszystkie wiadomości powiązane bezpośrednio z transakcjami. Przyjęcie zlecenia, przetwarzanie, pakowanie, wysyłka, prośba o opinię. To tylko podstawowe maile, które może wysyłać oprogramowanie sklepu internetowego.
Potrafisz już wysłać e-maila za pomocą polecenia w PHP. Kolejna lekcja nauczy Cię dołączania zewnętrzych plików za pomocą instrukcji include() oraz require(). Zapraszam!
Spis lekcji w rozdziale piątym
Poprzednia lekcja: Rozdział czwarty | Następna lekcja: Include oraz Require |