2010-01-02 31 views
12

używam najnowszego WAMP i uzyskać to przy próbie wysłania wiadomości e-mail: Dostawawysyłanie e-maili z WAMP

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\main\createaccount.php on line 8 

Wiadomość nieudane ...

Komunikat:

$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
if (mail($to, $subject, $body)) { 
    echo("<p>Message successfully sent!</p>"); 
} else { 
    echo("<p>Message delivery failed...</p>"); 
} 

Czy potrzebujesz także pobrać "serwer pocztowy"?

Proszę o pomoc.

Odpowiedz

1

Nie uruchamiasz serwera SMTP na swoim komputerze, ale nie musisz tego robić. Wystarczy ustawić SMTP do otwartego serwera SMTP dla przykładu:

ini_set('SMTP', 'smtp.yourisp.com'); 

Spójrz na swojej stronie głównej ISP lub http://www.e-eeasy.com/SMTPServerList.aspx na liście serwerów SMTP.

Jeśli masz program pocztowy, możesz użyć tego samego adresu, którego używasz do wysyłania poczty.

+0

thanksman, próbowaliśmy wielu serwera nie, ale pojawia się ten sam komunikat o błędzie, może jakiś inny program i uruchomić użyć portu 25;/ – Jorm

+0

Czy na pewno kierują 'ini_set' przed' funkcji mail' i mieć cię próbowałeś serwera SMTP swojego ISP? –

0

Myślę, że serwer poczty wychodzącej (SMTP) serwera poczty nie jest skonfigurowany w pliku php.ini.

Wystarczy popatrzeć na to:

http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Remote_SMTP_Server_for_Sending_Mail.htm

także hotmail nie pozwalają na skorzystanie z ich serwera pocztowego. Powinieneś używać yahoo lub Gmaila.

+1

Przynajmniej Gmail wymaga połączenia chronionego protokołem SSL, więc nie jest to opcja z prostym starym 'mail()'. –

+0

@Tatu Ulmanen: Dzięki :) Nie sądzę, że tak, z tego co pamiętam. –

0

Czy jesteś pewien, że na tych serwerach zainstalowany jest program pocztowy? Jeśli nie, to twój problem. Na przykład XAMPP jest dostarczany z programem pocztowym o nazwie Mercury, który należy uruchomić przed wysłaniem poczty za pośrednictwem serwera.

14

To działa dla mnie i powinno działać: użyj Fake Sendmail i serwera poczty internetowej (np. - Godaddy, 1 i 1 itd.).

1.) Pobierz suwak sendmail i wyodrębnij go do C: \ Wamp \ bin \ sendmail (dla celów tego przykładu).

2.) Edit C: \ wamp \ bin \ sendmail \ sendmail.ini i ustawić następujące wymagań Twojego serwera pocztowego (moje są poniżej):

smtp_server=mail.yourdomain.com 
smtp_port=26 
smtp_ssl=none 
;default_domain=yourdomain.com 
[email protected] 
auth_password=smtppassword 
;pop3_server= 
;pop3_username= 
;pop3_password= 
;force_sender= 
;force_recipient= 

3.) Określ ścieżkę sendmail .exe w twoim pliku php.ini.

[mail function] 
; For Win32 only. 
SMTP = 

; For Win32 only. 
sendmail_from = 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t" 

4.) Uruchom ponownie Wampserver.

Możesz odnieść sukces za pomocą Gmaila, ale jest kilka dodatkowych usprawnień, które sprawią, że będzie on działał. Wolę korzystać z serwera pocztowego hosta, do którego wysyłam mój kod.

+0

Dokładnie to, co musiałem połączyć z moim dev. środowisko z faktycznym kontem GoDaddy. Bardzo doceniane! –

+0

+1 Wyciąganie 2-letniego wątku, ale to mnie uratowało. – msanford

+0

TO DZIAŁA! Dziękuję Ci. To mnie uratowało. Wszystkie nagłe serwery Wamp64 przestają działać na deweloperskim hoście lokalnym, co mnie uratowało. – GunWanderer

0

Postępuj zgodnie z tym artykułem, działa, jeśli masz konto Gmail. lub przynajmniej dowolne konto e-mail, na którym znasz serwer, port i inne.

Send Email From localhost

0

tutaj jest inne rozwiązanie - WAMP send Mail using SMTP localhost


Pamiętaj, że za każdym razem, po zmianie php.ini,

należy ponownie uruchomić wamp

(!!!)

ps w php.ini, użyłem:

SMTP = localhost 
smtp_port = 25 
sendmail_from = [email protected] 

czy Oyu przechyłki edycji php.ini, spróbuj wstawić te linie w swoim skrypcie PHP.

ini_set("SMTP", "localhost"); 
ini_set("smtp_port", "25"); 
ini_set("sendmail_from", "[email protected]"); 
+0

To nie działa. – Draken