PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Newsletter in PHP: Wie hoch skalierbar?



Biko
11-12-2003, 15:05
Hi zusammen,

ich habe einen Newsletter in PHP, der eine Mail an mich selber schickt und den Rest der E-Mail Adressen per cc in den Header packt. So weit klappt das (bei mir im Moment ca. 2500 Adressen) auch 1a.

Jetzt möchte ich aber einen personalisierten Newsletter verschicken, der u.U. an bis zu 10.000 E-Mail Adressen geschickt werden soll.

Eine while()-Schleife via PHP scheidet hier (wg. der Menge an Adressen) wohl aus. Habt ihr Erfahrung mit so grossen & dann noch personalierten Newslettern?

Danke für die Hilfe,

Biko

elrond
11-12-2003, 18:49
versuch dich doch mal zu "majordomo" zu belesen...

ich habe für sowal mal ein perl-script eingesetzt...nicht schön, aber funxt.

Gaert
11-12-2003, 20:32
Hi!


Original geschrieben von Biko

Eine while()-Schleife via PHP scheidet hier (wg. der Menge an Adressen) wohl aus.


Wieso das denn?

offe
12-12-2003, 10:11
ich denke wegen der max_execution_time von PHP. Diese könnte bei so vielen Adressen überschritten werden.

Offe

elrond
12-12-2003, 10:23
ich habe um das auszuführen mit php einfach eine Datei mit den relevanten Daten der Kunden zusammengebaut und ein Mail-Template erzeugt. Dann habe ich ein Perl-Script drauf angesetzt, das die beiden Dinger zusammenbaut und die Mails versendet.

Um den Start des Perl-Scripts vom PHP-Frontend zu trennen habe ich an at den Auftrag gegeben das Per-Script mit den erforderlichen Parametern auszuführen.

Das PHP-Frontend ist damit nur kurz beschäftigt....

Gaert
12-12-2003, 20:20
Hallo Leute!

Die max_execution_time ist mir bei einem Skript, welches einfach nur arbeiten soll, vollkommen egal, da nur relevant wenn man das Skript über den Webserver ausführt.
Kollegen von mir verschicken den Newsletter eines großen Autoverleihs (einige hunderttausend personalisierte Newsletter pro Woche) mit einem einfachen PHP Skript von der Konsole aus - das dauert weniger als eine Minute - PHP ist für sowas IMHO prädestiniert.

offe
13-12-2003, 10:12
die Dauer dürfte vor Allem von der Anzahl und Größe der Mail und von der verfügbaren Bandbreite abhängen. Bei großem Anhang und kleiner Bandbreite kann dies sehr schnell zu langen Scriptzeiten führen oder mache ich da einen Denkfehler?

Wo liegt der Vorteil von PHP auf der Konsole gegenüber von Perl?

Gibt es für PHP oder Perl vernünftige Software mit HTML-Editor und Datenbankzugriff zum Verschicken von Newsletter?

Offe

Gaert
13-12-2003, 10:59
Hi!

PHP hat gegenüber Perl auf der Konsole folgenden Vorteil: ich kann nur sehr wenig Perl, aber habe Jahrelange PHP Erfahrung.
Ich schreibe meine Shellprogramme meistens mit PHP...
Die Bandbreite ist sicherlich ausschlaggebend für das eigentliche Verschicken - das Skript selbst läuft aber nicht so lange, da es ja nur Mails in die Queue des MTA's schreibt und nicht wirklich verschickt.
Bei großen Mailmengen ist es ohnehin viel wichtiger sein Mailsystem gut zu konfigurieren, da sicherlich jede Menge ungültige Mailadressen gebounced werden...

Was soll denn die Software genau können? - das was ich bisher gebraucht habe, war so speziell, dass ich mich lieber nen halben Tag hingesetzt hab und es selber geschrieben habe.

mehlvogel
15-12-2003, 22:44
Original geschrieben von offe

Wo liegt der Vorteil von PHP auf der Konsole gegenüber von Perl?


Wo liegt der Vorteil von Perl auf der Konsole gegenüber von PHP?

offe
16-12-2003, 09:19
das war eigentlich ein Ernst gemeinte, in einem PHP-Forum vielleicht falsch positionierte, Frage.
Rein gefühlsmäßig hätte ich behauptet, daß für jemand der sich weder mit Perl noch mit PHP auskennt Perl für diese Aufgabe besser geeignet ist.

Offe

elrond
16-12-2003, 09:32
ich benutze wie beschrieben beides. Ist wohl historisch aus dem Nichtwissen um die Benutzbarkeit von php auf der shell gewachsen.
Mitlerweile möchte ich Perl schon wegen seinen Fähigkeiten bzgl. regex und den unendlich vielen angebotenen modulen bei cpan nicht mehr missen.

mehlvogel
16-12-2003, 15:01
Original geschrieben von offe
das war eigentlich ein Ernst gemeinte, in einem PHP-Forum vielleicht falsch positionierte, Frage.
Rein gefühlsmäßig hätte ich behauptet, daß für jemand der sich weder mit Perl noch mit PHP auskennt Perl für diese Aufgabe besser geeignet ist.

Offe

Nein glaube ich nicht, da PHP einfacher zu lernen ist (zumindest habe ich es so empfunden als ich von perl auf php umgestiegen bin). Zu der CPAN Sache: Viele Wissen gar nicht, wieviele Möglichkeiten man mit PHP hat - Zugriff auf fork() und andere Systemfunkitionen on *nix system sind da nur der Anfang es geht über zur WinAPI und weiteren Sachen. Im Zusammenspiel mit PEAR (nur weil ich es nicht benutze ist es nicht grundsätzlich schlecht ;)) bieten sich mit PHP die gleichen Möglichkeiten wie mit PERL.

Biko
19-12-2003, 19:11
Hi zusammen,

danke für die Antworten! Ich habe aber das Problem, dass zum einen PHP bei mir nicht über die Konsole bedienbar ist und zum anderen der Newsletter über ein Browserinterface bedienbar sein muss.

Habt ihr eine Idee, wie ich das System (egal wie ich es umsetze) mal testen kann, ohne gleich alle mit einer Testmail zu "beglücken"?

Biko

Gaert
19-12-2003, 21:07
Hallo!

Verschicke den Newsletter ganz normal, verwende aber statt der Adresse aus der Datenbank immer deine eigene (einfach hart in den Code reinschreiben).
Dann hast du zwar 2500 Mails in deiner Inbox, aber du hast ne ungefähre vorstellung wie lange es dauert, und ob er alle Mails verschickt.



danke für die Antworten! Ich habe aber das Problem, dass zum einen PHP bei mir nicht über die Konsole bedienbar ist und zum anderen der Newsletter über ein Browserinterface bedienbar sein muss.

Was heisst, PHP ist bei dir nicht über Konsole bedienbar - CLI ist standardmäßig aktiviert!
Das mit dem Browserinterface ist auch kein Problem - du kannst das Skript welches die Mails verschickt (egal ob PHP oder Perl) einfach asynchron ausführen (das PHP Skript wird beendet, der Mailprozess läuft ohne Timeout zuende).
Dafür kannst du das hier verwenden: http://www.naken.cc/mikehup.php

mehlvogel
21-12-2003, 09:45
Original geschrieben von Gaert

Was heisst, PHP ist bei dir nicht über Konsole bedienbar - CLI ist standardmäßig aktiviert!

Vielleicht hat er einfach keinen konsolen zugriff auf den server ;)

Gaert
21-12-2003, 10:36
Dann frage ich mich aber, ob sein Provider damit einverstanden ist, dass er mit 2500 Mails den Maildienst blockiert und die Performance in die Knie zwingt (im Normalfall sind solche Sachen in den AGB's ausgeschlossen) - für sowas würd ich schon nen eingenen Server nehmen...