Wysyłanie e-maili Aby wysyłać e-maile z PHP, interpreter musi być skonfigurowany do pracy z demonem pocztowym. Odpowiednie dyrektywy znajdują się w pliku php.ini w sekcji [mail function]. Należy tam podać odpowiednie parametry w zależności od systemu operacyjnego: Dla systemów Win32 - host oraz port, pod jakim pracuje demon pocztowy protokołu SMTP. Możesz próbować łączyć się z twoją własną skrzynką e-mail u jednego z providerów, lecz jeżeli znajdujesz się za firewallem, prawdopodobnie będziesz musiał zainstalować serwer poczty na własnym komputerze (np. Mercury for Win32). Dla systemów Unix należy podać wywołanie oraz ewentualne parametry programu sendmail.

Funkcja mail() Aby wysłać e-maila za pomocą PHP, musimy użyć do tego funkcji mail(). Jej składnia jest następująca:

mail(adresat, temat, wiadomość[, nagłówki[, parametry]])

Funkcja zwraca wartość TRUE, jeżeli wiadomość została poprawnie przekazana serwerowi poczty.

Biblioteka pear::mail Dla osób które lubią używać gotowych bibliotek można polecić moduł mail z pear. Szczegóły znajdziesz pod adresem: http://pear.php.net/package/Mail . Biblioteka jest dosyć prosta i posiada w swojej dokumentacji jasne przykłady.

Wysyłanie załączników jest równie proste - zainteresuj się klasą pear::Mail_Mime.

Przykłady Następujący przykład spowoduje wysłanie wiadomości e-mail na adres [email protected] o temacie "Witaj" i treści "Oto test funkcji mail":

<?php if(mail('[email protected]', 'Witaj', 'Oto test funkcji mail'))

echo 'Wiadomość została wysłana';

Nagłówki pozwalają na ustawienie dodatkowych informacji o wiadomości, np. jej nadawcy lub kodowaniu znaków: Możemy również użyć zmiennych:

<?php $naglowki = "From: [email protected]".PHP_EOL."Reply-To: [email protected]".PHP_EOL."Content-type: text/plain; charset=iso-8859-2";

if(mail('[email protected]', 'Witaj', 'Oto test funkcji mail', $naglowki))

echo 'Wiadomość została wysłana';

Nagłówki można podać zarówno wewnątrz cudzysłowów, jak i apostrofów. Użyto tutaj stałej PHP_EOL, zmiennej środowiskowej. Przejść do nowej linii można na dwa sposoby. Pierwszy, uniwersalny i mniej popularny to ta stała, drugi - zależny od systemu serwera - \r\n dla Windows, \n dla Linuksa i \r dla Mac'a. Wewnątrz edytora najlepiej podawać wszystkie nagłówki w jednym ciągu i zejścia zaznaczać przy użyciu właśnie tych kodów. Inaczej może to spowodować wysłanie niepoprawnej wiadomości, gdyż niektóre edytory mają tendencję do zniekształcania tych zejść.

Z poziomu PHP można także wysyłać e-maile w formacie HTML. W tym celu należy dodać do wiadomości odpowiednie nagłówki:

".PHP_EOL; $naglowki .= "From: [email protected] ".PHP_EOL; $naglowki .= "MIME-Version: 1.0".PHP_EOL; $naglowki .= "Content-type: text/html; charset=iso-8859-2".PHP_EOL;

//Wiadomość najczęściej jest generowana przed wywołaniem funkcji $wiadomosc = '

Wiadomość e-mail

Treść wiadomości: To jest treść wiadomości z formatowaniem HTML.

';

if(mail('[email protected]', 'Witaj', $wiadomosc, $naglowki))

echo 'Wiadomość została wysłana';

Dokumentacja Funkcje pocztowe w php Opis działania funkcji mail()