Ce face mb_send_mail
mb_send_mail codează subiectul cu mb_encode_mimeheader, convertește mesajul și adaugă antetele Content-Type și Content-Transfer-Encoding potrivite. Cu mb_language("uni") mesajele sunt trimise în UTF-8.
Ca și mail, are nevoie de un server de email configurat (de exemplu sendmail). Pentru aplicații serioase se folosesc biblioteci ca PHPMailer sau Symfony Mailer, cu SMTP.
Parametri
| Parametru | Descriere |
|---|---|
$to |
Adresa destinatarului. |
$subject |
Subiectul (poate avea diacritice). |
$message |
Textul mesajului. |
$additional_headers |
Opțional. Antete suplimentare, de exemplu From. |
$additional_params |
Opțional. Parametri pentru programul sendmail. |
Ce returnează
true dacă mesajul a fost predat serverului de email, altfel false.
Exemple
Exemplul 1: Confirmare de comandă
Exemplul are nevoie de un server de email, deci nu rulează aici. true înseamnă doar că mesajul a fost acceptat pentru trimitere, nu că a ajuns.
<?php
mb_language("uni");
$trimis = mb_send_mail(
"ana@exemplu.ro",
"Comanda ta a fost confirmată",
"Bună, Ana!\nComanda #1024 pleacă azi spre Iași.",
["From" => "magazin@exemplu.ro"]
);
var_dump($trimis);
Rezultat posibil (depinde de serverul de email)
bool(true)
Greșeli frecvente
- Pui în
$tosau în antete date introduse de utilizator fără verificare. Un atacator poate adăuga destinatari prin linii noi. Validează adresele cufilter_var($email, FILTER_VALIDATE_EMAIL).
Comenzi înrudite
mb_encode_mimeheader / mb_decode_mimeheader: Codează un text pentru un antet de email (de exemplu subiectul cu diacritice); mb_decode_mimeheader îl decodează.mb_language: Setează sau returnează limba folosită de mbstring la codarea emailurilor trimise cu mb_send_mail.