Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zbyt dlugie wykonywanie sie skryptu php
Forum PHP.pl > Forum > PHP
tapis
Witam serdecznie.
Mam problem z moim skryptem w php rozylajacym maile.
Zadaje zaptanie do bazy mysql i mam odpowiednia tablice adresow mail.
Pozniej w petli while rozsylam maile fukcja mail(). Jesli tych maili jest
malo to dziala OK, ale jak jest ich np. ponad 300 to skrypt nie wyrabia
i skrypcik php dostaje timeout od serwera www.
Bardzo prosze o pomoc jak moge napisac poprawny skrypt
rozszylajacy maile.

Poniżej podaję mój kod źródłowy:
php:
<?

if(!$sql_sub=mysql_connect("ip", "user", "haslo"))
print"Błąd łączenia z serwerem bazodanowym"!";
if(!mysql_select_db ("nazwabazy"))
print"Błąd przy wybieraniu bazy danych!";


$tabelka="tabelka1";

$zapytanie="SELECT * FROM $tabelka WHERE (wartosc='abc' OR wartosc='def' OR wartosc='ghi') ORDER BY adresemail";
$wykonaj=mysql_query ($zapytanie);
$wiersze=mysql_num_rows($wykonaj);

$argument2="...temat...";
$argument3="...treść...";

print"<U>Listowanie adresów email:</U><BR>";

while ($wiersz = mysql_fetch_array ($wykonaj))
{
$argument1=$wiersz[2];

if(mail($argument1,$argument2,$argument3,"From: User<user@serwer.pl>","-f user@serwer.pl"))
print"".$argument1."<BR>";
else
print"Błąd funkcji mail(), najprawdopodobnie zwrot maila z serwera pocztowego!".$argument1."<BR>";
}

print"<BR>Wysłano wiadomości:".$wiersze."";

?>

Adresów email jest 350, wiadmości są typy txt każda wielkości 2-5KB.
Skrypt się wykonuje kilka minut po czym dostaję błąd serwera nr 500.
Część maili dochodzi do odbiorców.


Dziekuje za odpowiedz. rolleyes.gif


Pozdrawiam
Wojtek Kaliszak
tapis@interia.pl
skowron-line
no jak tyle chcesz na raz wyslac to sie nie dziw sprobuj PHPMailera
fiszol
Stronnicowanie - wyciągaj po 50 maili na stronę, wysyłaj i przekierowuj meta tagiem do strony następnej, na której wyślesz kolejne 50 itd...
legorek
Tak jak wspomniał poprzednik. Radziłbym też oznaczać odbiorców do których już wysłano e-maila. W razie problemów np. z internetem unikniesz sytuacji, że ktoś otrzyma dwie kopie, a ktoś zostanie pominięty.
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.