PHP mail: wysyłanie wiadomości e-mail w PHP

Coś jest niejasne? Wejdź na Forum PHP i uzyskaj pomoc

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="http://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