Envoi de mails en PHP avec phpmailer

09/09/09 | PHP

Pour ceux qui ne connaitraient pas encore cette classe (très !) pratique, il s’agit comme son nom l’indique d’une classe php permettant de l’envoi d’emails de manière très simplifiée. On peut utiliser le serveur SMPT afin d’envoyer des emails, ou simplement avec la fonction mail de PHP. Nous allons voir comment utiliser cette classe pour envoyer un mail au format HTML avec la fonction mail de PHP.

Il faut donc commencer par télécharger la classe phpmailer (de préférence la version pour php5/6).

Il faut ensuite inclure cette classe dans notre fichier php servant à envoyer
notre email :

// Pensez à préciser l'endroit ou est stockée votre classe
require_once 'inc/classes/class.phpmailer.php';

On crée ensuite notre objet PHPMailer, puis on définit l’expéditeur, le sujet, le message (au format HTML donc), ainsi que le destinataire :

$mail = new PHPMailer();
$mail->IsHTML(true); // Email au format HTML
$mail->From = "adresse.de@lexpediteur";
$mail->FromName = "Nom du l'expediteur";
$mail->Subject = "Sujet du mail";
$mail->MsgHTML('<html><body>Contenu de votre message au <strong>format HTML</strong></body></html>');
$mail->AddAddress("adresse.du@destinataire"); // Vous pouvez donc ajouter plusieurs destinatiares

Il nous reste alors plus qu’à envoyer l’email en vérifiant que tout se passe bien :

if($mail->Send())
echo "Message envoyé";
else
echo "Erreur lors de l'envoi";

Vous pouvez ensuite ajouter des pièces jointes (AddAttachment()) ou des destinataires en copie. Vous pouvez accéder aux différentes méthodes sur le site officiel.

Petite note si vous souhaitez envoyer des emails en UTF8, pensez à encoder votre fichier php en UTF-8, à préciser l’encodage pour php mailer, et rajouter le meta correspondant dans votre message HTML :

$mail->CharSet = 'utf-8'; // Précision sur l'encodage pour phpmailer
$mail->MsgHTML('<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>Contenu de votre message au <strong>format HTML</strong></body></html>'); // Précision de l'encodage du mail

2 commentaires

  1. dgfdhdfh 20 novembre 2009

    It’s nice!

  2. Manue 20 janvier 2010

    Tu as une erreur dans ton code : ta balise d’ouverture de body est une balise de fermeture.
    « » 

Laisser un commentaire