web-dev-qa-db-fra.com

Comment configurer XAMPP pour envoyer des mails depuis localhost?

J'essaie d'envoyer un courrier de localhost. mais je ne peux pas envoyer le courrier de localhost alors quelqu'un peut-il me dire comment reconfigurer mon xampp pour envoyer du courrier de localhost

227
farid shaikh

Vous pouvez envoyer des messages depuis localhost avec le paquet sendmail, ce dernier étant inbuild dans XAMPP. Donc, si vous utilisez XAMPP, vous pouvez facilement envoyer un courrier de localhost.

par exemple, vous pouvez configurer C:\xampp\php\php.ini et c:\xampp\sendmail\sendmail.ini pour que Gmail envoie des messages.

dans C:\xampp\php\php.ini trouvez extension=php_openssl.dll et supprimez le point-virgule à partir du 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 = [email protected]
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

Ouvrez maintenant 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
[email protected]
auth_password=my-gmail-password
[email protected]

Maintenant vous avez fait !! créer un fichier php avec la fonction mail et envoyer un mail de localhost.

PS: n’oubliez pas de remplacer my-gmail-id et my-gmail-password 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 un autre sendmail_path : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe" dans le fichier php.ini

Pensez également à redémarrer le serveur à l'aide du panneau de configuration XAMMP pour que les modifications prennent effet.

Pour gmail, vérifiez https://support.google.com/accounts/answer/6010255 pour autoriser l'accès à partir d'applications moins sécurisées.

Pour envoyer un courrier électronique sous Linux (avec le paquet sendmail) via Gmail à partir de localhost, veuillez vérifier PHP + Ubuntu Envoyer un courrier électronique en utilisant le formulaire gmail localhost .

345
Vikas Dwivedi

Dans XAMPP v3.2.1 à des fins de test, vous pouvez voir les courriels que XAMPP envoie dans XAMPP/mailoutput. Dans mon cas sous Windows 8, cela ne nécessitait aucune configuration supplémentaire et constituait une solution simple pour tester le courrier électronique.

33
Paul Trotter

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

Remarque: J'utilise le logiciel de serveur de messagerie de test sous Windows 7 64 bits avec Xampp installé.

Il suffit de télécharger l’outil de serveur de messagerie de test et de l’installer en suivant les instructions données sur son site Web Test Mail Server Tool

Maintenant, vous ne devez modifier que deux lignes dans le fichier php.ini

  1. Trouvez [mail function] et supprimez le point-virgule précédant ;smtp = localhost
  2. Placez le point-virgule avant sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

Vous n'avez pas besoin de changer quoi que ce soit, mais si vous ne recevez toujours pas d'e-mails, vérifiez le SMTP port, le numéro de port doit être identique.

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

23
Vikas Khunteta

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

<?php

$mail = new PHPMailer(true);

// Send mail using Gmail
if($send_using_gmail){
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // enable SMTP authentication
    $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
    $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "[email protected]"; // GMAIL username
    $mail->Password = "your-gmail-password"; // GMAIL password
}

// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";

try{
    $mail->Send();
    echo "Success!";
} catch(Exception $e){
    // Something went bad
    echo "Fail :(";
}

?>

En savoir plus sur PHPMailerhere .

19
Thirumalai murugan

Vous pouvez tester l'envoi de courrier sur votre PC sans Internet

vous devriez utiliser Papercut cette application simple pour tester l'envoi de courrier. et vous n'avez besoin de rien configurer.

Il suffit de le lancer et d’essayer d’envoyer un message:

test_sendmail.php

<?php
$to = "[email protected]";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: [email protected]" . "\r\n" .
"CC: [email protected]";

mail($to,$subject,$txt,$headers);
?>

et vous verrez ceci:

enter image description here

J'espère que vous passerez une bonne journée. vous pouvez me trouver sur Youtube pour plus de tutoriel Piseth Sok

Acclamation!

14
Piseth Sok

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

Ce n'est pas écrit par moi, mais après m'être écrasé la tête contre un mur de béton pendant 2,5 heures, sans que cela fonctionne avec les erreurs les plus étranges telles que:

  • La connexion a expiré.
  • Connexion fermée gracieusement.

J'ai finalement trouvé que ce didacticiel se trouvait lors de l'installation de https://www.stunnel.org/downloads.html et de la configuration de Stunnel. Cela a finalement fonctionné.

5
N.Schipper

Comme dans mon expérience personnelle, j’ai trouvé que la même chose que Vikas Dwivedi répondrait très bien.

Étape 1 (fichier php.ini)

Dans le fichier php.ini situé dans xampp\php\php.ini. Modifiez les paramètres comme suit:

 extension=php_openssl.dll
 [mail function]
 sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
 mail.add_x_header=On

Désactivez les autres variables sous mail funciton en plaçant ; devant elles. par exemple ;smtp_port=25

Étape 2 (fichier sendmail.ini)

Dans sendmail.ini situé dans xampp\sendmail\semdmail.ini, procédez comme suit:

 smtp_server=smtp.gmail.com
 smtp_port=465
 smtp_ssl=auto
 [email protected]
 auth_password=YourPassword

Étape 3 (code)

Créez un fichier php et utilisez ce qui suit:

 <?php
    mail($to, "subject", "body", "From: ".$from);
 ?>

Avis

  • Vous devez redémarrer Apache pour que le fichier php.ini soit rechargé.
  • vous devez activer l'accès aux applications sécurisées Google Less dans https://myaccount.google.com/u/1/security
  • Il pourrait être utile d’exécuter Xampp avec une permission administrateur.
3
Mahdi Rafatjah

Si vous avez une copie installée de la dernière copie de xampp, consultez ce lien pour obtenir une documentation complète sur l'envoi de courriers électroniques via xampp. Vous devez activer Apache avant d'essayer d'accéder au lien ci-dessous.

http: //localhost/dashboard/docs/send-mail.html

2
Jignesh Rawal

Ce code est utilisé pour le courrier de votre hôte XAMPP localhost et de votre compte Gmail. Ce code est très facile et fonctionne pour moi, essayez vous-même.

Sous Changer dans le fichier php.ini

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

Sous Changer dans le fichier sendmail.ini

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log 
[email protected] 
auth_password=your-gmail-password 
[email protected]  

Merci d'écrire le code ci-dessous dans votre fichier PHP pour envoyer un email

<?php 
    $to = "[email protected]";
    $subject = "Test Mail";
    $headers = "From: [email protected]\r\n";
    $headers .= "Reply-To: [email protected]\r\n";
    $headers .= "CC: [email protected]\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $message = '<html><body>';
    $message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
    $message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
    $addURLS = 'google.com';
    if (($addURLS) != '') {
        $message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
    }
    $curText = 'dummy text';           
    if (($curText) != '') {
        $message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
    }
    $message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
    $message .= "</table>";
    $message .= "</body></html>";

    if(mail($to,$subject,$message,$headers))
    {
        echo "Mail Send Sucuceed";
    }
    else{
        echo "Mail Send Failed";    
    }
?>
1
Kishan Sorathiya

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

Ceci est un lien utile à ce sujet .

NB: Le port doit être inutilisé. Veillez à ce que certaines applications comme Skype utilisent les ports par défaut et empêchent l’envoi de courrier.

0
Vishnu Renku

je viens de passer plus d’une heure à essayer de faire ce travail. pour tout le monde ayant le même problème avec toutes les suggestions affichées ne fonctionne pas: vous devez redémarrer Apache dans votre interface XAMPP! le simple redémarrage de XAMPP ne fonctionnera pas !!

0
user3065579