Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja mail() - problem
Forum PHP.pl > Forum > Przedszkole
chad
witam po raz pierwszy.
Mam problem z funkcja mail() , przerabiam wlasnie jedna z ksiazek o php i jes tam przyklad:

  1. <?php
  2. // utworzenie krótkich nazw zmiennych
  3. $nazwa=$_POST['nazwa'];
  4. $email=$_POST['email'];
  5. $komentarz=$_POST['komentarz'];
  6. $adresdo = 'komentarze@przyklad.com';
  7. $temat = 'Komentarz ze strony WWW';
  8. $zawartosc = 'Nazwa klienta: '.$nazwa."n"
  9.  .'Adres pocztowy: '.$email."n"
  10.  ."Komentarz klienta: n".$komentarz."n";
  11. $adresod = 'serwerwww@przyklad.com';
  12.  
  13. mail($adresdo, $temat, $zawartosc, $adresod);
  14. ?>


kozystam z tej funkci pierwszy raz a w ksiazce niestety niezostala ona wytłumaczona wystarczajaco
Bawiłem się nieco nim i mimo ze w ksiazce nic o tym nie pisali wypełnilem pola "mail function" w php.ini podalem tam SMTP jako poczta.o2.pl czyli poczta z portalu tlenu.pl i w tedy zaczelo cos sie dziac komunikat o błędzie w końcu miał sens:

Warning: mail() [function.mail]: SMTP server response: 554 <chadrain@tlen.pl>: Sender address rejected: SERWER poczta.o2.pl WYMAGA UWIERZYTELNIENIA. Zobacz http://pomoc.o2.pl/poczta/autoryzacja/ i skonfiguruj poprawnie program pocztowy. in c:\program files\apache group\Apache\htdocs\przetworzkomentarz.php on line 13

Rozumiem że potrzebny jest jeszcze kod podający informacje do uwierzytelnienia ale niwiem jak to zrobić.
Męcze się nad tym cały dzisiejszy dzień i byłbym wdzięczny za pomoc . Ogólnie z chęcią wysłuchał bym rad dotyczących wysyłania emaili za pomocą funkcji mail() lub innych metod.
Za pomoc naprawde bardzo z góry dziękuje.
mrowa
funkcja mail() sluzy raczej do wysylania wiadomosci poprzez server smtp znajdujacy sie na tym samy komputerze(localhost) lub takim ktory nie wymaga od nas uwierzytelnienia (siec lokalna)
jezeli chcesz uwierzytenic maila to tu sa linki

http://pl.php.net/manual/en/ref.mail.php#39305
http://www.zend.com/codex.php?id=708&single=1

powodzenia
chad
dzieki za odpowiedz.
Mam wrazenienie że ja czegoś tutaj mocno nierozumiem. Kożystam z php na localhoscie i sądziłem że właśnie trzeba skożystać z zewnętrnego SMTP. Więc mając do dyspozycji lokalny serwer jak na nim mam sprawić by funkcja mail() zadziałała ? co trzeba skonfigurować? bo niechciał działać na samym początku kiedy w php.ini w mail funcion widniało SMTP = localhost. Kurcze męczy mnie to już strasznie , bardzo , bardzo prosze o pomoc i za nią z góry dziękuje.

gdy zwyczajowo ustawiony jest na localhost iformacja o błędzie wygląda tak:

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:\program files\apache group\Apache\htdocs\przetworzkomentarz.php on line 13
mrowa
Temat jest bardzo rozległy ale spostaram sie go szybko wyjasnic


wiec server SMTP to w skrocie program ktory czeka na maile wysylane przez klientow
( Mozilla Thunderbird, Outlook Express ... ), jak dostanie maila to sprawdza gdzie mail jest adresowany i albo wysyla go dalej na odpowiedni server SMTP albo przenosi(jezeli mail byl adresowany na ten serwer) do odpowiednich skrzynek POP3,IMAP..

no ale w dzisiejszych czasach wszechobecnego spamu
admin servera SMTP nie moze pozwolic zeby kazdy mogl wyslac maila przez jego server a co gorsze
jezeli serwer bedzie akceptowal wszystkie przychodzace maile i wysylal je dalej na inne servery
(tzw. open-relay), to szybko maile pochodzace z tego serwera beda blokowane przez innych administratorow ( Baza serverow open-relay ).

a wiec zasada jest taka ze
server przyjmie tylko te wiadomosci ktore sa adresowane na niego np o2.pl przjmie maila test@o2.pl(ale to nie jest zelazna regula ) , natomiast zawsze przyjmie maila od uzytkownika uwierzytelnionego (SASL),
cala ta operacja moze byc jeszcze szyfrowana (TLS,SSL) ale tego serwery jeszcze nie wymagaja

tak wiec wracajac do twojego problemu, rozwiazania sa dwa :
- albo w php.ini bedziesz podawal serwer wymagajacy uwierzytelnienia a z poziomy php wysylal maila poprzez kalasy potrafiace sie uwierzytelnic (nie wystarczy funkcja mail() )
- albo postawisz lokalnie serwer SMTP(polecam postfix-a) i skonfigurujesz go tak zeby kazdy mail ktory dostanie twoj server byl wysylany (i uwiezytelniany) np. na o2.pl (nie jest to prosta sprawa i raczej nie na Windows ale zapewniam ze jak najbardziej wykonalna), po skonfigurowaniu takiego serwera bedziesz mogl uzywac funkcji mail() a jako SMTP w php.ini bedziesz mogl podac localhost

jest jeszcze trzeci sposob ktorego nie polecam i ktory w 90% bedzie nie skuteczny a mianowicie
jako server SMTP w php.ini wpisz jakis open-relay z bazy www.ordb.org i uzyj funkcji mail()



powodzenia
Mar3k
Ściongnij se Krasnala ze strony Krasnal ma wbódowany modół, ktury pozwoli wysłać majla.
chad
Rozejżałem się ale rzeczy typu postfix czy sandmail mnie jak narazie przerażają , poza tym chciałbym w miare możliwości sam pisać pewne rzeczy a nie kożystać z gotowych narzędzi . Natomiast zainstalowałem krasnala w szystko poszło gładko no i teraz będe próbował rozwiązać mójproblem przy użyciu wbudowanego smtp free servera.

Po zatym przeczytałem również że w takich sytuacjach należy kożystać z serwera SMTP
swojego dostawcy internetowego ... ale niestety w moim przypadku to również niedziała
niewiem dlaczego może to wcale nie jest właściwe rozwiązanie...

Jakkolwiem mam czysto teoretyczne pytanie czy jeśli wykupie sobie miejsce na serwerze np. w www.boo.pl to rozumiem że wtedy mail() będzie działał bez kłopotów bo bedzie kożystał z ich serwera smtp czy tak? bo jeśli tak , to właśnie w ten sposób zrobie .
mrowa
nie moge reczyc za www.boo.pl ale z opisu uslug krore udostepniaja wynika ze jezeli wykupisz tam konto to funkcja mail() na pewno bedzie dzialac


pozdrawiam

i powodzenia
chad
Wielkie dzięki za pomoc oraz za informacje. Udało mi się wysłać maile za pomoca smtp free serwera. Jeszcze raz wielkie dzieki.
piotrekkr
Witma ja mam konto na boo.pl. serwer jest naprawde spoko dzialaja wszystkie funkcje mail też bo sprawdzilem. place okolo 10 zl za 3 miechy polecam.
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.