Fonction mail() de PHP

❮ Référence PHP Mail

Exemple

Envoyer un email simple :

<?php
// le message
$msg = "Première ligne de texte\nDeuxième ligne de texte";

// utiliser wordwrap() si les lignes dépassent 70 caractères
$msg = wordwrap($msg,70);

// envoyer l'email
mail("someone@example.com","Mon sujet",$msg);
?>

Définition et Utilisation

La fonction mail() permet d'envoyer des emails directement depuis un script.

Syntaxe

mail( to,sujet,message,en-têtes,paramètres );

Valeurs des Paramètres

Paramètre Description
to Requis. Spécifie le(s) destinataire(s) de l'email.
subject Requis. Spécifie le sujet de l'email. Remarque : Ce paramètre ne peut pas contenir de caractères de nouvelle ligne.
message Requis. Définit le message à envoyer. Chaque ligne doit être séparée par un LF (\n). Les lignes ne doivent pas dépasser 70 caractères.

Remarque Windows : Si un point est trouvé au début d'une ligne dans le message, il peut être supprimé. Pour résoudre ce problème, remplacez le point par un double point :
<?php
$txt = str_replace("\n.", "\n..", $txt);
?>

headers Optionnel. Spécifie des en-têtes supplémentaires, comme De, Cc et Bcc. Les en-têtes supplémentaires doivent être séparés par un CRLF (\r\n).

Remarque : Lors de l'envoi d'un email, il doit contenir un en-tête De. Cela peut être défini avec ce paramètre ou dans le fichier php.ini.

parameters Optionnel. Spécifie un paramètre supplémentaire pour le programme sendmail (celui défini dans le paramètre de configuration sendmail_path). (c'est-à-dire que cela peut être utilisé pour définir l'adresse de l'expéditeur de l'enveloppe lors de l'utilisation de sendmail avec l'option -f sendmail).


Détails Techniques

Valeur de Retour : Renvoie la valeur de hachage du paramètre address , ou FALSE en cas d'échec. Remarque : Gardez à l'esprit que même si l'email a été accepté pour livraison, cela ne signifie PAS que l'email a réellement été envoyé et reçu !
Version PHP : 4+
Journal des Modifications PHP : PHP 7.2 : Le paramètre headers accepte également un tableau
PHP 5.4 : Protection contre l'injection d'en-têtes ajoutée pour le paramètre headers .
PHP 4.3.0 : (Windows uniquement) Tous les en-têtes personnalisés (comme De, Cc, Bcc et Date) sont pris en charge et ne sont pas sensibles à la casse.
PHP 4.2.3 : Le paramètre parameter est désactivé en mode sécurisé.
PHP 4.0.5 : Le paramètre parameter a été ajouté.

Plus d'Exemples

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

<?php
$to = "somebody@example.com";
$subject = "Mon sujet";
$txt = "Bonjour le monde !";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";

mail($to,$subject,$txt,$headers);
?>

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</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";

// Toujours définir le type de contenu lors de l'envoi d'un email HTML
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// Plus d'en-têtes
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?>

❮ Référence Complète PHP Mail