Newsletter aufteilen?

2Pac

Erfahrenes Mitglied
Hallo,

ich habe eine Datenbank mit Usern und dazugehörigen E-Mail-Adressen. Ich möchte nun aber nicht, dass der Newsletter mit einer WHILE Schleife ausgeführt wird, weil er mir schon abgesoffen ist beim ausführen. Vielleicht waren es auch zuviele Informationen die ich ausgegeben habe?

Die Ausführung erfolgt via diesem Script: (Variablen etc. alles richtig übergeben, Verbindung zur DB steht)

PHP:
if ($an == 0)
{
 $get_newsletter = mysql_query("SELECT * FROM user");
 while ($row = mysql_fetch_object($get_newsletter))
 {
  $register_name = $row ->name;
  $register_email = $row ->email;

  $absender = "automailer@stadtbau4u.de";

  mail($register_email, $schrift, $text, "From: $absender\nContent-Type: text/html");
  echo "<font color='#FFFFFF'>$register_name - $register_email - abgeschlossen</font><br/>";
 }
}
else
{
 $get_newsletter = mysql_query("SELECT * FROM user WHERE id='$an'");
 while ($row = mysql_fetch_object($get_newsletter))
 {
  $register_name = $row ->name;
  $register_email = $row ->email;

  $absender = "automailer@stadtbau4u.de";

  mail($register_email, $schrift, $text, "From: $absender\nContent-Type: text/html");
  echo "<font color='#FFFFFF'>$register_name - $register_email - abgeschlossen</font><br/>";
 }
}

Wie realisiere ich das? Reagiert er nicht, weil es zuviele User sind? (ca. 110 oder so) Sollte ich die echo Ausgabe weglassen für jede Mail?

Soltle ich vielleicht vorher die Datensätze auslesen und gucken das ich es Stück für Stück versenden, z. B. in 15er Schritte? Wenn ja wie? Wenn nein wie sonst?

Danke im Voraus!
Mfg Ronny
 
Die Funktion mail() ist nicht für das Versenden von großen Mengen E-Mails gedacht.

PHP Manual hat gesagt.:
Hinweis: Bitte beachten Sie, dass die mail()-Funktion nicht dazu geeignet ist, große Mengen von E-Mails in einer Schleife zu senden, da die Funktion für jede E-Mail ein SMTP-Socket öffnet und schließt, was nicht sehr effizient ist.
Um große Mengen von E-Mails zu senden, schauen Sie sich bitte die PEAR-Pakete » PEAR::Mail und » PEAR::Mail_Queue an.
 
Und um PEAR komm ich dabei nicht drum rum? Weil ich keine Ahnung von PEAR habe und einfach mal eben eine neue Sprache sich anschauen, ist nicht wirklich wirkungsvoll und effektiv. Denn ich will ja das auch verstehen was ich mache, nicht nur abschreiben.

Vielleicht wär eine Realisierung via CronJobs möglich die nicht so performance einbüßend ist?
 
Zuletzt bearbeitet:
Nicht unbedingt. Auf unserem Server laufen auch Newsletter mit mehreren hundert Mails völlig problemlos. Zum einen lassen wir die Mails per Cronjob nachts laufen, wenn der Server eh nur schläft und auch dann wird die Schleife in Pakete zu 500 Mails aufgeteilt, nach denen eine Pause eingelegt wird. Zum anderen kannst du das extrem reduzieren, indem du die Mails als Kopie, also mit BCC verschickst. Das ist dann nur eine Mail mit hunderten Kopien und nicht hunderte Mails. Das geht natürlich nur, wenn es keine personalisierten Mails sind.
Davon abgesehen sollten aber gut hundert Mails noch kein Problem darstellen.
 
Naja Ihr habt dann aber bestimmt einen eigenen Server. Ich sitze mit 50 anderen Kunden auf einem Server beim Provider. Wenn das jeder macht, sieht es schlecht aus. Aber ich habe es jetzt so gemacht, dass ich per CronJob stündlich 15 Mails verschicke. Das sollte wohl auch gut gehen.

Danke trotzdem für die Antwort ;)
 
Schon, aber auf dem Server laufen ca. 200 Domains. Wie ich schon geschrieben habe. Mach es nachts und wenn möglich nicht als einzelne Mails sondern als BCC.
 
Zurück