Localhost'tan posta göndermeye çalışıyorum. ama kimse localhost üzerinden posta gönderemiyorum bu yüzden herkes bana nasıl xampp localhost posta göndermek için yeniden yapılandırmak için söyleyebilir
Localhost'tan posta göndermeye çalışıyorum. ama kimse localhost üzerinden posta gönderemiyorum bu yüzden herkes bana nasıl xampp localhost posta göndermek için yeniden yapılandırmak için söyleyebilir
Yanıtlar:
Sendmail paketi ile localhost'tan posta gönderebilirsiniz, sendmail paketi XAMPP'de inşa edilmiştir. Yani XAMPP kullanıyorsanız, localhost'tan kolayca posta gönderebilirsiniz.
Örneğin Yapılandırabileceğiniz C:\xampp\php\php.ini
ve c:\xampp\sendmail\sendmail.ini
gmail için posta göndermek için.
içinde C:\xampp\php\php.ini
find extension=php_openssl.dll
SSL localhost için gmail için çalışan olmak için bu satırın başından noktalı virgül kaldırıp.
php.ini dosyasında bul [mail function]
ve değiştir
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Şimdi Aç C:\xampp\sendmail\sendmail.ini
. Sendmail.ini dosyasındaki tüm kodu aşağıdaki kodla değiştir
[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
Şimdi yaptın !! mail fonksiyonu ile php dosyası oluşturun ve localhost'tan mail gönderin.
Not: Yukarıdaki kodda gmail-id ve my-gmail-şifremi değiştirmeyi unutmayın . Ayrıca, ayarları yukarıdan kopyaladıysanız, yinelenen anahtarları kaldırmayı unutmayın. Örneğin , php.ini dosyasında başka bir sendmail_path varsa aşağıdaki satırı yazın :sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Değişikliklerin geçerli olması için XAMMP kontrol panelini kullanarak sunucuyu yeniden başlatmayı da unutmayın.
Gmail için , daha az güvenli uygulamalardan erişime izin vermek üzere lütfen https://support.google.com/accounts/answer/6010255 adresini ziyaret edin .
Linux üzerinden e-posta (sendmail paketi ile) localhost'tan Gmail üzerinden göndermek için lütfen PHP + Ubuntu gmail form localhost kullanarak e-posta gönder seçeneğini işaretleyin .
Test amacıyla XAMPP v3.2.1'de XAMPP'nin XAMPP / mailoutput'ta gönderdiği e-postaları görebilirsiniz. Benim durumumda Windows 8 için bu herhangi bir ek yapılandırma gerektirmedi ve e-postayı test etmek için basit bir çözümdü
c:\xampp\php\php.ini
, arayın [mail function]
ve açın mailtodisk.exe
. Bu bölümdeki diğer tüm satırları, bu satır haricinde yorumlu tutun mail.add_x_header
.
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Localhost veya yerel sunucuya e-posta göndermek çok basit
Not: Test posta sunucusu yazılımını Xampp yüklü Windows 7 64bit üzerinde kullanıyorum
Sadece test posta sunucusu aracını indirin ve kendi web sitesinde verilen talimatlara göre yükleyin Test Posta Sunucusu Aracı
Şimdi php.ini
dosya altında sadece iki satırı değiştirmeniz gerekiyor
[mail function]
yarım sütunu bulun ve kaldırın;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Başka bir şey değiştirmeniz gerekmez, ancak yine de e-postaları kontrol etmek yerine almıyorsanız SMTP port
, bağlantı noktası numarası aynı olmalıdır.
Yukarıdaki yöntem, Xampp yazılımı tarafından sağlanan varsayılan ayarlar içindir.
posta gönderme test etmek için bu basit uygulamayı Papercut kullanmalısınız . ve hiçbir şey yapılandırmanıza gerek yok.
Sadece çalıştırın ve posta gönderme test deneyin:
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);
?>
ve bunu göreceksiniz:
Umarım iyi bir gün geçirirsin. Eğer beni bulabilirsiniz Youtube fazla öğretici için Piseth Sok
Cheer!
Sunucunuzda SMTP yapılandırmanız gerekir. Sen kullanabilirsiniz G Suite SMTP ücretsiz Google tarafından:
<?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 :(";
}
?>
PHPMailer
Burada daha fazla bilgi edinin .
Kişisel deneyimimde olduğu gibi Vikas Dwivedi'nin cevabına çok benzer bir şeyin işe yarayacağını buldum.
Adım 1 (php.ini dosyası)
İçinde bulunan php.ini dosyasında xampp\php\php.ini
. Ayarları aşağıdaki gibi değiştirin:
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
Diğer değişkenleri önlerine mail funciton
koyarak kapatın ;
. Örneğin;smtp_port=25
Adım 2 (Sendmail.ini dosyası)
Xampp \ sendmail \ semdmail.ini dosyasında bulunan sendmail.ini dosyasında aşağıdaki gibi değiştirin:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
Adım 3 (kod)
Bir php dosyası oluşturun ve aşağıdakileri kullanın:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
Farkına varmak
Bu kod, localhost XAMPP'nizden ve Gmail hesabınızdan gelen postalar için kullanılır. Bu kod çok kolay ve benim için çalışıyor kendini deneyin.
Php.ini Dosyasındaki Değişikliğin Altında
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
Sendmail.ini Dosyasındaki Değişikliklerin Altında
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
E-posta göndermek için lütfen PHP kodunuza sevgili kodunu yazın
<?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";
}
?>
Bunun için bir SMTP
sunucu ve bir bağlantı noktası tanımlamanız gerekir . Canlı ana bilgisayarlardan posta göndermek gibi.
Bu, bununla ilgili faydalı bir bağlantıdır .
Not: Bağlantı noktası kullanılmamalıdır. Lütfen, gibi bazı uygulamaların
Skype
varsayılan bağlantı noktalarını kullandığını ve posta göndermesini engellediğini unutmayın.
bu işi yapmak için bir saatten fazla zaman harcadım. çalışmayan tüm önerileri ile aynı sorunu olan herkes için: XAMPP inrerface Apache yeniden başlatmanız gerekir! sadece XAMPP yeniden başlatmak işe yaramaz !!
XAMPP Localhost'tan posta göndermenin birçok yolunu denedim, ancak XAMPP SSL Sertifikası olmadığından, e-posta isteğim Gmail veya benzer SMTP Hizmet sağlayıcıları tarafından engellendi.
Sonra yerel smtp sunucusu için MailHog kullandım, yapmanız gereken sadece onu çalıştırmak. localhost: 1025, smtp sunucusu içindir, localhost: 8025, gönderdiğiniz e-postaları kontrol edebileceğiniz posta sunucusu içindir.
İşte benim kod:
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!";
}
tüm cevaplara ek olarak sendmail.ini
dosyada lütfen unutmayın :
auth_password = Bu-IS- Değil -senin-Gmail-şifre
yeni google güvenlik sorunu nedeniyle, bu amaçla bir uygulama şifresi oluşturmak için aşağıdaki adımları izlemelisiniz: