Envoyer un mail avec PHP

E

Bonjour, aujourd’hui dans ce billet, nous verrons comment envoyer un mail (Format Texte et HTML) avec la fonction mail() de PHP.

Avant tout, il faut noter que cette méthode a plusieurs inconvénients :

  • Peut être accusée de faciliter le « spamming »
  • Envoyer plusieurs mails stockés dans une base de données peut réduire considérablement les ressources du serveur

Trêve de bavardage jetons-nous dans le vif du sujet.

Vous pouvez envoyer vos mails soit au format Texte soit au format HTML. La différence se situe au niveau du format HTML dans lequel vous pouvez insérer des images, des liens hypertextes, des vidéos, des tableaux et bien d’autres.

De manière générale, un mail possède des en-têtes contenant les informations sur la personne qui envoie, l’encodage du mail et l’adresse mail à qui faut répondre.

Syntaxe :

mail(to, subject, message, header)
Mail au format Texte
<?php
// Ici le sujet de votre mail.
$_sujet = "Mon super sujet !";

// Ici le message à envoyer par mail.
$_message = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.";

// Adresse mail du destinataire du message
$_destinataire = 'destinataire@domaine.ltd';

// En-têtes du message.
$_headers = "From: \"Nom de l'expediteur\"<mail@domaine.ltd>\n";
$_headers .= "Reply-To: mail@domaine.ltd\n";
$_headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";

// Envoie du mail
$_sendMail = mail($_destinataire, $_sujet, $_message, $_headers);

// On teste si le mail a été envoyé ou non
if($_sendMail) {
	echo "Email envoyé avec succès.";
}
else {
	echo "Une erreur est survenue lors de l'envoi de votre message.";
}
?>

décortiquons ce bout de code :

L’entête From fait référence à l’expéditeur du message, Reply-To l’adresse mail pour la réponse et Content-Type précise le type d’email (texte ou html) et l’encodage des caractères.

Maintenant, voyons comment envoyer un mail au format HTML. Pour cette partie, j’ai récupéré le code source d’un template de mail HTML chez Webdesign Web que vous pouvez télécharger ici  et inclure dans votre code source.

Mail au format HTML
<?php

/**
* Pour des questions de lisibilité, j'ai crée un fichier templateMail.php dans lequel j'ai mis tout mon code HTML dans la variable $_contentTemplate.
* Ici, j'inclus ce fichier dans mon script d'envoi de mail
*/
include 'templateMail.php';
// Ici le sujet de votre mail.
$_sujet = "Mon super sujet !";

// Ici le message à envoyer par mail au format HTML (on voit bien les balises HTML si on fait un echo sur $_contentTemplate :)).
$_message = $_contentTemplate;

// En-têtes du message.
$_destinataire = 'destinataire@domaine.ltd';
$_headers = "From: \"Nom de l'expediteur\"<mail@domaine.ltd>\n";
$_headers .= "Reply-To: mail@domaine.ltd\n";
$_headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";

// Envoie du mail
$_sendMail = mail($_destinataire, $_sujet, $_message, $_headers);

// On teste si le mail a été envoyé ou non
if($_sendMail) {
	echo "Email envoyé avec succès.";
}
else {
	echo "Une erreur est survenue lors de l'envoi de votre message.";
}
?>

Super voilà qui est bien, qui fini bien. C’est ici que notre voyage dans la fonction mail() de PHP prend fin.

Aussi ce qu’il faut retenir c’est que cette méthode, n’est pas la seul encore moins la plus appropriée pour l’envoi de vos mail avec PHP. Dans un prochain billet, nous verrons comment le faire en utilisant un Serveur SMTP avec la librairie PHPMailer.

D’ici là portez vous bien 🙂

A propos de l'auteur

François KOBON

Trois mots pour me décrire : Code - Build - Hack. Je réponds au nom de François KOBON. Partisan passionné de technologies/innovations libre et ouverte, d'Algorithme, de Datas, des Mathématiques, tous types de sciences... et surtout d'apprentissage non conventionnel parce je suis auto-didacte. Je suis membre de la communauté Ayiyikoh que vous pouvez retrouver en ligne sur ayiyikoh.org

1 commentaire

Par François KOBON

François KOBON

Trois mots pour me décrire : Code - Build - Hack. Je réponds au nom de François KOBON. Partisan passionné de technologies/innovations libre et ouverte, d'Algorithme, de Datas, des Mathématiques, tous types de sciences... et surtout d'apprentissage non conventionnel parce je suis auto-didacte. Je suis membre de la communauté Ayiyikoh que vous pouvez retrouver en ligne sur ayiyikoh.org

Suivez-moi