mail

(PHP 3, PHP 4 , PHP 5)

mail -- trimite mail

Descriere

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

mail() trimite automat mesajele specificate în message către destinatarul specificat în to. Pot fi specificați mai mulți destinatari, separând adresele prin virgulă în parametrul to. Pot fi trimise e-mail-uri cu fișiere atașate și cu tipuri speciale de conținut utilizând această funcție. Aceasta se realizează prin codificare MIME; Pentru mai multe informații vezi un articol ZEND sau Clasele PEAR - MIME.

Următoarele RFC-uri pot fi, de asemenea, folositoare: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048, și RFC 2049.

mail() returnează TRUE dacă mailul a fost trimis cu succes, FALSE în caz contrar.

Exemplu 1. Trimiterea unui e-mail.

mail("joecool@example.com", "Subiectul", "Linia 1\nLinia 2\nLinia 3");

Dacă și cel de-al patrulea argument este trimis către funcție, acest șir este inserat la finalul antetului. Acest parametru se utilizează pentru a adăuga antete adiționale. Antetele multiple se separă cu un început de rînd (\r) și cu o linie nouă (\n).

Notã: Trebuie utilizată combinația \r\n pentru separarea antetelor, cu toate că unii agenți de transfer mail din Unix pot lucra cu un singur caracter linie nouă (\n). Antetul Cc: este sensibil la distincția majuscule/minuscule și trebuie scris Cc: pe sisteme Win32. Antetul Bcc: nu este suportat pe sistemele Win32.

Exemplu 2. Trimiterea de mail-uri cu antete adiționale.

mail("nobody@example.com", "subiectul", $mesaj,
     "From: webmaster@$NUME_SERVER\r\n"
    ."Reply-To: webmaster@$NUME_SERVER\r\n"
    ."X-Mailer: PHP/" . phpversion());

additional_parameters poate fi utilizat pentru a trimite parametri adiționali programului folosit pentru trimiterea de e-mail-uri specificat în sendmail_path. De exemplu acești parametri adiționali pot fi folosiți pentru a indica adresa expeditorului. Pentru a preveni trimiterea unui antet 'X-Warning' odată cu mesajul atunci când utilizați această metodă este posibil să fie necesar să adăugați utilizatorul care rulează serverul web.

Exemplu 3. Expedierea de mesaje cu antete adiționale și setarea unui parametru linie de comandă adițional.

mail("nimeni@exemplu.com", "subiectul", $mesaj,
     "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Notã: Cel de-al cincilea parametru a fost adăugat în PHP 4.0.5.

Se pot utiliza șiruri simple pentru a constru mesaje de e-mail complexe.

Exemplu 4. Expedierea de mesaje complexe.

/* destinatari */
$catre  = "Mary <mary@example.com>" . ", " ; //notați virgula
$catre .= "Kelly <kelly@example.com>";

/* subiect */
$subiect = "Zile de naștere în august";

/* mesaj */
$mesaj = '
<html>
<head>
 <title>Zile de naștere în august</title>
</head>
<body>
<p>Zile de naștere care se sărbătoresc în august!</p>
<table>
 <tr>
  <th>Persoana</th><th>Ziua</th><th>Luna</th><th>Anul</th>
 </tr>
 <tr>
  <td>Joe</td><td>3</td><td>august</td><td>1970</td>
  <td>Sally</td><td>17</td><td>august</td><td>1973</td>
 </tr>
</table>
</body>
</html>
';

/* Pentru a trimite un e-mail în format HTML trebuie setat antetul Content-type. */
$antete  = "MIME-Version: 1.0\r\n";
$antete .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* Antete adiționale */
$antete .= "From: Monitorizare zile de nastere <birthday@example.com>\r\n";

$antete .= "Cc: birthdayarchive@example.com\r\n";
$antete .= "Bcc: birthdaycheck@example.com\r\n";

/* Și acum să-i dăm drumul... */
mail($catre, $subiect, $mesaj, $antete);

Notã: Aveți grijă să nu fie vreun caracter linie nouă (\n) în parametrii to sau subject, dacă doriți ca mesajul să fie trimis.