Comment utiliser la classe PHP Mailer pour l’envoi d’emails en SMTP ?

PHP Mailer est une classe PHP fournissant une collection de fonctions, qui permet de construire et d’envoyer des emails en utilisant une authentification sur le serveur SMTP, cette méthode sécurisée vous évitera de voir les noms de serveurs de ADK Media sur les entêtes des emails que vous recevez à travers vos formulaires de contact par exemple, ou que reçoivent vos clients, puisque vos emails sont envoyés après une authentification réussie sur le serveur mail.

Note importante : Cet article concerne juste l’utilisation de la classe PHP Mailer, n’oubliez pas la validation des champs, ainsi que l’utilisation d’un captcha (exemple :  Google reCAPTCHA) pour éviter le spamming depuis vos formulaires.

Pour utiliser PHP Mailer vous devez tout d’abord :

  • Télécharger la librairie PHP Mailer : https://github.com/PHPMailer/PHPMailer
  • Copier le package téléchargé dans un répertoire de votre site web.
  • Ajoutez le lien entre votre script et PHPMailer. Exemple :
require_once('votre/dossier/class.phpmailer.php');
  • Pour les utilisateurs du PHP 5.6, il est nécessaire d’ajouter les lignes suivantes dans les paramètres de la classe PHPMailer:
$mail->SMTPOptions = array('ssl' => 
   array(
      'verify_peer' => false,
      'verify_peer_name' => false,
      'allow_self_signed' => true));

Exemple d’utilisation de la classe PHP Mailer :

  • Implémenter le script qui charge automatiquement la classe PHPMailer :
require'votre/dossier/PHPMailerAutoload.php';
  • Créer une nouvelle instance de la classe :
$mail = new PHPmailer();
  • Après avoir collecté les informations nécessaires pour envoyer votre premier email, placez vos informations collectées comme indiquées sur l’exemple ci-dessous :
$mail->isSMTP(); // Paramétrer le Mailer pour utiliser SMTP 
$mail->Host = 'mail.votredomaine.com'; // Spécifier le serveur SMTP
$mail->SMTPAuth = true; // Activer authentication SMTP
$mail->Username = 'user@votredomaine.com'; // Votre adresse email d'envoi
$mail->Password = 'secret'; // Le mot de passe de cette adresse email
$mail->SMTPSecure = 'ssl'; // Accepter SSL
$mail->Port = 465;

$mail->setFrom('from@example.com', 'Mailer'); // Personnaliser l'envoyeur
$mail->addAddress('To1@example.net', 'Karim User'); // Ajouter le destinataire
$mail->addAddress('To2@example.com'); 
$mail->addReplyTo('info@example.com', 'Information'); // L'adresse de réponse
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->addAttachment('/var/tmp/file.tar.gz'); // Ajouter un attachement
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); 
$mail->isHTML(true); // Paramétrer le format des emails en HTML ou non

$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
  • Envoyer votre email comme suit :
if(!$mail->send()) {
   echo 'Erreur, message non envoyé.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
   echo 'Le message a bien été envoyé !';
}
  • Si vous avez une erreur au niveau du SMTP, vous pouvez utiliser la fonction de debug permettant d’avoir plus de détails sur l’origine de l’erreur :
 $mail->SMTPDebug = 1;

TAGS :

Besoin d'une assistance spécifique ?

Contactez notre support en ligne en ouvrant un ticket sur votre espace client.