:arrow: Nous allons donc créer un formulaire simple pour faire notre envoie de mail :
Fichier form.html
| CODE |
<table width="500" border="0" cellspacing="0" cellpadding="0"> <form action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire"> <tr> <td colspan="3">Envoyer un message</td> </tr> <tr> <td><div align="right">Votre nom</div></td> <td colspan="2"><input type="text" name="nom" size="45" maxlength="100"></td> </tr> <tr> <td width="17%"><div align="right">Votre mail</div></td> <td colspan="2"><input type="text" name="mail" size="45" maxlength="100"></td> </tr> <tr> <td><div align="right">Sujet :</div></td> <td colspan="2"><input type="text" name="objet" size="45" maxlength="120"></td> </tr> <tr> <td><div align="right">Message :</div></td> <td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td> </tr> <tr> <td></td> <td width="42%"><center><input type="reset" name="Submit" value="Réinitialiser le formulaire"></center></td> <td width="41%"><center><input type="submit" name="Submit" value="Envoyer"></center></td> </tr> </form> </table> |
:arrow: Nous allons maintenant voir le fichier qui va envoyer le mail envoie.php :
Commençons par récupérer les 4 champs de notre formulaire :
| CODE |
<?php $nom=$HTTP_POST_VARS['nom']; $mail=$HTTP_POST_VARS['mail']; $objet=$HTTP_POST_VARS['objet']; $message=$HTTP_POST_VARS['message']; |
:arrow: Pour envoyer un mail il est nécéssaire de définir une entête MIME.
L'entête MIME
Les entêtes des messages Internet sont normalisés par les RFC (Requests For Comments) et le but de MIME est de définir un standard au niveau internationnal.
Les champs d'entête :
- From: mail@domaine.com
- Sender: mail@domaine.
l'adresse de l'expéditeur.
- Reply-To: adresse_reponse@domaine.com
l'adresse de réponse au mail.
- To: destinataire@domaine.com
la liste d'adresses des destinataires du mail.
- Cc: destinataire_copie@domaine.com
la liste des destinataires d'une copie du mail.
- Bcc: destinataire_copie@domaine.com
les destinataires non-visible d'une copie du mail.
- Message-ID: code_message
un code unique d'identification du message.
- In-Reply-To: message_id
est utilisé pour identifier le (ou les) mail pour lequel il en est un nouveau.
- References: message_id
est utilisé pour identifier le fil de la conversation.
- Subject: Sujet
le sujet du message.
- Comments: Commentaire
commentaire à propos du mail.
- X-Mailer: php
Le logiciel qui à envoyé le mail ici PHP.
- Keywords: Mot-clé
mots-clés relatifs au mail.
- Date: date
Date d'expédition.
- MIME-Version: 1.0
la version MIME du mail.
- Content-Type: type/sous-type; {charset = encodage} | {boundary = délimiteur}
le type et le sous-type (text/plain, image/jpeg, audio/basic, application/postscript, etc.) et l'encodage (US-ASCII ou ISO-8859-X) du contenu d'un courrier.
Si le couple type/sous-type possède la valeur multipart/mixed ou multipart/alternative, l'attribut boundary permet de délimiter les parties encodées différemment par une chaîne de caractères spéciale.
- Content-transfer-encoding: 7bit | 8bit | binary | quoted-printable | base64
définit un mécanisme d'encodage du contenu d'un mail.
- Content-ID: message_id
la référence à un contenu d'un autre mail.
- Content-Description: texte.
information descriptive à propos du contenu d'un mail.
:arrow: Nous alons traité l'entête de notre mail à envoyer
l'auteur du courrier.
| CODE |
/////voici la version Mine $headers = "MIME-Version: 1.0\r\n"; //////ici on détermine le mail en format text $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; ////ici on détermine l'expediteur et l'adresse de réponse $headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; |
:arrow: Ensuite nous avons besoin de définir le sujet le destinataire et le corp du message.
| CODE |
$subject="$objet"; $destinataire="moi@mail.com"; //// On Formatte les données du mailpour suivre la norme RFC 2045: $body = chunk_split(base64_encode($message)); |
:arrow: Une fois nos paramètres définis nous pouvons envoyer notre message :
| CODE |
if (mail($destinataire,$subject,$body,$headers)) { echo "Votre mail a été envoyé"; } else { echo "Une erreur s'est produite"; } ?> |
:arrow:[b] Voila le code source :!:
Voila le code de form.html
| CODE |
<table width="500" border="0" cellspacing="0" cellpadding="0"> <form action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire"> <tr> <td colspan="3">Envoyer un message</td> </tr> <tr> <td><div align="right">Votre nom</div></td> <td colspan="2"><input type="text" name="nom" size="45" maxlength="100"></td> </tr> <tr> <td width="17%"><div align="right">Votre mail</div></td> <td colspan="2"><input type="text" name="mail" size="45" maxlength="100"></td> </tr> <tr> <td><div align="right">Sujet :</div></td> <td colspan="2"><input type="text" name="objet" size="45" maxlength="120"></td> </tr> <tr> <td><div align="right">Message :</div></td> <td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td> </tr> <tr> <td></td> <td width="42%"><center><input type="reset" name="Submit" value="Réinitialiser le formulaire"></center></td> <td width="41%"><center><input type="submit" name="Submit" value="Envoyer"></center></td> </tr> </form> </table> |
Voila le code de envoi.php
| CODE |
<?php $nom=$HTTP_POST_VARS['nom']; $mail=$HTTP_POST_VARS['mail']; $objet=$HTTP_POST_VARS['objet']; $message=$HTTP_POST_VARS['message']; /////voici la version Mine $headers = "MIME-Version: 1.0\r\n"; //////ici on détermine le mail en format text $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; ////ici on détermine l'expediteur et l'adresse de réponse $headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; $subject="$objet"; $destinataire="moi@mail.com"; $body="$message"; if (mail($destinataire,$subject,$body,$headers)) { echo "Votre mail a été envoyé"; } else { echo "Une erreur s'est produite"; } ?> |
img:coupe img:remarque A voir également :