Как настроить XAMPP для отправки почты с локального хоста?
256
Я пытаюсь отправить почту с локального хоста. но я не могу отправить почту с localhost, поэтому кто-нибудь может сказать мне, как перенастроить мой xampp для отправки почты с localhost
Невозможно помочь, если вы не предоставите нам текущую конфигурацию.
arkascha
1
Это все еще актуально с включенным Меркурием (ApacheFriends XAMPP 1.8.2)? Я думаю, что да, но если есть люди, предпочитающие ртуть, пожалуйста, укажите ниже. :) Спасибо!
Вы можете отправлять почту с 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 файл с функцией mail и отправляйте почту с localhost.
PS: не забудьте заменить my-gmail-id и my-gmail-password в приведенном выше коде. Также не забудьте удалить дубликаты ключей, если вы скопировали настройки сверху. Например, прокомментируйте следующую строку, если есть другой sendmail_path : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"в файле php.ini
Также не забудьте перезапустить сервер с помощью панели управления XAMMP, чтобы изменения вступили в силу.
Мне пришлось обновить XAMMP 1.7.7 до 2.8.2.3 - sendmail включен в более новый XAMPP. Я попытался использовать более новый sendmail с 1.7.7 несколько месяцев назад и не смог заставить его работать - наконец-то укусил пулю и использовал новый XAMPP, и он работает, как описано.
VanAlbert
2
Я считаю, что расположение C: \ xampp \ php \ php.ini относится к средам Windows. Для Mac посмотрите в файле xamppfiles / etc файл php.ini.
Пол Троттер
3
Ответ @Vikas был лучшим, но, пожалуйста, обратите внимание, что использование ssl по умолчанию на smtp_port может не работать в определенных условиях, если использовать 465, так как ответ Тирумалай Муруган заявил, что это действительно исправило меня
Temitayo
2
Он отлично работает с XAMPP версии 7.0.15. Только не забудьте удалить точку с запятой, а также войдите в систему с тем же идентификатором Gmail, который вы настроили, а затем перейдите по ссылке ниже myaccount.google.com/lesssecureapps?pli=1 и Разрешить менее безопасные приложения: ВКЛ. Теперь вы можете отправлять почту прямо с локального
хоста
35
В XAMPP v3.2.1 для целей тестирования вы можете видеть электронные письма, которые XAMPP отправляет в XAMPP / mailoutput. В моем случае на Windows 8 это не требовало дополнительной настройки и было простым решением для проверки электронной почты.
И если это не работает, проверьте c:\xampp\php\php.ini, найдите [mail function]и раскомментируйте указанную строку mailtodisk.exe. Оставьте все остальные строки в этом разделе закомментированными, кроме mail.add_x_headerодной.
Тим Мэлоун
3
Как дополнение к моему комментарию выше, для более свежих версий XAMPP вам может понадобиться вручную добавить строку mailtodisk. Это должно выглядеть примерно так:sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Тим Мэлоун
Дополнительное дополнение к комментарию от @TimMalone. Я обнаружил, что почта будет записываться в XAMPP / mailoutput только при запуске XAMPP от имени администратора
sohail
@sohail: Вам не нужно запускать XAMPP от имени администратора, но вы должны дать разрешение всем пользователям писать в папку XAMPP / mailoutput (щелкните правой кнопкой мыши папку> security> все пользователи> разрешения на редактирование> полный доступ)
cheppsn
@TimMalone Я применил оба предложения, но ничего в каталоге mailoutput даже после стольких попыток
Vipul Hadiya
25
Очень просто отправлять электронную почту на локальный или локальный сервер
Примечание. Я использую тестовый почтовый сервер на 64-битной Windows 7 с установленным Xampp.
Просто загрузить инструмент сервер тест почты и установить в соответствии с инструкцией , заданной на своем веб - сайте Test Mail Server Tool
Теперь вам нужно изменить только две строки в php.iniфайле
Найти [mail function]и удалить точку с запятой, которая раньше;smtp = localhost
Поставить точку с запятой перед sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Вам не нужно ничего менять, но если вы все еще не получаете электронную почту, кроме проверки SMTP port, номер порта должен быть таким же.
Вышеуказанный метод предназначен для настроек по умолчанию, предоставляемых программным обеспечением Xampp.
Это действительно отличное решение, быстро и просто, и я могу сразу приступить к работе. Локальная работа с почтовыми серверами - это хлопотно, когда это только для разработчиков.
AdheneManx
1
Спасибо, я тоже использовал это для тестирования своего проекта.
Писет Сок
19
Вы должны настроить SMTP на вашем сервере. Вы можете бесплатно использовать SMTP G Suite от Google:
<?php
$mail =newPHPMailer(true);// Send mail using Gmailif($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 :(";}?>
Ответ @Vikas был лучшим, но, пожалуйста, обратите внимание, что использование ssl по умолчанию для smtp_port может не работать в определенных условиях, используя 465, так как в этом ответе указано, что это действительно исправило меня
Temitayo
Я использовал ответ @Vikas, но я использовал ваш фрагмент, то есть 465 в качестве emtp_port. Хорошая работа в любом случае
Темитайо
Неустранимая ошибка: класс 'PHPMailer' не найден в C: \ xampp \ htdocs \ myweb \ email_script.php в строке 82
Shafizadeh
8
Как и в моем личном опыте, я обнаружил, что ответ, очень похожий на ответ Викаса Двиведи, будет прекрасно работать.
Шаг 1 (файл php.ini)
В файле php.ini находится в xampp\php\php.ini. Измените настройки на следующие:
Этот код используется для почты с вашего локального хоста XAMPP и вашей учетной записи Gmail. Этот код очень прост и работает для меня, попробуйте сами.
NB. Порт не должен использоваться. Пожалуйста, позаботьтесь о том, чтобы некоторые приложения, такие как, Skypeиспользовали порты по умолчанию и предотвращали отправку почты.
Вы можете запретить скайпу использовать порт 80. Это в настройках соединения скайпа
astroanu
0
просто потратил больше часа, пытаясь заставить эту работу. для всех, кто испытывает те же проблемы со всеми опубликованными предложениями, которые не работают: вы должны перезапустить Apache в своем интерфейсе XAMPP! просто перезапуск XAMPP не будет работать !!
Я пробовал много способов отправки почты с локального хоста XAMPP, но, поскольку у 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 =newPHPMailer\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!";}
Ответы:
Вы можете отправлять почту с 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]
и изменитьТеперь открыто
C:\xampp\sendmail\sendmail.ini
. Замените весь существующий код в sendmail.ini следующим кодомТеперь вы сделали !! создайте php файл с функцией mail и отправляйте почту с localhost.
PS: не забудьте заменить my-gmail-id и my-gmail-password в приведенном выше коде. Также не забудьте удалить дубликаты ключей, если вы скопировали настройки сверху. Например, прокомментируйте следующую строку, если есть другой sendmail_path :
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
в файле php.iniТакже не забудьте перезапустить сервер с помощью панели управления XAMMP, чтобы изменения вступили в силу.
Для получения почты Gmail проверьте https://support.google.com/accounts/answer/6010255, чтобы разрешить доступ из менее безопасных приложений.
источник
В 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"
Очень просто отправлять электронную почту на локальный или локальный сервер
Примечание. Я использую тестовый почтовый сервер на 64-битной Windows 7 с установленным 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
и вы увидите это:
Я надеюсь, что у вас будет хороший день. Вы можете найти меня на Youtube для более учебника Писет Сок
Не унывайте!
источник
Вы должны настроить SMTP на вашем сервере. Вы можете бесплатно использовать SMTP G Suite от Google:
Подробнее о
PHPMailer
здесь .источник
Как и в моем личном опыте, я обнаружил, что ответ, очень похожий на ответ Викаса Двиведи, будет прекрасно работать.
Шаг 1 (файл php.ini)
В файле php.ini находится в
xampp\php\php.ini
. Измените настройки на следующие:Отключите другие переменные
mail funciton
, поставив;
перед ними. например;smtp_port=25
Шаг 2 (файл sendmail.ini)
В sendmail.ini, расположенном в xampp \ sendmail \ semdmail.ini, измените следующее:
Шаг 3 (код)
Создайте файл php и используйте следующее:
уведомление
источник
Этот код используется для почты с вашего локального хоста XAMPP и вашей учетной записи Gmail. Этот код очень прост и работает для меня, попробуйте сами.
Ниже изменения в файле php.ini
Ниже изменения в файле sendmail.ini
Пожалуйста, напишите любимый код в вашем PHP-файле, чтобы отправить письмо
источник
Вы должны определить
SMTP
сервер и порт для этого. Все, кроме как отправка писем с живых хостов.Это полезная ссылка по этому поводу .
источник
просто потратил больше часа, пытаясь заставить эту работу. для всех, кто испытывает те же проблемы со всеми опубликованными предложениями, которые не работают: вы должны перезапустить Apache в своем интерфейсе XAMPP! просто перезапуск XAMPP не будет работать !!
источник
Я пробовал много способов отправки почты с локального хоста XAMPP, но, поскольку у XAMPP нет SSL-сертификата, мой почтовый запрос заблокирован Gmail или аналогичными поставщиками SMTP-услуг.
Затем я использовал MailHog для локального сервера smtp, вам нужно просто запустить его. localhost: 1025 для сервера smtp, localhost: 8025 для почтового сервера, где вы можете проверить отправленные вами письма.
вот мой код:
Ссылка на репозиторий MailHog Github
источник
В дополнение ко всем ответам, обратите внимание, что в
sendmail.ini
файле:Из-за новой проблемы безопасности Google вы должны выполнить следующие шаги, чтобы создать пароль приложения для этой цели:
источник