CMD
Exécuter un fichier PHP en ligne de commande :
php -f send-email.php
Paramétrer l'envoi d'emails (PHPmailer et Gmail)
Après avoir installé Visual C++ et Wamp, on peut tester l'envoi d'email avec PHP, qui sera utile pour tester en local CMS et autres frameworks.
Ci-dessous quelques remarques avec les dernières versions disponibles en février 2024.
Après Wamp, j'ai installé Composer, via l'installateur Windows officiel :
https://getcomposer.org/download/
L'installateur a choisi d'utiliser php7.4.33, je n'ai rien changé lol (il est situé dans C:\wamp64\bin\php). J'ai donc modifié la version utilisée par Wamp dans ce sens, puis relancé Wamp (en réalité, plus tard j'ai remis la dernière version de PHP dans Wamp, sans changement, ça marchera).
Puis en CMD :
composer require phpmailer/phpmailer
À partir de là je vois ce dossier :
C:\Users\georg\vendor
Avec à l'intérieur les dossiers composer et phpmailer.
Maintenant je vais créer un mot de passe d'application Gmail (pour utiliser mon adresse Gmail, je dois utiliser un mot de passe spécial), j'ai suivi ce tuto très rapide :
Puis en m'inspirant de l'exemple PHPmailer disponible sur GitHub, je fais ça (modifier le nécessaire bien sûr) :
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; //Load Composer's autoloader require 'C:/Users/georg/vendor/autoload.php'; //Create an instance; passing 'true' enables exceptions $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = 1; $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'; $mail->Password = 'Le mot de passe Application Gmail'; $mail->SMTPSecure = 'ssl'; $mail->Port = 465; //TCP port to connect to; use 587 if you have set 'SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS' //Recipients $mail->setFrom(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.', 'Georgie'); $mail->addAddress(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.', 'Georges'); //Add a recipient //$mail->addAddress(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'); //Name is optional //$mail->addReplyTo(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.', 'Information'); //$mail->addCC(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'); //$mail->addBCC(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'); //Attachments //$mail->addAttachment('/var/tmp/file.tar.gz'); //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = 'Mon objet : email de test'; $mail->Body = 'Contenu de l\'email, blablabla...'; $mail->AltBody = 'Résumé de l\'email...'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
Exécutez le code, si ça fonctionne, alors vous n'avez plus qu'à utiliser les mêmes paramètres dans les règlages SMTP de votre CMS par exemple.
Composer
Dire à Composer quelle version de PHP utiliser (mais comment être sûr ? Car je mets ce que je veux sans message d'erreur...)
composer config platform.php 8.3.0