php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-02-2006, 11:43
nbirke
 Newbie
Links : Onlinestatus : nbirke ist offline
Registriert seit: Feb 2006
Beiträge: 5
nbirke ist zur Zeit noch ein unbeschriebenes Blatt
Standard Newsletterversand als Prozess auf Server starten?

Hi,

ich baue gerade ein Newsletter-Tool mit dem man mehrere 10.000 Adressaten erreichen können soll. Ich möchte/kann kein fertiges Tool nehmen, deswegen muss ich es selber bauen. Falls es irgendwie hilft, ich verwende dazu das Application Framework Fusebox - für PHP natürlich

Grundsätzlich gibt es ja verschiedene Möglichkeiten per PHP Mails zu verschicken.

1. Eine Mail rausschicken, die als BCC alle Empfänger enthält. Problem: geht nur bei geringer Anzahl.

2. Alle Empfänger aus der Datenbank holen und in ner Schleife die Einträge abarbeiten, wobei jeder Durchlauf ein mal die mail()-Funktion aufruft. Problem: Skriptlaufzeit - auf meinem Server werden Skripte nach 90 Sek. beendet, da komm ich leider deutlich drüber.

3. Nur einen bestimmten Teil (z. B. 100-1.000) Empfänger aus der Datenbank holen und bei einem Skriptdurchlauf wie bei 2. abarbeiten. Ist das fertig ruft sich das Skript selbst wieder auf und nimmt die nächsten 100 bzw. 1.000 Empfänger. Problem: Zumindest bei Firefox gibt es eine Begrenzung für die Anzahl an automatischen Weiterleitungen, nach ner Weile bricht er ab (wie IE das macht weiss ich noch nicht).

4. Und das ist meine eigentliche Frage: Es wäre ja auch möglich das Skript als Prozess auf dem Server aufzurufen, z.B. mit system("php /pfad/skript.php?var=value"). Das Problem ist dann aber, dass system() solange wartet bis der Prozess fertig ist und demnach nach 90 sek. wieder abbricht.

Kennt jemand von Euch eine Möglichkeit das zu umgehen bzw. einen besseren Weg diesen Haufen Mails rauszuschicken?

Ich hoffe mir kann hier jemand helfen, ich sitze schon seit Wochen immer wieder an diesem Problem und komme einfach nicht weiter.

Schon mal Danke für Eure Vorschläge,

Norman
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 08-02-2006, 11:46
p_rehm
 Junior Member
Links : Onlinestatus : p_rehm ist offline
Registriert seit: Jul 2004
Beiträge: 220
p_rehm ist zur Zeit noch ein unbeschriebenes Blatt
p_rehm eine Nachricht über AIM schicken p_rehm eine Nachricht über Yahoo! schicken
Standard

Das hört sich aber verdächtig nach SPAM an,
hast nen Auftrag aus der "professionellen" Werbeindustrie?
Mit Zitat antworten
  #3 (permalink)  
Alt 08-02-2006, 11:49
nbirke
 Newbie
Links : Onlinestatus : nbirke ist offline
Registriert seit: Feb 2006
Beiträge: 5
nbirke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich kann Dich beruhigen, es ist kein Spam. Das ist der Newsletter für einen Online-Shop. Jeder der sich einträgt muss sich zuerst über eine Bestätigungsmail freischalten (double-opt-in), damit auch wirklich niemand da rein kommt, der das nicht wünscht.
Mit Zitat antworten
  #4 (permalink)  
Alt 08-02-2006, 11:59
p_rehm
 Junior Member
Links : Onlinestatus : p_rehm ist offline
Registriert seit: Jul 2004
Beiträge: 220
p_rehm ist zur Zeit noch ein unbeschriebenes Blatt
p_rehm eine Nachricht über AIM schicken p_rehm eine Nachricht über Yahoo! schicken
Standard

naja, warum verschickst die mail dann nicht einfach direkt nach dem anmelden?

oder immer an jedem tagesende und selektierst aus der DB nach einem bestimmten Timestamp?

So wäre das Problem schon gelöst...
Mit Zitat antworten
  #5 (permalink)  
Alt 08-02-2006, 12:16
Trashar
 PHP Senior
Links : Onlinestatus : Trashar ist offline
Registriert seit: Dec 2001
Ort: /root/
Beiträge: 1.366
Trashar ist zur Zeit noch ein unbeschriebenes Blatt
Trashar eine Nachricht über ICQ schicken Trashar eine Nachricht über AIM schicken
Standard

Mach doch eine Kombination aus 3 und 4
also erstmal rufst du das Script auf.
Das versendet zb 1000 mails und die makierst du als versendet.
Dann beim nächsten aufruf nimmst du die nächsten 1000 mails die noch nicht als versendet makiert sind und versendest wieder..

So arbeite ich zb meine Operationen per cron ab. Cron wird alle 5-10 min gestartet, schaut in die datenbank ob es noch unerledigte operationen gibt und arbeitet dann einen bestimmten teil ab und makiert die als erledigt

mfg
Mit Zitat antworten
  #6 (permalink)  
Alt 08-02-2006, 12:29
nbirke
 Newbie
Links : Onlinestatus : nbirke ist offline
Registriert seit: Feb 2006
Beiträge: 5
nbirke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@p_rehm

Na weil es ein Newsletter ist, der z. B. 1x im Monat an einem festen Termin verschickt wird und den dann alle auf einmal bekommen sollen und nicht der eine heute und der andere 10 Tage später...

@Trashar

Hm, das klingt gar nicht schlecht. Wenn schreibt also den Newsletter und wenn er fertig ist markiert man ihn quasi als versandbereit. Dann ruft man per Cron das Mailskript auf und checkt ob ein versandbereiter Newsletter existiert, bei dem es noch "offene" Empfänger gibt... das wäre wirklich ne gute Lösung, wo die mails auch relativ Zeitnah verschickt werden...

Ich kann bei meinem Hoster einen Cron allerdings maximal alle halbe Stunde aufrufen. Wenn ich also 100.000 Empfänger habe und gleichzeitig max. 1.000 Mails auf einmal verschicke, dann dauert es 50 Stunden oder ungefähr 2 Tage... bei ner Million (keine Ahnung ob das realistisch ist) wären es aber schon wieder 20 Tage, was nicht gut ist...

Was hast Du dabei für Erfahrungen gemacht, wie viele Mails man auf einmal verschicken kann?

Geändert von nbirke (08-02-2006 um 12:40 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 08-02-2006, 14:11
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

wenn du den Versand per Cronjob starten würdest würde sich ja max_execution_time gar nicht auswirken, oder?

Dann müsstest du ja alle auf einmal rauslassen können - aber vorsichtig, lass in deiner Schleife nach einer gewissen Anzahl von durchgängen ne Pause einlegen, sonst machst evtl. deinen Server platt oder wenn du nur Hosting hast, gibts nen bösen Brief vom Hoster...
Mit Zitat antworten
  #8 (permalink)  
Alt 08-02-2006, 15:13
nbirke
 Newbie
Links : Onlinestatus : nbirke ist offline
Registriert seit: Feb 2006
Beiträge: 5
nbirke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gute Frage, da bin ich mir selbst nicht so sicher ob die Laufzeitbegrenzung hier zieht...

Es macht wie Du aber sagst trotzdem Sinn das dann im Halbstundentakt zu machen, da ich auch nicht weiss, wieviele Mails der Mailserver auf einmal verträgt. Ich hab zwar einen eigenen Server aber die Mails werden über einen Serverpool des Hosters verschickt, weil bei mir keiner installiert ist.

Übrigens ist Domainfactory da relativ flexibel. Die haben mir grad angeboten bei den Cronzeiten ne Ausnahmen zu machen und mir ein beliebiges Einzurichen - ein feiner Zug also könnte ich es auch im 10 min. Takt machen...
Mit Zitat antworten
  #9 (permalink)  
Alt 08-02-2006, 15:18
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Wenn du eh mit denen in gutem Kontakt bist, würd ich an deiner Stelle einfach mal fragen, was die so meine, wieviele Mails du in einem bestimmten Zeitraum maximal rauslassen kannst - dabei solltest aber auch ungefähr wissen, wieviel KB die Mails in etwa haben werden - wird ja auch ein Unterschied sein, obs 1000 Mails mit 1KB sind oder 20 Mails mit 500 KB wegen nem Anhang oder so.
Mit Zitat antworten
  #10 (permalink)  
Alt 08-02-2006, 15:28
nbirke
 Newbie
Links : Onlinestatus : nbirke ist offline
Registriert seit: Feb 2006
Beiträge: 5
nbirke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das hab ich schon mal gemacht, die konnten mir da pauschal auch nichts zu sagen. Sie meinten es sollte eigentlich nichts passieren wenn man zu viele Mails auf einmal rausschickt, ausser dass es halt länger dauert bis sie wirklich weg sind. Das Problem ist halt auch, dass die Dateigröße schwankt. Es ist aber eher viel, weil HTML- und Textmails als eine Mail verschickt werden und die HTML-Mails halt relativ groß sind. Ich kanns nicht genau sagen aber bis 20kb kann das schon mal werden.
Mit Zitat antworten
  #11 (permalink)  
Alt 15-02-2006, 19:58
Coragon Rivito
 Master
Links : Onlinestatus : Coragon Rivito ist offline
Registriert seit: Oct 2002
Ort: Mils/AT
Beiträge: 908
Coragon Rivito ist zur Zeit noch ein unbeschriebenes Blatt
Coragon Rivito eine Nachricht über ICQ schicken Coragon Rivito eine Nachricht über AIM schicken Coragon Rivito eine Nachricht über Yahoo! schicken
Standard

*größtenteils überflieg*

starte dein skript doch im hintergrund und leite die ausgabe um (log datei oä. oder /dev/null wenns gar uninteressant ist ..)

http://www.google.de/search?q=linux+...la:de:official
__________________
mfg,
Coragon
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Formmailer v1.7.0 Bootstrap 4

Formmailer v1.7.0 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

16.04.2020 arne-home | Kategorie: PHP/ Formular
Upload v1.1.0 Bootstrap

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

16.04.2020 arne-home | Kategorie: PHP/ File
Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:39 Uhr.