mail

mail -- Envoie de mail

Description

boolean 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 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())

 
;

 
?



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.

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")

 
;

 
?



Vous pouvez aussi utiliser des techniques simples de concaténations de chaînes pour construire des messages complexes :

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 .