A więc po wielkich bojach i męcxzarni ze skryptem który łączył się się z POP3 i wywalał błąd wkurzyłem się i mpostanowaiłem napisac swój. Schodk zaczeły się jak odkryłem że na moim serwerze nie ma imap_open a andministracja odpowiedziała że nie ma zamiaru tego zmieniać.
Zostały sockety Rkingsmiley.png Więc mam coś takiego:

  1. <?php 
  2. ini_set("max_execution_time", 3);
  3. $serwer="poczta.o2.pl"; 
  4. $sock = fsockopen ($serwer, 110); 
  5. $x=fgets($sock); 
  6. fputs($sock,"USER test57rn");
  7. fputs($sock,"PASS test123rn");
  8. $x=fgets($sock); 
  9.  
  10. $i=1;
  11. while(!feof($sock) && $i <= 20)
  12. {
  13. fputs($sock,"LIST $irn");
  14. $linia = fread($sock, 555);
  15. echo '<br>';
  16.  
  17.  
  18. $fp = fopen("sms.txt", "a"); 
  19. flock($fp, 2); 
  20. $linia_w = str_replace("-ERR","",$linia);
  21. $linia_w = str_replace("+OK","",$linia_w); 
  22. $linia_w = str_replace(" ","*",$linia_w);
  23. $linia_w = str_replace("n","@",$linia_w);
  24. fwrite($fp, $linia_w);
  25. flock($fp, 3); 
  26. fclose($fp);
  27.  
  28. $i++;
  29. }
  30.  
  31.  
  32. fputs($sock,"QUITrn");
  33.  
  34.  
  35.  
  36. fclose($sock); 
  37.  
  38. $fp = fopen("sms.txt", "r");
  39. $tekst = fread($fp, 160);
  40. $tekst = str_replace("@","",$tekst);
  41. fclose($fp);
  42. ?>
  43.  
  44. <form action="http://www.text.plusgsm.pl/sms/sendsms.php" method="post" name="form">
  45.  
  46. <SELECT name="tprefix">
  47. <OPTION value="607" selected>+48 607
  48. </SELECT>
  49. <input type="hidden" size="6" maxlength="6" name="numer" value="XXXXXX">
  50. <input type="hidden" size="25" maxlength="40" name="odkogo" value="KURIER POCZTOWY">
  51. <textarea name="tekst" rows="4" cols="65" wrap="virtual" >Stan twojej skrzynki email: &nbsp;&nbsp;<? echo "$tekst"; ?></textarea>
  52.  
  53. <input type="submit" value="Wyslij">
  54. </form>
  55. <? unlink("sms.txt") ?>
  56. <body>
  57. <script language="JavaScript"> 
  58.  
  59.  
  60. setTimeout("document.form.submit()", 1500)
  61.  
  62.  
  63. </script>
  64. </body>


No i ze skryptem jest pare problemów a mianowicie pierwszy jest taki że pętla odczytuje max. 20 maili. Gdy nie ma maila o takim id serwer zwraca -ERR i tyle a gdy taki mal jest wypisuje mi np. 1 1845.
Więc postanowiłem że wykasuje -ERR z wyniku ale zostaje mi gąszcz enterów co po wysłaniu sms`a owocuje pojawieniu się w ich miejscu kropek więc mam 1 sms z własnciwym stanem i gurą kropek.
A więc do żeczy jak przerobić skrypt tak aby wysyłał bez tych enterów ? Może wsadzić do tej pętli if`a który będzie zapisywać tylko jeśli $linia_w inna niż \n ?
Drugi problem to taki że najchętniej chciałbym dostawac sms np. "Masz X wiadomości."
A nie w takiej postaci jak teraz:

Kod
Stan twojej skrzynki email:

*1*6687
*2*982
*3*345


No i teraz trzeci najbardziej uciążliwy problem. Mianowcie nie odpale tego skryptu w cron`ie poniważ zawiera formuarz który się sam wysyła za pomoca JS. Wysyła on dane w post do strony http://www.text.plusgsm.pl/sms/sendsms.php. Konkretnie chodzi o ta partę kodu:

  1. <form action="http://www.text.plusgsm.pl/sms/sendsms.php" method="post" name="form">
  2.  
  3. <SELECT name="tprefix">
  4. <OPTION value="607" selected>+48 607
  5. </SELECT>
  6. <input type="hidden" size="6" maxlength="6" name="numer" value="XXXXXX">
  7. <input type="hidden" size="25" maxlength="40" name="odkogo" value="KURIER POCZTOWY">
  8. <textarea name="tekst" rows="4" cols="65" wrap="virtual" >Stan twojej skrzynki email: &nbsp;&nbsp;<? echo "$tekst"; ?></textarea>
  9.  
  10. <input type="submit" value="Wyslij">
  11. </form>
  12. <? unlink("sms.txt") ?>
  13. <script language="JavaScript">
  14.  
  15.  
  16. setTimeout("document.form.submit()", 1500)
  17.  
  18.  
  19. </body>


Zastanawia mnie tylko jak z php wysłac te dane w POST bez użycia html`a ? W tych danych musi się znaleźć:
tprefix o wartości 607
numer o wartości XXXXXX (oczywsicie tutaj jest normalny numer u mnie)
odkogo o wartości np. KURIER POCZTOWY
tekst o wartości <? echo "$tekst"; ?> (pobiera dane z pliku sms.txt)

Celowo pozostawiłem hasło i login do skrzynki email w kodzie ale proszę go nie zmieniać, ta skrzynka jest i tak tylko do testów bo nie każdy ma poczte na o2 więc liczę na uczciwość. Nie ma na niej nic oprucz 3 bzdurnych maili.



Czy ktos chciałby się podjąć przeróbki skryptu ?
Jestem w stanie zapłacic nawet choć niechętnie aby skypt dał się odpalić w cronie i wysyłał sms o treści "Masz X nowych wiadomości"