Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie e-mail
Forum PHP.pl > Forum > PHP
Fluke
Witam.

Chciałem stworzyć skrypt do wysyłania maila do użytkownika jednak wyskakuje błąd:

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 D:\xampp\htdocs\class\mail.php on line 17


Korzystam z XAMPP, Mercyry jest włączone, php.ini jest poprawnie skonfigurowane. Szukałem dużo na ten temat ale nic konkretnego nie znalazłem.

Skrypt jest na pewno dobry bo na darmowym serwerze chodzi jak należy.


Proszę o pomoc,
Pozdrawiam.
nospor
Czy na Twoim kompie stoi serwer mailowy? Bo komunikat bledy wyraźnie mowi, ze do takiego serwera na Twoim kompie nie jest w stanie się połączyc.
sniver
Wykorzystaj jakąś fajną biblioteke do łączenia się z zewnętrznym serwerem SMTP - choćby pear'ową.
albo poszukaj u wujka googla
lord2105
PhpMailer
Fluke
W xamppie jest już serwer i mam go włączonego.

Kiedyś korzystałem z krasnala i wszystko w porządku chodziło, nic nie musiałem ustawiać, a teraz w XAMPie już nie wiem co gdzie i jak...Jest program Mercury, tam wysyłam test e-mail na swoją pocztę i pisze że poprawnie wysłał maila ale na swojej poczcie go nie mam...smile.gif
lord2105
Strona i serwer mailowy stoi na localu tak?

pokaż php.ini
[mail function]
Fluke
lord2105 -> tak

http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
sendmail_from = administrator@localhost.com

; For Win32 only.
; http://php.net/sendmail-from


; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log = "D:\xampp\apache\logs\php_mail.log"">; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
sendmail_from = administrator@localhost.com

; For Win32 only.
; http://php.net/sendmail-from


; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log = "D:\xampp\apache\logs\php_mail.log"
lord2105
;sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

zmieniłbym na:

sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

i zobacz co mówią logi sendmaila

oczywiście najpierw włącz w php.ini od komentuj linijki z logami i jeżeli nie ma tych plików to je stwórz
Fluke
Nie wiem co się stało ale jak teraz ponownie odpaliłem skrypt to mail został wysłany. Nic nie zmieniałem...
Nie lubie takich sytuacji więc niech mi to ktoś wytłumaczy o co chodzi...Serwer był zawieszony czy co?

haha...super, raz odpaliłem działał teraz drugi raz chciałem odpalić i już nie działa...o co w ogole chodzi?
lord2105
Czynników może być wiele np. inna aplikacja blokuje port - wysyłałeś maila z outlooka i pozamiatane...

Zmień port w PHP.ini z 25 na 587 i zrestartuj serwer
Fluke
Cytat(lord2105 @ 27.09.2010, 11:45:01 ) *
Czynników może być wiele np. inna aplikacja blokuje port - wysyłałeś maila z outlooka i pozamiatane...

Zmień port w PHP.ini z 25 na 587 i zrestartuj serwer


Nie używam outlooka.
Zmieniłem port na 587, teraz skrypt pokazuje że wysyła maila ale mail niestety nie dochodzi na pocztę. Jak adres wpisałem swój e-mail i nie mam nic. Może trzeba chwilę poczekać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.