Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysyłanie dużej ilości mejli...
isia
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


Witam...
Napisałam skrypt do wysyłania biuletynów za pomocą specjalnego formularza.
Loguję się, pobieram mejle z bazy i wysyłam.
Na każdy adres wysyłany jest jeden mejl, pobierany w pętli z bazy dodawany jako zmienna do funkcji mail().

  1. <?php
  2.  
  3. $subjectText = "temat";
  4. $PSendFullText = "tekst mejla";
  5. $nadawca = "Froma: nadawca@domena.com.plrn";
  6.  
  7.  
  8. while ($row = mysql_fetch_array($rezultat, MYSQL_ASSOC)) {
  9.       $mejl = $row["email"];  
  10.       if (mail($mejl, $subjectText, $PSendFullText, $nadawca)) { $i++; }
  11. }
  12. print "wysłano: ".$i." biuletynów<br>"; 
  13.  
  14. ?>

(IMG:http://forum.php.pl/uwaga.gif)
poprawiam
---
nospor


W bazie mam około 500 mejli. Po jakimś czasie wywala mi błąd serwera proxy i niestety nie wyświetla podsumowania ile wysłał biuletynów.
Wszyscy otrzymują mejle ale stronka niefajnie się wykrzacza.
Podejrzewam, że serwer proxy nie może utrzymać tak długiego połączenia. Ale nie wiem czy mam rację. Czy ktoś coś takiego robił? i czy jest na to jakaś rada?

pozdrówko
isia

Ten post edytował nospor 13.01.2006, 13:29:02
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Birkoff
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 23.10.2003
Skąd: Gdańsk

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


Hmm, z takim emailowaniem to problemy wynikaja z kilka rzeczy:
1. czas wykonania skryptu
2. ustawienia serwera - ilość emaili wyslanych w ciągu 1 godziny z danego konta

Stosujac ten skrypt wysylasz emaile w petli - im wiecej emaili tym dluzej trwa wysylanie. Jesli przegladarka nie dostanie odpowiedzi w ciagu 30 sekund (nie dam glowy...) to wywali blad...

Ustawienia serwera - to juz trzeba sie dowiadywac - na kontach komercyjnych czesto mozna takie informacje znalezc w regulaminie lub informacjach technicznych.

Zwroc uwage na jeszcze jeden fakt - przepisy antyspamowe. Wg prawa mozesz wysylac emaile TYLKO do osob, ktore same z wlasnej woli udostepnily Ci swoj email - na przyklad przez zapisanie sie do newslettera na stronie...

Stworzylem kiedys skrypt wysylajacy emaile - baza ponad 4000 emaili - idea byla taka, zeby podzielic taka wysylke na paczki po 50 emaili. Utrudnieniem jest to, ze kazda paczke trzeba wysylac recznie, no ale dziala...

  1. <?php
  2. require("../class.phpmailer.php");
  3.  
  4. //zakres emaili
  5. if ($_POST['paczka']==1) {
  6. $zakres="0, 50";
  7. }
  8. else {
  9. $p=$_POST['paczka']*50+1;
  10. $k=50;
  11. $zakres=$p.", ".$k;
  12. }
  13.  
  14. //pobranie z bazy danych emaili
  15. $emails=db_query("SELECT * FROM `tabela_emaili` ORDER BY email LIMIT ".$zakres.""); 
  16.  
  17. //wysylka do grupy
  18. $mail = new PHPMailer();
  19. $mail->CharSet  = "iso-8859-2";
  20. $mail->From  = 'nadawca@domena.pl';
  21. $mail->FromName = 'Nadawca Imie Nazwisko';
  22. $mail->Mailer = "mail";
  23. $mail->Subject = $_POST['temat'];
  24.  
  25. while ( $email=db_fetch_array($emails) ) {
  26. $body=' tu tresc emaila... ';
  27.  
  28. $mail->Body = $body;
  29. $mail->AltBody = $body;
  30. $mail->AddAddress($email['email']);
  31. $mail->Send();
  32. $mail->ClearAddresses();
  33. }
  34.  
  35. $_SESSION['paczka']=$_POST['paczka'];
  36. header("Location: grupy.php");
  37. ?>


Pominalem tu oczywiscie zbedne fragmenty - mam nadzieje ze to co jest daje jakis obraz koncepcji...

Pozdrawiam!

Birkoff
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 08:40