Manuel PHP
Précédent
Suivant
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 http: / /www.zend.com / zend / spotlight / sendmimeemailpart1.php 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.
Exemple 1.
Envoie de courrier électronique (mail)
?php mail( "rasmus@lerdorf.on.ca", "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.
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.
Le cinquième paramètre a été ajouté en PHP 4.0.5.
Exemple 2.
Envoi de eMail avec des en-têtes supplémentaires.
?php mail( "nobody@aol.com", "Le sujet", $message, "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer:
PHP / ". phpversion());?
Exemple 3.
Envoi de eMail avec des en-têtes supplémentaires et un paramètre de ligne de commande supplémentaire
?php mail( "nobody@aol.com", "the subject", $message, "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVERNAME");?
Exemple 4.
Envoi de mail complexe.
?php / * destinataire * / $recipient .= "Mary mary@u.college.edu" .", "; / /remarquez les virgules $recipient .= "Kelly kelly@u.college.edu" .", "; $recipient .= "ronabop@php.net"; / * sujet * / $subject = "Rappel des anniversaires du mois d'août"; / * message * / $message .= "Le mail suivant inclut une table au format ASCII\n"; $message .= "Jour \t\tMois \t\tAn\n"; $message .= "3 \t\tAou\t\t1970\n"; $message .= "17\t\tAou\t\t1973\n"; / * Vous pouvez ajouter une signature * / $message .= "--\r\n"; / /Délimiteur de signature $message .= "Rappel d'anniversaire: copyleft par public domain"; / * D'autres en-têtes: errors, From cc's, bcc's, etc * / $headers .= "From:
Rappel d'anniversaire birthday@php.net \n"; $headers .= "X-Sender: birthday@php.net \n"; $headers .= "X-Mailer:
PHP\n"; / / maileur $headers .= "X-Priority:
1\n"; / / Message urgent! $headers .= "Return-Path: birthday@php.net \n"; / / Re-chemin de retour pour les erreurs $headers .= "Content-Type: text / html; charset=iso-8859-1\n "/ / Type MIME $headers .= "Cc:birthdayarchive@php.net\n"; / / Champs CC $headers .= "Bcc:birthdaycheck@php.net, birthdaygifts@php.net"; / / Champs BCCs / * et hop, à la poste * / mail($recipient, $subject, $message, $headers);?
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.
Précédent
Sommaire
Suivant
Niveau supérieur
Traitement de mail