Piszę panel administracyjny i nie zabardzo wiem jak rozwiązać problem tworzenia/usuwania skrzynek pocztowych.

Może skupimy się na mojej funkcji do kasowania skrzynek :

  1. <?php
  2.  
  3. function delete_mailbox($domain,$login) {
  4.  
  5. global $mail_spooldir;
  6. global $mail_spoolconf;
  7. global $tempdir;
  8.  
  9. $plik = &#092;"#!/bin/bashnn\";
  10.  
  11. for ($y=0;$y < 100;$y++) {
  12. if (!is_file(&#092;"$tempdir/tmp$y.sh\")) {
  13. $tempfile = &#092;"tmp$y.sh\";
  14. break;
  15. }
  16. }
  17.  
  18. $plik .= &#092;"cd $mail_spooldir/$domainn\";
  19. $plik .= &#092;"rm $loginn\";
  20. $plik .= &#092;"cd $mail_spoolconf/$domainn\";
  21. $plik .= &#092;"rm -R $loginn\";
  22. $plik .= &#092;"cat passwd|grep -v \"$login\" > passwdn\";
  23.  
  24. if (!empty($plik)) {
  25. // otwarcie pliku do zapisu
  26. $fp = fopen(&#092;"$tempdir/$tempfile\", \"w\");
  27.  
  28. // zapisanie danych
  29. fputs($fp, $plik);
  30.  
  31. // zamknięcie pliku
  32. fclose($fp);
  33. }
  34.  
  35. chmod(&#092;"$tempdir/$tempfile\", 0755);
  36.  
  37. return $tempfile;
  38. }
  39.  
  40. ?>


Jak widać, w tym momencie korzystam z osobnego pliku, który jest wykonywany za pośrednictwem tego skryptu :

  1. <?php
  2.  
  3. function su_exec($program) {
  4. global $app_path;
  5. shell_exec(&#092;"$app_path/modules/bin/cmd $program\");
  6. }
  7.  
  8. ?>


Proces usuwania skrzynki wygląda tak :

  1. <?php
  2.  
  3. [snip]
  4.  
  5. $plik = delete_mailbox($wiersz[domain],$wiersz[login]);
  6. su_exec(&#092;"$app_path/modules/tmp/$plik\");
  7. unlink(&#092;"$app_path/modules/tmp/$plik\");
  8.  
  9. [snip]
  10.  
  11. ?>


W jaki sposób można by zoptymalizować ten skrypt, żeby nie korzystać z zewnętrznych programów.