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
 .
     
 |