PHPMailer pour PHP : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que PHPMailer et pourquoi l'utiliser ?

PHPMailer est l'une des bibliothèques les plus populaires et puissantes pour envoyer des emails en PHP. Elle offre une interface simple mais flexible pour travailler avec les protocoles SMTP, POP3 et IMAP. Contrairement à la fonction standard de PHP mail(), PHPMailer propose de nombreux avantages :

  • Authentification SMTP — envoi sécurisé via des serveurs de messagerie externes (Gmail, Outlook, votre propre serveur SMTP).
  • Emails au format HTML — créez des messages élégants avec images et styles.
  • Pièces jointes — joignez tout type de fichier.
  • Support UTF-8 — gestion parfaite des accents et caractères spéciaux.
  • Protection contre les injections d'en-têtes — sécurisez votre application.
  • Encodages multiples — Base64, Quoted-Printable, etc.
  • CC et BCC — envoi en copie cachée ou visible.

Utilisée dans des milliers de projets dans le monde, y compris des CMS comme WordPress, Drupal et Joomla, PHPMailer est l'outil incontournable pour envoyer des emails depuis une application PHP : notifications d'inscription, réinitialisation de mot de passe, newsletters ou propositions commerciales.

Installation de PHPMailer

PHPMailer s'installe via Composer, le gestionnaire de dépendances pour PHP. Si vous n'avez pas encore Composer, installez-le depuis le site officiel getcomposer.org.

Ouvrez un terminal dans le dossier racine de votre projet et exécutez la commande :

composer require phpmailer/phpmailer

Après une installation réussie, vous trouverez le dossier vendor et le fichier composer.json. Pour inclure la bibliothèque dans votre script PHP, utilisez l'autoloader de Composer :

require 'vendor/autoload.php';

Si vous n'utilisez pas Composer, vous pouvez télécharger la bibliothèque manuellement depuis GitHub et l'inclure avec require_once, mais il est fortement recommandé d'utiliser Composer pour une gestion automatique des dépendances.

Démarrage rapide avec un exemple de code

Envoyons notre premier email avec PHPMailer. Dans cet exemple, nous utilisons le serveur SMTP de Gmail. Assurez-vous d'avoir activé l'accès aux applications moins sécurisées ou d'utiliser un mot de passe d'application (App Password) si l'authentification à deux facteurs est activée.

<?php
// Inclure l'autoloader de Composer
require 'vendor/autoload.php';

// Importer les classes PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

// Créer une instance PHPMailer
$mail = new PHPMailer(true);

try {
    // Configuration du serveur
    $mail->SMTPDebug = SMTP::DEBUG_OFF; // Désactiver le débogage (production)
    $mail->isSMTP();                     // Utiliser SMTP
    $mail->Host       = 'smtp.gmail.com'; // Serveur SMTP
    $mail->SMTPAuth   = true;            // Activer l'authentification
    $mail->Username   = 'votre_email@gmail.com'; // Votre email
    $mail->Password   = 'votre_mot_de_passe';        // Votre mot de passe ou mot de passe d'application
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Chiffrement SSL
    $mail->Port       = 465;             // Port pour SSL

    // Expéditeur et destinataire
    $mail->setFrom('votre_email@gmail.com', 'Votre Nom');
    $mail->addAddress('destinataire@example.com', 'Nom du Destinataire');

    // Contenu de l'email
    $mail->isHTML(true); // Format HTML
    $mail->Subject = 'Email de test avec PHPMailer';
    $mail->Body    = '<h1>Bonjour !</h1><p>Ceci est un email de test envoyé avec <b>PHPMailer</b>.</p>';
    $mail->AltBody = 'Bonjour ! Ceci est un email de test                    

Recommendations