jafet
28.09.2004, 19:09:31
Witam Was!
Kupiłem konto z php, sqlem na swoją stronę. Uczę się php i napisałem sobie skrypt do subskrubcji wykorzystujący funkcję mail(). Wszystko działa poza tą funkcją. Pisałem do admina ale on jest jakiś niekumaty, nie zna się na php i mówi że wszystko niby jest ok. Ale wiem że nie jest bo maile nie dochodzą a skryp nie ma żadnych błędów. Co mam mu napisać? Co jest nie tak z tym serverem??
Proszę o pomoc.
Z gory dzieki
Yarecki
28.09.2004, 19:25:54
Spróbuj dodać 4 argument funkcji mail, z poprawnym adresem email nadawcy.
mail( $adresat, $tytul, $tresc, "-fuser@domena.pl" );
Na domeny.pl bez ostatniej części maile nie dochodzą do odbiorcy. Możliwe, że u Ciebie jest podobnie.
tiraeth
28.09.2004, 20:08:49
A może konfiguracja serwera (dokładniej php.ini) ma ustawione
safe_mode = On
jafet
28.09.2004, 21:09:43
Cytat(Yarecki @ 2004-09-28 18:25:54)
Spróbuj dodać 4 argument funkcji mail, z poprawnym adresem email nadawcy.
mail( $adresat, $tytul, $tresc, "-fuser@domena.pl" );
Na domeny.pl bez ostatniej części maile nie dochodzą do odbiorcy. Możliwe, że u Ciebie jest podobnie.
CZy ten czwarty argument to musi byc konto pocztowe z tego samego servera co konto www?

Spróbowałem ale tez nie dziala :/
Dzieki za pomoc. Sprawdzalem na innym koncie testowym i tam dziala funkcja mail().
Co mam napisac do admina?
Co musi on ustawic zeby w koncu zadzialalo??
Jak nie zwraca bledu? A zwraca false? Ustaw sobie by wyswietal wszystko co jest mozliwe errrory, notice, warningi... (bylo na forum jak to zrobic, poszukaj).
Jesli admin mowi, ze dziala to niech sprawdzi na najprostrzym kodzie czy jest ok. Sam mu taki mozesz wyslac.
A co ma zrobic jak nie dziala? RTFM!
Lukasz Luczak
1.10.2004, 19:44:56
To, że maile nie dochodzą to może być dlatego, że serwery na jakie wysyłasz blokują.
Poza tym dokładnie przeanalizuj kod krok po kroku (radz nawet wykorzystać logera PEAR'a), sprawdź czy mail jest wywoływany z prawidłowymi argumentami.
Jak to nic nie pomoze to ściągnij sobie jakąś klasę do obsługi sendmaila i wysyłaj przez niego - działa o wiele lepiej niż zwykł mail php.
Pozdrawiam,
ps: jak co to podaj tutaj kod - sprawdzę na swoim serwerze czy kod jest ok.
jafet
2.10.2004, 23:56:25
Sorki że dopiero teraz odpowiadam. Dzieki za pomoc. Chyba sobie sciagne jakas klase.
Do Lukasza L: jakbys mogl mi sprawdzic ten moj skrypt to tutaj podaje kod:
<?php
if (!$tresc || !$tytul)
{
echo ' <p align=center class="menu"> brak tresci lub wpisu </p>';
exit;
}
@ $db=mysql_pconnect('localhost','web_omel','mojehaslo');
if (!$db)
{
echo ' <p align=center class="menu"> połączenie nie powiodło się </p>';
exit;
}
mysql_select_db('web_foto');
$zapytanie="select * from maile";
$wynik=mysql_query($zapytanie);
echo '<p align=center class="menu"> Wysłano maila do: </p>';
while($wiersz = mysql_fetch_array($wynik))
{
$adres = stripslashes($wiersz['mail']);
if (mail($adres,$temat,$tresc))
{
echo '<p align=center class="menu">'.$adres.'</p>';
}
}
?>
Z gory dzieki za pomoc
Lukasz Luczak
3.10.2004, 11:07:03
jafet proponuję Ci dać coś takiego i sprawdzić jakie masz wyniki:
<?php
if (!$tresc || !$tytul)
{
echo ' <p align=center class=\"menu\"> brak tresci lub wpisu </p>'; }
if (!$db)
{
echo ' <p align=center class=\"menu\"> połączenie nie powiodło się </p>'; }
$zapytanie=\"select * from maile\";
echo '<p align=center class=\"menu\"> Wysłano maila do: </p>';
{
echo( \"<p align=center class=\"menu\"> * Wysyłam maila do : $adres ...\"); if (mail($adres,$temat,$tresc)) {
} else {
}
}
?>
Będziesz wiedział czy próbuje wysłąćmaile czy teznie i dowiesz się gdzie tkwi błąd. Być może błędne jest zapytanie SQL lub też późniejssze parsowanie wyników.
Oczywiście może być takze źle skonfigurowana funkcja mail - ale to juz trzeba być ganiuszem by coś skopać
Hej.
A moze najzwyczajniej w swiecie jest wlaczona autoryzacja smtp na serwerze - nawet przy wylaczonym safe_mode i mozliwosci korzystania z funkcji mail() cala procedura nie powiedzie sie gdyz funkcja mail w php nie posiada mozliwosci prostej autoryzacji -> poruszalismy to na forum - aby wyslac email-a na serwerze z autrozyacja potrzebna nam bedzie klasa smtp, badz troche weny tworczej i wiedzy na temat dzialania poczty i gniazd.
pozdrawiam
anas
ps. klase ta znalezc mozesz na zend.com lub w googl'ach.
Lukasz Luczak
3.10.2004, 16:11:16
Witam,
anas - nawet jak jest autoryzacja to email pójdzie (trzeba tylko dobrze skonfigurować php). Pozatym najczęściej jest włąśnie port SMTP blokowny (aby spamu nie wysyłać) i dostępne są tylko mail lub sendmail - ja osobiście uważam, że sendmail jest najlepszym rozwiązaniem - kolejkuje zapytania i wysyła kiedy może podczas gdy mail stara siewysyłać od razu...
Pozdrawiam
Hej.
Cytat
anas - nawet jak jest autoryzacja to email pójdzie (trzeba tylko dobrze skonfigurować php). Pozatym najczęściej jest włąśnie port SMTP blokowny (aby spamu nie wysyłać) i dostępne są tylko mail lub sendmail
Moja firma swiadczy uslugi hostingowe - jak powiesz mi jak trzeba skonfigurowac php, aby funkcja mail dzialala bez problemu, a przy tym nie dawala mozliwosci spamowania, podszywania sie pod innych uzytkownikow poczty to zaplace Ci za to, zapraszam wiec na priva z rozwiazaniem. Co do blokowania portow na ktorych dziala protokol SMTP - to robiac to zablokowalbys caly ruch dotyczacy poczty - wiec nie rozumiem jak mialaby wtedy dzialac funkcja mail.
Dla provider'ow pozostal wiec wybor miedzy odblokowaniem lokalnej autoryzacji smpt, ale wtedy jak masz konto z php na serwerze w domnie np. serwer.pl -> i na nim wysyalm email to moge podszyc sie pod np. admin@serwer.pl -> takie rozwizanie - jak dla mnie jest niedopuszczalne - dla takich providerow jak np. home.pl -> jest

. Sam sprawdzalem.
W tej chwili na naszym firmowym serwerze strony poszczegolnych uzytkownikow dzialaja z ich uprawnieniami - np. wywolujac swoj skrypt test.php -> nie odpala sie jako user www/www lub nobody/nobody - jak w przypadku apache'a, ale jako wlascieciel pliku/grupa wlasciciela - dlatego chcemy przepisac funkcje mail w php aby autoryzacja przebiegala na zasaszie zaufania - jesli gosc jako argument od podal np. jan@domena.pl to funkcja mail wpierw sprawdzi czy domena.pl nalezy do uzytkownika - jest przypisana do jego konta - jesli tak pojdzie dalej, jesli nie zwroci FALSE... innego rozwizania nie widze - chyba ze ktos z was mi podpowie jak mozna to latwej rozwiazac, aby nie oduczul tego uczciwy uzytkownik konta w tym php.
pozdrawiam
anas
moze to pomoze :
w polu Form: nalezy wpisac aktualny istniejacy e-mail z tego serwera
np.
FORM: user@SERWER_NA_KTORYM_JEST_TEN_USER_I_TEN_SKRYPT_PHP
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.