Я намагаюся надсилати пошту від localhost. але я не в змозі надіслати пошту з localhost, тому хтось може мені сказати, як перенастроїти мій xampp для надсилання пошти з localhost
Я намагаюся надсилати пошту від localhost. але я не в змозі надіслати пошту з localhost, тому хтось може мені сказати, як перенастроїти мій xampp для надсилання пошти з localhost
Відповіді:
Ви можете відправляти пошту з localhost з пакетом sendmail, пакет sendmail вбудований у XAMPP. Тож якщо ви використовуєте XAMPP, ви можете легко надсилати пошту з localhost.
наприклад, ви можете налаштувати C:\xampp\php\php.ini
та c:\xampp\sendmail\sendmail.ini
відправляти пошту для gmail.
в C:\xampp\php\php.ini
знахідку extension=php_openssl.dll
і видаліть точку з коми з початку цієї лінії , щоб зробити SSL працює Gmail для локального хоста.
у файлі php.ini знайти [mail function]
та змінити
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Тепер відкрито C:\xampp\sendmail\sendmail.ini
. Замініть весь існуючий код у sendmail.ini наступним кодом
[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
Тепер ви зробили !! створити файл php з функцією пошти та надіслати пошту з localhost.
PS: не забудьте замінити my-gmail-id та my-gmail-пароль у наведеному вище коді. Також не забудьте видалити повторювані ключі, якщо ви скопіювали налаштування зверху. Наприклад, прокоментуйте наступний рядок, якщо є інший sendmail_path : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
у файлі php.ini
Також не забудьте перезапустити сервер за допомогою панелі керування XAMMP, щоб зміни набрали чинності.
Щоб отримати доступ до Gmail, перегляньте https://support.google.com/accounts/answer/6010255, щоб отримати доступ із менш захищених програм.
Щоб надіслати електронну пошту в Linux (з пакетом sendmail) через Gmail від localhost, будь ласка, перевірте PHP + Ubuntu Надіслати електронну пошту за допомогою gmail форми localhost .
У XAMPP v3.2.1 для тестування ви можете побачити електронні листи, які XAMPP надсилає в XAMPP / mailoutput. У моєму випадку в Windows 8 це не вимагало додаткової конфігурації і було простим рішенням для тестування електронної пошти
c:\xampp\php\php.ini
, шукайте [mail function]
та скасуйте цей згаданий рядок mailtodisk.exe
. Залишайте коментований кожен інший рядок у цьому розділі, крім mail.add_x_header
одного.
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Дуже просто надсилати електронні листи на localhost або локальний сервер
Примітка. Я використовую програмне забезпечення для тестового поштового сервера в ОС Windows 7 64bit із встановленим Xampp
Просто завантажити інструмент сервер тест пошти та встановити в відповідно до інструкції , заданої на своєму веб - сайті Test Mail Server Tool
Тепер потрібно змінити лише два рядки під php.ini
файлом
[mail function]
і вийміть напівкрапку, яка була раніше;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Вам більше нічого не потрібно змінювати, але якщо ви все одно не отримуєте електронну пошту, ніж перевіряєте SMTP port
, номер порту повинен бути однаковим.
Вищеописаний метод призначений для налаштувань за замовчуванням, передбачених програмним забезпеченням Xampp.
Ви повинні використовувати Papercut цю просту програму для тестування відправки пошти. і вам нічого не потрібно налаштовувати.
Просто запустіть його і спробуйте випробувати пошту:
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);
?>
і ви побачите це:
Я сподіваюся, що у вас буде хороший день. ви можете знайти мене на Youtube для отримання більшого підручника Piseth Sok
Ура!
Ви повинні налаштувати SMTP на своєму сервері. Ви можете безкоштовно використовувати Google Suite SMTP від 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 :(";
}
?>
Детальніше про це PHPMailer
читайте тут .
Як і в особистому досвіді, я виявив, що дуже схожа річ на відповідь Вікаса Дуіведі буде добре працювати.
Крок 1 (файл php.ini)
У файлі php.ini, розміщеному в xampp\php\php.ini
. Змініть налаштування на такі:
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
Вимкніть інші змінні mail funciton
, поставивши ;
перед ними. напр;smtp_port=25
Крок 2 (файл sendmail.ini)
У sendmail.ini, розташованому в xampp \ sendmail \ semdmail.ini, перейдіть до наступного:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
Крок 3 (код)
Створіть файл php та скористайтеся наступним:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
Зауважте
Цей код використовується для пошти з вашого локального XAMPP і вашого облікового запису Gmail. Цей код дуже простий і працюючий для мене спробуй себе.
Нижче Зміна файлу 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
Нижче Зміна у файлі 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
Будь ласка, напишіть код у файлі PHP, щоб надіслати електронний лист
<?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
сервер і порт. Все, крім як надсилання листів від живих хостів.
Це корисне посилання щодо цього .
Примітка: порт не повинен використовуватися. Будь ласка, переконайтеся, що деякі додатки, як-от,
Skype
використовує порти за замовчуванням і там запобігають надсиланню пошти.
щойно витратив більше години, намагаючись зробити цю роботу. для всіх, хто має однакові проблеми з усіма пропозиціями, які не розміщені: вам доведеться перезапустити Apache у своєму інтерфейсі XAMPP! просто перезапустити XAMPP звичайна робота !!
Я перепробував багато способів надіслати пошту від XAMPP Localhost, але оскільки XAMPP не має сертифіката SSL, мій запит електронної пошти заблоковано Gmail або подібними постачальниками послуг SMTP.
Тоді я використовував MailHog для локального smtp-сервера, що вам потрібно зробити, це просто запустити його. localhost: 1025 призначено для SMTP-сервера, localhost: 8025 - для поштового сервера, де ви можете перевірити надіслані вами електронні листи.
ось мій код:
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!";
}
окрім усіх відповідей, зверніть увагу, що у sendmail.ini
файлі:
auth_password = this-is- Not- your-Gmail-password
через нове занепокоєння щодо безпеки Google, слід виконати наступні кроки, щоб створити для цієї мети пароль програми: