Newsletter an 100.000+

Fideli

Grünschnabel
Nabend,

ich programmiere gerad ein Script mit welchem ich einen Newsletter an mehr als 100.000 Empfänger schicken kann. Die Funktion ist derzeit einfach aufgebaut:

PHP:
$nldata = mysql_query("SELECT bla FROM tbl_lala WHERE bla = '$la2'");
while ($array2 = mysql_fetch_array($nldata))
      {
mailfunktion
};

Nun meine Frage: Kann ich damit 100.000 Letter verschicken?
 
Kommt auf Deinen Server an.
Obwohl 100.000 mal die php-Mailfunktion aufzurufen echt grausam ist, das saugt an der Serverleistung. Die meisten Webhoster setzen dem Grenzen.

Mein Vorschlag: Verwende BCC (Blind Carbon Copy) und verschicke im 100er Pack(oder 200 oder 300). Damit habe ich bisher keine Probleme gehabt.

Ansonsten würde ich mal vorschlagen, das Du Deinen Server/ Webspace mal austestest. :-)
 
Es handelt sich um den Puretec L Server.


Ich hatte daran gedacht, 200 verschicken zu lassen, dann die Seite automatisch reloaden lassen und wieder 200 ! Nur wie bekommt man sowas hin?
 
Sowas hab ich früher mal programmiert. Ist eigentlich ganz einfach. Du machst die ganz normale Datenbankabfrage nach den eMail-Adressen meinetwegen. Dabei benutzt du LIMIT um die Datensätze einzuschränken. Dann musst du dir einfach merken an welcher Stelle du gerade bist und lädst die Seite nach dem Abschicken mit dem neuen Wert in der URL neu. Dann lädst du dir den Wert aus der URL und lässt per LIMIT die nächsten Datensätze ab dem Wert auslesen. Das geht dann solange bis keine Datensätze mehr kommen.
 
Das Script erreicht irgendwann die zulässige Zeitgrenze für das Ausführen des Scriptes (üblich sind 10-30 Sekunden) und bricht ab.

Ein gezieltes Refresh dürfte zu Übetrieben sein, zumal Du zusätzlich die Position der Verschickten Mails irgendwo abspeichern müßtest usw.

Schau mal im PHP-Manual nach mail()
Es gibt auch die Möglichkeit über popen() und fputs() direkt über sendmail & Co. zu senden.

Normalerweise dürfte Dein Script aber funktionieren. Ausprobieren wäre nicht schlecht. Vielleicht findet sich irgendwo noch ein Puretec User, der Dir mehr dazu sagen kann :-)

Über BCC kannst Du mit einmaligem aufruf der Mailfunktion (je nach Server) hunderte von Mails verschicken. Dabei schickst Du Die Hauptmail an Dich selbst und 100-300 Benutzer über BCC.
Es sind also nicht so viele php mail() Aufrufe nötig, was wesentlich perfomanter sein dürfte.

[EDIT]

MIST, zu langsam :-)

[/EDIT]
 
also ich würde das niemals mit while(...){mailfunktion} machen -> das wird den server bei 100.000 extrem belasten!

schicke wie oben schon gesagt die mail mit BCC, sprich:

schreibe deine mails in eine variable und rufe die mailfunktion auf und sende die mail mit BCC!

oder:

mach es eben mit diesem refresh, denn 100.000 die while schleife wird glaube auch ganz schön hart! kannst es ja so machen:

1.rufe die datei mit datei.php?start=0 auf
2.sende 100-1000 mails
3.dann erhöhe start auf 100-1000 und rufe datei.php?start=1000 auf usw!

die mysql abfrage machste dann mit LIMIT $_GET['start'],1000

[EDIT]
upps, hat ja workaholic schon geschrieben (wer lesen kann ist klar im vorteil :-) )
[/EDIT]

greetz Nova
 
Zurück