mail

(PHP 3, PHP 4 )

mail -- Levelet küld

Leírás

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

A mail() automatikusan a message paraméterben megadott levelet a to paraméterben megadott címzettnek. A levél témamegjelölését a subject határozza meg. Több címzettet is megadhatsz, ha vesszőt teszel a címzettek listájában az email címek közé a to paraméterében. Levélmellékletek és egyéb különleges tartalmú levelek küldésére is használható ez a függvény. Ezeket a MIME kódolással érhetők el, amelyről részletesebb leírást egy Zend cikkben vagy a PEAR Mime Classes c. található.

A követkeő RFC-k is számos segítséget nyújthatnak: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048 és RFC 2049.

A mail() TRUE-val tér vissza, ha levelet sikeresen elküldte máskülönben FALSE-szal.

Példa 1. Email küldése

mail("joecool@example.com", "Témamegjelölés", "Első sor\nMásodik sor\nHarmadik sor");

A negyedik paraméter megadott szöveg az email fejléc végére kerül. Ez nagyon gyakran újabb fejlécek elküldésére használható, több ilyen esetén azokat az újsorkarakterrel kell elválasztani.

Megjegyzés: A fejlécek elválasztására a \r\n karaktersorozatot kell használni még akkor is, ha néhány Unix levéltovábbító elem az egyszerű újsorkarakterrel (\n) is beéri. A Cc: fejléc kis- és nagy betűre érzékeny, így Cc: kell írni Win32 rendszereken. A Bcc: fejlécet nem támogatják a Win32 rendszerek.

Példa 2. e-mail küldése kiegészítő fejlécekkel

mail("nobody@example.com", "Téma", $uzenet,
     "From: webmaster@$SERVER_NAME\r\n".
     "Reply-To: webmaster@$SERVER_NAME\r\n".
     "X-Mailer: PHP/" . phpversion());

Az additional_parameters paraméter használható arra, hogy a levélküldőként beállított program számára további paramétereket lehessen átadni, lásd: sendmail_path). Ezzel például a levél mellé a feladó 'borítékot' is küldhet a sendmail-t használva. Szükség lehet a webszervert futtató felhasználót sendmail beállításai közé felvenni, hogy a levelekbe ne kerüljenek X-Warning fejlécek, ha ezzel a módszerrel küldesz 'borítékot' a levél mellé.

Példa 3. Kiegészítő fejléces levél küldése és további parancssori paraméterek átadása

mail("nobody@example.com", "a tárgy", $uzenet,
     "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Megjegyzés: Az ötödik paraméter PHP 4.0.5-től elérhető.

Egyszerű sztring kezelő módszerekkel lehet összetettebb e-mail üzenetek összeállításához:

Példa 4. Komplexebb email küldése

/* címzettek */
$kinek  = "Mari <mari@example.com>" . ", " ; // figyelj a vesszőre!
$kinek .= "Kolos <kolos@example.com>";

/* tárgy */
$targy = "Augusztusi Születésnapi Emlékeztető";

/* üzenet */
$uzenet = '
<html>
<head>
 <title>Augusztusi Születésnapi Emlékeztető</title>
</head>
<body>
<p>Itt van az augusztusi születésnapok listája!</p>
<table>
 <tr>
  <th>Személy</th><th>Év</th><th>Hónap</th><th>Nap</th>
 </tr>
 <tr>
  <td>Jocó</td><td>1970</td><td>augusztus</td><td>3.</td>
  <td>Saci</td><td>1973</td><td>augusztus</td><td>17.</td>
 </tr>
</table>
</body>
</html>
';

/* HTML levél küldése a Content-type fejléc megadásával */
$fejlec  = "MIME-Version: 1.0\r\n";
$fejlec .= "Content-type: text/html; charset=iso-8859-2\r\n";

/* további fejlécek */
$fejlec .= "From: Szuletesnapi Emlekezteto <szulinap@example.com>\r\n";

$fejlec .= "Cc: szulinaptar@example.com\r\n";
$fejlec .= "Bcc: szulinapell@example.com\r\n";

/* és most küldjük el! */
mail($kinek, $targy, $uzenet, $fejlec);

Megjegyzés: Biztosítani kell, hogy a ne legyen egyetlen újsorkarakter sem a to vagy a subject fejlécben, mert különben nem megfelelően lesz kiküldve a levél.