Как настроить XAMPP для отправки почты с localhost?

Я пытаюсь отправить почту с localhost. но я не могу отправить почту с localhost так может кто-нибудь сказать мне, как перенастроить мой xampp для отправки почты с localhost

Ответы

Ответ 1

Вы можете отправлять почту с localhost с помощью пакета sendmail, пакет sendmail встроен в XAMPP. Поэтому, если вы используете XAMPP, вы можете легко отправлять почту с локального хоста.

например, вы можете настроить C:\xampp\php\php.ini и c:\xampp\sendmail\sendmail.ini на отправку почты gmail.

в C:\xampp\php\php.ini найдите extension=php_openssl.dll и удалите точку с запятой в начале этой строки, чтобы заставить SSL работать для gmail для localhost.

в файле php.ini найдите [mail function] и измените

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = [email protected]
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
[email protected]
auth_password=my-gmail-password
[email protected]

Теперь ты сделал! создать файл php с функцией почты и отправить почту с localhost.

PS: не забывайте заменить my-gmail-id и my-gmail-password в приведенном выше коде. Кроме того, не забудьте удалить дубликаты ключей, если вы скопировали настройки сверху. Например, следующая строка комментария, если в файле php.ini есть sendmail_path: sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

Также не забудьте перезапустить сервер с помощью панели управления XAMMP, чтобы изменения вступили в силу.

Для gmail проверьте https://support.google.com/accounts/answer/6010255, чтобы разрешить доступ к менее защищенным приложениям.

Для отправки электронной почты на Linux (с пакетом sendmail) через Gmail из localhost, пожалуйста, проверьте PHP + Ubuntu Отправить письмо с помощью формы gmail локальный.

Ответ 2

В XAMPP v3.2.1 для тестирования вы можете увидеть электронные письма, которые XAMPP отправляет в XAMPP/mailoutput. В моем случае в Windows 8 это не требовало дополнительной настройки и было простым решением для проверки электронной почты

Ответ 3

Очень просто отправить электронные письма на локальный или локальный сервер

Примечание. Я использую тестовое почтовое серверное программное обеспечение на Windows 7 64bit с установленной Xampp

Просто скачайте тестовый почтовый серверный инструмент и установите его в соответствии с инструкцией, приведенной на ее веб-сайте Проверить почтовый сервер

Теперь вам нужно изменить только две строки в php.ini файле

  • Найдите [mail function] и удалите полуплот, который находится перед ;smtp = localhost
  • Поместите запятую до sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

Вам не нужно ничего менять, но если вы все еще не получаете электронную почту, чем проверяете SMTP port, номер порта должен быть таким же.

Вышеуказанный метод предназначен для настроек по умолчанию, предоставляемых программным обеспечением Xampp.

Ответ 4

Вы должны настроить SMTP на вашем сервере. Вы можете бесплатно использовать SMTP G Suite от 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 :(";
}

?>

Узнайте больше о PHPMailer здесь.

Ответ 5

Вы можете проверить отправку почты на свой компьютер без интернета

Вы должны использовать Papercut это простое приложение для проверки отправки почты. и вам не нужно ничего настраивать.

Просто запустите его и попробуйте проверить отправку почты:

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);
?>

и вы увидите это:

enter image description here

Я надеюсь, что у вас будет хороший день. Вы можете найти меня на Youtube для более учебника Писет Сок

Не унывайте!

Ответ 6

Для людей на окнах 8, если вы хотите сделать это, я бы действительно рекомендовал прочитать этот учебник, который я нашел: http://yogeshchaugule.com/blog/2013/configure-sendmail-wamp

Не написано мной, но после того, как я ударил головой в бетонную стену в течение 2,5 часов, не получив этого, чтобы работать с такими странными ошибками, как:

  • Время ожидания подключения.
  • Соединение закрыто. Изящно.

Наконец-то я нашел, что учебник был посвящен установке https://www.stunnel.org/downloads.html и конфигурации Stunnel. Наконец он работал.

Ответ 7

Как и в моем личном опыте, я обнаружил, что ответ, очень похожий на ответ Викаса Двиведи, будет прекрасно работать.

Шаг 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
 [email protected]
 auth_password=YourPassword

Шаг 3 (код)

Создайте файл php и используйте следующее:

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

уведомление

  • Вам нужно перезапустить apache, чтобы php.ini перезагрузился.
  • вам нужно активировать Google Безопасный доступ к приложениям в https://myaccount.google.com/u/1/security
  • Это может помочь запустить Xampp с правами администратора.

Ответ 8

Если у вас установлена последняя версия xampp, проверьте эту ссылку для полной документации по отправке электронных писем через xampp. Вы должны включить Apache, прежде чем пытаться получить доступ по ссылке ниже

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

Ответ 9

Для этого вам нужно определить сервер SMTP и порт. Все, кроме отправки сообщений с живых хостов.

Это полезная ссылка для этого.

Примечание. Порт должен быть не использован. Пожалуйста, позаботьтесь о том, чтобы некоторые приложения, такие как Skype, используют порты по умолчанию, а там предотвращают отправка mail.

Ответ 10

просто потратил более часа, пытаясь сделать эту работу. для всех, у кого есть те же проблемы со всеми предложениями, которые не работают: вы должны перезапустить Apache в своем интерфейсе XAMPP! просто перезапуск XAMPP не работает!!

Ответ 11

Этот код используется для почты с вашего локального хоста XAMPP и вашей учетной записи Gmail. Этот код очень прост и работает для меня, попробуй сам.

Ниже изменения в файле 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 

Ниже изменения в файле 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]  

Пожалуйста, напишите любимый код в вашем PHP файле, чтобы отправить письмо

<?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";    
    }
?>