Jak skonfigurować XAMPP do wysyłania poczty z hosta lokalnego?
255
Próbuję wysłać pocztę z hosta lokalnego. ale nie jestem w stanie wysłać poczty z localhost, więc każdy może mi powiedzieć, jak zmienić konfigurację mojego xampp, aby wysyłał mail z localhost
Nie można pomóc, jeśli nie podasz nam bieżącej konfiguracji.
arkascha
1
Czy nadal dotyczy to dołączonego oprogramowania Mercury (ApacheFriends XAMPP 1.8.2)? Myślę, że tak, ale jeśli są ludzie preferujący Merkurego, proszę wskazać poniżej. :) Dzięki!
Możesz wysyłać pocztę z hosta lokalnego za pomocą pakietu sendmail, pakiet sendmail jest wbudowany w XAMPP. Więc jeśli używasz XAMPP, możesz łatwo wysyłać pocztę z localhost.
na przykład możesz skonfigurować C:\xampp\php\php.inii c:\xampp\sendmail\sendmail.inidla Gmaila wysyłać pocztę.
w C:\xampp\php\php.iniznajdź extension=php_openssl.dlli usuń średnik na początku tego wiersza, aby protokół SSL działał dla Gmaila dla hosta lokalnego.
Teraz już skończyłeś !! utwórz plik php z funkcją mail i wyślij pocztę z localhost.
PS: nie zapomnij zastąpić my-gmail-id i my-gmail-password w powyższym kodzie. Nie zapomnij również usunąć duplikatów kluczy, jeśli skopiowałeś ustawienia z góry. Na przykład skomentuj następujący wiersz, jeśli istnieje inna ścieżka_wysyłki : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"w pliku php.ini
Pamiętaj także o ponownym uruchomieniu serwera za pomocą panelu sterowania XAMMP, aby zmiany zostały wprowadzone.
inne niż powyższe konfiguracje, musiałem zaktualizować mój sendmail glob.com.au/sendmail
kaz
1
Musiałem uaktualnić z XAMMP 1.7.7 do 2.8.2.3 - sendmail jest zawarty w nowszym XAMPP. Próbowałem użyć nowszego sendmaila z wersją 1.7.7 kilka miesięcy temu i nie mogłem go uruchomić - w końcu ugryzłem kulę i użyłem nowego XAMPP i działa zgodnie z opisem.
VanAlbert
2
Uważam, że lokalizacja C: \ xampp \ php \ php.ini odnosi się do środowisk Windows. W systemie Mac poszukaj w pliku xamppfiles / etc pliku php.ini.
Paul Trotter
3
Odpowiedź @ Vikas była najlepsza, ale należy pamiętać, że użycie domyślnego ssl na smtp_port może nie działać w pewnych warunkach, przy użyciu 465, ponieważ odpowiedź Thirumalai murugan faktycznie naprawiła to dla mnie
Temitayo
2
Działa idealnie z XAMPP w wersji 7.0.15 Po prostu nie zapomnij usunąć z niego średnika, a także zaloguj się do tego samego identyfikatora Gmaila, który skonfigurowałeś, a następnie przejdź do poniższego łącza myaccount.google.com/lesssecureapps?pli=1 i Zezwalaj na mniej bezpieczne aplikacje: WŁ. Teraz możesz wysłać pocztę bezpośrednio z lokalnego hosta XAMPP
raftaar1191
35
W XAMPP v3.2.1 do celów testowych możesz zobaczyć e-maile, które XAMPP wysyła w XAMPP / mailoutput. W moim przypadku w systemie Windows 8 nie wymagało to żadnej dodatkowej konfiguracji i było prostym rozwiązaniem do testowania poczty e-mail
A jeśli to nie działa, sprawdź swoją c:\xampp\php\php.ini, [mail function]odszukaj i odkomentuj wspomnianą linię mailtodisk.exe. Zachowaj komentarz co drugi wiersz w tej sekcji, z wyjątkiem mail.add_x_headerjednego.
Tim Malone
3
Jako dodatek do mojego powyższego komentarza, w przypadku nowszych wersji XAMPP może być konieczne ręczne dodanie wiersza mailtodisk. Powinno to wyglądać sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Tim Malone
Dodatkowy dodatek do komentarza @TimMalone. Odkryłem, że poczta będzie zapisywana do XAMPP / mailoutput tylko jeśli uruchomisz XAMPP jako administrator
sohail
@sohail: Nie musisz uruchamiać XAMPP jako administrator, ale musisz zezwolić wszystkim użytkownikom na pisanie do folderu XAMPP / mailoutput (kliknij prawym przyciskiem myszy folder> bezpieczeństwo> wszyscy użytkownicy> uprawnienia do edycji> pełny dostęp)
cheppsn
@ TimMalone Zastosowałem obie sugestie, ale nic w katalogu mailoutput nawet po tylu próbach
Vipul Hadiya
25
Wysyłanie wiadomości e-mail na localhost lub lokalnym serwerze jest bardzo proste
Uwaga: używam oprogramowania testowego serwera poczty w systemie Windows 7 64bit z zainstalowanym Xampp
Wystarczy pobrać narzędzie testowe serwera pocztowego i zainstalować zgodnie z instrukcją podaną na stronie internetowej Test Mail Server Tool
Teraz musisz zmienić tylko dwa wiersze w php.inipliku
Znajdź [mail function]i usuń średnik, który był wcześniej;smtp = localhost
Wcześniej umieść średnik sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Nie musisz zmieniać niczego innego, ale jeśli nadal nie otrzymujesz wiadomości e-mail, ale sprawdź SMTP port, numer portu musi być taki sam.
Powyższa metoda dotyczy ustawień domyślnych dostarczonych przez oprogramowanie Xampp.
To naprawdę świetne rozwiązanie, szybkie i łatwe, a ja mogę od razu zabrać się do pracy. Lokalne zajmowanie się serwerami pocztowymi jest kłopotliwe, gdy dotyczy tylko programistów.
AdheneManx
1
Dzięki, wykorzystałem to również do przetestowania mojego projektu.
Piseth Sok
19
Musisz skonfigurować SMTP na swoim serwerze. Możesz użyć G Suite SMTP firmy Google za darmo:
<?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="[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 :(";}?>
Odpowiedź @ Vikas była najlepsza, ale należy pamiętać, że użycie domyślnego ssl na smtp_port może nie działać w określonych warunkach, przy użyciu 465, ponieważ ta odpowiedź rzeczywiście naprawiła go dla mnie
Temitayo
Użyłem odpowiedzi @Vikas, ale użyłem twojego fragmentu, tj. Używając 465 jako emtp_port. W każdym razie dobra robota
Temitayo,
Błąd krytyczny: nie znaleziono klasy „PHPMailer” w C: \ xampp \ htdocs \ myweb \ email_script.php w linii 82
Shafizadeh
7
Podobnie jak w moim osobistym doświadczeniu, stwierdziłem, że odpowiedź bardzo podobna do odpowiedzi Vikasa Dwivedi będzie działać dobrze.
Krok 1 (plik php.ini)
W pliku php.ini znajdującym się w xampp\php\php.ini. Zmień ustawienia na następujące:
Uwaga: Port nie powinien być używany. Pamiętaj, że niektóre aplikacje, takie jak, Skypeużywają domyślnych portów i tam, uniemożliwiając wysyłanie poczty.
Możesz uniemożliwić skypeowi korzystanie z portu 80. jest on
ustawiony w
0
spędziłem ponad godzinę próbując sprawić, by to zadziałało. dla wszystkich, którzy mają ten sam problem z niedziałającymi wszystkimi sugestiami: musisz zrestartować Apache w swoim interfejsie XAMPP! ponowne uruchomienie XAMPP nie będzie działać !!
Próbowałem na wiele sposobów, aby wysłać pocztę z XAMPP Localhost, ale ponieważ XAMPP nie ma certyfikatu SSL, moje zapytanie zostało zablokowane przez Gmaila lub podobnych dostawców usług SMTP.
Następnie użyłem MailHog do lokalnego serwera smtp, wystarczy go uruchomić. localhost: 1025 jest dla serwera smtp, localhost: 8025 jest dla serwera poczty, na którym możesz sprawdzić wysłane e-maile.
oto mój kod:
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('[email protected]','Mailer');
$mail->addAddress('[email protected]','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!";}
Odpowiedzi:
Możesz wysyłać pocztę z hosta lokalnego za pomocą pakietu sendmail, pakiet sendmail jest wbudowany w XAMPP. Więc jeśli używasz XAMPP, możesz łatwo wysyłać pocztę z localhost.
na przykład możesz skonfigurować
C:\xampp\php\php.ini
ic:\xampp\sendmail\sendmail.ini
dla Gmaila wysyłać pocztę.w
C:\xampp\php\php.ini
znajdźextension=php_openssl.dll
i usuń średnik na początku tego wiersza, aby protokół SSL działał dla Gmaila dla hosta lokalnego.w pliku php.ini znajdź
[mail function]
i zmieńTeraz otwarty
C:\xampp\sendmail\sendmail.ini
. Zastąp cały istniejący kod w sendmail.ini następującym kodemTeraz już skończyłeś !! utwórz plik php z funkcją mail i wyślij pocztę z localhost.
PS: nie zapomnij zastąpić my-gmail-id i my-gmail-password w powyższym kodzie. Nie zapomnij również usunąć duplikatów kluczy, jeśli skopiowałeś ustawienia z góry. Na przykład skomentuj następujący wiersz, jeśli istnieje inna ścieżka_wysyłki :
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
w pliku php.iniPamiętaj także o ponownym uruchomieniu serwera za pomocą panelu sterowania XAMMP, aby zmiany zostały wprowadzone.
W przypadku Gmaila sprawdź https://support.google.com/accounts/answer/6010255, aby umożliwić dostęp z mniej bezpiecznych aplikacji.
źródło
W XAMPP v3.2.1 do celów testowych możesz zobaczyć e-maile, które XAMPP wysyła w XAMPP / mailoutput. W moim przypadku w systemie Windows 8 nie wymagało to żadnej dodatkowej konfiguracji i było prostym rozwiązaniem do testowania poczty e-mail
źródło
c:\xampp\php\php.ini
,[mail function]
odszukaj i odkomentuj wspomnianą linięmailtodisk.exe
. Zachowaj komentarz co drugi wiersz w tej sekcji, z wyjątkiemmail.add_x_header
jednego.sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Wysyłanie wiadomości e-mail na localhost lub lokalnym serwerze jest bardzo proste
Uwaga: używam oprogramowania testowego serwera poczty w systemie Windows 7 64bit z zainstalowanym Xampp
Wystarczy pobrać narzędzie testowe serwera pocztowego i zainstalować zgodnie z instrukcją podaną na stronie internetowej Test Mail Server Tool
Teraz musisz zmienić tylko dwa wiersze w
php.ini
pliku[mail function]
i usuń średnik, który był wcześniej;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Nie musisz zmieniać niczego innego, ale jeśli nadal nie otrzymujesz wiadomości e-mail, ale sprawdź
SMTP port
, numer portu musi być taki sam.Powyższa metoda dotyczy ustawień domyślnych dostarczonych przez oprogramowanie Xampp.
źródło
Możesz przetestować wysyłanie poczty na swoim komputerze bez Internetu
powinieneś użyć Papercut tej prostej aplikacji do przetestowania wysyłania poczty. i nie musisz niczego konfigurować.
Po prostu uruchom go i spróbuj przetestować wysyłanie poczty:
test_sendmail.php
i zobaczysz to:
Mam nadzieję, że będziesz miał dobry dzień. możesz mnie znaleźć na Youtube po więcej samouczków Piseth Sok
Dopingować!
źródło
Musisz skonfigurować SMTP na swoim serwerze. Możesz użyć G Suite SMTP firmy Google za darmo:
Przeczytaj więcej o
PHPMailer
tutaj .źródło
Podobnie jak w moim osobistym doświadczeniu, stwierdziłem, że odpowiedź bardzo podobna do odpowiedzi Vikasa Dwivedi będzie działać dobrze.
Krok 1 (plik php.ini)
W pliku php.ini znajdującym się w
xampp\php\php.ini
. Zmień ustawienia na następujące:Wyłącz inne zmienne
mail funciton
, umieszczając;
je przed nimi. na przykład;smtp_port=25
Krok 2 (plik sendmail.ini)
W sendmail.ini znajdującym się w xampp \ sendmail \ semdmail.ini zmień na:
Krok 3 (kod)
Utwórz plik php i użyj:
Ogłoszenie
źródło
Ten kod jest używany w przypadku poczty z lokalnego hosta XAMPP i konta Gmail. Ten kod jest bardzo łatwy i działa dla mnie, spróbuj sam.
Poniżej Zmień w pliku php.ini
Poniżej Zmień w pliku sendmail.ini
Napisz kod w swoim pliku PHP, aby wysłać e-mail
źródło
W tym celu musisz zdefiniować
SMTP
serwer i port. Wszystko oprócz wysyłania maili z żywych hostów.To jest przydatny link w tym zakresie .
źródło
spędziłem ponad godzinę próbując sprawić, by to zadziałało. dla wszystkich, którzy mają ten sam problem z niedziałającymi wszystkimi sugestiami: musisz zrestartować Apache w swoim interfejsie XAMPP! ponowne uruchomienie XAMPP nie będzie działać !!
źródło
Próbowałem na wiele sposobów, aby wysłać pocztę z XAMPP Localhost, ale ponieważ XAMPP nie ma certyfikatu SSL, moje zapytanie zostało zablokowane przez Gmaila lub podobnych dostawców usług SMTP.
Następnie użyłem MailHog do lokalnego serwera smtp, wystarczy go uruchomić. localhost: 1025 jest dla serwera smtp, localhost: 8025 jest dla serwera poczty, na którym możesz sprawdzić wysłane e-maile.
oto mój kod:
Link do repozytorium MailHog Github
źródło
oprócz wszystkich odpowiedzi należy pamiętać, że w
sendmail.ini
pliku:ze względu na nowe obawy związane z bezpieczeństwem Google, wykonaj następujące kroki, aby utworzyć hasło aplikacji w tym celu:
źródło