mails, viele mails ??

ultrakollega

Erfahrenes Mitglied
problem mit newsletterversand:

PHP:
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
newsletter_senden_text($row["email"], $absender, $betreff, $codefeld);
}

in einer schleife rufe ich immer ne funktion auf zum
versenden.

hier die funktion:

PHP:
function newsletter_senden_text($email, $absender, $betreff, $textarea){

$TO = $email;
$subject = $betreff;
$absendermail = $absender;
$headers = "From: $absendermail\r\nX-Mailer: phpmail\r\nReply-To: $emailr\r\nContent-type: text";

mail($TO, $subject, $textarea, $headers);
		
}

wenn ich hundert verschicke kein problem, aber zb bei 1400 ist
mir aufgefallen das er 2500 verschickt hat und dann abgebrochen.

kann es sein das er nach dem TIMEOUT von 300 sekunden nochmal anfängt
weil er noch nicht fertig war innerhalb von 300 sekunden und
irgendwann "absemmelt"???

in der prozesslist von phpmyadmin habe ich gesehen das er bei
TIME nach 300 nochmal angefangen hat ...

jemande ne idee?

wie könnte ich es noch programmieren? denn für jede mailadresse
die funktion aufrufen is doch auch blöd???

danke!
 
Versuch doch, das du erst emails von a-e verschickst dann von f-j usw
dann wird sich das veringern denk ich mal. Oder in abständen die sachen aus der db ziehn. immer 300 stück weise oder so
 
??

ich durchlaufe doch eine schleife, genau so oft, so viele datensätze vorhanden sind.

wieso verschickt der dann das doppelte an mails???

mit hundert gings gut. und wieso soll sich das veringern wenn ich
stückweise schicke??
 
hi

also, wenn du das so machst, wie randar gesagt hat, sollte es eigentlich funktionieren. denn um die e-mails von a - e zu versenden, wird er kaum 300 sekunden brauchen. (es sei denn, du hast eine riesenkundschaft). und wenn du das immer so weiterführst, kommst du irgendwann bei z an und jeder hat seinen newsletter. ;)
 
also im prinzip rufe ich das skript aus, versende von id 1 bis id 100 - dann mit header ("Loc ... das skript nochmal ausführen
und zwar von id 101 bis 201 usw ...

und dem skript gebe ich als variable immer die letzte id mit die bereits verschickt wurde.

... klingt einfach ... aber

hat da jemand ein beispiel ganz grob mit den wichtigsten
sachen ???

ich hätte auch die möglichkeit das timeout hochzuschrauben,
wäre das sinnvoll bzw sicher??
 
also ich würds ja so machen dass du die id übergibst per url

also script.php?startid=...

dabei wär's dann allerdings wieder die id. und dann zählst du von $_GET["startid"] 100 hoch und rufst das script mit dieser um hundert erhöhten zahl wieder auf. alles klar? na wunderbar. :p
 
900

hab das timeout auf 900 gestellt. in 900 sekunden schaft mein
skript ca. 2800 mails.

ist das eher schwach oder gehts so???

wenn ich das dann umgeschrieben habe für stückenweisen versandt
stell ich wieder auf 300 um ...

danke für die antworten ..
 
Zurück