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