Hallöchen,
ich nutze eine Funktion, die das Versenden von emails in 500 Schritte aufteilt.
Bei etwa 5000 email adressen bleibt die Funktion nach einiger Zeit hängen. Nehme ich dagegen die Zeile "mail ($email, $betreff, $message1, "From: $absendername <$absenderemail>");" raus, dann läuft es durch. Wieso?
ich nutze eine Funktion, die das Versenden von emails in 500 Schritte aufteilt.
PHP-Code:
$sql = mysql_query("SELECT email, name, status FROM url WHERE status = 'gesperrt'");
$anzahl = mysql_num_rows($sql);
if(empty($start))
{
$start=0;
}
if ($anzahl < $ende)
{
$ende = $anzahl;
}
else
{
$ende=$start+500;
}
$sql = mysql_query("SELECT id, email, homepage_url, status FROM url WHERE status = 'gesperrt'
limit ".$start.",".$ende."");
while ($daten = mysql_fetch_array($sql))
{
$sendeid = $daten['id'];
$email = $daten['email'];
$homepage_url = $daten['homepage_url'];
$message1 = str_replace(array('$id', '$homepage_url'), array($sendeid, $homepage_url), $message);
$headers = "From: $absendername <$absenderemail>";
mail ($email, $betreff, $message1, "From: $absendername <$absenderemail>");
}
$start_new = $ende;
$ende_new = $start_new + 500;
if ($ende < $anzahl)
{
echo "<center>";
echo "Die Updateemails werden versendet...";
echo "<meta http-equiv=\"refresh\" content=\"1;url=newsletter_versenden.php?start=$start_new&ende=$ende_new&anzahl=$anzahl\">";
}
else
{
echo "<br><br>";
echo "Fertig! Es wurden insgesamt $anzahl Updateemails erfolgreich versendet!";
}
Kommentar