phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
Przesunięty przez: joli
22-01-2009, 18:46
Wysylanie poczty
Autor Wiadomość
CyberDuck
[Usunięty]

Wysłany: 06-02-2008, 00:08   Wysylanie poczty

Mialem u siebie taki problem na stronie glownej, ze nagle wysiadla mi
poczta na stronie glownej i forum.
Co sie okazalo administrator serwera zablokowal funkcje :
mail();
Nie wazne z jakich powodow, ale zrobil to na wszystkich stronach umieszczonych
na tym serwerze.
W pierwszym rzedzie pomyslalem o malej zmianie i probie wysylania poczty z forum
przy pomocy smtp. Niestety okazalo sie, ze tez to jest niemozliwe.
Zaczolem wiec szukac takiego skryptu, ktory poradzilby sobie z tym problemem
i w koncu znalazlem.
Poniewaz sam pisalem strone glowna wiec dokonalem odpowiednich zmian tam gdzie trzeba
i teraz poprawnie dziala calosc, ale tylko na stronie glownej.

Nawet niezaczynalem grzebac jeszcze w skrypcie forum poniewaz chcialem sie z Wami
tym skryptem podzielic i jesli moge prosic kogos o zrobienie gotowych modyfikacji
dla forum to bylbym wdzieczny.

Oto skrypt :
Kod:
<?
 function wyslij($serwerem,$uzytkownikem,$hasloem,$emailem,$doem,$tematem,$zawartoscem)
  {
  global $wynikem;   
# kodowanie w standardzie base64
  $uzytkownikem = base64_encode($uzytkownikem);
  $hasloem = base64_encode($hasloem);
# nawizanie połšczenia z serwerem SMTP
  $polaczenieem = fsockopen($serwerem,25);
# sprawdzanie dostępności serwera
  $sprem[0] = fgets($polaczenieem,1000);
# sekwencja:
# 1. polecenie uytkownika - fputs
# 2. odpowiedź serwera - fgets - idzie do zmiennej $spr do późniejszej analizy
# powitanie serwera
  fputs($polaczenieem,"HELO $ip\r\n");
  $sprem[1] = fgets($polaczenieem,1000);
# autoryzacja
  fputs($polaczenieem,"AUTH LOGIN\r\n");
  $sprem[2] = fgets($polaczenieem,1000);
  fputs($polaczenieem,$uzytkownikem."\r\n");
  $sprem[3] = fgets($polaczenieem,1000);
  fputs($polaczenieem,$hasloem."\r\n");
  $sprem[4] = fgets($polaczenieem,1000);
# polecenie wysyłki
  fputs($polaczenieem,"MAIL FROM: <$emailem>\r\n");
  $sprem[5] = fgets($polaczenieem,1000);
  fputs($polaczenieem,"RCPT TO: <$doem>\r\n");
  $sprem[6] = fgets($polaczenieem,1000);
# wpisywanie treci i nagłówków?
  fputs($polaczenieem,"DATA\r\n");
  $sprem[7] = fgets($polaczenieem,1000);
  fputs($polaczenieem,"Subject: $tematem\r\n");
  fputs($polaczenieem,"From: randka<$emailem>\r\n");
  fputs($polaczenieem,"To: <$doem>\r\n");
  fputs($polaczenieem,"\r\n");
  fputs($polaczenieem,"$zawartoscem\r\n");
  fputs($polaczenieem,".\r\n");
  $sprem[8] = fgets($polaczenieem,1000);
  fputs($polaczenieem,"quit\r\n"); //koniec poczenia
  $sprem[9] = fgets($polaczenieem,1000);
   
# analiza kodów odpowiedzi serwera SMTP za pomoc ereg
# i przypisanie zmiennej $wynik odpowiedniego komunikatu
  $wynik = 0;
  if (ereg('220',$sprem[0]) && ereg('250',$sprem[1]) && ereg('334',$sprem[2]) && ereg('334',$sprem[3]) && ereg('235',$sprem[4]) && ereg('250',$sprem[5]) && ereg('250',$sprem[6]) && ereg('354',$sprem[7]) && ereg('250',$sprem[8]) && ereg('221',$sprem[9]))
  {
           $wynikem = 1;
         } else {
           $wynikem = 0;
          }
  }
?>

Skrypt dziala na 100 %. Zreszta kazdy moze to sobie wyprobowac na wlasnym serwerze.
Niezycze komus, zeby nagle jego admin wpadl na taki pomysl jak moj, ale o tym niemysli
sie wlasnie do takiego momentu.
 
     
Gadatliwa Kasia 

   
Centurion



Pomógł: 543 razy
Posty: 1972
Wysłany: 06-02-2008, 00:19   

ten skrypt to zwyczajne wysylanie przez smtp, identyczne z tym ktore masz na forum
_________________
Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql
 
     
CyberDuck
[Usunięty]

Wysłany: 06-02-2008, 00:36   

To dlaczego na forum mi niedziala ?
Napisze tylko, ze probowal to naprawic nieskutecznie mod z tego forum.
Mam cos tam wylaczone dodatkowo ... no i klapa.
Ten skrypt zadzialal mi bez problemu.

Pomyslalem, ze mozna zrobic taka poprawke zeby skorzystalo w razie takiego
problemu wiecej uzytkownikow.

To jest blad ktory otrzymuje po ustawieniu smtp.
Kod:
Ran into problems sending Mail. Response: 553 5.7.1 Hello [XXX,XXX,XXX,XXX], for your MAIL FROM address policy analysis reported: auth user '' doesn't match 'mail from':
 
     
Centurion



Pomógł: 543 razy
Posty: 1972
Wysłany: 06-02-2008, 01:06   

nie znam wszystkich błędów smtp, ale z tego co wioskuje masz cos innego wpisane w Nazwa Użytkownika SMTP niż w Adres E-mail Administratora i/lub E-mail nadawcy
_________________
Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql
 
     
CyberDuck
[Usunięty]

Wysłany: 06-02-2008, 07:15   

Jesli wpisze niepoprawnie uzytkownika to mam taki blad :
Kod:
Ran into problems sending Mail. Response: 535 Account temporary unavailable / Tymczasowo nie mozesz sie zalogowac


Tez sprawdzalem :)
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,41 sekundy. Zapytań do SQL: 9
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

Design Cart - Tworzenie sklepu internetowego

iRonin.IT

https://nabea.pl

• Zamów reklamę