PHP - Slanje e-mail-a


Funkcija PHP mail()

Slanje poruka e-pošte vrlo je uobičajeno za web aplikaciju, na primjer, slanje e-pošte dobrodošlice kada korisnik kreira račun na vašoj web lokaciji, slanje biltena vašim registrovanim korisnicima ili dobijanje povratnih informacija ili komentara korisnika putem kontakt obrazca web stranice itd. Ugrađenu PHP funkciju mail() možete koristiti za dinamičko kreiranje i slanje e-poruka jednom ili više primalaca iz vaše PHP aplikacije bilo u obliku običnog teksta ili formatiranom HTML-u. Osnovna sintaksa ove funkcije može se napisati kao:

mail(to, subject, message, headers, parameters)

Sljedeća tabela objašnjava parametre ove funkcije.

Paramtar Opis
to Adresa e-pošte primatelja.
subject Predmet e-poruke koju treba poslati. Ovaj parametar, tj. linija predmeta ne može da sadrži nijedan znak novog reda (\n).
message Definiše poruku koju treba poslati. Svaka linija treba biti odvojena feed-LF (\n). Redovi ne smiju prelaziti 70 znakova.
headers Ovo se obično koristi za dodavanje dodatnih zaglavlja kao što su "From", "Cc", "Bcc". Dodatna zaglavlja trebaju biti odvojena povratkom zaprege plus dodavanje linije-CRLF (\r\n).
parameters Koristi se za prosljeđivanje dodatnih parametara.


Slanje e-pošte s običnim tekstom

Najjednostavniji način slanja e-pošte putem PHP-a je slanje tekstualne e-pošte. U sljedećem primjeru prvo deklarišemo varijable e-adresu primaoca, liniju predmeta i tijelo poruke, a zatim prosljeđujemo te varijable funkciji mail() za slanje e-pošte.

<?php
$to = 'milosmihaljica@email.com';
$subject = 'Razgovor za posao';
$message = 'Ćao Miloše, da li si zaintresovan za posao?'; 
$from = 'posao@email.com';
 
// Slanje e-maila
if(mail($to, $subject, $message)){
    echo 'Vaša pošta je uspješno poslana.';
} else{
    echo 'Nije moguće poslati e-poštu. Molimo pokušajte ponovo.';
}
?>


Slanje e-pošte u formatiranom HTML obliku

Kada pošaljete tekstualnu poruku pomoću PHP-a, sav sadržaj tretiraće se kao jednostavan tekst. Poboljšaćemo taj izlaz i pretvoriti e-poštu u HTML format. Da biste poslali HTML e-poštu, postupak će biti isti. Međutim, ovaj put moramo pružiti dodatna zaglavlja kao i poruku u HTML formatu.

<?php
$to = 'milosmihaljica@email.com';
$subject = 'Razgovor za posao';
$from = 'posao@email.com';
 
// Da biste poslali HTML poštu, mora se postaviti zaglavlje tipa Content
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
// Kreirajte zaglavlja e-pošte
$headers .= 'From: '.$from."\r\n".
    'Reply-To: '.$from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
// Sastavite jednostavnu HTML poruku e-pošte
$message = '<html><body>';
$message .= '<h1 style="color:#f40;">Ćao, Miloše!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Da li si zaintresovan za posao?</p>';
$message .= '</body></html>';
 
// Slanje e-maila
if(mail($to, $subject, $message, $headers)){
    echo 'Vaša pošta je uspješno poslana.';
} else{
    echo 'Nije moguće poslati e-poštu. Molimo pokušajte ponovo.';
}
?>

U sljedeće dve lekcije (Rukovanje PHP obrazcima i Provjera PHP obrazca) naučićete kako implementovati interaktivni obrazac za kontakt na vašoj web lokaciji kako biste putem korisničke PHP funkcije slanja pošte primali komentare i povratne informacije korisnika putem e-pošte.