Datenbank iteration + Mail-Adresse überprüfen


#1

Hallo

Ich habe eine MySQL Datenbank mit einer Tabelle “Mails”. Die Tabelle enthält 100’000 Zeilen und zudem gibt es eine Spalte “Adresse” in der eine Mail Adresse steht und eine Spalte “Blacklist”.

Nun möchte ich ein kleines Java Programm schreiben, dass durch alle Zeilen durchgeht, jeweils die Mail-Adresse rausnimmt und überprüft, ob die Mail Adresse gültig ist. Wenn sie nicht gültig ist, soll die blacklist Spalte auf 1 gesetzt werden.

Mein Problem ist zum einen das iterieren über alle Zeilen und zum anderen wie ich überprüfen kann, ob die Mail Adresse gültig ist. Mit Überprüfen der Adresse meine ich nicht das Format der Adresse, sondern ob die Adresse wirklich existiert, also ob z.B. eine mail an test@example.com ankommen würde.

Kann mir da jemand weiterhelfen?


#2

Im Grunde möchtest du eine Spam-Liste erstellen? oO Da wird dir vermutlich nur bedingt geholfen.

  1. Iterieren über alle Zeilen: wo genau ist denn dein Problem?
  2. Das wird so nicht klappen. Im grunde müstest du schon eine EMail schreiben und selbst da weißt du nicht, ob diese Adresse existiert.

#3

} Mit Überprüfen der Adresse meine ich nicht das Format der Adresse, sondern ob die Adresse wirklich existiert, also ob z.B. eine mail an test@example.com ankommen würde.

Dazu müsstest du wirklich eine Email an diese Addresse schicken, selbst ohne Bounce ist nicht garantiert dass es diese Addresse wirklich gibt.


#4

Nein, es handelt sich nicht um eine Spam-Liste, sondern um einen Newsletter. Nur leider ist die Datenbank etwas veraltet.

Mir geht es hier nur um die Bounces, da sich das Amazon SES beklagt.


#5

Email überprüfen ist vielleicht unmöglich, hat jedenfalls mit ‘Datenbankprogrammierung’ nichts zu tun,
wäre besser die Themen begrenzt zu halten

reden wir leben von einer Tabelle mit Daten “X” oder “Y” in einer Spalte, die Einträge willst du durchgehen und für jedes “X” in einer weitere Spalte einen boolean setzen,

geht es um normales JDBC?
ein ResultSet durchlaufen, jeden Eintrag prüfen, bestimmte Einträge merken, etwa deren Id,
dafür am Ende einzelne neue Queries, oder auch eine Query “update T set Z = … where id in (… Auflistung …)”,
dieses Grundvorgehen sollte doch einfach sein bei Mindestgrundlagen, oder was bereitet Probleme?

evtl. auch interessant:
http://www.xyzws.com/Javafaq/how-to-use-updatable-resultset-in-jdbc/179
(How to Use Updatable ResultSet in JDBC?)