Wysyłanie wiadomości e-mail za pomocą PHP

22 stycznia 2016
1 gwiadka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek

Należy używać biblioteki PHPMailer.

Rozwiązanie przetestowano przy użyciu biblioteki PHPMailer 5.2.7.

W języku PHP dostępna jest funkcja mail() o kusząco prostej budowie. Niestety, podobnie jak jest z wieloma innymi składnikami tego języka, prostota ta jest zwodnicza i użytkownik tej funkcji szybko może żałować, że się na nią zdecydował.

Poczta elektroniczna działa na bazie kilku protokołów, których historia jest jeszcze bardziej pokręcona niż samego języka PHP. Wystarczy powiedzieć, że z wysyłaniem wiadomości e-mail wiąże się tyle pułapek, że na samą myśl o tym niektórzy dostają gęsiej skórki.

PHPMailer to popularna i dopracowana otwarta biblioteka zapewniająca łatwy w obsłudze interfejs do bezpiecznego przesyłania wiadomości elektronicznych. Jej twórcy zajęli się wszystkimi pułapkami za nas, więc my możemy skupić się na ważniejszych sprawach.

Przykład użycia biblioteki PHPMailer

	<?php
// dołączenie do skryptu biblioteki PHPMailer
require_once('phpmailer-5.2.7/PHPMailerAutoload.php');
 
// argument true powoduje włączenie wyjątków — jest on opcjonalny i domyślnie ustawiony na false
$mailer = new PHPMailer(true);
 
// Wyślamy wiadomość e-mail od Bilbo Bagginsa do Gandalfa Szarego.
 
// Konfiguracja elementów wiadomości. Treść nie musi być w formacie HTML; szczegółowe informacje można znaleźć w dokumentacji biblioteki PHPMailer.
$mailer->Sender = 'bbaggins@example.com';
$mailer->AddReplyTo('bbaggins@example.com', 'Bilbo Baggins');
$mailer->SetFrom('bbaggins@example.com', 'Bilbo Baggins');
$mailer->AddAddress('gandalf@example.com');
$mailer->Subject = 'Najlepsze zielsko w Południowym Farthing';
$mailer->MsgHTML('<p>Musisz go spróbować, Gandalfie!</p><p>-Bilbo</p>');
 
// konfiguracja połączenia
$mailer->IsSMTP();
$mailer->SMTPAuth = true;
$mailer->SMTPSecure = 'ssl';
$mailer->Port = 465;
$mailer->Host = 'my smtp host';
$mailer->Username = 'nazwa użytkownika SMTP';
$mailer->Password = 'hasło SMTP';
 
// zrobione
$mailer->Send();
?>

Autor: Alex Cabal

Źródło: http://phpbestpractices.org/

Tłumaczenie: Łukasz Piwko

Treść tej strony dostępna jest na zasadach licencji CC BY-SA 3.0

Zobacz również:

Dyskusja

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *