Abgleich mit einer MySQL-Datenbank

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

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

Beitrag von mirko »

Ja ich musste in der Hilfe auch erstmal nachlesen, da stand dass das fgets CRLF mit zurückgibt, also muss es weggetrimmt werden.
gravima
Beiträge: 8
Registriert: 20.09.2009, 00:21
Kontaktdaten:

Beitrag von gravima »

Hallo Mirko,

auf das (trim) wäre ich alleine natürlich nicht gekommen.

Super, jetzt hat es funktioniert. Bin auf ganzer Linie begeistert! Nochmals vielen lieben Dank!

Gruß,
Steffen
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

genauer erklären, wie nur der letzte? Die CSV-Datei hast du aber binär übertragen, nicht ASCII, sonst könnte die Zeilenende-Erkennung vom fgets() fehlschlagen. Es könnte auch noch ein trim() fehlen. Also vor $sql = noch eine Zeile $email = trim($email); einfügen, damit das CRLF entfällt.
gravima
Beiträge: 8
Registriert: 20.09.2009, 00:21
Kontaktdaten:

Beitrag von gravima »

Hi Mirko,

echt super! Vielen Dank für Deine Hilfe. Habe das ganze schon getestet und es sieht grundsätzlich schon mal sehr gut aus. Habe das schon durch >1000 Datensätze durchrattern lassen - leider wird NUR der letzte Datensatz tatsächlich geändert. Irgend eine Kleinigkeit fehlt also noch ... ;-)

Wenn ein Datensatz in der CSV-Datei ist, wird der Datensatz erfolgreich aktualisiert. Wenn mehrere in der CSV-Datei sind, dann nur der letzte CSV-Datensatz.

Wäre echt super, wenn wir das noch hinbekommen. Bin ja jetzt so kurz vor meiner Lösung!

Irgendeine Erklärung hierfür? Fehlt das sowas wie ein comit?
:d_gutefrage:

LG,
Steffen
Zuletzt geändert von gravima am 02.10.2009, 00:26, insgesamt 1-mal geändert.
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Naja die SQL-Anweisung sieht ja schon richtig aus. :) Der Rest geht so

Code: Alles auswählen

<php>

gravima
Beiträge: 8
Registriert: 20.09.2009, 00:21
Kontaktdaten:

Beitrag von gravima »

Hallo Mirko,

vielen Dank für die schnelle Antwort!

Grundsätzlich wäre die DB schon von außern zu erreichen. Dies kann man zumindest so konfigurieren.

Aber genau an so einen Weg habe ich gedacht. Ich habe eine Liste (CSV) mit X Mailadressen und diese werden Zeile für Zeile mit der DB abgeglichen.

Quasi so:
update [table_name] set deleted = 1 where email = \"[mail_aus_csv]\" and deleted = 0

Gibt es irgendwo eine Script-Vorlage die ich für meinen Fall etwas anpassen könnte? Sprich die einen Loop über alle CSV-Einträge macht?

Vielleicht hat mir ja noch jemand einen Tipp oder kann mir helfen. Ich bin leider nicht der PHP-Crack der das vom Scratch kurz runter schreibt. Auf Basis einer Vorlage könnte ich da sicherlich was anfangen.

Vielen Dank.

Gruß,
Steffen

---
gravima - Agentur für Gravitationsmarketing
Zuletzt geändert von gravima am 01.10.2009, 12:16, insgesamt 3-mal geändert.
Benutzeravatar
mirko
Beiträge: 22884
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Das kann man nicht automatisieren, da bei den meisten der Zugriff auf die MySQL DB von außen nicht erlaubt ist.

Bei den Bounces muss man die Protokoll-Datei erstellen lassen, diese Datei muss man mit einem eigenen PHP Script auf dem Server auslesen und den Status in der MySQL-DB entsprechend setzen.
gravima
Beiträge: 8
Registriert: 20.09.2009, 00:21
Kontaktdaten:

Beitrag von gravima »

Hallo Mirko,

wir haben nun SuperMailer das erste Mail für ein gleich umfangreiches Kundenmailing benutzt. Hat alles sehr gut funktioniert! An dieser Stelle ein dickes Kompliment an die Funktionalität und Zuverlässigkeit von SuperMailer!

:i_respekt:

Bisher exportieren wir den Empfängerkreis aus einer MySQL-DB (Typo3). In der DB werden automatisch die An- und Abmeldungen verwaltet. Beim ersten Mailing hatten wir nun sehr viele Bounces. Jetzt wäre es natürlich Super, es gäbe eine Möglichkeit, SuperMailer so zu konfigurieren, dass er alle ungültigen Adressen in der MySQL auf Status \"deleted=1\" setzt. Gibt es sowas? Wie könnte man sowas automatisieren?

Beste Grüße,
Steffen
Antworten