290 votes

Comment configurer XAMPP pour envoyer des e-mails depuis localhost?

Je suis en train d'essayer d'envoyer un mail depuis localhost. Mais je ne parviens pas à envoyer le mail depuis localhost. Est-ce que quelqu'un pourrait me dire comment reconfigurer mon xampp pour envoyer des mails depuis localhost ?

3 votes

Pouvons-nous voir votre code ?

2 votes

Impossible d'aider si vous ne nous donnez pas la configuration actuelle.

1 votes

Est-ce toujours pertinent avec Mercury inclus (ApacheFriends XAMPP 1.8.2)? Je pense que oui, mais s'il y a des gens qui préfèrent Mercury, veuillez l'indiquer ci-dessous. :) Merci!

410voto

Vikas Dwivedi Points 939

Vous pouvez envoyer des courriers électroniques à partir de localhost avec le package sendmail, le package sendmail est intégré dans XAMPP. Donc si vous utilisez XAMPP, vous pouvez facilement envoyer des courriers électroniques à partir de localhost.

par exemple, vous pouvez configurer C:\xampp\php\php.ini et c:\xampp\sendmail\sendmail.ini pour gmail afin d'envoyer des courriers électroniques.

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

dans le fichier php.ini, trouvez [mail function] et changez

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = mon-id-gmail@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

Maintenant, ouvrez C:\xampp\sendmail\sendmail.ini. Remplacez tout le code existant dans sendmail.ini par le code suivant

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=mon-id-gmail@gmail.com
auth_password=mon-mot-de-passe-gmail
force_sender=mon-id-gmail@gmail.com

Vous avez terminé !! créez un fichier php avec une fonction de courrier électronique et envoyez un courrier électronique depuis localhost.

PS : n'oubliez pas de remplacer mon-id-gmail et mon-mot-de-passe-gmail dans le code ci-dessus. De plus, n'oubliez pas de supprimer les clés en double si vous avez copié les paramètres ci-dessus. Par exemple, commentez la ligne suivante s'il y a une autre sendmail_path : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe" dans le fichier php.ini

N'oubliez pas non plus de redémarrer le serveur en utilisant le panneau de contrôle XAMPP afin que les modifications prennent effet.

Pour gmail, veuillez consulter https://support.google.com/accounts/answer/6010255 pour autoriser l'accès aux applications moins sécurisées.

Pour envoyer des e-mails sur Linux (avec le package sendmail) via Gmail depuis localhost, veuillez consulter PHP+Ubuntu Envoyer un e-mail en utilisant gmail depuis localhost.

3 votes

Autre que les configurations ci-dessus, j'ai dû mettre à jour mon sendmail glob.com.au/sendmail

1 votes

J'ai dû passer de XAMMP 1.7.7 à 2.8.2.3 -- sendmail est inclus dans le nouveau XAMPP. J'ai essayé d'utiliser un sendmail plus récent avec 1.7.7 il y a quelques mois et je n'ai pas réussi à le faire fonctionner -- j'ai finalement sauté le pas et utilisé le nouveau XAMPP et cela fonctionne comme décrit.

0 votes

@VanAlbert pouce levé !

26voto

Vikas Khunteta Points 70

Il est très simple d'envoyer des emails sur localhost ou un serveur local

Note : J'utilise le logiciel de serveur de messagerie de test sur Windows 7 64 bits avec Xampp installé

Téléchargez simplement l'outil de serveur de messagerie de test et installez-le selon les instructions données sur son site web Outil de Serveur de Messagerie de Test

Maintenant, vous devez changer uniquement deux lignes dans le fichier php.ini

  1. Recherchez [mail function] et supprimez le point-virgule qui se trouve avant ;smtp = localhost
  2. Mettez le point-virgule avant sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

Vous n'avez pas besoin de changer autre chose, mais si vous ne recevez toujours pas d'emails, vérifiez le port SMTP, le numéro de port doit être le même.

La méthode ci-dessus est pour les paramètres par défaut fournis par le logiciel Xampp.

7 votes

Si vous ne faites pas confiance à ce site, vous voudrez peut-être utiliser papercut de codeplex à la place : papercut.codeplex.com.

1 votes

Je n'ai pas eu besoin de faire quoi que ce soit pour le faire fonctionner, juste l'installer.

0 votes

Je viens de devoir changer le port toutefois

20voto

Thirumalai murugan Points 1835

Vous devez configurer SMTP sur votre serveur. Vous pouvez utiliser G Suite SMTP de Google gratuitement :

IsSMTP(); // indiquer à la classe d'utiliser SMTP
    $mail->SMTPAuth = true; // activer l'authentification SMTP
    $mail->SMTPSecure = "ssl"; // définir le préfixe du serveur
    $mail->Host = "smtp.gmail.com"; // définir GMAIL comme serveur SMTP
    $mail->Port = 465; // définir le port SMTP pour le serveur GMAIL
    $mail->Username = "votre-compte-gmail@gmail.com"; // nom d'utilisateur GMAIL
    $mail->Password = "votre-mot-de-passe-gmail"; // mot de passe GMAIL
}

// Données d'email typiques
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "Mon Sujet";
$mail->Body = "Contenu de l'email";

try{
    $mail->Send();
    echo "Succès !";
} catch(Exception $e){
    // Quelque chose s'est mal passé
    echo "Échec :(";
}

?>

En savoir plus sur PHPMailer ici.

0 votes

@La réponse de Vikas était la meilleure, mais veuillez noter que l'utilisation du ssl par défaut sur le port smtp pourrait ne pas fonctionner dans certaines conditions, l'utilisation du port 465 comme cette réponse l'a indiqué a en fait résolu le problème pour moi

0 votes

J'ai utilisé la réponse de @Vikas, mais j'ai utilisé un fragment du vôtre, en utilisant 465 comme port SMTP. Bon travail de toute façon.

0 votes

Erreur fatale: Classe 'PHPMailer' non trouvée dans C:\xampp\htdocs\myweb\email_script.php à la ligne 82

5voto

Schippie Points 92

Pour les personnes sous Windows 8, si vous voulez faire cela, je recommanderais vraiment de lire ce tutoriel que j'ai trouvé : http://yogeshchaugule.com/blog/2013/configure-sendmail-wamp

Il n'est pas écrit par moi, mais après avoir cogné ma tête contre un mur en béton pendant 2,5 heures sans réussir à faire fonctionner cela avec les erreurs les plus étranges comme :

  • Connexion expirée.
  • Connexion fermée proprement.

J'ai finalement trouvé ce tutoriel lors de l'installation de https://www.stunnel.org/downloads.html et de la configuration de Stunnel. Ça a enfin fonctionné.

0voto

Vishnu Renku Points 1380

Vous devez définir un serveur SMTP et un port pour cela. Sauf pour l'envoi de mails à partir d'hôtes en direct.

Voici un lien utile à ce sujet.

NB: Le port doit être inutilisé. Veuillez prendre soin, certaines applications comme Skype utilisent les ports par défaut et empêchent ainsi l'envoi de mails.

0 votes

Vous pouvez empêcher Skype d'utiliser le port 80. C'est dans les paramètres de connexion de Skype.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X