Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wysyłka maila do odbiorców co kilka sekund
Forum PHP.pl > Forum > Przedszkole
alin
Witam, drodzy użytkownicy.
Mam problem, posiadam drobny system do wysyłki newslettera, niestety wysyła on mail hurtowo, choć serwer nie posiada żadnych limitów na wysyłkę funkcją ()mail, to wysyłka do aktualnej liczby subskrynentów [13,700] + jakaś setka dziennie przybywa. Chciałem aby system wysyłał newsletter co 1sek. Przykładowo wysyłka do 100 osób trwała by 100sek. Obecnie jest to 1, góra 2 sekundy.

W jaki sposób można to rozwiązać? Poniżej zamieszczam plik "sender.php"

  1. <?
  2. $_SESSION[senderkey] = "$idwys";
  3.  
  4. include("mailer_conf.php");
  5. $queryN="SELECT * FROM lista WHERE status = '1'";
  6. $resultN = MYSQL_QUERY($queryN);
  7. $znalN = mysql_num_rows($resultN);
  8.  
  9. if($znalN == 0) { echo "<center><BR><h5>Brak adresów e-mail w bazie! Nie można wykonać wysyłki.</h5>"; } else {
  10.  
  11. $resultW = mysql_query("select * from wiadomosci WHERE id = '$_GET[ids]'");
  12. $get_userinfo=@mysql_fetch_array($resultW);
  13. $id=$get_userinfo[id];
  14. $temat=$get_userinfo[nazwa];
  15. $datau=$get_userinfo[data_u];
  16. $type=$get_userinfo[typ];
  17.  
  18. function generuj_idwysylki()
  19. {
  20. global $idwys;
  21. $ile_zn = 9;
  22. $zn = 'qwertyuiopasdfghjklzxcvbnm1234567890';
  23. srand((double)microtime()*1000000);
  24. $iswys = '';
  25. for ($i=0;$i<$ile_zn;$i++)
  26. { $idwys .= substr($zn,(rand()%(strlen($zn))),1); };
  27. };
  28. generuj_idwysylki();
  29.  
  30. $_SESSION[senderkey] = "$idwys$type";
  31. ?>
  32.  
  33. <div align="center">
  34. <table border="0" width="580" cellpadding="0" cellspacing="0">
  35. <tr>
  36. <td valign="middle"><h4>Przygotowanie wiadomości do wysyłki:</h4></td>
  37. </tr>
  38. </table>
  39.  
  40. <table border="1" cellpadding="1" cellspacing="1">
  41. <tr>
  42. <td valign="middle"><center>Id wysyłki</td> <td valign="middle"><center>temat</td> <td valign="middle"><center>typ wysyłki</td> <td valign="middle"><center>ilość e-mail-i</td> <td valign="middle"><center>data utworzenia</td>
  43. </tr>
  44.  
  45. <tr>
  46. <td valign="middle"><center><? echo $idwys; ?></td> <td valign="middle"><? echo $temat; ?></td> <td valign="middle"><center><? echo $type; ?></td> <td valign="middle"><center><? echo $znalN; ?></td> <td valign="middle"><center><? echo $datau; ?></td>
  47. </tr>
  48. </table>
  49. <? if($type == html) { $types = "?sec=sender_html"; } if($type == txt) { $types = "?sec=sender_txt"; } ?>
  50.  
  51. <table border="0" width="580" cellpadding="0" cellspacing="0">
  52. <tr>
  53. <td valign="middle"><center>
  54. <form action="<? echo $types; ?>" method="POST">
  55. <input type="HIDDEN" name="id" value="<? echo $_GET[ids]; ?>">
  56. <input type="HIDDEN" name="kod" value="<? echo "$idwys$type"; ?>">
  57. <input type="HIDDEN" name="typ" value="<? echo $_GET[type]; ?>">
  58. Czy wysłać kopię newslettera na adres e-mail administracji? :<input type="checkbox" name="copy4admin" value="cyes"><br>
  59. <input type="SUBMIT" value="Wyślij wiadomość"> ((<b><A HREF="java script:displayWindow('showN.php?idN=<? echo $id; ?>&type=<? echo $type; ?>',800,600)">podgląd</a></b>))
  60. </form></center>
  61. <BR>
  62. <font style="font-size:11px;">
  63. UWAGA! Wysyłanie wiadomość może trwać od kilku sekund do kilku minut, w
  64. zależności od ilości e-maili w bazie oraz ciężaru przesyłki.
  65. Ponad to, w każdym e-mailu znajduje się link służący do wypisania się z
  66. subskrypcji.
  67. </font><br>
  68. </td>
tr@k
1-2 sekundy to trwa wstawienie wszystkiego do kolejki sendmaila. Poza tym nie widzę, gdzie wysyłasz wiadomość.
acense
A sleep ?
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.