Envoyer un E-Mail avec PHPMailer

Introduction

Je vous avais présenté il y a maintenant 2 ans un article semblable (Envoyer un email en PHP), qui permettait lui aussi d'envoyer des emails en PHP.

Mais dans ce nouvel article, je vous ferai découvrir PHP Mailer qui est beaucoup plus facile d'utilisation, tout en étant très complet.

Commencez tout d'abord par télécharger la libraire phpmailer : http://phpmailer.worxware.com.

Envoyer un E-Mail

L'envoi d'E-Mail est très simple à partir de maintenant :

1 require_once('/phpmailer/class.phpmailer.php');
2 
3 $mail = new PHPMailer();

On précise que notre E-Mail sera au format HTML (si c'est du texte, ne pas ajouter) :

1 $mail->IsHTML(true);

On donne l'encodage :

1 $mail->CharSet = "utf-8";

On ajoute l'expéditeur :

1 $mail->SetFrom('expediteur@gmail.com', 'Expéditeur');

L'objet du mail :

1 $mail->Subject = 'Objet de l\'email';

Son contenu :

1 $mail->Body = '<p><b>E-Mail</b> au format <i>HTML</i>.</p>';

On ajoute le ou les destinataires (si vous avez plusieurs destinataires, il suffit de dupliquer la ligne) :

1 $mail->AddAddress('adresse-mail@gmail.com');
2 $mail->AddAddress('adresse-mail-2@gmail.com');

Et il ne reste plus qu'à envoyer.

1 $mail->Send();

Son utilisation est donc bien plus simple que la méthode que je vous avais décrite au premier article.

Images

Si vous affichez une image en HTML dans l'E-Mail (<img src="http://..."/>), celle-ci ne sera par défaut pas affichée, à moins que le destinataire vous ait dans ses contacts par exemple.

En effet, les logiciels ne chargent par défaut pas les contenus externes, puisqu'il est possible pour l'expéditeur de récupérer des informations personnelles à votre insu (adresse IP, heures de lecture du message, ...).

La meilleure solution est donc de fournir l'image avec l'E-Mail. Ainsi, il n'aura pas à charger de contenus externes et l'image sera normalement affichée.

1 $mail->AddEmbeddedImage('images/logo.png','mon_logo', 'logo.png');

Le premier paramètre est le chemin vers l'image. Le deuxième est son identifiant, que nous utiliserons juste après. Et le troisième, c'est le nom de l'image.

Reste donc à afficher notre image dans notre message :

1 $mail->Body = '....<img src="cid:mon_logo" alt="Logo"/>...';

Il suffit donc d'insérer dans le src cid: suivi de l'identifiant de votre image.

Pièces jointes

Rien de bien compliqué non plus, il suffit de rajouter :

1 $mail->AddAttachment('./mon_fichier_joint.zip');

Plus

Un des points forts de cette librairie est également de pouvoir envoyer un E-Mail en SMTP :

1 $mail->IsSMTP();
2 $mail->Host = "host_smtp";
3 $mail->SMTPAuth = true;
4 $mail->Port = 25;
5 $mail->Username = "user";
6 $mail->Password = "password";

Cette librairie est bien pratique et très simple d'utilisation.

Je vous la recommande vivement pour l'envoi de vos E-Mails sur votre site.


PHP

Article publié le 11 Octobre 2012.

Commentaires