Comment configurer XAMPP pour envoyer un mail depuis localhost en PHP

Parfois, nous devons tester la fonction d’envoi des emails depuis notre environnement de développement. Nous pouvons envoyer des emails depuis notre hôte local en utilisant un serveur de messagerie. Le serveur SMTP permet d’envoyer des messages depuis localhost et sendmail, c’est un agent de transport de mail qui se trouve dans le fichier php.ini. Le package sendmail est intégré à XAMPP. Donc, si vous utilisez XAMPP, vous pouvez facilement envoyer un email depuis localhost.

Si vous utiliser WampServer suivez le tutoriel suivant:
Comment configurer WampServer pour envoyer un mail depuis localhost en PHP-minComment configurer WampServer pour envoyer un mail depuis localhost en PHPLorsque vous créez une applications web professionnelles, il est important de tester la fonctionnalité du messagerie avant de déployer le site web. Il est donc…Lire plus Les paramètres de configuration du service de messagerie en PHP sont:

  • smtp_sever: nom du serveur hôte SMTP, par exemple, smtp.gmail.com
  • smtp_port: le numéro de port (Ex: 465)
  • auth_username: votre nom d’utilisateur SMTP
  • mot_de_passe_auth: votre mot de passe SMTP

Pour envoyer un mail depuis localhost en utilisant Gmail, configurez XAMPP en suivant les étapes suivantes.
 
 
1. Ouvrez le répertoire d’installation de XAMPP.
 

 
2. Ouvrez le répertoire C:\xampp\php et ouvrez le fichier php.ini.
 

 
3. Trouvez [mail function] en appuyant sur ctrl + f.
 

 
4. Remplacez les paramètres de configuration SMTP comme ci-dessous :

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = [email protected]
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

 
 
5. Maintenant, ouvrez le fichier sendmail.ini situé dans « c:\xampp\sendmail\sendmail.ini ».
 

 
6. Trouvez [sendmail] en appuyant sur les touches ctrl + f.
 

 
7. Recherchez et modifiez les paramètres de configuration SMTP suivants.

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=Votre-MotDePasse-Gmail
[email protected](optionnel)

 
 

Script pour envoyer un mail:

Copier le script suivant dans un fichier PHP appelé par exemple sendmail.php et placez le dans le répertoire htdocs.

<?php
	$dest = "[email protected]";
	$sujet = "Email de test";
	$corp = "Salut ceci est un email de test envoyer par un script PHP";
	$headers = "From: [email protected]";

	if (mail($dest, $sujet, $corp, $headers)) {
		echo "Email envoyé avec succès à $dest ...";
	} else {
		echo "Échec de l'envoi de l'email...";
	}
?>

Maintenant, accédez à l’URL http://localhost/sendmail.php pour exécuter le script et envoyer l’e-mail. Si tout se passe bien, vous devriez voir le message de réussite « Email envoyé avec succès à [email protected] » dans votre navigateur. Si vous avez utilisé votre propre adresse e-mail pour l’adresse du destinataire, vous devriez également recevoir l’e-mail.
 
Si le message d’erreur « Échec de l’envoi de l’email… » s’affiche, vous devez configurer les paramètres de sécurité de GMAIL, en visitant le lien suivant https://myaccount.google.com/security

Défiler la page vers le bas jusqu’à ce que vous trouver Accès moins sécurisé des applications, puis cliquez sur Activer l’accès comme montrer dans l’image ci-dessous:
 

 
Cliquez pour activer l’option.
 

 
Maintenant vérifier, si tout se passe bien, vous devriez voir le message de réussite « Email envoyé avec succès à [email protected] » dans votre navigateur.
Formulaire de contact en PHP avec MySQLFormulaire de contact en PHP avec MySQLLe formulaire de contact est important pour toute organisation, car cela peut conduire à établir une communication personnalisée avec ses clients. Ici, dans ce tutoriel,…Lire plus

12 réflexions sur “Comment configurer XAMPP pour envoyer un mail depuis localhost en PHP

  • avril 11, 2020 à 7:19
    Permalien

    Bonjour à vous si vous voyez ce commentaire. Je suis dans une grosse impasse depuis un certain temps en ce qui concerne l’envoi de mail en localhost. J’ai suivi toutes les étapes du tuto à la lettre hélas quand je me rends sur la page qui doit exécuter le script PHP à chaque fois ça me dit « échec de l’envoi de l’email. J’ai regardé plein d’autres tutoriels mais toujours pas de solution. J’utilise xampp comme serveur local.

    Répondre
    • avril 11, 2020 à 8:53
      Permalien

      Vérifier bien si le fichier « sendmail.exe » que vous avez spécifier dans le paramètre sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" existe dans le répertoire sendmail.

      Avez-vous activer l’option « Accès moins sécurisé des applications » sur votre boite gmail ?

      Répondre
      • avril 12, 2020 à 3:42
        Permalien

        Déjà je vous remercie d’avoir répondu à mon commentaire, et oui il y a bien un fichier sendmail.exe dans le répertoire de sendmail et j’ai bien activé l’option « Accès moins sécurisé des applications » sur mon compte gmail.

        Répondre
        • avril 12, 2020 à 6:02
          Permalien

          Avec plaisir 🙂
          Le problème peut être lié à la version de XAMPP.

          Répondre
        • avril 12, 2020 à 6:05
          Permalien

          Ainsi, veuillez vérifier vos paramètres php.ini. Toute erreur dans ce fichier peut provoquer l’erreur.

          Répondre
          • avril 12, 2020 à 7:39
            Permalien

            Merci une fois de plus de m’avoir répondu. Alors pour la version de xampp, il s’agit de 7.4.2 pour windows et quant au php.ini voici les paramètres:

            [mail function]
            ; For Win32 only.
            ; http://php.net/smtp
            SMTP=smtp.gmail.com
            ; http://php.net/smtp-port
            smtp_port=587

            ; For Win32 only.
            ; http://php.net/sendmail-from
            sendmail_from [email protected]
            sendmail_path = »\ »E:\xamp\sendmail\sendmail.exe\ » -t »
            mail.add_x_header=Off

            Et voici celle de sendmail.ini
            [sendmail]
            smtp_server=smtp.gmail.com
            smtp_port=587
            smtp_ssl=auto
            ;default_domain=gmail.com
            error_logfile=error.log
            debug_logfile=debug.log
            [email protected]
            [email protected]
            [email protected]

            Hélas ça ne marche toujours pas c’est vraiment complexe.

  • avril 12, 2020 à 11:43
    Permalien

    C’est bizarre!, dans le tuto, j’ai utilisé XAMPP version 7.0.15, mais ça doit marcher aussi pour 7.4.2, en tout cas, j’ai essayé de vous rassembler quelques points importants à vérifier une par une:

    Dans le fichier C:\xampp\php\php.ini, trouvez extension=php_openssl.dll et supprimez le point-virgule au début de cette ligne pour que le SSL fonctionne pour gmail et localhost.

    Dans le fichier sendmail.ini changer le port « smtp_port » à 465.

    N’oubliez pas de supprimer les clés en double si vous avez copié les paramètres dans votre fichier. Par exemple, commentez la ligne suivante s’il existe un autre chemin sendmail_path=’C:\xampp\sendmail\sendmail.exe\’ dans le fichier php.ini

    N’oubliez pas également de redémarrer le serveur à l’aide du panneau de configuration XAMPP pour que les modifications soient prises en compte.

    Vous devez vérifier les journaux de débogage(C:\xampp\sendmail\debug.log) et le fichier d’erreur(C:\xampp\sendmail\error.log) pour plus de détails.

    Je vous souhaite bon courage 🙂

    Répondre
  • avril 13, 2020 à 3:16
    Permalien

    Merci d’avoir répondu à mes messages ! Comme cette méthode n’a pas fonctionné, j’ai préféré opter pour une autre nécessitant l’utilisation de PHPMailer et ça a marché comme sur des roulettes.

    Répondre
  • avril 23, 2020 à 10:08
    Permalien

    bonjour cela ne marche également pas pour moi même en changeant le port « smtp_port » à 465.

    Répondre
  • avril 23, 2020 à 10:10
    Permalien

    Voici le message affiché:

    Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. u3sm2920646wrt.93 – gsmtp in C:\xampp\htdocs\sendmail.php on line 6
    Échec de l’envoi de l’email…

    Répondre
    • avril 23, 2020 à 11:54
      Permalien

      Tout d’abord, assurez-vous que votre installation PHP prend en charge SSL (recherchez la section « openssl » dans la sortie de phpinfo()).

      Définir les paramètres suivants dans votre script PHP qui pose problème:

      ini_set("SMTP","ssl://smtp.gmail.com");
      ini_set("smtp_port","465");

      Ou vous pouvez définir ces paramètres dans votre PHP.ini:

      SMTP=ssl://smtp.gmail.com
      smtp_port=465

      Si cela ne marche pas essayer tls://smtp.gmail.com avec le port 587

      N’oubliez pas de redémarrer le serveur XAMPP si vous avez modifier le fichier PHP.ini.

      Répondre
  • septembre 10, 2021 à 1:50
    Permalien

    Bonjour
    Pour moi j’ai eu le message Email envoyé avec succès à [email protected] mais si je visite ma boite de reception je ne trouve pas le message

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *