J'essaie d'envoyer du courrier depuis localhost. mais je ne suis pas en mesure d'envoyer le courrier de localhost, donc quelqu'un peut-il me dire comment reconfigurer mon xampp pour envoyer du courrier de localhost
J'essaie d'envoyer du courrier depuis localhost. mais je ne suis pas en mesure d'envoyer le courrier de localhost, donc quelqu'un peut-il me dire comment reconfigurer mon xampp pour envoyer du courrier de localhost
Réponses:
Vous pouvez envoyer du courrier depuis localhost avec le paquet sendmail, le paquet sendmail est intégré dans XAMPP. Donc, si vous utilisez XAMPP, vous pouvez facilement envoyer du courrier depuis localhost.
par exemple, vous pouvez configurer C:\xampp\php\php.ini
et c:\xampp\sendmail\sendmail.ini
gmail pour envoyer du courrier.
dans C:\xampp\php\php.ini
rechercher extension=php_openssl.dll
et supprimer le point-virgule depuis le début de cette ligne pour que SSL fonctionne pour gmail pour localhost.
dans le fichier php.ini trouver [mail function]
et modifier
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Maintenant ouvert 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=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
Vous avez maintenant terminé !! créer un fichier php avec la fonction mail et envoyer du courrier depuis localhost.
PS: n'oubliez pas de remplacer my-gmail-id et my-gmail-password dans le code ci - dessus. N'oubliez pas non plus 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
N'oubliez pas également de redémarrer le serveur à l'aide du panneau de configuration XAMMP pour que les modifications prennent effet.
Pour gmail, veuillez consulter https://support.google.com/accounts/answer/6010255 pour autoriser l'accès à partir d'applications moins sécurisées.
Pour envoyer des e-mails sur Linux (avec le paquet sendmail) via Gmail à partir de localhost, veuillez vérifier PHP + Ubuntu Envoyer un e-mail à l'aide du formulaire gmail localhost .
Dans XAMPP v3.2.1 à des fins de test, vous pouvez voir les e-mails que le XAMPP envoie dans XAMPP / mailoutput. Dans mon cas sur Windows 8, cela ne nécessitait aucune configuration supplémentaire et était une solution simple pour tester les e-mails
c:\xampp\php\php.ini
, recherchez [mail function]
et décommentez la ligne qui mentionne mailtodisk.exe
. Gardez toutes les autres lignes de cette section en commentaire, sauf mail.add_x_header
celle.
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Il est très simple d'envoyer des e-mails sur un hôte local 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 test du serveur de messagerie et de l'installer selon les instructions données sur son site Web Test Mail Server Tool
Vous devez maintenant modifier seulement deux lignes sous php.ini
fichier
[mail function]
et supprimez les points-virgules qui se avant;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Vous n'avez rien d'autre à changer, mais si vous ne recevez toujours pas d'e-mails, vérifiez les SMTP port
, le numéro de port doit être le même.
La méthode ci-dessus concerne les paramètres par défaut fournis par le logiciel Xampp.
vous devez utiliser Papercut cette application simple pour tester l'envoi de courrier. et vous n'avez rien à configurer.
Exécutez-le et essayez de tester l'envoi de courrier:
test_sendmail.php
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
et vous verrez ceci:
J'espère que vous passerez une bonne journée. vous pouvez me trouver sur Youtube pour plus de tutoriel Piseth Sok
Acclamation!
Vous devez configurer SMTP sur votre serveur. Vous pouvez utiliser gratuitement G Suite SMTP by 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 = "your-gmail-account@gmail.com"; // 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 PHPMailer
ici .
Comme dans mon expérience personnelle, j'ai trouvé qu'une chose très similaire à la réponse de Vikas Dwivedi fonctionnera 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 les mettant ;
avant. par exemple;smtp_port=25
Étape 2 (fichier sendmail.ini)
Dans sendmail.ini situé dans xampp \ sendmail \ semdmail.ini, changez comme suit:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
Étape 3 (code)
Créez un fichier php et utilisez ce qui suit:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
Remarquer
Ce code est utilisé pour le courrier provenant de votre hôte local XAMPP et de votre compte Gmail. Ce code est très facile et fonctionne pour moi, essayez vous-même.
Sous le changement dans le fichier php.ini
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
Ci-dessous, modifier le fichier sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=yourmail@gmail.com
Veuillez écrire le code bien-aimé dans votre fichier PHP pour envoyer un e-mail
<?php
$to = "tomail@gmail.com";
$subject = "Test Mail";
$headers = "From: from_mail@gmail.com\r\n";
$headers .= "Reply-To: replytomail@gmail.com\r\n";
$headers .= "CC: theassassin.edu@gmail.com\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";
}
?>
Vous devez définir un SMTP
serveur 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é. Veuillez faire attention à ce que certaines applications, comme
Skype
les ports par défaut, empêchent l'envoi de courrier.
Je viens de passer plus d'une heure à essayer de faire fonctionner ça. pour tout le monde ayant le même problème avec toutes les suggestions postées ne fonctionnant pas: vous devez redémarrer Apache dans votre interface XAMPP! juste redémarrer XAMPP ne fonctionnera pas !!
J'ai essayé de nombreuses façons d'envoyer un courrier à partir de l'hôte local XAMPP, mais comme XAMPP n'a pas de certificat SSL, ma demande de courrier électronique a été bloquée par Gmail ou des fournisseurs de services SMTP similaires.
Ensuite, j'ai utilisé MailHog pour le serveur smtp local, ce que vous devez faire est simplement de l'exécuter. localhost: 1025 est pour le serveur smtp, localhost: 8025 est pour le serveur de messagerie, où vous pouvez vérifier les e-mails que vous avez envoyés.
voici mon code:
require_once "src/PHPMailer.php";
require_once "src/SMTP.php";
require_once "src/Exception.php";
$mail = new PHPMailer\PHPMailer\PHPMailer();
//Server settings
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'localhost'; // Set the SMTP server to send through
$mail->Port = 1025; // TCP port to connect to
// $mail->Username = ''; // SMTP username
// $mail->Password = ''; // SMTP password
// $mail->SMTPAuth = true; // Enable SMTP authentication
// $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
//Recipients
$mail->setFrom('testtoo@testto.com', 'Mailer');
$mail->addAddress('testtoo@webbamail.com', 'Joe User'); // Add a recipient
// 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';
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
en plus de toutes les réponses, veuillez noter que dans le sendmail.ini
dossier:
auth_password = ce- n'est - pas -votre-mot-de-passe-Gmail
en raison d'un nouveau problème de sécurité google, vous devez suivre ces étapes pour créer un mot de passe d'application à cet effet: