Fonction mail() en PHP

Définition et utilisation

La fonction mail() permet de envoyer des e-mails directement à partir du script.

Si la livraison du courrier électronique est acceptée avec succès, retourne true, sinon retourne false.

Grammaire

mail(to,subject,message,headers,parameters)
Paramètres Description
to Obligatoire. Définit le destinataire de l'e-mail.
subject Obligatoire. Définit le sujet de l'e-mail. Ce paramètre ne peut pas contenir de caractères de retour chariot.
message Obligatoire. Définit le message à envoyer.
headers Obligatoire. Définit les en-têtes supplémentaires, tels que From, Cc et Bcc.
parameters Obligatoire. Définit les paramètres supplémentaires du programme sendmail.

Description

Dans message Dans le message spécifié par les paramètres, les lignes doivent être séparées par un LF (\n). Chaque ligne ne peut pas dépasser 70 caractères.

(Sous Windows) Lorsque PHP se connecte directement au serveur SMTP, si un point est détecté au début d'une ligne, il sera supprimé. Pour éviter ce problème, remplacez un point par deux points.

<?php
$text = str_replace("\n.", "\n..", $text);
?>

Avis et commentaires

Commentaires :Il est important de se souvenir que l'acceptation de l'envoi du courrier électronique ne signifie pas que le courrier électronique est arrivé à son destinataire prévu.

Exemple

Exemple 1

Envoyer un e-mail simple :

<?php
$txt = "Première ligne de texte\nDeuxième ligne de texte";
// Si une ligne dépasse 70 caractères, utilisez wordwrap().
$txt = wordwrap($txt,70);
// Envoyer un e-mail
mail("somebody@example.com","My subject",$txt);
?>

Exemple 2

Envoyer un e-mail avec des en-têtes supplémentaires :

<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>

Exemple 3

Envoyer un email HTML :

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "Email HTML";
$message = "
<html>
<head>
<title>Email HTML</title>
</head>
<body>
<p>Cet email contient des balises HTML !</p>
<table>
<tr>
<th>Prénom</th>
<th> Nom de famille </th>
</tr>
<tr>
<td>Bill</td>
<td>Gates</td>
</tr>
</table>
</body>
</html>
";
// Définir toujours le content-type lors de l'envoi d'un email HTML
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
// Plus de headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";
mail($to,$subject,$message,$headers);
?>