ezmlm_hash
<<<
mail Index des fonctions
>>>

7.49 Mail
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
ezmlm_hash
->mail

7.49.8 mail()Envoie de mail

[ Exemples avec mail ]   PHP 3, PHP 4

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

mail poste automatiquement le message message à destination de to . Les destinataires multiples doivent être séparés par des virgules. Les emails avec pièces jointes ou contenus particuliers (comme les emails en HTML, par exemple), peuvent être réalisés avec cette fonction. Il faut respecter l'encodage MIME. Pour plus de détails, voyez un article chez Zend et les classes PEAR MIME .

Les RFC suivantes peuvent aussi se révéler utiles : RFC 1896 , RFC 2045 , RFC 2046 , RFC 2047 , RFC 2048 et RFC 2049 .

mail retourne TRUE si le mail est envoyé, et FALSE sinon.

Envoie de courrier électronique (mail)

<?php
  mail
("maxou@exemple.com", "Mon Sujet", "Ligne 1\nLigne 2\nLigne 3");
?>

Le quatrième argument passé sera inséré à la fin de l'en-tête. Typiquement, cela permet d'insérer des en-têtes supplémentaires. Les en-têtes multiples doivent être séparées par des virgules.

Note

Sous Windows 32bits, vous devez utiliser \r\n pour séparer les en-têtes. Notez aussi que les en-têtes cc: et bcc: sont sensibles à la casse et doivent être écrits Cc: et Bcc: sous Win32.

Si le cinquième argument additional_parameters est fourni, PHP l'utilisera dans son appel du programme d'envoie de courrier électronique. Ceci est pratique pour passer une valeur correcte à l'en-tête Return-Path , avec sendmail.

Note

Le cinquième paramètre a été ajouté en PHP 4.0.5.

Envoi de eMail avec des en-têtes supplémentaires

<?php
mail
("personne@exemple.com", "Le sujet", $message,
     
"From: webmaster@{$_SERVER['SERVER_NAME']}\r\n"
    
."Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n"
    
."X-Mailer: PHP/" . phpversion());
?>
Avec le cinquième paramètre, vous pouvez ajouter d'autres paramètres de ligne de commande qui seront utilisés par le programme d'envoi de courrier. Dans l'exemple ci-dessous, l'en-tête Return-Path est correctement paramétré. Normalement, sendmail ajoute automatiquement l'en-tête X-Authentication-Warning (paramètre -f), car l'utilisateur "serveur web" n'est probablement pas un de ses utilisateurs de confiance ("trusted users"). Pour supprimer cette alerte, ajoutez l'utilisateur du serveur web dans la configuration de sendmail.
Envoi de eMail avec des en-têtes supplémentaires et un paramètre de ligne de commande supplémentaire

<?php

mail
("personne@exemple.com", "Le sujet", $message,
     
"From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
?>
Vous pouvez aussi utiliser des techniques simples de concaténations de chaînes pour construire des messages complexes :
Envoi de mail complexe avec mail

<?php
/* destinataire */
$to  = "Mary <mary@example.com>" . ", " ; // note the comma
$to .= "Kelly <kelly@example.com>";

/* sujet */
$subject = "Anniversaires à souhaiter en Août";

/* message */
$message = "
<html>
<head>
<title>Rappel des anniversaires d'Août</title>
</head>
<body>
<p>Voici la liste des anniversaires du mois d\'Août!</p>
<table>
<tr>
  <th>Ami</th><th>Jour</th><th>Mois</th><th>Année</th>
</tr>
<tr>
  <td>Guillaume</td><td>3</td><td>Août</td><td>1970</td>
</tr>
<tr>
  <td>Sandra</td><td>17</td><td>Août</td><td>1973</td>
</tr>
</table>
</body>
</html>"
;

/* Pour envoyer du mail au format HTML, vous pouvez configurer le type Content-type. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* D'autres en-têtes : errors, From cc's, bcc's, etc */
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

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

/* et hop, à la poste */
mail($to, $subject, $message, $headers);
?>

Note

Assurez-vous qu'il n'y ait aucune nouvelle ligne (ou d'autres espaces ou caractères blancs) dans les paramètres to ou subject , car cela peut avoir des effets secondaires irrationnels.

Note

Le paramètre to ne peut pas être une adresse de la forme "Quelqu'un <quidam@exemple.com>". La commande mail ne comprendra pas ce format.

Voir aussi imap_mail .

<< mail >>
ezmlm_hash Mail Index des fonctions