konto usunięte

Temat: smtp a localhost

Wojciech Zbigniew Piotrowicz:
...
olej sprawdzanie funkcji mail pod wampem, xampem i innych tego typu.

Przychylam się do powyższego.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: smtp a localhost

Edyta Floras:

a co powiesz na temat takiej odpowiedzi z serwera ?

Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. e10sm6928322muf.14 in C:\wamp\www\moje\poczta.php on line 9

No właśnie. Wszyscy głupoty piszą w odpowiedziach a na ten szczegół nie zwrócili uwagi. A serwer gmaila wymaga szyfrowanego połączenia SMTP (nie wiecie co to STARTTLS ???), a tego PHP nie umie. Spróbuj wysłać przez jakis serwer który obsługuje normalne, nieszyfrowane SMTP.
A co do wypowiedzi typu "php samo nie wysle maila", radze poczytac dokumentacje.
Dla systemow uniksowych funkcja mail() wysyla maila poprzez lokalnego sendmaila lub kompatybilny MTA, dla Windows poprzez serwer SMTP zdefiniowany w php.ini. Ten ostatni wcale nie musi byc na lokalnej maszynie. Musi jednak: 1) wpuszczac poczte z naszego komputera BEZ autoryzacji; 2) nie WYMAGAC (moze uzywac opcjonalnie) szyfrowania TLS.Jarosław Rafa edytował(a) ten post dnia 07.10.08 o godzinie 18:12
Michał Sołtan

Michał Sołtan właściciel, Michał
Sołtan

Temat: smtp a localhost

Pani Edyto!

1. System Windows, domyślnie, nie posiada programu do wysyłania wiadomości pocztowych.
2. Program sendmail niekoniecznie musi być serwerem.
3. Z poziomu php można wysyłać wiadomości email nie posługując się funkją mail lub biblioteką IMAP.

Jeśli chcemy wysłać wiadomość email bez użycia dodatkowych funkcji php, np. mail() lub biblioteki IMAP, można to zrobić stosując protokół SMTP.
Zastosowanie funkcji fsockopen('host','port'), port 25 a host do uzgodnienia, łączy nas z serwerem pocztowym. Dalej należy wysłać na "połączony z nami" serwer odpowiednie instrukcje, funkcja write, z protokołu SMTP.

Dokumentacja protokołu SMTP jest dostępna w internecie. Można znaleźć wiele darmowych skryptów php, implementujących klasy do obsługi takich połączeń.

Jeśli chodzi o systemy operacyjne na jakich można uzyskać połączenie z serwem
to Windows niestety nie wypada najlepiej. Windows może nie obsługiwać szyfrowanych protokołów. Generalnie jednak skrypty php do obsługi SMTP będą działać wszędzie.

Podsumowanie:
Z mojej obserwacji wątku wynika że, skrypty wysyłające pocztę z Pani komputera muszą działać jak program pocztowy i łączyć się z serwerem pocztowym za pomocą protokołu SMTP. Takie połączenie i działanie umożliwiają popularne biblioteki php dedykowane dla SMTP.

Z wyrazami szacunku
Michał Sołtan

konto usunięte

Temat: smtp a localhost

Pani Edyto!

XAMPP i Krasnal mają obsługę maila. W jakim stopniu to już trzeba sprawdzić.

XAMPP:
http://www.apachefriends.org/download.php?xampp-win32-...
http://www.apachefriends.org/en/xampp-windows.html

Krasnal Serv:
http://www.download.net.pl/288/KRASNAL-Serv/
http://www.krasnal.4.pl/
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: smtp a localhost

Michał Sołtan:
Jeśli chcemy wysłać wiadomość email bez użycia dodatkowych funkcji php, np. mail() lub biblioteki IMAP, można to zrobić stosując protokół SMTP.
Zastosowanie funkcji fsockopen('host','port'), port 25 a host do uzgodnienia, łączy nas z serwerem pocztowym. Dalej należy wysłać na "połączony z nami" serwer odpowiednie instrukcje, funkcja write, z protokołu SMTP.

Tak tak... jeszcze po drodze implementujac cale szyfrowanie TLS, bo wszak problem ktory opisywala Edyta polega dokladnie na tym, ze serwer SMTP Gmaila takowego szyfrowania WYMAGA.
Jeśli chodzi o systemy operacyjne na jakich można uzyskać połączenie z serwem
to Windows niestety nie wypada najlepiej. Windows może nie obsługiwać szyfrowanych protokołów. Generalnie jednak skrypty php do obsługi SMTP będą działać wszędzie.

Pod warunkiem ze maja zaimplementowana obsluge TLS. mail() na pewno sobie z tym nie daje rady, nie wiem jak te bardziej zaawansowane.
Zwracam uwage ze TLS to nie to samo co SMTP via SSL (np. przez stunnel), ktory to przypadek dla aplikacji korzystajacej z SMTP jest praktycznie niewidoczny. TLS jest rozszerzeniem specyfikacji (E)SMTP - jezeli serwer anonsuje w komunikacie poczatkowym, ze obsluguje TLS, klient po HELO/EHLO powinien nastepnie wydac polecenie STARTTLS, wynegocjowac parametry szyfrowania i przejsc na transmisje szyfrowana. Wszystko w tej samej sesji SMTP!Jarosław Rafa edytował(a) ten post dnia 09.10.08 o godzinie 17:09

konto usunięte

Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: smtp a localhost

Piotr Likus:
Mam wrażenie że to w ten sposób (TLS) to jakaś droga przez mękę.

To znaczy co jest drogą przez mękę? Sam protokół TLS czy jego implementacja w PHP?
Co do samego TLS, to przecież klienty i serwery pocztowe obsługują go bez problemu... Taki jest standard i tyle... Swoją drogą pomysł niegłupi, bo nie trzeba mieć osobnego portu dla połączeń szyfrowanych i nieszyfrowanych, jak w WWW... Zresztą o ile się nie mylę to w HTTP też teoretycznie mozna stosować TLS, ale chyba nie ma implementacji...
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: smtp a localhost

Piotr Stanek:

Kto przy zdrowych zmysłach męczy się i kombinuje z php czy coś aby wysłać maila?

Zupełnie nie rozumiem o co ci chodzi.
Jeżeli Edyta chce, żeby jej aplikacja wysyłała maile przy okazji wykonywania jakichś tam czynności, to co w tym dziwnego?
Naprawdę nie znasz żadnych skryptów w PHP które wysyłają maile?
Jej problem polega tylko na tym, że wybrała sobie akurat serwer SMTP Gmaila do tego...

Temat: smtp a localhost

Piotr Stanek:
phpmailer czy bóg wie co... nie wyślesz maila z poziomu samego php. Pozatym phpmailer to stara klasa i ma swoje wady. lepiej juz korzystać z ZF

Wyślesz jak najbardziej jeżeli otworzysz sobie socketa do jakiegoś serwera SMTP i będziesz z nim bezpośrednio gadał.

konto usunięte

Temat: smtp a localhost

@Jarosław Rafa czytaj ze zrozumiem... jasne ze wysyłanie maili jest normalne, ale po co to testować na serwerze lokalnym ( to strata czasu ) dla programisty czas jest cenny pewnie dla Ciebie też.

A dla mnie dałeś popis typowego administracyjnego bełkotu. ( no ale widać, przynajmniej, że się znasz... )

a jeżeli ma problem niech wrzuci skrypt na normalny serwer i tam to testuje i po kłopocie..

@Wojciech Małota jasne, że wyślesz alę wątpie ze ty akurat tak testujesz swoje aplikacje. ( w tym przypadku wysyłanie maili )Piotr Stanek edytował(a) ten post dnia 10.10.08 o godzinie 19:21
Adrian Wieczorek

Adrian Wieczorek Full Stack Developer

Temat: smtp a localhost

Piotr Stanek:
jasne ze wysyłanie maili jest normalne, ale po co to testować na serwerze lokalnym ( to strata czasu ) dla programisty czas jest cenny pewnie dla Ciebie też.

Posiadanie środowiska testowego, na którym można sprawdzić _wszystkie_ mechanizmy aplikacji przed wrzuceniem na produkcję nazywasz stratą czasu? Hmmm... powodzenia życzę w takim razie :)

konto usunięte

Temat: smtp a localhost

Przecież chodzi tylko o wysyłanie maili mam mase znajomych którzy są programistami kilka lat i żaden z nich nie testuje wysyłania maili na zwykłym serwerze lokalnym.

pozatym testuje sie na wersji developerskiej a nie na produktowej....
ale to takie odejście od tematu. Zresztą każdy pracuje jak kto woli.

PS tobie Adrian wysyła maile na ser lokalnym przez funkcje mail ?

Temat: smtp a localhost

Piotr Stanek:
@Wojciech Małota jasne, że wyślesz alę wątpie ze ty akurat tak testujesz swoje aplikacje. ( w tym przypadku wysyłanie maili )

Nie testuję w ten sposób. Mam postawionego lokalnego postfixa i korzystam z funkcji mail().
Przecież chodzi tylko o wysyłanie maili mam mase znajomych którzy > są programistami kilka lat i żaden z nich nie testuje wysyłania maili na zwykłym serwerze lokalnym.

No cóż... ja tam mam postawiony cały serwer testowy ze wszystkim co tylko możliwe. Raczej nie wyobrażam sobie inaczej.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: smtp a localhost

Piotr Stanek:
A dla mnie dałeś popis typowego administracyjnego bełkotu. ( no ale widać, przynajmniej, że się znasz... )

Co w tym, co napisałem, było bełkotem?
Przecież Edyta zacytowała jasny jak słońce komunikat błędu od serwera SMTP, przez który próbowała wysyłac maila. Zdziwiłem się, że nikt tego komunikatu nie zrozumiał i nie zwrócił jej uwagi, w czym jest problem, tylko zaczęły się jakieś kosmiczne dywagacje o możliwości bądź niemożliwości wysyłania maili z PHP.
A jeżeli bierzesz sie za wysyłanie maili z jakiejkolwiek aplikacji, to dobrze jest dokładnie wiedzieć jak działa ta usługa (tzn. wysyłanie maili), a nie traktowac jej jako czarną skrzynke w która wrzuca się adres i treść i jakims magicznym sposobem dochodzi to do adresata. Gdybyś to dobrze znał to moja wypowiedź nie byłaby dla ciebie bełkotem.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: smtp a localhost

I jeszcze jedna uwaga odnośnie środowisk produkcyjnych i testowych.
Zastanawiam się, czemu tak wielu z was się upiera przy tym, że środowisko testowe to musi być fizycznie inna maszyna, inny serwer niż produkcyjne?
Ja tam testuję wszystko na tym samym serwerze, na którym ma to działać produkcyjnie, nawet na tej samej instancji Apacza i PHP tylko w innym katalogu obok. Wtedy nie ma niespodzianek, ze z powodu np. różnic w konfiguracji w wersji testowej coś działało, a w produkcyjnej nie. Chyba tak jest najwygodniej - dlaczego tak nie robicie?

konto usunięte

Temat: smtp a localhost

Jarosław Rafa:
dlaczego tak nie robicie?
nie bede odpowiadal za innych, ale w moim przypadku jest to zwiazane z tym, ze posiadam serwer wirtualny i nie mam ochoty kazdorazowo wgrywac pliki przez eftepe (moje srodowisko testowe to win+xampp, ktore *mocno* odbiega od serwerowego), na wirtualce produkcyjnej testuje tylko i wylacznie te funkcje, ktorych nigdy nie instalowalem lokalnie pod windows.
moglbym pewnie zmienic dostawce uslug, postawic na serwerze SVNa i kilka innych dodatkow, ale wole skupic sie na programowaniu, a nie na szukaniu nowego serwera.Wojciech Zbigniew Piotrowicz edytował(a) ten post dnia 12.10.08 o godzinie 09:57

Temat: smtp a localhost

Jarosław Rafa:
Ja tam testuję wszystko na tym samym serwerze, na którym ma to działać produkcyjnie, nawet na tej samej instancji Apacza i PHP tylko w innym katalogu obok.

I jak sobie napiszesz procedurę składowaną w bazie danych, która przez przypadek wpada w nieskończoną pętlę to serwer produkcyjny wisi zanim nie zastopujesz wykonywania zapytania. Oczywiście przy niewielkich projektach nie ma to znaczenia.

Znane były również przypadki kiedy ktoś skryptem PHP wykonywał rekurencyjne usuwanie zawartości jakiegoś katalogu. Zapomniał tylko, że funkcja iterująca po elementach katalogu zwraca również '..'. Zatem ktoś opracował oryginalny sposób wyczyszczenia dysku twardego.
Na serwerze deweloperskim jest to sytuacja do przyjęcia bo po to on w końcu jest. Na serwerze produkcyjnym nie wyobrażam sobie czegoś takiego.
Oczywiście pomijam tutaj fakt, że ktoś uruchomił skrypt z prawami roota i ogólnie był ynteligentny. Jednak pamiętajmy, że każdemu zdarza się popełniać głupie błędy. Po to jest środowisko testowe aby popełnić je w nim.

konto usunięte

Temat: smtp a localhost

Jarosław Rafa:
tylko w innym katalogu obok. Wtedy nie ma niespodzianek, ze z powodu np. różnic w konfiguracji w wersji testowej coś działało, a w produkcyjnej nie. Chyba tak jest najwygodniej - dlaczego tak nie robicie?

Przy projektach typu "wyświetl stronę + formularz kontaktowy" to nie ma problemu, ale przy większych i bardziej skomplikowanych projektach, może się zdarzyć, że coś dupnie i pociągnie za sobą resztę (nie mówiąc już o tym, że wtedy łatwiej o pomyłkę, bo się ścieżka pomyli, login, itp. i zwykły błąd człowieka może spowodować drogą pomyłkę;)

A jeszcze w temacie: wysyłanie każdego kodu "do sprawdzenia" na serwer testowy jest może ok w przypadku kilkuplikwoych projektów, ale jak projekt jest większy, do tego jeszcze każdą zmianę trzeba rzucić na SVN/CVS, to lepiej mieć jakieś środowisko testowe lokalnie. Zwłaszcza, że aplikacje powinno się pisać przenośne, żeby działały w każdym środowisku :)Krzysztof Rakowski edytował(a) ten post dnia 12.10.08 o godzinie 10:39

konto usunięte

Temat: smtp a localhost

No i brawoo!! tak się powinno robić..

Jarosław Rafa:
I jeszcze jedna uwaga odnośnie środowisk produkcyjnych i testowych.
Zastanawiam się, czemu tak wielu z was się upiera przy tym, że środowisko testowe to musi być fizycznie inna maszyna, inny serwer niż produkcyjne?
Ja tam testuję wszystko na tym samym serwerze, na którym ma to działać produkcyjnie, nawet na tej samej instancji Apacza i PHP tylko w innym katalogu obok. Wtedy nie ma niespodzianek, ze z powodu np. różnic w konfiguracji w wersji testowej coś działało, a w produkcyjnej nie. Chyba tak jest najwygodniej - dlaczego tak nie robicie?

Temat: smtp a localhost

Piotr Stanek:
No i brawoo!! tak się powinno robić..

Parafrazując pewne inne powiedzenie:
Programiści dzielą się na tych, którzy mają środowisko testowe i na tych, którzy będą je mieli.

Następna dyskusja:

Localhost (Xampp) - Egroupware




Wyślij zaproszenie do