Email-Adressen aus MySQL-Dump extrahieren
Ich habe die Aufgabe erhalten alle Email-Adressen aus einem MySQL-Dump (Drupal CMS) zu extrahieren um alle Bekannten eines verstorbenen Freundes zu kontaktieren. Der Dump soll so um die 20MB _komprimiert_ haben. Um vorbereitet zu sein, ersuche ich um Anregungen wie ich die Email-Adressen möglichst sauber herausbekomme. Ich suche nach @ bzw .at. (eher selten), doch wie erkenne ich Anfang und Ende einer Email-Adresse. Es könnte sein, dass Leerzreichen Anfang und Ende die Email-Adresse begrenzen, eventuell könnte der Beginn ein Doppelpunkt sein. Jedenfalls kann ich nicht immer davon ausgehen, dass es korrekte HMTL-Syntax ist. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Sam, 18 Sep 2010, Al Bogner schrieb:
Ich habe die Aufgabe erhalten alle Email-Adressen aus einem MySQL-Dump (Drupal CMS) zu extrahieren um alle Bekannten eines verstorbenen Freundes zu kontaktieren. Der Dump soll so um die 20MB _komprimiert_ haben. Um vorbereitet zu sein, ersuche ich um Anregungen wie ich die Email-Adressen möglichst sauber herausbekomme. Ich suche nach @ bzw .at. (eher selten), doch wie erkenne ich Anfang und Ende einer Email-Adresse. Es könnte sein, dass Leerzreichen Anfang und Ende die Email-Adresse begrenzen, eventuell könnte der Beginn ein Doppelpunkt sein. Jedenfalls kann ich nicht immer davon ausgehen, dass es korrekte HMTL-Syntax ist.
"korrekte HTML-Syntax"??? Wo gibt's denn sowas? Wie ist die Tabelle aufgebaut? Hat die E-Mail-Adresse ne eigene Spalte? Ansonsten ist vermutlich perl das Mittel der Wahl: perl - Practical Extraction and Report Language ^^^^^^^^^^ *nudge* *nudge* Mit Email::Address + Regexp::Common::Email::Address gibt es sogar schon ein Modul um E-Mail-Adressen (zuverlässig!) per Regex zu erkennen, den Zugriff auf den Dump gibt's evtl. sogar obendrauf (im Zweifelsfall könntest du den Dump in dein mysql importieren und dann per DBI aus perl drauf zugreifen, was, besonders wenn die Adresse ne eigene Spalte hat, vermutlich eh das sinnvollste ist). Und dann bietet es sich auch an, auch das Erstellen und den Versand der Mails auch gleich noch im selben perlscript "abzufeiern" ;) Außer du willst die Adressen eh nochmal seperat als Datei ablegen, dann könnte auch die nebenan genannte mutt-Lösung praktischer sein. Die Mail-Module von perl lassen sich nur eher umständlich "verallgemeinert" verwenden, d.h. nur spezifische Scripte für große oder häufige Sachen lohnen sich wirklich ... Für kleinere "einmal" Sachen ist ein mutt (in default-Konfiguration + Kommandozeile) praktischer. HTH, -dnh -- "Where's the kaboom? There was supposed to be an Earth-shattering kaboom!" -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sa, 18 Sep 2010 04:36:23 CEST schrieb David Haller: Hallo David,
Am Sam, 18 Sep 2010, Al Bogner schrieb:
Ich habe die Aufgabe erhalten alle Email-Adressen aus einem MySQL-Dump (Drupal CMS) zu extrahieren um alle Bekannten eines verstorbenen Freundes zu kontaktieren. Der Dump soll so um die 20MB _komprimiert_ haben. Um vorbereitet zu sein, ersuche ich um Anregungen wie ich die Email-Adressen möglichst sauber herausbekomme. Ich suche nach @ bzw .at. (eher selten), doch wie erkenne ich Anfang und Ende einer Email-Adresse. Es könnte sein, dass Leerzreichen Anfang und Ende die Email-Adresse begrenzen, eventuell könnte der Beginn ein Doppelpunkt sein. Jedenfalls kann ich nicht immer davon ausgehen, dass es korrekte HMTL-Syntax ist.
"korrekte HTML-Syntax"??? Wo gibt's denn sowas?
Wie ist die Tabelle aufgebaut? Hat die E-Mail-Adresse ne eigene Spalte?
Schön wär es. Ich schick dir was per PM.
Ansonsten ist vermutlich perl das Mittel der Wahl:
perl - Practical Extraction and Report Language ^^^^^^^^^^ *nudge* *nudge*
Mit Email::Address + Regexp::Common::Email::Address gibt es sogar schon ein Modul um E-Mail-Adressen (zuverlässig!) per Regex zu erkennen, den Zugriff auf den Dump gibt's evtl. sogar obendrauf (im Zweifelsfall könntest du den Dump in dein mysql importieren und dann per DBI aus perl drauf zugreifen, was, besonders wenn die Adresse ne eigene Spalte hat, vermutlich eh das sinnvollste ist).
Nein, die Email-Adresse ist mitten im HTML-Text,
Und dann bietet es sich auch an, auch das Erstellen und den Versand der Mails auch gleich noch im selben perlscript "abzufeiern" ;)
David, es geht da wirklich nicht um einen optimalen Code. Ich bin froh, wenn ich das Ergebnis möglichst rasch habe, notfalls auch mit händischer Nacharbeitung, d.h. vor und nach der Email-Adresse steht noch was, das händisch entfernt wird. Keine Ahnung wie auf Spamschutz geachtet wurde. Die Seite wurde mit dem FCK-Editor erstellt.
Außer du willst die Adressen eh nochmal seperat als Datei ablegen, dann könnte auch die nebenan genannte mutt-Lösung praktischer sein.
Ja, die Adressen sollten separat verfügbar sein.
Die Mail-Module von perl lassen sich nur eher umständlich "verallgemeinert" verwenden, d.h. nur spezifische Scripte für große oder häufige Sachen lohnen sich wirklich ... Für kleinere "einmal" Sachen ist ein mutt (in default-Konfiguration + Kommandozeile) praktischer.
Daran habe ich auch gedacht. Siehe nebenan. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Samstag 18 September 2010 00:19:58 Al Bogner schrieb:
Ich habe die Aufgabe erhalten alle Email-Adressen aus einem MySQL-Dump (Drupal CMS) zu extrahieren
Warum nicht einfach auch mit SQL? Lies den Dump in eine neue Datenbank ein und exportiere nur die Mail-Spalte (ggfs. noch mit der Anrede-, etc., spalte) in das CSV-Format. Dann kannst Du direkt mit einem Tabellenkalkül noch mal drüber schauen. -- Mit freundlichen Grüßen Pitt Leidner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sa, 18 Sep 2010 08:14:49 CEST schrieb Pitt Leidner:
Hallo,
Am Samstag 18 September 2010 00:19:58 Al Bogner schrieb:
Ich habe die Aufgabe erhalten alle Email-Adressen aus einem MySQL-Dump (Drupal CMS) zu extrahieren
Warum nicht einfach auch mit SQL? Lies den Dump in eine neue Datenbank ein und exportiere nur die Mail-Spalte (ggfs. noch mit der Anrede-, etc., spalte) in das CSV-Format. Dann kannst Du direkt mit einem Tabellenkalkül noch mal drüber schauen.
Schön wär es, wenn es da in der DB ein eigenes Feld für die Email-Adressen gibt. Da ist pro Drupal-Seite html-Text drin, also mitten drunter irgendwo eine Email-Adresse. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Al Bogner
-
David Haller
-
Pitt Leidner