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); ?>