Ich versuche, E-Mails von localhost zu senden. Aber ich kann die Mail nicht von localhost senden, daher kann mir jemand sagen, wie ich meine xampp neu konfigurieren kann, um Mail von localhost zu senden
Ich versuche, E-Mails von localhost zu senden. Aber ich kann die Mail nicht von localhost senden, daher kann mir jemand sagen, wie ich meine xampp neu konfigurieren kann, um Mail von localhost zu senden
Antworten:
Sie können E-Mails von localhost mit dem sendmail-Paket senden. Das sendmail-Paket ist in XAMPP integriert. Wenn Sie also XAMPP verwenden, können Sie problemlos E-Mails von localhost senden.
zum Beispiel können Sie konfigurieren C:\xampp\php\php.ini
und c:\xampp\sendmail\sendmail.ini
für gmail Mail zu versenden.
in C:\xampp\php\php.ini
finden extension=php_openssl.dll
und das Semikolon aus dem Anfang der Zeile entfernen SSL arbeitet für gmail für localhost zu machen.
in der Datei php.ini suchen [mail function]
und ändern
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Jetzt öffnen C:\xampp\sendmail\sendmail.ini
. Ersetzen Sie den gesamten vorhandenen Code in sendmail.ini durch den folgenden Code
[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
Jetzt hast du es geschafft !! Erstellen Sie eine PHP-Datei mit Mail-Funktion und senden Sie Mail von localhost.
PS: Vergessen Sie nicht, meine-gmail-ID und mein-gmail-Passwort im obigen Code zu ersetzen . Vergessen Sie auch nicht, doppelte Schlüssel zu entfernen, wenn Sie die Einstellungen von oben kopiert haben. Beispiel: Kommentieren Sie die folgende Zeile, wenn es einen anderen sendmail_path gibt : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
in der Datei php.ini
Denken Sie auch daran, den Server über das XAMMP-Kontrollfeld neu zu starten, damit die Änderungen wirksam werden.
Für Google Mail überprüfen Sie bitte https://support.google.com/accounts/answer/6010255 , um den Zugriff von weniger sicheren Apps aus zu ermöglichen.
Um E-Mails unter Linux (mit sendmail-Paket) über Google Mail von localhost zu senden, überprüfen Sie bitte PHP + Ubuntu. Senden Sie E-Mails mit dem Google Mail-Formular localhost .
In XAMPP v3.2.1 können Sie zu Testzwecken die E-Mails sehen, die XAMPP in XAMPP / mailoutput sendet. In meinem Fall unter Windows 8 war keine zusätzliche Konfiguration erforderlich und eine einfache Lösung zum Testen von E-Mails
c:\xampp\php\php.ini
, suchen Sie nach ihr [mail function]
und kommentieren Sie sie aus mailtodisk.exe
. Lassen Sie jede andere Zeile in diesem Abschnitt mit Ausnahme der mail.add_x_header
einen auskommentiert.
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Es ist sehr einfach, E-Mails auf localhost oder einem lokalen Server zu senden
Hinweis: Ich verwende die Test-Mail-Server-Software unter Windows 7 64-Bit mit installiertem Xampp
Laden Sie einfach das Test Mail Server Tool herunter und installieren Sie es gemäß den Anweisungen auf der Website Test Mail Server Tool
Jetzt müssen Sie nur noch zwei Zeilen unter php.ini
Datei ändern
[mail function]
und entfernen Sie das vorhergehende Semikolon;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Sie müssen nichts anderes ändern, aber wenn Sie immer noch keine E-Mails erhalten, als nach dem zu suchen SMTP port
, muss die Portnummer dieselbe sein.
Die obige Methode gilt für Standardeinstellungen, die von der Xampp-Software bereitgestellt werden.
Sie sollten Papercut dieser einfachen Anwendung verwenden, um das Senden von E-Mails zu testen. und Sie müssen nichts konfigurieren.
Führen Sie es einfach aus und testen Sie das Senden von E-Mails:
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);
?>
und du wirst das sehen:
Ich hoffe du hast einen guten Tag. Sie können mich auf Youtube für mehr Tutorial Piseth Sok finden
Jubeln!
Sie müssen SMTP auf Ihrem Server konfigurieren . Sie können G Suite SMTP von Google kostenlos verwenden:
<?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 :(";
}
?>
Lesen Sie mehr über PHPMailer
hier .
Wie in meiner persönlichen Erfahrung habe ich festgestellt, dass die Antwort von Vikas Dwivedi sehr ähnlich funktioniert.
Schritt 1 (Datei php.ini)
In der php.ini Datei befindet sich in xampp\php\php.ini
. Ändern Sie die Einstellungen wie folgt:
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
Schalten Sie andere Variablen aus, mail funciton
indem Sie sie vorlegen ;
. z.B;smtp_port=25
Schritt 2 (sendmail.ini Datei)
Ändern Sie in sendmail.ini unter xampp \ sendmail \ semdmail.ini Folgendes:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
Schritt 3 (Code)
Erstellen Sie eine PHP-Datei und verwenden Sie die folgenden:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
Beachten
Dieser Code wird für die E-Mails von Ihrem localhost XAMPP und Ihrem Google Mail-Konto verwendet. Dieser Code ist sehr einfach und funktioniert für mich. Versuchen Sie es selbst.
Unten Änderung in der php.ini-Datei
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
Unter Ändern in sendmail.ini-Datei
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
Bitte schreiben Sie den obigen Code in Ihre PHP-Datei, um eine E-Mail zu senden
<?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";
}
?>
SMTP
Dazu müssen Sie einen Server und einen Port definieren . Alle außer dem Versenden von Mails von Live-Hosts.
Dies ist ein nützlicher Link dazu .
NB: Der Port sollte nicht verwendet werden. Bitte beachten Sie, dass einige Anwendungen wie
Skype
die Standardports verwenden und dort das Versenden von E-Mails verhindern.
Ich habe gerade über eine Stunde damit verbracht, diese Arbeit zu machen. Für alle, die die gleichen Probleme mit all den Vorschlägen haben, die nicht funktionieren: Sie müssen Apache in Ihrer XAMPP-Oberfläche neu starten! Nur ein Neustart von XAMPP funktioniert nicht !!
Ich habe viele Möglichkeiten ausprobiert, um eine E-Mail von XAMPP Localhost zu senden. Da XAMPP jedoch kein SSL-Zertifikat besitzt, wurde meine E-Mail-Anfrage von Google Mail oder ähnlichen SMTP-Dienstanbietern blockiert.
Dann habe ich MailHog für den lokalen SMTP-Server verwendet. Sie müssen es nur ausführen. localhost: 1025 ist für den SMTP-Server, localhost: 8025 für den Mailserver, auf dem Sie die von Ihnen gesendeten E-Mails überprüfen können.
Hier ist mein 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!";
}
Bitte beachten Sie zusätzlich zu allen Antworten, dass in der sendmail.ini
Datei:
auth_password = Dies ist nicht Ihr Google Mail-Passwort
Aufgrund neuer Sicherheitsbedenken bei Google sollten Sie die folgenden Schritte ausführen, um ein Anwendungskennwort für diesen Zweck zu erstellen: