FollowUp Responder versendet garnicht/doppelt/mehrfach

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

das mit der UserId geht nicht so einfach, wenn das alles Admin-Nutzer sind, also keine eingeschränkten Nutzer, dann angeben

$UserId

und Zeile davor noch global $UserId;

bei eingeschränkten Nutzern geht das nicht so einfach, muss man dann beim manuellen Versand, z.B. live im Browser oder Test-E-Mails, damit leben, dass die ID nicht stimmt
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Danke für die Erklärung, damit hab ich aber lediglich aus einem kurzen nicht-zuordbaren-Dateinamen einen langen nicht-zuordbaren-Dateinamen gemacht. Das wichtigste ist die User-ID wonach ich dann sortieren kann, dass die möglichst übereinanderstehen.

Also

$_6J1Lf = $this->writeEachEmailToDirectory.[USERID].microtime();
Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

dann ändere es selbst, Script mail.php, Zeile 898

$_6J1Lf = tempnam($this->writeEachEmailToDirectory, "EML");

ändern in

$_6J1Lf = $this->writeEachEmailToDirectory.microtime();

oder in

$_6J1Lf = $this->writeEachEmailToDirectory."EML".microtime();

oder in

$_6J1Lf = $this->writeEachEmailToDirectory.microtime().".eml";
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Aber du siehst ja selbst, dass die aktuelle Debugsituation auch keinen Sinn macht. Windows gut, ist ein Argument, aber auch das könnte man in PHP prüfen.

Alternativ könnte man auf tempnam() verzichten und einfach mit microtime arbeiten, damit hast du eine universale eindeutige Zeichenfolge.
http://php.net/manual/de/function.microtime.php

EML-[UserID]-[Microtime]

Microtime hätte zudem auch noch den Vorteil zu sehen welche Datei wirklich aktueller ist und als erstes verschickt wurde.
Aber der Sinn von Debugging sollte natürlich sein auch Informationen zu bekommen.
Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

und genau das geht nicht. Die tempnam() Funktion berücksichtigt unter Windows als Präfix nur 3 Zeichen, nicht mehr, an die Windows-Nutzer muss ich natürlich auch denken. Selbst den eindeutigen Dateinamen kann ich nicht erstellen, denn bei vielen Dateien in diesem Ordner wird die Suche nach einem freien Dateinamen viel zu lange dauern.
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Guten Morgen,

also, der Ordner eml hat sich die letzten Stunden schön gefüllt. Allerdings sind anhand der Dateinamen nicht ersichtlich ob sie zum gleichen User gehören.

EMLHlUD8o
EMLpXlaVU
EMLuuV7n9
....

Besser wäre aber ein Name wie
EML-123-HlUD8o
EML-123-pXlaVU
EML-751-uuV7n9

So könnte man sofort erkennen wann es sich um den gleichen Empfänger handelt. Jetzt wird das natürlich zum Ratespiel. Ich weiß ja leider nicht, wer von diese ganzen EML Dateien jetzt etwas doppelt bekommen hat, oder nicht...
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Dann schalte ich das jetzt mal aktiv, unser großer Versand geht ab 5:00 Uhr los und bis 9 Uhr sollte alles abgearbeitet sein..... mal schauen ob ich morgen mit dem Debugmodus etwas finde.
Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

Die Dateien liegen dann in dem einem Verzeichnis, anhand des Datums sieht man dann, ob welche mehrfach hintereinander versendet wurden. Mit tempnam() und Präfix EML werden die Dateien erstellt, siehe dazu http://php.net/manual/de/function.tempnam.php
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

"derjenige" ist variable. Wenn es immer den gleichen Empfänger treffen würde, hätte ich ja selbst einen Anhaltspunkt. Das Problem ist, ich weiß nicht wen es als nächtest erwischt. An einem Tag bekommt der Empfänger XY 4 Mails, am nächsten Tag Empfänger AB 3 Mails, am übernächsten Tag läuft alles prima und am 4. Tag bekommen vielleicht 5 Leute je 4 Mails zugestellt.

Ich weiß nicht ob uns diese Debugfunktion weiterbringt. Wir senden die Followupmails täglich an über 700 Leute raus, je nachdem welche Zeit hinterlegt ist. Unsere Kunden können sich die Versandzeit selbst einstellen. Das wird alles über die API geregelt.
Bei wem die E-Mails auch mehrfach verschickt wurde, erhält wenigstens einen Eintrag im Log/History. Nur leider ist es hier sehr schwer ranzukommen, weil die History natürlich nur in einem Feld abgespeichert wird.

Daher die Frage, bevor ich das mit dem Debugmodus teste: Bringt es überhaupt etwas? Wie sind die Beschriftungen der *.eml Datei? Denn auf Dateiebene müsste man ja auch sortieren um gleiche Mails herausfiltern zu können.
Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

aber warum derjenige 4 E-Mails erhält, ist trotzdem unklar, muss einen anderen Grund haben. Sind vielleicht Cc: oder BCc: Empfänger beim Follow-Up-Responder angegeben z.B. der Platzhalter [u_EMail], dann würde er nicht nur eine E-Mail bekommen.

in der Version ist auch ne weitere Debug-Möglichkeit drin, im Script cron_sendengine.inc.php

suchen nach writeEachEmailToFile, dahinter steht false, auf true setzen

darunter variable->writeEachEmailToDirectory davor // entfernen

per FTP das Verzeichnis eml im SuperWebMailer-Verzeichnis erstellen und auf 0777 setzen (Verzeichnis kann man theoretisch auch anders benennen)

von jeder versendeten E-Mail wird der Header und reine E-Mail-Text in eine separate Datei in das Verzeichnis geschrieben, die Dateien kann man alle anschauen.

Die Debug-Funktion natürlich deaktivieren, denn das kostet natürlich bei vielen E-Mails dementsprechend viel Speicherplatz
Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

Alle müssen umgestellt werden. Am besten CronJob-Script stoppen, alles als SQL per mysqldump exportieren und alle Tabellen danach löschen.

Wenn das ein eigener Server ist, dann in der MySQL-Konfiguration die Standardengine auf InnoDB setzen, das wirkt dann auf jede Tabelle, die neu erstellt wird, ansonsten ist es wieder MyISAM. In dem Dump nach ENGINE=MyISAM suchen und entfernen, dann wird InnoDB verwendet, wenn die Standardengine InnoDB ist.

Ist es kein eigener Server

In dem Dump alle CREATE TABLE Anweisungen suchen ENGINE=InnoDB angegeben bzw. ENGINE=MyISAM durch ENGINE=InnoDB ersetzen


den Dump zum Schluss neu importieren lassen
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Hallo Mirko,

danke für die neue Version, habe diese gestern Abend eingespielt. Die erste Mail die ich heute um 5 Uhr erhalten habe, war von einem Kunden, der weiterhin 4 E-Mails über den FollowUp erhält.
Habe gerade in der DB nachgesehen, dort gibt es einige Tabellen die InnoDB sind, aber der großteil steht auf MyISAM.
Welche Tabellen muss ich auf InnoDB umstellen, damit das Feature mit den Sessions funktioniert?
Benutzeravatar
mirko
Beiträge: 22886
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von mirko »

Ab der nächsten Version gibt es eine Sicherheit aber NUR wenn InnoDB für die MySQL-Datenbank und Tabellen verwendet wird, denn nur dann ist Sessionhandling möglich, damit werden im Falle eines Scriptabbruchs die SQL-Anweisungen nicht ausgeführt, so dass es keine doppelten Versendungen geben kann.
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Hallo Mirko,

ich habe jetzt über einen Monat mit verschiedenen Einstellungen getestet, habe die "Anzahl Follow-Up-E-Mails, die auf einmal für den Versand vorbereitet werden sollen" immer weiter nach unten gestellt. Doch leider keinen Erfolg. Mittlerweile erhalten wir immer öfter Beschwerden unserer Kunden über doppelte (bis zu 4x) erhalten E-Mails, die auch in der "History der versendeten E-Mails" protokolliert wurden.

Irgendwas läuft falsch beim Versenden. Kannst du hier nicht irgendwie eine zusätzliche Sicherheit einbauen. Ich weiß leider nicht was ich sonst noch machen kann....
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Re: FollowUp Responder versendet garnicht/doppelt/mehrfach

Beitrag von the_scrat »

Super, vielen Dank für den Tipp. Hab den Wert jetzt mal auf 100 gestellt (vorher war 250). Dann hoffe ich mal, dass das Problem damit behoben ist :-)
Antworten