Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Skrypt do mailingu
musiek86
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 0
Dołączył: 22.03.2008

Ostrzeżenie: (0%)
-----


Witam mam pewien skrypt do wysyłania maili z php, pobiera on maile z bazy po 20szt przy załadowaniu. Chciałbym go tak przerobić by pobierał 20szt, wysyłał, czekał 5-10 min i wysyłał kolejna porcję. Poniżej kod:
  1. <?php
  2. #tu część łącząca z bazą
  3. require_once("phpmailer/class.phpmailer.php");
  4.  
  5.  
  6. $mail = new PHPMailer();
  7.  
  8. $mail->PluginDir = "phpmailer/";
  9. $mail->Mailer = "smtp";
  10. $mail->Host = "XXX";
  11. $mail->Port = 25;
  12.  
  13. $mail->SMTPKeepAlive = true;
  14. $mail->SMTPAuth = true;
  15. $mail->Username = "XXX";
  16. $mail->Password = "XXX";
  17.  
  18. $mail->SetLanguage("pl", "phpmailer/language/");
  19. $mail->CharSet = "UTF-8";
  20. $mail->ContentType = "text/html";
  21.  
  22. $mail->From = "XXX";
  23. $mail->FromName = "XXX";
  24. $mail->Subject = "XXX";
  25. $mail->Body = 'XXX';
  26.  
  27. $wynik = mysql_query("SELECT email FROM users LIMIT 392 , 20") or die(mysql_error());
  28.  
  29. while ($rekord = mysql_fetch_assoc($wynik))
  30. {
  31. $mail->AddAddress($rekord['email']);
  32.  
  33. if($mail->Send())
  34. echo "E-mail do ".$rekord['email']." został wysłany <br>";
  35. else
  36. echo "E-mail do ".$rekord['email']." nie mógł zostać wysłany, przyczyna :".$mail->ErrorInfo."<br>";
  37.  
  38. $mail->ClearAddresses();
  39. sleep(10);
  40. }
  41.  
  42. $mail->SmtpClose();
  43. echo '</body></html>';
  44. ?>


O ile dobrze kombinuje przed zmienną wynik nalezało by dać:
  1. $paczka = 220; // Przykładowo zaczynamy od maila który w bazie jest 220
  2. for $paczka = 220; $paczka < 7000; $paczka == $paczka+20; //7000 bo tyle maili w bazie, +20 bo tyle jest pobierane jednorazowo z bazy
  3. {
  4. $wynik = mysql_query("SELECT email FROM users LIMIT $paczka , 20") or die(mysql_error());
  5.  
  6. while ($rekord = mysql_fetch_assoc($wynik))
  7. {
  8. $mail->AddAddress($rekord['email']);
  9.  
  10. if($mail->Send())
  11. echo "E-mail do ".$rekord['email']." został wysłany <br>";
  12. else
  13. echo "E-mail do ".$rekord['email']." nie mógł zostać wysłany, przyczyna :".$mail->ErrorInfo."<br>";
  14.  
  15. $mail->ClearAddresses();
  16. sleep(600); //10*60sek=10 min - czas po którym ma zostac pobrana kolejna paczka mailii
  17. }
  18. }

Mogłby ktoś zerknąć na to okiem i wskazać - nakierować na ewentualne błędy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Mackos
post
Post #2





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Zrób to w nieco inny sposób bo tak to sobie zadusisz serwer albo skrypt.
Kolejne uruchomienie skryptu kontroluj z crona, ewentualnie zapisuj gdzieś w bazie danych na którym emailu skończyłeś wysyłkę uprzednio.


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:38