Gruppenfilter beim E-Mailversand funktioniert nicht

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

Moderator: mirko

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

Beitrag von mirko »

Ich habe schon HTML Code gesehen, wahnsinn. Aus dem Grund ist in älteren Versionen auch schon der Versand abgebrochen, weil die codierte E-Mail nicht mehr in den Speicher passte. Es ist eben auch nicht mit dem E-Mail-Text allein getan, die Regeln muss man auch noch betrachten und dann auch noch ganzen Absender-Adressdaten. Am Ende darf man nichts vergessen, sonst bleiben die Platzhalter in der E-Mail enthalten.
MarcusK
Beiträge: 185
Registriert: 30.12.2006, 03:24

Beitrag von MarcusK »

Das Parsen sollte doch nicht so lange dauern. Außerdem muss das nur einmal gemacht werden. Im Vergleich zu der Datenmenge, die umsonst übertagen wird, ist das auf den ersten Blick noch die performantere Lösung. Man müsste natürlich einen eigenen Parser schreiben, der nur einmal sequentiell durch die E-Mail geht, anstatt mehrere Suchanfragen über einen PHP-Befehl macht.

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

Beitrag von mirko »

Ja ja ich weiss aber nicht vorher welche Felder in den E-Mails benutzt werden. Man müsste dazu den Betreff, E-Mail-Text und die Absenderdaten jedesmal erst parsen, die Felder damit raussuchen und dann die SQL-Anweisung zusammenbauen. Das Parsen dauert bei großen E-Mails im HTML-Format eine ganze Weile und die Zeit fehlt dann wieder beim Versand der E-Mails, denn die Scripte laufen ja nur eine begrenzte Zeit.
MarcusK
Beiträge: 185
Registriert: 30.12.2006, 03:24

Beitrag von MarcusK »

Nach dem * habe ich geschaut, ihn aber übersehen. Sinnvoller wäre es doch nur die Felder vom SQL-Server abzufragen, die man auch für diese E-Mail benötigt. Das wäre doch viel performanter. Auch die zu filternden Felder müssen ja nicht angezeigt werden. Bei großen Mailinglisten multilpiziert sich ja die Datenmenge enorm, die da vom SQL-Server durchgeschleift werden muss, vor allem wenn viele Felder benutzt sind.

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

Beitrag von mirko »

die anderen Felder sind automatisch in der Abfrage wegen des * enthalten, das Alter ist ein berechnetes Feld, steht ja nicht in der Tabelle.
MarcusK
Beiträge: 185
Registriert: 30.12.2006, 03:24

Beitrag von MarcusK »

Klar, ich meinte nur, dass man dies erst dann zur Abfrage hinzufügt, wenn dieser Filter auch verwendet wird. Die anderen Felder werden ja auch nicht einfach standardmäßig hinzugefügt.

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

Beitrag von mirko »

Ja die \"Figuren\" muss man anschauen bzw. Maus draufhalten oder jeden Empfänger einzeln anklicken und schauen ob er bestätigt ist.

Das Alter ist schon ein Problem aber braucht man vielleicht doch mal, um bestimmte Zielgruppen z.B. alle > 40 Jahre anzuschreiben.
MarcusK
Beiträge: 185
Registriert: 30.12.2006, 03:24

Beitrag von MarcusK »

Hallo Mirko,

hab\'s gefunden. Die nicht ausgewählten E-Mailadressen waren noch nicht bestätigt. Ich haber erst jetzt erkannt, dass die Adressen durch die halbgrauen Figuren gekennzeichnet sind. Das erklärt natürlich alles.

Wenn der MemberAge Link im E-Mail nicht verwendet wird, braucht man ihn ja nicht auszugeben. Ich denke nur an das immer zitierte Performanceproblem des Servers.

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

Beitrag von mirko »

Mit dem \"EN\" hat das nichts zu tun, wird irgendeine Gruppezuordnung nicht stimmen. Nachvollziehen kann ich das natürlich nicht, dafür müsste man genau die Gruppenzuordnungen anschauen.

Für MembersAge gibt es einen Platzhalter, den man in E-Mails für das Alter verwenden kann.
MarcusK
Beiträge: 185
Registriert: 30.12.2006, 03:24

Beitrag von MarcusK »

Hallo Mirko,

noch\'n Problem: Ich habe noch eine Test-E-Mail verschickt und wieder 7 der 8 Gruppen ausgewählt. Vorher habe ich zu Testzwecken verschiedene E-Mails mit entsprechenden Gruppenzugehörigkeiten angelegt. So habe ich jeweils eine E-Mailadresse mit jeweils nur einer der 8 Gruppen angelegt. Eine Adresse mit allen 8, eine Adresse mit keiner und eine Adresse mit der ersten und letzten Gruppe. Ich wollte damit das Verhalten beim Klick auf den Abmeldelink in einer E-Mail testen. Soweit bin ich aber noch nicht gekommen.

Da ich ja die ersten 7 Gruppen für den E-Mailversand ausgewählt hatte, hätte SWM an 9 E-Mailadressen verschicken müssen. (7 mal jeweils eine Gruppe, einmal alle Gruppen und einmal die Adresse mit 1. und 8. Gruppe).

SWM hat aber nur an 5 E-Mails verschickt! Der Vergleich der Adressen hat gezeigt, dass der einzige Unterschied ist, dass in den Adressen, die nicht angeschrieben wurden im Sprachfeld \"EN\" steht. Die anderen Adressen haben dort keinen Eintrag. Ich habe aber keinen Filter gesetzt.

Ich habe mir darufhin das SQL-Statement anzeigen lassen. Hier ist keine Abfrage des Sprachfeldes sichtbar. :

Code: Alles auswählen

SELECT DISTINCT `tanzinfos_members`.`u_EMail`, `tanzinfos_members`.*, IF(`tanzinfos_members`.`u_Birthday` <> \'0000-00-00\', YEAR( CURRENT_DATE() ) - YEAR( `tanzinfos_members`.`u_Birthday`), 0) AS `MembersAge` FROM `tanzinfos_members`
 LEFT JOIN `mailingadmin_globalblocklist` ON `mailingadmin_globalblocklist`.`u_EMail` = `tanzinfos_members`.`u_EMail`
 LEFT JOIN `tanzinfos_localblocklist` ON `tanzinfos_localblocklist`.`u_EMail` = `tanzinfos_members`.`u_EMail`
 LEFT JOIN `tanzinfos_maillisttogroups` ON `tanzinfos_members`.`id`=`tanzinfos_maillisttogroups`.`Member_id`
 LEFT JOIN `testgroups_groups` ON `testgroups_groups`.`ml_groups_id`=`tanzinfos_maillisttogroups`.`groups_id`
 WHERE (`tanzinfos_members`.`IsActive`=1 AND `tanzinfos_members`.`SubscriptionStatus`<>\'OptInConfirmationPending\')
 AND (`mailingadmin_globalblocklist`.`u_EMail` IS NULL AND `tanzinfos_localblocklist`.`u_EMail` IS NULL) 
 AND (`testgroups_groups`.`ml_groups_id`=15 OR `testgroups_groups`.`ml_groups_id`=16 OR `testgroups_groups`.`ml_groups_id`=19 OR `testgroups_groups`.`ml_groups_id`=20 OR `testgroups_groups`.`ml_groups_id`=21 OR `testgroups_groups`.`ml_groups_id`=22 OR `testgroups_groups`.`ml_groups_id`=23)

Merkwürdig kam mir nur die Abfrage des MemberAges vor? Die wird doch überhaupt nicht gebraucht? Für was wird das gemacht?

Code: Alles auswählen

IF(`tanzinfos_members`.`u_Birthday` <> \'0000-00-00\', YEAR( CURRENT_DATE() ) - YEAR( `tanzinfos_members`.`u_Birthday`), 0) AS `MembersAge`

Hier ist die Zusammenfassung des Mailings:

Code: Alles auswählen

Name des E-Mailings  test groups 
Beschreibung   
Zuletzt versendet  03.09.2010 13:09 
     
Mailingliste  World of Swing EN 
Gruppen der Mailingliste  SWINGKURSE; SWINGWV; RTSF; MBSW; SHOPEU; SHOPUS; VTIPPSM 
     
Regeln für den E-Mail-Versand definiert  nein 
Anzahl E-Mail-Empfänger ca.  5 
     
Statusreport an Ihre E-Mail-Adresse  xxxxxxx senden  ja 
Statusreport an den Administrator der Mailingliste senden  nein 
Statusreport an alle zugewiesenen Nutzer der Mailingliste senden  nein 
Statusreport an angegebene E-Mail-Adresse senden  nein 
     
Versand des E-Mailings  E-Mailing nach dem Klick auf "Fertig stellen" live im Browser versenden  
     
Absender E-Mail-Adresse  xxxxxxxx
Angezeigter Absender-Name   
Antwort-E-Mail-Adresse (Reply-to)   
E-Mail-Adresse für die Return-Path-Angabe   
Versand des E-Mailings über  xxxx SMTP 
Anzahl E-Mails, die bei einer E-Mailing-Prüfung vorbereitet bzw. live versendet werden sollen  200 
Twitter Tweat posten  nein 
     
Format der E-Mail  multipart E-Mail 
Codierung der E-Mail  iso-8859-1 
Priorität der E-Mail  normale Priorität 
Betreff der E-Mail  Gruppentest 
E-Mail-Texte  ja, Reine Text-E-Mail 124 Byte, Reine HTML-E-Mail 358 Byte 
Anhänge  keine 
     
Anonymes Tracking - Anzahl E-Mail-Öffnungen  ja 
Anonymes Tracking - Klicks auf Links  nein 
Personalisiertes Tracking - Anzahl E-Mail-Öffnungen  nein 
Personalisiertes Tracking - Klicks auf Links  nein 
Anzahl Links, die für das Tracking aktiviert sind  0 
Marcus
Antworten