PHPMailer est une classe PHP largement utilisée pour envoyer des emails à partir d’un site Internet.
Pour utiliser PHP Mailer, il faut suivre les étapes suivantes :
1. Créer une adresse mail depuis votre control panel .
2. Obtenir vos informations d'identification SMTP.
3. Télécharger la librairie de PHPMailer dans Github: https://github.com/PHPMailer/PHPMailer
4. Décompresser le dossier de PHPMailer.
5. Copier le dossier dans l'arborescence de votre projet à l'emplacement de votre choix.
6. Ajoutez un fichier .php, puis ouvrez ce fichier et collez le code suivant :
Voici un exemple de paramétrage de PHPMailer :
<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
///Path to
require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
// Load Composer's autoloader
//require 'vendor/autoload.php';
//Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
$mail->isSMTP(); //Send using SMTP
$mail->Host = 'smtp.example.com'; //Set the SMTP server to send through
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->Username = 'user@example.com'; //SMTP username
$mail->Password = 'secret'; //SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
$mail->Port = 587; //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
//Recipients
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); //Add a recipient
$mail->addAddress('ellen@example.com'); //Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
//Attachments
$mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
Une fois le paramétrage effectué, vous pouvez tester et envoyer des e-mails à partir de votre site.
7. Vérifiez la sortie. Si l'envoi de l'email aboutit, il affiche un message “Message has been sent”.
Dans le cas contraire, il affiche un message d'erreur “Message could not be sent”.
8. Connectez-vous au compte mail de l'adresse du destinataire. Vous trouverez le message que vous avez envoyé.
Si vous rencontrez des erreurs exemple “Erreur 500”, vous devriez consulter les logs de votre site dans le control panel rubrique Access/Error Logs ou ajouter
ini_set('display_errors', 1);
au début du code pour afficher les erreurs.