INFOS-AREA
  Envoi d'email en PHP
 

Envoi d'email en PHP

PHP est utilisé dans un environnement web. Par conséquent, il doit permettre la communication sur internet, notamment l'envoi de emails.

Il existe différents moyens pour envoyer un email en PHP, le plus simple étant d'utiliser la fonction prévue à cet effet, à savoir la fonction mail().

La fonction mail

La fonction mail() s'utilise de cette façon :

<?php
mail('email_destinataire', 'sujet', 'message');
?>

mail() retourne TRUE si le mail est envoyé et FALSE dans le cas contraire**.

La fonction mail () envoi automatiquement le texte "message" au destinataire(s).

Si l'on veut envoyer un mail à plusieurs destinataires, il faut séparer les adresses par des virgules.

Exemple de script :

<?php
mail(
"personne@domain.com",
"test d'envoie de mail",
"Ceci est un test."
);
?>

L'envoi d'emails avec pièces jointes ou contenus particulier (par exemple emails en HTML), pourra être également effectué avec la fonction mail(). Cependant il faut respecter les règles de l'encodage MIME.

Entête MIME des emails

Pour envoyer un mail il est nécessaire de définir un entête MIME. Les entêtes des messages Internet obéissent à des normes imposées par les RFC (Requests For Comments) et l'objectif de MIME est de définir un standard au niveau international. On peut alors ajouter des entêtes supplémentaires dans la fonction mail.

Différentes possibilités s'offrent à nous pour ce qui est du contenu à mettre dans l'entête d'un mail. Voici quelques champs d'entêtes :

Subject : Le sujet du message.
From : L'email de l'auteur du courrier.
Sender : L'adresse de l'expéditeur (couriel@domaine.com)
Reply-To : l'adresse de réponse au mail (reponse@domaine.com)
To : Liste des adresses des destinataires du mail (destinataire1@domaine.com, destinataire2@domaine.com)
Cc : La liste des destinataires que l'on met en copie du mail(copie@domaine.com )
Bcc : Les destinataires à qui on envoie une copie du mail, mais que l'on ne voit pas apparaitre dans la liste des emails en copie (invisible@domaine.com)
Message-ID : Code unique d'identification du message (code)
In-Reply-To : utilisé pour identifier le (ou les) mails dans le cas des emails de réponse. (message_id)
References : utilisé pour identifier le fil de la conversation. (message_id)
Comments : Commentaires à propos du mail.( commentaires)
X-Mailer : Le logiciel qui a envoyé le mail (PHP).
Keywords : Mot-clé mots-clés relatifs au mail.
Date : Date d'expédition (date)
MIME-Version : Version MIME du mail (1.0)
Content-Type : type/sous-type du contenu
Content-transfer-encoding : Encodage du contenu d'un mail.
Content-ID : message_id la référence du contenu d'un autre mail.
Content-Description : texte. Information descriptive à propos du contenu d'un mail.

Exemple d'envoi d'email avec entêtes :

<?php
//envoie de mail avec entête
$expediteur = "admin@domain.com";
date("D, j M Y H:i:s"); //date
$entete = "From: $expediteurn"; // expéditeur
$entete .= "Cc: n";
$entete .= "Reply-To: $expediteur n"; // Adresse de retour, retour à l'envoyeur en cas d'erreur
$entete .= "X-Mailer: PHP/" . phpversion() . "n" ; //version
$entete .= "Date: ". date("D, j M Y H:i:s"); //date;
mail( "tout@domain.com", "Communication", "Nous vous communiquons que le département sera fermé tous les mardi après midi.", $entete);
>>

La fonction email

Parfois on utilise la fonction email() en remplacement de la fonction mail(). Cette fonction, lorqu'elle existe, permet uniquement d'envoyer des mails à partir de votre adresse email.

Son utilisation est à peu près similaire à celui de la fonction mail() mais il y a quelque peu de différence au niveau de la syntaxe :

email( chaîne compte, chaîne destinataire, chaîne titre, chaîne message [,options] );

** ATTENTION :
Une confusion est souvent faite entre le fait que la fonction retourne 'true', et le mail ne part pas. En fait, la fonction 'mail' retourne 'true' si le parser PHP réussit bien à envoyer le mail. Ceci ne veut pas dire que le mail part. Il existe beaucoup d'autres facteurs influant sur l'envoi de mails.

Si 'php' arrive à envoyer le mail, alors ce mail part dans le serveur (généralement 'apache'), et la fonction 'mail' renvoie 'true'.

Après, le problème de savoir si 'apache' arrive à envoyer le mail ou pas n'est plus le problème de php, mais de 'apache'.

Donc il est vain de tester que 'mail' retourne 'true', dans la mesure où... il retourne toujours 'true'... A moins que le parser php ne soit pas correctement installé.

EXEMPLE 2:

Envoyer un mail

 

   Introduction

 

 

Php est doté d'une fonction très pratique pour le webmaster : la fonction mail().
Elle permet l'envoi directement par le serveur d'email vers el destinataire de votre choix. Cependant, il est préférable de posséder un hébergement professionnel si vous souhaitez utiliser cette fonction. Voyons dans ce tutorial comment la manipuler facilement.

 

   Syntaxe de la fonction

 


Voici les paramètres qu peut recevoir la fonction :

 

Script :
mail("destinataire","sujet","message","entête");

Nous allons, dans ce tutorial, expliquer plus en détail comment utiliser cette fonction.

 

Envoi d'un email simple
 


Nous allons ici voir de quelle manière envoyer un email sous sa forme la plus simple.

 

Script :
<?php
// Envoi d'un mail simple
$destinataire = "webmaster@script-masters.com";
$sujet = "Ceci est le sujet" ;
$message = "Ceci est le message qui sera envoyé.n Ceci est la seconde ligne." ;
mail($destinataire, $sujet,$message);
?>

 

Ce petit script envoie donc un mail à webmaster@script-masters.com.
Notez que si vous souhaitez sauter une ligne, vous devez rajouter " n ".

Cependant cette syntaxe est ultra simplifié. Il est en effet possible d'ajouter un entête. Voyons pourquoi et comment.

 

Ajout d'un entête
 

 

Un entête vous permettra par exemple de déterminer une adresse email pour l'expéditeur et une autre pour la réponse.

Script :
<?php
$destinataire = "webmaster@script-masters.com";
$from = "webmaster@script-masters.com";
$reponse = "contact@script-masters.com";
$sujet = "Ceci est le sujet" ;
$message = "Ceci est le message qui sera envoyé.n Ceci est la seconde ligne." ;
mail($destinataire,$sujet, $message,"From: $fromrnReply-To: $reponse");
?>

Ainsi, si le destinataire du mail répond a celui-ci, la réponse sera envoyé vers " contact@script-masters.com ".

 

Envoi d'un mail en html
 

 

Il peut-être également utile d'envoyer un mail en html. (Notamment si le script servira pour l'envoi d'une newsletter). Voici l'instruction à rajouter dans l'entête.

Script :
<?php
$destinataire = "webmaster@script-masters.com";
$from = "webmaster@script-masters.com";
$reponse = "contact@script-masters.com";
$sujet = "Ceci est le sujet" ;
$message = "<html><body><b>Ceci est le message qui sera envoyé</b>.<br>Ceci est la seconde ligne.
<br>On peut ainsi formater le texte : <font size=3>Exemple</font>
</body></html>" ;

mail($destinataire, $sujet, $message, "From: $fromrnReply-To: $reponsernContent-Type: text/html; charset="iso-8859-1"rn");
?>

Toutes les balises html peuvent être utilisé dans votre message.

 

Conclusion
 

 

Vous l'aurez compris, la fonction mail est très pratique et surtout très utilisé par les sites dynamiques. Il est bien sûr important de ne pas en abuser sinon vous risquez fortement d'être radié par votre hébergeur pour cause de Spam.

 



 
  Aujourd'hui sont déjà 3 visiteurs (38 hits) Ici! ;  
 
Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement