Envoyer des mails avec PHPMailer

phpmailer

Envoyer un simple e-mail en PHP au format texte n’a rien de compliqué. Toutefois, lorsqu’il s’agit de l’envoyer au format HTML, ou encore d’y joindre un fichier, certains si perdent. PHPMailer est une librairie qui apporte une solution simple et efficace à ces problèmes. Je vous propose dans cet article de découvrir brièvement son fonctionnement.

PHPMailer est simple d’utilisation et ouvre beaucoup de possibilités :

  • Envoi au format HTML
  • Insertion de pièces jointes
  • Authentification SMTP
  • Multipart/alternative pour les clients qui ne peuvent pas lire les emails en HTML
  • Debugging en cas d’échec de l’envoi du mail

Comment utiliser PHPMailer ?

On commence par télécharger la librairie (attention il faut prendre le package correspondant à votre version de php). Placez la librairie sur votre serveur, par exemple dans un dossier nommé classes.
Créez votre fichier PHP qui servira à envoyer le mail php comme suit :

// On va chercher la classe PHPMailer
require_once('classes/class.phpmailer.php');
// Création d'un nouvel objet $mail
$mail = new PHPMailer();
// Encodage
$mail->CharSet = 'UTF-8';
// Corp de notre email
$body = "<p>Salut tout le <u>monde</u>,
voici un mail en <b>HTML</b></p>";
// Expediteur, adresse de retour et destinataire :
$mail->SetFrom("contact@nicolas-verhoye.com", "Nicolas Verhoye");
$mail->AddReplyTo("nicolas.verhoye@gmail.com", "Nicolas Verhoye");
$mail->AddAddress("destinataire@website.com", "Destinataire");
// Sujet du mail
$mail->Subject = "Test d'envoi de mail avec PHPMailer";
// Le message
$mail->MsgHTML($body);
// Pièce jointe
$mail->AddAttachment("images/phpmailer.gif");
// Envoi de l'email
if ( !$mail->Send() ) {
echo "Echec de l'envoi du mail, Erreur: " . $mail->ErrorInfo;
} else {
echo "Message envoyé!";
}
unset($mail);

Et voila c’est terminé, cliquez ici si vous souhaitez télécharger la librairie sur le site de l’auteur.

Nicolas Verhoye

Développeur Magento, Freelance

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *