30 dniowy kurs php – dzień 18 – e-mail


Back-end (php, mysql)

PHP daje nam możliwość wysyłania e-maili. Pojawia się tylko jedna mała przeszkoda. Domyślnie WAMP, czyli pakiet na którym w tym kursie pracujemy nie obsłuży nam wysyłania e-maili. Są więc 2 wyjścia. Albo skonfigurować wampa, tak aby wysłał e-maile, albo skorzystać z hostingu. Domyślnie obsługa wysyłania e-maili działa chyba na każdy zarówno płatnym jak i darmowym serwerze, więc wystarczy, że tą lekcję wypróbujesz np. na darmowym hostingu cba.pl.

Sama funkcja wysyłająca maile jest bardzo prosta. Wygląda tak:

mail(do,temat,wiadomość,nagłówki,parametry)

Wpisując w nawiasie odpowiednie dane mail zostanie automatycznie wysłany po wywołaniu tej funkcji. O wiele lepiej jednak rozdzielić to na zmienne, które łatwiej później modyfikować. Przykładowy skrypt wysyłania maili może wyglądać następująco:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>E-mail</title>
</head>
<body>

<?php
$do = '[email protected]';
$temat = 'Testowy temat wiadomości';
$wiadomosc = 'Treść wiadomości';
$naglowki = 'From: [email protected]' . "\r\n" .
 'Reply-To: [email protected]' . "\r\n" .
 'MIME-Version: 1.0' . "\r\n" .
 'Content-type: text/html; charset=utf-8' . "\r\n" .
 'X-Mailer: PHP/' . phpversion();
if(mail($do, $temat, $wiadomosc, $naglowki))
{
 echo "Wiadomość wysłana. ";
}
else
{
 echo "Wysłanie wiadomości nie powiodło się. ";
}
?>

</body>
</html>

W nagłówkach pojawiły się znaki \r\n, które działają tak jak <br/> w htmlu. Przenoszą tekst do nowej linii. W nagłówku maila nie możemy użyć htmla, natomiast w treści już tak. Szczególnie, że w nagłówku informujemy o typie (content-type) jako text/html.

Jak widzisz wysyłanie e-maili za pomocą php jest bardzo łatwe. Funkcja może się przydać np. przy wysyłaniu automatycznych powiadomień po założeniu konta w naszym serwisie.