Newsletterversand bricht nach ca. 100 Mails ab

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire »

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Das war Arbeit.

Unter der folgenden URL steht ein Paket mit einer aktualisierten include.newsletter_send.php zur Verfügung: Hier

Voraussetzung für die Verwendung ist der Einsatz der Newsletter-Überarbeitung (siehe Signatur).

Bitte testet diese Änderung. Wenn alles geht, aktualisiere ich das Ursprungsthema zum Newsletter V4.4.x-Modul.

Anleitung:
0.) Newsletter-Überarbietung für V4.4.x einsetzen (siehe Signatur)
1.) ZIP-Datei herunterladen, entpacken und die Dateien in das contenido\includes-Verzeichnis hochladen
2.) In der Mandanten-config.php (d.h. z.B. in cms\) unter den Eintrag $newsletteridcatart folgende Zeilen einfügen:

Code: Alles auswählen

$newsletterdispatchcount = 50;
$newsletterdispatchtime = 5;
$newsletterwritelog=0;
Die Angabe von $newsletterdispatchcount aktiviert die Versendung des Newsletters in Blöcken; die Zahl legt die Anzahl der zu versendenden Newsletter pro Block fest (hier: Versand an 50 Empfänger pro Block).

Wird $newsletterdispatchtime angegeben, erfolgt der Versand des jeweils nächsten Blocks automatisch nach Ablauf der angegebenen Zeit in Sekunden (hier: 5 Sekunden). Beide Werte müssen entsprechend des vorhandenen Systems ausgetestet und gewählt werden (d.h. kann z.B. der Server überhaupt 50 Newsletter in 5 Sekunden versenden).

Wird $newsletterdispatchtime nicht angegeben, erfolgt der Versand in Blöcken, jeder Block muss jedoch manuell gesendet werden.

Wird $newsletterwritelog = 1; angegeben, werden nicht-erfolgreiche Sendversuche im Mandanten-logs-Verzeichnis protokolliert (z.B. cms\logs). Es sollte daher bei aktiver Option geprüft werden, ob die Rechte für das Verzeichnis stimmen (777). Außerdem dran denken: Jeder, der weiß, wo die Log-Datei gespeichert wird, kann sie über das Web lesen - auch wenn sie keine funktionierenden E-Mail-Adressen enthalten sollte, könnte man es missbrauchen. Also Datei nach dem Versenden löschen...

Beispiel:

Code: Alles auswählen

$newsletterdispatchcount = 50;
$newsletterdispatchtime = 5;
$newsletterwritelog=0;
Versand an 50 Empfänger, nächsten Block nach 5 Sekunden Wartezeit senden. Kein Sendefehler-Log schreiben.

Code: Alles auswählen

$newsletterdispatchcount = 100;
// $newsletterdispatchtime = 5;
$newsletterwritelog=1;
$newsletterdispatchtime ist auskommentiert und damit nicht angegeben - Versand an 100 Empfänger, jeder Block muss manuell versendet werden. Sendefehler-Log schreiben.

Dinge, die man wissen sollte:
- Die Zeitsteuerung erfolgt über das meta-Tag des Typs Refresh - der Browser, über den der Newsletter-Versand gesteuert wird, muss dieses Tag unterstützen (und es darf keine andere Software dazwischenfunken, e.g. "Tools für mehr Sicherheit im Netz"). Außerdem darf in der Zeit, in der die Newsletter versendet werden, das Browser-Fenster nicht geschlossen noch eine andere Funktion aufgerufen werden.

- Auch während des automatischen Versands kann mit Klick auf das Cancel-Icon der Versand abgebrochen werden.

- Der Informationsgehalt ist gering: Wird die Sendung in Blöcken aktiviert, erfährt man nur, an wieviele Empfänger gesendet wurde und an welche Empfänger der Versand nicht möglich war (jeweils im aktuellen Block). Bei automatischem Versand des jeweils nächsten Blocks bleiben einem nur die eingestellten Sekunden, die Empfänger, an die nicht gesendet werden konnte, zu ermitteln - es gibt keine Komplettliste ("Versendet an", "Nicht versendet an"). Ausnahme: $newsletterwritelog wurde auf 1 gesetzt.

Das Ganze ist nicht mit der V4.5.x oder höher kompatibel (auch nicht mit der Überarbeitung zu diesen Versionen).

Der php-abc-Newsletter verwendet übrigens den gleichen Trick...

Gruß
HerrB
Zuletzt geändert von HerrB am Fr 6. Mai 2005, 17:10, insgesamt 2-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

verdammt gute Arbeit 8)
Ich habe es mal in einem Mandanten mit 680 Newsletterempfängern eingebaut und endlich bekommt auch jeder seine Email :lol:
Ein paar Verbesserungsvorschläge hätte ich aber noch:
1.Kann man die Ausgabe der nicht versendeten Emails noch irgendwie optimieren, dass die nicht versendeten Mails am Ende oder in einem extra Fenster ausgegeben werden?

2.Kann man die einzelnen "Blockseiten" vielleicht noch irgendwie voneinander abgrenzen? Es würde ja schon reichen, wenn jeweils z.B. "Newsletterblock 1 von x" oder sowas drinsteht.


Gruß
Daniel
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Danke für das Feedback. Ich schaue es mir an...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Das mit den Blöcken lässt sich noch einbauen, werde ich ergänzen.

Das mit den Namen ist ein Problem, da ich nicht x-beliebig große Arrays über Seitengrenzen hinweg übergeben kann/möchte (deswegen auch der explizite Hinweis und die Option, manuell weiterzuschalten).

Man könnte die Namen ins errorlog schreiben, wäre das für Dich eine Option?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

HerrB hat geschrieben:Man könnte die Namen ins errorlog schreiben, wäre das für Dich eine Option?
Das wäre super. 8)
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

So, die o.a. Datei wurde aktualisiert. Zum einen wurde ein Bug bei der Ermittlung der Empfängerzahl behoben und zum anderen wird nun die Anzahl der "Chunks" und die Nummer des aktuellen "Chunks" ausgegeben. Außerdem ist der Code nun schlanker und schneller geworden.

Wird die Option $newsletterwritelog in der Mandanten-config.php gesetzt, werden nicht-erfolgreiche Sendeversuche in die Log-Datei des Mandanten (e.g. cms/logs) protokolliert.

Daher bitte kontrollieren, ob das Verzeichnis logs im Mandanten-Pfad über entsprechende Rechte (777) verfügt (sofern das Verzeichnis bereits eine errorlog.txt enthält, auch dort die Dateirechte prüfen).

Kleiner Haken: Man kann die Einträge nur über ein FTP-Programm lesen. Ist man relativ alleine auf dem System könnte man das provisorisch umbiegen:

In include.newsletter_send.php in der Funktion fncWriteClientLog den Eintrag

Code: Alles auswählen

$cfgClient[$client]["path"]["frontend"]
durch

Code: Alles auswählen

$cfg['path']['contenido']
ersetzen (2x).

Ist aber eigentlich nicht so sinnvoll... :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

super :D
Nächste Woche kommt der nächste Newsletter dran mit inzwischen 680 Empfängern. Ich werde dann wieder berichten, ob es funktioniert hat.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ach ja, noch was (das ergänze ich oben noch): Wird die Log-Datei verwendet, sollte man dran denken, dass diese öffentlich zugänglich ist! Sie sollte also nach dem Versenden wieder gelöscht werden (auch wenn sie nur fehlerhafte E-Mail-Adressen enthalten sollte, könnte man es missbrauchen...).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

Hallo,
ich konnte deine Erweiterungen leider erst jetzt testen. Nach dem ersten Chunk bricht er aber mit einem 404er Fehler ab, also klappt das so nicht :-(
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Tut mir leid, gerade noch mal getestet - funzt. Kannst Du das nochmal mit geringerer Zeit zum Senden versuchen? Bzw. welche URL wird mit 404 verwendet? Steht was im errorlog?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

ich habs jetzt nochmal mit meiner EMail-adresse gestestet und diese 1000mal in die DB geschrieben. Beim Versand hat alles geklappt und mein Postfach quillt über vor lauter Spammails :roll:

Wenn ich wieder die richtigen Adressen einüge, hört der Versand nach einigen Chunks auf (Anzahl immer unterschiedlich). Ich bin jetzt mal von 50 auf 30 Mails pro Chunk runtergegangen, aber irgendwie kriege ich trotzdem nicht alle Mails raus.

Im Errorlog kommt nix an (sowohl Contenido als auch das von dir).

Achja: Der 404er kommt daher, dass es beim Versand eines Chunks eine Zeitüberschreitung gibt.
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ähm ein 404 heißt, daß er ein Dokument mit einer bestimmten URL nicht finden konnte...und HerrB wollte wissen, wie diese lautet...
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

das ist mir schon klar. Ich kann aber nicht sagen, welche seite er nicht findet, da ich immer auf die 404er Seite von meinem Domainhoster weitergeleitet werde. Bei dem Chunk, bei dem er abbricht kommt es mir so vor, dass er die Zwischenseite für das nächste Chunk nicht findet und deshalb den Fehler bringt. Auf jeden Fall gehen alle Chunks innerhalb von ein paar sekunden und irgendwann rechnet er ewig und bringt nach ca. 2-3 Minuten den 404er.


Edit: Die logs sind erst ab 3 Uhr heute nacht online, ich kann also erst morgen sagen, um welche seite es sich genau handelt
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Wirf auch einen Blick auf die Log-Datei für fehlerhaftes Senden, vielleicht kommt daher das Problem.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt