Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Masowe wysłanie maili.
Forum PHP.pl > Forum > Przedszkole
PatroL14
Witam !

Na samym początku zaznaczam, że dopiero 2 dni temu zaczełem się uczyć PHP, więc proszę o wyrozumiałość i wytłumaczenie po "chłopsku".
Napisałem prosty skrypt do wysłania maili ale do jednej osoby i chciałbym teraz to przerobić tak aby pobierało maile z bazy danych i wysyłało tam maila.
Wszystkie maile są w
  1. SELECT `email` FROM `Klienci`


Kod :

  1. <?php
  2. if(empty($_POST['wyslij_mail']))
  3. {
  4. echo '<center>';
  5. echo '<form method="post" action="mailingtest.php">';
  6. echo '<table>';
  7. echo'<tr>';
  8. echo '<td>Adres e-mail nadawcy :</td> <td><input type="text" name="email" /></td>';
  9. echo'</tr>';
  10. echo'<tr>';
  11. echo '<td>Temat wiadomości :</td> <td><input type="text" name="temat" /></td>';
  12. echo'</tr>';
  13. echo'<tr>';
  14. echo '<td>Treść wiadomości :</td> <td><textarea name="tresc"></textarea></td>';
  15. echo'</tr>';
  16. echo '</table>';
  17. echo '<input type="hidden" name="wyslij_mail" value="tak" />';
  18. echo '<input type="submit" value="Wyślij" />';
  19. echo '</form>';
  20. echo '</center>';
  21. }
  22. else
  23. {
  24. if(empty($_POST['email']) OR empty($_POST['temat']) OR empty($_POST['tresc']))
  25. {
  26. echo '<center><font color="red">Nie zostały wypełnione wszystkie pola. Kliknij przycisk wstecz w przeglądarce i podaj dane.</font></center>';
  27. }
  28. else
  29. {
  30. $odbiorca = 'tutaj mail odbiorcy';
  31. $naglowki = "From: ".$_POST['email']."\r\n";
  32. $naglowki .= "Content-type: text/html; charset=utf-8\r\n";
  33. $temat = $_POST['temat'];
  34. $tresc = $_POST['tresc'];
  35. }
  36. if(@mail($odbiorca, $temat, $tresc, $naglowki))
  37. {
  38. echo '<center><font color="green">Twój email został pomyślnie wysłany.</font></center>';
  39. }
  40. }
  41. ?>
artekp999
Musisz zastosować pętle
Tutaj masz prosty przykład
  1. $query = mysql_query ("select * from Klienci");
  2. while ($rekord = mysql_fetch_array($query)) {
  3. mail("$rekord[email]","$temat","$tresc","$naglowki");
  4. }


Ale aby poprawnie masowo wysyłać maile musisz przestrzegać kilku zasad
1. Wysyłam maile paczkami(np.50) co kilka minut
2. W bazie oznaczaj emaile do których zostały już wysłane a do których nie(dzięki temu będziesz mógł zrobić warunek(patrz kod wyżej))

Całego kodu ci nie podam, bo się nie nauczysz biggrin.gif
Miłej zabawy biggrin.gif
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.