Envoyer des mails html en PHP

Vous ne savez pas envoyer de mail ou vous ne savez envoyer que des mails en texte ?
Vous avez envie de créer une newsletter ?
Alors je pense que ce tutoriel peut vous intéresser ! ;o)

Commentez Donner une note à l'article (0)

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

1. Preface

Bonjour à tous.
Ici, je vais vous présenter un petit tutoriel qui va vous permettre d'envoyer des mail en html !

Pourquoi envoyer des mails en html ?
Et bien il peut s'avérer très utile d'envoyer un mail dans certaines situation car un mail bien mis en forme, ça fait tout de suite plus sérieux et c'est plus joli !
De plus, sans le html, vous ne pouvez pas envoyer d'images dans votre mail...

Envoyer un mail en html, c'est bien ! Mais le mieux est de laisser choisire l'utilisateur sous quelle forme il désir recevoir son mail.
Il faut garder en tête que certaines personnes ne disposent pas de matériel leur permettant de lire les mails en html... (Certains puristes ne veulent pas de html dans leurs mails).

Pour ce tutoriel, je vais certes vous parler des mails en html, mais pour commencer, je vais vous faire une brève explication sur le mail texte.

2. Le mail non formaté

Ci-dessous, l'exemple d'un mail au format texte. Nous n'avons inséré aucune balise HTML pour la mise en page du texte.

Code d'envoi d'un mail texte simple
Sélectionnez

$destinataire="lepape@le-vatican.fr";
$objet="La super Newsletter de mon super site !";
$message="Bonjour à tous !\r\nEn ce moment sur mon super site, profitez d'un nouveau chat\r\nEt patati et patata...";
$header="From: newsletter@monsupersite.com\r\n\r\n"; //Remarque : Les entêtes doivent toujours être terminées par \r\n\r\n pour éviter des injections de headers.
mail($destinataire,$objet,$message,$header);

Dans ce code, nous déclarerons 4 variables qui contiennent les paramètres nécessaires à la fonction mail()Lien vers la documentation PHP au sujet de la fonction mail.

Variable Ce qu'elle contient
$destinataire C'est la variable qui contient l'adresse mail du destinataire du mail.
$objet Il s'agit de l'objet du mail
$message Il s'agit du mail en lui même. Vous constaterez des \r\n à certains endroits. Il s'agit de sauts à la ligne.
$header Ce champs est une entête. Il contient, dans cet exemple, l'adresse mail de l'émetteur après le From: .
Vous pouvez mettre n'importe quelle adresse mail ou même un texte.

3. Le mail en html

Le mail en html n'est pas très différent dans sa construction qu'un mail en texte.
En fait, la seule réelle différence se situe dans les header (entêtes) du mail.
Il vous faut juste indiquer qu'il s'agit d'un mail en html dans les headers et le tour et joué.
Pour cela, il faut définir le Content-type. Bon allez, arrêtons de parler et passons à la pratique ! :o)

Code d'envoi de mail en html
Sélectionnez

$destinataire="lepape@le-vatican.fr";
$objet="La super Newsletter de mon super site !";
 
//Le message et rédigé en html.
$message="<p>Bonjour à tous !<br />En ce moment sur mon super site, profitez d'un nouveau chat<br />
		<a href=\"http://www.monsupersite.com/chat/\"><img src=\"http://www.monsupersite.com/images/img.png\"></a><br />...</p>";
 
//Ajout du Content-type dans les entêtes.
$header="Content-type:text/html\nFrom:newsletter@monsupersite.com\r\n\r\n";
 
mail($destinataire,$objet,$message,$header);

Comme vous pouvez le constater, envoyer un mail en html n'est pas compliqué !
Bon alors je vais vous faire quelques précisions quand même :
que ce soit pour les liens ou les images, vous devez fournir une adresse absolue !

Il existe deux types d'adresses : les adresses relatives et les adresses absolues.
Les adresses relatives fournissent l'adresse en partant de l'emplacement ou l'on est par exemple, si je souhaite afficher une image sur mon site et que celle ci est contenue dans le répertoire "images" qui lui est contenu dans le même répertoire que la page à partir de laquelle je veux afficher l'image; Alors l'adresse relative peut être images/monimage.gif. Les adresses absolues fournissent une adresse qui sera correcte n' importe où (sur un autre site, dans un autre répertoire...). L'adresse absolue est un adresse complète comme celles que vous entrez dans votre navigateur web. Exemple : http://www.monsupersite.com/images/monimage.gif/ .

Si vous ne le faites pas les images ne pourront pas s'afficher et les liens dirigeront les visiteurs vers des pages qui n'existent pas...

4. Conclusion

J'espère que ce tutoriel vous a plu. Si vous voyez des erreurs, signalez les moi, c'est comme ça qu'on avance...

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur ( http://www.lahacheweb.comLa Hache Web ).