[PHP] Wysyłanie poczty bez funkcji mail();

0

A więc tak. Na moim serwerze zablokowana jest funkcja mail z powodu nadużywania przez jego użytkowników w/w funkcji do spamowania. Potrzebuję jednak wysyłać maile i znalazłem funkcję smptmail($to, $subject, $message); która powinna wysyłać maile bez potrzeby używania funkcji mail() łącząc się bezpośrednio z serwerem SMPT wybranym przeze mnie. I teraz problem jest następujący: Jak mam najprostszy w świecie kodzik:
<? function create_form() { ?>

<html> <head><meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"></head> <body> <form action="mail.php" method="POST">Do: <input type="TEXT" name="to">
Temat: <input type="TEXT" name="subject">
Treść: <textarea name="tresc"></textarea>
<input type="submit" name="submit" value="Wyślij"></form> </body></html> <? } include("****/mymail.php"); /* <- Tu jest ta funkcja */ if(isset($HTTP_POST_VARS["submit"])) { smtpmail($HTTP_POST_VARS["to"], $HTTP_POST_VARS["subject"], $HTTP_POST_VARS["tresc"]); print_r($HTTP_POST_VARS); } else { create_form(); } ?> To wtedy działa. Natomiast podczas wykonywania funkcji smptmail() wysyłającej potwierdzenie rejestracji na mojej stronie otrzymuję niezbyt przyjemny komunikat: Ran into problems sending Mail. Response: 501 5.0.0 HELO requires domain address Czy ktoś miał z czymś takim do czynienia?
0

http://www.rfc-editor.org/rfc/rfc2821.txt

tam jest specyfikacja e-maila i błąd 501 to

  <b>501 Syntax error in parameters or arguments      </b>

Czyli masz coś z parametrami funkcji chyba :-/
Może pomieszałeś zmienne, tam masz napisane, że wymagany jest adres domeny

0

Doszedłem do tego, co może być przyczyną. Czy istnieje jakaś funkcja, która ze zwykłego tekstu robi dane w formacie przesyłania z formularza? Tak jakbym jakiś tekst, powiedzmy "Blabla, jestem sobie ktośtam" wpisywali do okienka formularza i dawali wyślij i zwracająca to, co otrzymujemy w $HTTP_POST_VARS["nazwa_okienka"]? Nie wiem, czy to zrozumiałe, ale mam nadzieję, że tak...

0

:| nie rozymiem

0

Bo domyślam się, że proble tki w formacie przechowywania danych. Bo jak wykreuję sobie odpowiednie dane do rejestracji i wypiszę funkcją echo() a następnie skopiuję do pomocniczego formularza do wysyłania poczty przedstawionego w 1 poście, to wysyła mi prawidłowo. Kolejność danych sprawdziłem z dziesięć razy. Wniosek z tego, że te same dane, po "przepuszczeniu" przez formularz działają, a wcześniej nie. W związku z czym szukam funkcji, która wykreuje odpowiednik elementu tablicy $HTTP_POST_VARS odpowiadający wpisanemu w dane pole tekstowi...

0

Nadal nie wiem o co chodzi. Przedstaw problem jasno. Staraj sie nie odpoiwadac smemu tak ajk ja to robię :P potem nikt nie wie o co chodzi

0

Hmm.. Spróbuję, chociaż niebardzo wiem, jak to lepiej ująć...
Potrzebuję funkcji typu zamień($cos) zwracającej $cos2 takie, że $cos2 jest takie samo jak $HTTP_POST_VARS["nazwa"] przy wysłaniu formularza typu <FORM ACTION="bla.php" METHOD="post"><TEXTAREA NAME="nazwa"></T E X T A R E A><INPUT...type="submit"></FORM> po uprzednim wpisaniu do <TEXTAREA> wartości $cos. Hmm... Chyba lepiej nie jestem w stanie wytłumaczyć...

0

Rozwiazanie masz pod nosem: http://4programmers.net/view.php?id=87

0

Hmmm... Cały problem polega na tym, że nie działa...

0

Rozwiazanie masz pod nosem: http://4programmers.net/view.php?id=87

Właśnie, to niedziała. Mnie wyskakuje w emailu błąd polecenia HELO!!

Może ktoś podać dobry kod na wysłanie emaila pod serwer SMTP bez funkcji mail(); ??

0

Hmm... Wracając do kodu Pana Adama Boducha, to jest on prawidłowy, ale łączenie z serwerem i wysyłanie wiadomości trwa bardzo długo... Czy da się zrobić to w ten sposób, by strona załadowała się do końca, przeglądarka uznała to za koniec strony i uznała za załadowaną, a w tym czasie serwer PHP łączyłby się z serwerem SMTP i wysyłał wiadomość?

0

Hmm.... w Manualu jest coś o funkcji ignore_user_abort()
która powinna spowodować to że skrypt będzie wykonywany
nawet po rozłączeniu clienta, ale nie udaje mi się jakoś
zaaranżować takiej sytuacji na localhoscie...

0

Spróbuj na jakimś innym serwerze, możliwe, że funkcja działa tylko na linuxie.

0

Hmm... A mógłby ktoś napisać jak użyć tej funkcji? W manualu do PHP, który mam na dysku za !@#$% nie mogę znaleźć tej funkcji...

1 użytkowników online, w tym zalogowanych: 0, gości: 1